What's so wrong about Mark and his henchmen? In my impression they are producing an excellent compiler.
You must be living in x86 land, then. We poor souls stuck with alpha and IA64 are not so lucky. (If you want to know what I mean, try searching for some combination of {stupid, insane, broken, disgusting, alpha, ia64} in the GCC mailing list archive ;-)
Both GiNaC and CLN should compile fine with GCC-3.0. (CLN-1.1.1 has compilation problems on non-x86 platforms with GCC-3.0, but I am working on these and plan to release 1.1.2 this week.)
Thanks for the heads-up :-) I'll see how I go with 1.1.2!
What is the exact problem? What alternative compiler are you having in mind?
The Intel C++ compiler, which rocks hard. It's turned into a hybrid of GCC and the KAI compiler, and it's just plain excellent, front-end and back!
Note that CLN is ideally suited as a basis for computer algebra systems, mainly for three reasons: 1) Immediate types. An integer with absolute value smaller than 2^29 is immediate, not heap-allocated. Saves one indirection.
Does NTL do this? I haven't looked. NTL feels a lot, lot faster than CLN, though this is just an awesomely subjective remark based on my experience with Not That Many programs I've written.
2) Honors the injection of integers into rationals automatically, many aspects are more algebraic than in any other comparable library.
This has to be pretty easy to wrap around. I'm talking 0.4 undergrads here. ;-)
3) Reference-counted memory management. This works seamlessly with GiNaC's memory management. Compare this with MuPAD, where the memory management occassionally clashes with that from the underlying PARI library or with Magma, which occassionaly blows up out of the blue sky because of interferences with some Kant remnants.
Hey, if memory management was ever a problem for me, I just threw the Boehm garbage collector at it, and hey presto, no more problem. ;-) I know, I know, I'm pretty damn lazy sometimes, but really, is anyone going to be using CLN in a life support machine? Hmmm.
What sort of obstacles would such a 'port' face? Just how many innocent undergrad students would need to be tortured for such a feat to occur?
On the source-front only files numeric.h and numeric.cpp would have to be touched. But quite a number of functions would need to be implemented in GiNaC as opposed to delegating them to CLN. Hmm, I haven't gone through them and compared them with NTL's capabilities. Maybe one half or three undergrad students? Do you have some spare undergrads? ;-)
I wish I did, the only one I can think of is my Significant Other and she's so busy with her thesis that I can therefore only donate 0.05 undergrads to GiNaC right now. There's a subject at our university 'Symbolic Computation', every student has to do some sort of 'project' to pass it. I might try talking to the lecturer...
There is of course also the packaging-front: NTL has no suitable packaging, in my opinion it badly needs to be libtoolized!
Hey! HEY! Are we _completely_ forgetting about the Win32 community? ;-) (Visual C++ 7 seems to be coming along half- (third-?) decently with regards to Compliance, it's funny how many MSVC 5/6 programs now break in 7 though.)
Oh, you shameless flatterer! Seriously, if making things work on another compiler is all you are concerned with, I can assure you that CLN is not so non-portable. Here is demo that it can be done with moderate effort: <http://www.ginac.de/lists/ginac-list/msg00028.html>.
Thank you! I will always maintain that CLN is a bit perverted, but I only praise NTL because it Builds Anywhere.
Be warned though: On non-GCC you must probably compile CLN with "-DNO_ASM -DNO_PROVIDE_REQUIRE", and build a static library only.
Thank you, thank you, I will be quiet now and see where I get with that!
If you then still find CLN sillinesses I'ld definitely like to hear about them and see if they can be fixed.
I can't remember the last time I ever built something without warnings disabled. (Please don't laugh/cry) So I can't promise too much, but if I have real problems, I may well come back jumping up and down!^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hsend you an email. Duraid