Ximin Luo:
> On Sun, 16 Oct 2016 17:19:36 -0400 Camm Maguire <c...@maguirefamily.org> 
> wrote:
>> Greetings!
>>
>> Why don't you send me a description of what you've done with current
>> maxima and sage so far and what errors you see, so I can take a look.
>>
>> Take care,
>>
> 
> Thanks for the reply Camm,
> 
> Another point is the cost of the patching exercise. Packaging Sage is already 
> huge effort and I don't believe that any of us on this team have the 
> necessary expertise to keep a ECL->GPL Sage patch updated for the lifetime of 
> this package.
> 
> OTOH, patching Maxima to output an ECL form of the library is relatively 
> simple, and it's only a few files. Furthermore, Sage upstream themselves are 
> directly maintaining this, so we don't have to.
> 
> The FASL library is quite important, you can think of Sage as a programming 
> environment much like Python, so "users" are expected to dynamically load 
> FASL libraries and manipulate Lisp objects directly via Sage (which already 
> includes an interface to ECL). As opposed to say, loading a shared-library 
> "plugin" into a program that then extends its functionality with a fixed and 
> very limited UI/CLI unrelated to the underlying programming language that the 
> plugin is written in.
> 
> I'll also note that /usr/bin/maxima has a --list-avail option so clearly 
> upstream expects some users to want the same version of maxima installed 
> built with multiple Lisp compilers. This is not typically the case for e.g. C 
> libraries; none of them offer run-time options that let you switch between 
> different versions built by different C compilers. I guess that this might be 
> because Lisp is much less standardised than C, but I don't really know the 
> ecosystem for sure.
> 
> Anyway, I'll leave you two to explore Sage-with-Maxima-GCL a bit more, but I 
> think it's important to also consider this as a long-term-cost-reduction 
> exercise and not merely a "is it possible" exercise.
> 

Hi Camm,

I've taken another look at the package and I don't believe we will be able to 
get Maxima-GCL working with Sage, now or in the long run. Could you please 
consider applying our patches again? The updated versions are here:

https://anonscm.debian.org/cgit/debian-science/packages/maxima-sage.git/commit/?id=eca9a4414a8b2b5678e24be03bda779fd8e65177

We'd be happy to co-maintain maxima to make sure our patches are kept 
up-to-date across version updates.

--

To give some background, Sage has two interfaces to Maxima:

a. 
https://doc.sagemath.org/html/en/reference/interfaces/sage/interfaces/maxima_lib.html
 via the ECL FASL library (newer, more preferred)
b. 
https://doc.sagemath.org/html/en/reference/interfaces/sage/interfaces/maxima.html
 via the maxima CLI (older)

Looking at src/maxima.system around line 62, this is an ECL-specific component 
and upstream do not support it for other compilers. I don't believe it's 
reasonable to expect Debian package maintainers to add this support ourselves. 
If upstream haven't done this, clearly it's not an easy thing to do - for the 
other components of maxima, they support other Lisp compilers including GCL 
just fine.

Furthermore, Sage upstream do a lot of testing with Maxima-ECL. In upstream 
ticket #18920 in trying to upgrade to version 5.38.1, they have run into 
several problems related to ECL: https://trac.sagemath.org/ticket/18920

If we use GCL we will very likely have to duplicate this detailed Lisp 
debugging work, every time a new version of Maxima is released. We got a lot of 
test failures last time this was tried about a year ago, and we don't have time 
to try again. We in the Debian Sage team don't have enough expertise or time 
resources to be able to do this in the long run.

OTOH, if we use Maxima-ECL, we can benefit from their work, and learn from 
their detailed reporting in their tickets instead of having to invent 
everything from scratch. Debian package maintainers are not supposed to deviate 
from upstream significantly, and using Maxima-GCL instead of Maxima-ECL would 
be a significant deviation.

I'd like to also point out that other packages have "different flavours" in 
Debian without issues - for example see libcurl[34]-{gnutls,nss,openssl}-dev. 
This is closer to the situation with Maxima - there are significant differences 
in Lisp compilers, that upstream's build system has lots of conditional 
switches like "#+ gcl" for different compilers etc, and explicitly allow for 
multiple flavours at run-time. It is not at all like the C compiler situation, 
where most FOSS projects assume GCC.

Thanks,

Ximin

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git

Reply via email to