Richard Fateman wrote:
>

Hello,

> ....
>> The paramount reason to attempt to go with ecl instead of gcl 
>> or clisp 
>> [only self-hosted, build from source, Open Source lisps need  
>> apply :)] 
> 
> As I've mentioned previously, this seems to me an arbitrary requirement;

Yes, I am well aware of your point of view on this. But we do things the 
Sage way because we think it is the better way. At the same time while 
we are interested in criticism we have come a long way, so in our view 
we are doing the right thing. But we do not impose our view on other 
people, so if you think that your way is the better one [and I know you 
do ;)] for you personally I am perfectly fine with that. I do not want 
to "convert" anybody to use Sage. The success of Sage does also not 
imply the failure of Maxima or any other open source CAS. There are more 
than enough users to go around for everybody.

> as far as I'm concerned, I do not see as an essential requirement that
> I only run software that I can build ON MY OWN MACHINE.  I only
> require that the software can be built on SOME machine, and I prefer
> that it be built by someone else, somewhere else.

Sure, but one of the reasons my job is funded is precisely because Sage 
is build from sources and *every* piece of Sage is source, i.e. no 
binary data. This is not a new requirement, i.e. it was part of 
William's approach to Sage when he started, and many people see this as 
a strength of Sage. Other people are perfectly fine with

    "yum install $FOO",  "apt-get whatever" or even "ebuild gcl"

We are not. Life is too short to argue about this.

> For example, I have not had a copy of GCL on any computer for many years,
> except one that was a Maxima-system-build.

Sure. But as I mentioned in

https://groups.google.com/group/sage-devel/browse_thread/thread/c65e235f83cb2cd1#

I struck out badly with gcl on multiple platforms - and I ported and/or 
got everything in Sage but clisp (5 million lines of code) to build on 
Solaris 9 and 10 and actually work reasonably well. gcl 2.6.8cvs as well 
as gcl 2.7cvs seems to be missing OSX Intel support as I type this. So, 
one of the most important Sage platforms [a majority of Sage developers 
run Apple hardware and OSX - at a Sage Day you will see more Apple 
notebooks than all other hardware combined] does not have gcl support 
[except via Rosetta] and I would think that if gcl was a viable and 
alive project that somebody would have fixed that over the last couple 
years that Apple switched to Intel.

>> was that it has compiler support for all our current and 
>> intended port 
>> targets. gcl has build issues galore [2.6.8cvs as well as 
>> 2.7cvs], clisp 
>> has problems with gcc 4.2 and 4.3, but that was discussed at great 
>> length in the recent "Project" thread in sage-devel.
>>
> .. snip..> 
>>>  RJF: The benchmark section says the competitive CLISP is 
>> astonishingly fast in
>>> comparison with ECL.
>> Those numbers seem to be outdated. The above linked presentation has 
>> some comparisons IIRC of more current code.
> 
> I looked at that.  It shows ECL slower than CLISP slower than GCL, but
> this is pretty much irrelevant because the test being timed is an ANSI CL
> standards compliance test, not a runtime efficiency test. Programs are
> run only enough to see they compute the right thing.

Sure, you certainly know more about that than I do. But if/once Maxima 
works on ecl we will run the test suite of Maxima and of that works it 
is good enough for me.

>  A couple months 
>> back Waldek 
>> Herbish started building FriCAS on top of ecl and over the 
>> course of a 
>> couple weeks ecl's performance for pretty printing code and 
>> some other 
>> things was improved dramatically.
> 
> A test to see how fast a program formats texts for printing does not
> seem that useful a test in the context of a computer algebra system. 
> Dunno about "some other things".

It was about the amount of garbage collection needed and also about the 
speed of closures. I am not expert there, but Juan can probably say 
something about the issues that were fixed.

>> So I am convinced that the ecl 
>> maintainer [Juan, whom I CCed] is more than interested in solving any 
>> performance issue and while he might be busy with his own work other 
>> people have supplied patches to solve performance problems. So IMHO 
>> there is much more life in the ecl community than the other 
>> open source 
>> lisp communities.
> 
> Seems dubious to me, but I can't say first hand if the GCL and SBCL
> communities

I didn't talk about sbcl, but clisp. sbcl seems to have more momentum 
behind it than gcl or clisp, but I cannot be sure since I never 
interacted with them.

> are down to less than   1-person equivalent or whatever Juan's time
> allocation is.

Well, look at the mailing list. There is more than one person working on 
this and those people are contributing patches. And even if it were less 
than one person working on ecl it doesn't matter to me too much because 
ecl already works with MSVC and also on Solaris. Neither gcl nor clisp 
does [clisp has some old Visual Studio 2003 project files, but AFAIK 
nobody has tested them in a long time and the current binary is based on 
MinGW], so ecl fits the bill for Sage and me.

>>  snip...
> 
>> last time I looked], so I consider a well working lisp on Windows 
>> important. 
> 
> Me too. That's probably why GCL is important. And why I would prefer
> that GCL be improved.  

Sure, it would be great if gcl's Windows support would be better and if 
it compiled with native compilers and/or in 64 bit mode. I stated so 
much and more of my reasoning in the thread I linked above, so I don't 
think it will be benefit anyone from me repeating those points here.

 > If ECL can be perfected without diverting resources
> from GCL or other Lisps for which Maxima already works well, that is
> fine. 

Michael Goffioul did some work in 2005 as Robert stated and he himself 
did some work in January of this year. And since it seems Robert's 
concern that the support of Maxima on Windows could be better he has 
spend some of his time working on the problem. I am hoping it will all 
work out and I doubt the Maxima project would be in trouble if he spends 
a couple weekends on this.

> <snip>
>> The garbage collector in the current ecl release is pluggable 
>> and boehm 
>> is used per default [IIRC it is the only choice at the moment]. I am 
>> fairly clueless about the different garbage collection libraries out 
>> there, so I do not know how boehm compares to what you would 
>> expect.
> 
> Well, I expect that it is unsatisfactory. You have a choice for long-running
> programs. You can spend 30% of your time in GC, increasing memory access
> time as you go, as your memory becomes fragmented, and have your system
> grind
> to a halt,  or you can have a real garbage collector.  ECL's experience
> may be different, but probably not.

Well, I can only restate some point I made earlier: The Sage project 
cares for a working common lisp build from source a whole lot more than 
one that doesn't work. ecl may have shortcomings, but it the Sage 
project wants to use it we do so at our own peril. Maxima in Sage is not 
used for a whole lot of computations that push the envelope because of 
the way we use it via pexpect. Maxima was added for two reasons:

a) to provide some symbolic capabilities
b) to enable Sage to be used as a tool to teach Calculus

Assuming ecl works those two requirements are perfectly satisfied by 
Maxima as is. But there are people in the Sage project who want to do 
symbolics much more quickly and who want to write code for example to do 
differential geometry. They don't want to implement that functionality 
in Maxima since they do prefer C/Python/Cython and are willing to do the 
work.

Sage does build on top of other systems since many times those systems 
do a better job at certain tasks than could be achieved with even a 
couple man years of work if you started from scratch. So we are 
certainly very thankful to all the systems we use since Sage is standing 
on the shoulders of giants. But any given system is only in the core of 
Sage as long as the functionality provided by it is better than the 
other systems and while we provide numerous ways to factor an integer 
for example the default is chosen to be the "best" we have. So 
functionality like operation on symbolics will move from Maxima to the 
core of Sage. Integration or limits will remain with Maxima as long as 
it does the best job. If somebody wrote code that did the job faster and 
was on average less buggy assuming the same capabilities we will switch 
that functionality per default to the new system. That is just the way 
Sage works.

>> It 
>> was my impression that boehm is widely used, but that 
>> obviously wouldn't 
>> make it a good implementation ;).
> 
> It wouldn't even make it a good idea (for Lisp). It might be ok for
> short-running
> C programs, or hacked-together demos.

Well, M2 runs on top of boehm and I wouldn't call the computation of 
Gröbnerbasis neither short running nor hacked together. And last time I 
checked M2 did a much better job at GB computations than Maxima. That 
doesn't prove the point, but there is much more in between "stupid, heap 
fragmenting malloc" and garbage collection. But I had that argument with 
you before, so no in getting into this again.

> Think about the widely-used OTHER software you might encounter.

Yes, widely used != quality software and we are all thinking of the same 
piece of software here ;)

> ECL may be just fine for what it is, an experiment in building a Lisp with a
> slightly
> different design. If it runs Maxima and SAGE uses it, that is your decision;
> I
> hope it does not divert Maxima resources though.

Yes, I hope that in the end there will be a benefit to Maxima from 
running on ecl and that the work to get this done will be quick and 
painless.

Cheers,

Michael

--~--~---------~--~----~------------~-------~--~----~
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