Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestions for ECL ? #2

Closed
EmmanuelCharpentier opened this issue Oct 22, 2015 · 9 comments
Closed

Suggestions for ECL ? #2

EmmanuelCharpentier opened this issue Oct 22, 2015 · 9 comments

Comments

@EmmanuelCharpentier
Copy link

Dear Robert,

I am quite interested in using Maxima in a notebook format (much easier for my students, which are possibly interested, than a command-line interface or, worse for them, imaxima in emacs...).

My basic installation of Maxima is via the Debian package. Unfortunately, this distribution uses GCL, which has no threads...

I also use Sage (which, BTW, arisen my interest in Jupyter and led me to explore ihe IRKernel...). This aggregate uses a (slightly out of date) implementation of Maxima using ECL. ECL has native threads.

However, I haven't the slightest idea on how to create and save a Lisp image with ECL.

Have you any suggestion ?

@robert-dodier
Copy link
Owner

Hi Emmanuel, thanks for your interest in maxima-jupyter. About using ECL, I believe it is possible and worth trying.

About threads, maxima-jupyter uses the Lisp package bordeaux-threads and, on looking at the source code, I see that bordeaux-threads seems to work with ECL. I haven't actually tested that, however.

About dumping an image, ECL doesn't support that, so the recipe I gave won't work. However, it seems like it should work OK to execute ECL-Maxima and then load the necessary maxima-jupyter Lisp code into it.

I will try to load maxima-jupyter into ECL and see how that turns out. Ping me again in a few days if you don't hear from me.

best, Robert.

@EmmanuelCharpentier
Copy link
Author

Le samedi 24 octobre 2015 à 18:22 -0700, Robert Dodier a écrit :

Hi Emmanuel, thanks for your interest in maxima-jupyter. About using
ECL, I believe it is possible and worth trying.
About threads, maxima-jupyter uses the Lisp package bordeaux-threads
and, on looking at the source code, I see that bordeaux-threads seems
to work with ECL. I haven't actually tested that, however.
About dumping an image, ECL doesn't support that, so the recipe I
gave won't work. However, it seems like it should work OK to execute
ECL-Maxima and then load the necessary maxima-jupyter Lisp code into
it.
The ECL manual page on compilation seems to hint that a dynamically loa
dable library allows for an analogous solution.>

I will try to load maxima-jupyter into ECL and see how that turns out. Ping me again in a few days if you don't hear from me.

best, Robert.


Reply to this email directly or view it on GitHub.

@robert-dodier
Copy link
Owner

Emmanuel, thanks for suggesting it, but I find that ECL can't compile the source code unmodified, and if I make some trivial modifications to make it compile, it doesn't run. I may be able to resolve this eventually, but for now my advice is to use some other variety of Lisp. What platform are you running on? I might be able to compile a binary for you.

@EmmanuelCharpentier
Copy link
Author

Le jeudi 29 octobre 2015 à 13:27 -0700, Robert Dodier a écrit :

Emmanuel, thanks for suggesting it, but I find that ECL can't compile
the source code unmodified, and if I make some trivial modifications
to make it compile, it doesn't run. I may be able to resolve this
eventually, but for now my advice is to use some other variety of
Lisp. What platform are you running on? I might be able to compile a
binary for you.

My interest for an ECL-compatible version of Maxima-Jupyter derives
from the fact that, for "embedding" reasons,  Sage uses an ECL
implementation of Maxima.

Since a few months, Sage offers a Jupyter interface, which does not
offer (yet) a nice interface to Maxima (the old Sage-notebook did, but
is now in "maintainance mode"). This "new" interface offers some
serious advantages, especially when I want to incite students to
explore the possibilities of symbolic computation before rushing to
numerical solutions...

I have found that for some problems, Maxima offers some advantages on
Sage (even if Sage uses internally Maxima for a large part of its
symbolic computations). A nice interface to Maxima is therefore useful
even for Sage users. Maxima is also a tad easier to learn for beginning
students, and offers the some exposure to a lisp-like programming
environment...

Having the ability to add a Maxima kernel to the Jupyter notebook used
by Sage would be therefore useful. I thought that it could be possible
to use the Sage-embedded Maxima interpreter. That would avoid to have a
separate Maxima interpreter to maintain.

Another possibility would be to use the distribution's Maxima package.
Alas, Debian uses a GCL-compiled version of Maxima, and GCL doesn't
support native threads...

So I'll probably end up having three Maxima installations :
- Debian-packaged (useful to work with emacs via imaxima)
- Sage-embedded
- Self-compiled, for installation in Jupyter.

Any suggestions ?

@robert-dodier
Copy link
Owner

Well, if you are working with Linux, so am I, so maybe I can compile a package for you. I have Ubuntu 14.04 installed on x86 (32-bit). I have been creating rpm's which can be installed on Ubuntu via alien (I do that all the time, so I know it works). If you can install such a package, there is no need for the Debian GCL+Maxima package, so that reduces the complexity a little bit.

@robert-dodier
Copy link
Owner

Emmanuel, for what it's worth, I have compiled Maxima 5.37.3 with Clozure CL to produce rpms (RedHat package manager) which can be installed on Ubuntu/Debian via alien. The files are in the Sourceforge file manager for Maxima: https://sourceforge.net/projects/maxima/files/Maxima-Linux/5.37.3-Linux/

There are two files: maxima-exec-ccl-5.37.3-2.i386.rpm and maxima-5.37.3-2.i386.rpm which should be installed together via sudo alien -i. Hope this helps.

@Joehein
Copy link

Joehein commented Jan 22, 2016

@robert-dodier: After failing to install maxima-jupyter with maxima bulid with clisp from the repositories (I'm on linux: OpenSuse 13.2) I tried your maxima rpm with the hope that this will work better, but maxima fails to load with the error message: Heap image is too old for this kernel; Couldn't load lisp heap image from /usr/lib/maxima/5.37.3/binary-openmcl/maxima.image. ccl -V gives me:
Version 1.11-r16635 (LinuxX8632)

could you provide a newer Heap image or what kernel I should install?
Thank's a lot.

@robert-dodier
Copy link
Owner

@Joehein I've compiled Maxima 5.40.0 with that same version of CCL (Version 1.11-r16635 (LinuxX8632)). I've uploaded maxima-exec-ccl-5.40.0-1.i386.rpm to the project file manager: https://sourceforge.net/projects/maxima/files/Maxima-Linux/5.40.0-Linux/

You should be able to download that rpm plus maxima-5.40.0-1.i386.rpm and install those two to get a working Maxima system. You might need to supply "-l ccl" as a command line option to maxima to get it to select the CCL executable.

Sorry for the very late reply. Let me know if you're still interested, I'm spending some more time working out the issues with maxima-jupyter so I'd be interested to hear if it works for you.

@robert-dodier
Copy link
Owner

@Joehein I'm closing this old thread. If you're still interested, and I hope you are, please open a new thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants