On Mon, Apr 21, 2008 at 9:03 AM, William Stein wrote:
> ...
>  In the defense of GCL, *most* components of Sage were a mess
>  like above when I/you/whoever first tried to add them to Sage.
>  I personally haven't tried much using cvs GCL only, partly because
>  it scares me to use cvs for a deployed quality product.  Since cvs
>  might be broken one day, not the next, etc., and one has no clue
>  if the code has been tested or not or what.  The last released
>  version is from 2005, and it's clear the website is just dead (maybe
>  somebody lost the password?!)  I mean, it just looks a little silly
>  for the website (http://www.gnu.org/software/gcl/) to start with:
>    NEW! (20050810) GCL 2.6.7 is released. The release notes can
>       be found  here.
> ...
> The GCL-devel mailing list has on average about 5-6 messages
> a month during the last couple of months, except for a bunch of
> messages in January about people trying to build GCL from cvs.
>

No doubt about it - GCL does not have sufficient resources for
maintenance and has been somewhat neglected of late. As you say: It is
not a situation that you find entirely uncommon among the packages
that have been added to Sage in the past. Necessity is what drives
most of this kind of work.

>  I've made a gcl Sage optional spkg:
>
>    http://sage.math.washington.edu/home/was/tmp/gcl/gcl-20080421.spkg
>
>  It's just GCL-from-cvs + a simple spkg-install.  I have never got it to
>  build on any system.   It's a pretty big spkg, since it appears to
>  include the entire gas assembler, some version of GMP, etc.  Try
>  it out and see if it *doesn't* work for you too :-)
>
>    wget http://sage.math.washington.edu/home/was/tmp/gcl/gcl-20080421.spkg
>    sage -i gcl-20080421.spkg
>

Thanks. It doesn't work for me either. :-(

You are right that the source is bloated by a bunch of code that it
does not use. As I understand it gcl needs only a small part of
binutils - depending on the build options for a particular system.

Is this source from cvs head at:

  http://savannah.gnu.org/projects/gcl/

as of today?

This version of GCL fails on my Solaris x86 system with the following
obscure error message:

gcc -c -fsigned-char -pipe -Wall  -O3 -fomit-frame-pointer  -I/export/home0/wspa
ge/gcl-sage/gcl-20080421/src/o -I../h -I../gcl-tk cmpaux.c
cmpaux.c: In function `object_to_fcomplex':
cmpaux.c:329: error: `_Imaginary_I' undeclared (first use in this function)
cmpaux.c:329: error: (Each undeclared identifier is reported only once
cmpaux.c:329: error: for each function it appears in.)
cmpaux.c: In function `object_to_dcomplex':
cmpaux.c:366: error: `_Imaginary_I' undeclared (first use in this function)
gmake[1]: *** [cmpaux.o] Error 1
rm list.c
gmake[1]: Leaving directory `/export/home0/wspage/gcl-sage/gcl-20080421/src/o'
gmake: *** [unixport/saved_pre_gcl] Error 2

-------

At 'http://cvs.savannah.gnu.org/viewvc/gcl/?root=gcl' I see changes as
recent as 3 months ago. The last time I built GCL from head was about
10 months ago.

The most recent branch 'Version_2_6_8pre' is what we normally use to
build Axiom. There is a change about 4 months old. If I recall
correctly 'Version_2_6_8pre' actually corresponds to the version
distributed on Debian and would probably be the most likely to be
stable on the largest number of platforms.

>  Bill Page -- I would be interested in any comments you might have.
>  For example, is the fact that GCL doesn't build for us anywhere,
>  something that you think we'll get passed by just trying harder?
>  Or is it going to be really really hard.
>

The fact that it doesn't build for you anywhere is definitely strange.
I would give it a try again with

  $ cvs -z3 -d:pserver:[EMAIL PROTECTED]:/sources/gcl co
-r Version_2_6_8pre gcl

I do expect that (with the right help) you will be able to build gcl
everywhere that you build Sage. Instead of just trying harder I think
it is very appropriate to ask for help. Only if there is no help
forthcoming, perhaps I would agree that the problems might be of a
kind that you will not be able to get passed just by "trying harder".
I expect that like me, you would find the learning curve for the GCL
source code very high.

------

Now since you asked, maybe I should take a deep breath and try to
explain my personal views on this subject...

I am in fact fully sympathetic with the expressed desire to eliminate
Lisp from Sage. As you may know, I am also in favor of eliminating
Lisp from Axiom! I believe that was the direction in which Axiom was
headed when it was last sold as commercial software and would have
very much preferred it if that development had continued. The Aldor
compiler (written in C) was positioned to replace the exising library
compiler for Axiom. Aldor could be targeted to produce either Lisp or
object code linked into a C run-time environment based on an abstract
machine specification (FOAM). Also the version of Lisp underlying the
commercial version of Axiom (CCL) was heavily modified and optimized
as the preferred run time environment, i.e. moving away from being a
general purpose lisp system. In fact Axiom uses only a very small part
of the normal Lisp environment.

William, you have said that you started Sage because when you looked
three years ago you could find no alternative to the commercial
systems. I think that perhaps the timing of your interest was quite
unfortunate. All license issues for proprietary software components
aside, maybe if you had known that only a year or two earlier NAG
(Mike Dewar) was looking for someone who wanted to take Axiom open
source, and if you had had some previous experience with the
commercial version of Axiom previously sold by NAG instead of Magma,
then you might have chosen Axiom as a basis for Sage instead of
Python. From my point of view both the original Axiom library compiler
(SPAD) and the Aldor language resemble Python in more than just the
indented code layout. The last commercial version of Axiom even had a
web-based "notebook" style interface not so different from the Sage
notebook today. So who knows where we might be today...

Unfortunately the open source agreement with NAG took the Axiom system
back to it's situation in the late 1980's as primarily a Lisp-based
system. NAG would not (or could not) release the Aldor and web
interface components at the same time as part of the Axiom open source
release. But NAG (through the kind assistance of Arthur Norman of
Codemist Ltd.) did provide an open source version of the optimized CCL
run-time system. However the initial open source re-release of Axiom
was not based on that version of Lisp but rather on an earlier version
of Lisp AKCL that had been previously used with Axiom/ScratchPad
during the IBM days. (In a parallel development AKCL had become open
sourced as the GCL project.)

Lisp remains a focus of the original Axiom project, but both forks of
the Axiom project (FriCAS and OpenAxiom) have been considering the
possibility of developing an optimized formally specified run-time
environment based on something much less than full Lisp. And most
recently Aldor was finally made available as at least (semi-)open
source software.

-----------

Anyway, none of this solves the immediate problem of providing support
for symbolic mathematics in Sage without adding the burden of
supporting Lisp in all target environments. Right now you depend on
the linkage with Maxima for this feature, And I think you see symbolic
manipulation as a particular domain or mode of computation within Sage
rather than the reason d'etre of computer algebra systems.

I would like to argue however that from an overall design perspective
Axiom is a better match for Sage than Maxima. Like Sage itself, the
Axiom library is built-up in a (more or less) rigorous manner from
more fundamental mathematical constructions. One of these complex
constructions is called 'Expression'. This is the domain in which most
symbolic calculations are done in Axiom. However as it will be in
Sage, it is necessary that Expression interact in a well-defined
manner with other Axiom domains of computation. I believe that if you
were to re-implement the Maxima symbolic functionality within Sage
(Python) then you would essentially be implementing something rather
similar to the Expression domain in Axiom.

In the longer term (pending resolution of the remaining open source
license issues), Aldor could provide much of the same set of
functionality of Axiom through it's BasicMath and other libraries
without the overhead of the Axiom interpreter interface. This would
completely eliminate the need for Lisp. I still have some hope that
this could happen in the near future. If Sage were to pursue this
path, I think the Aldor license issues might be resolved more quickly.

Regards,
Bill Page.

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to