which lisp to use when building Fricas, and how to control which one to use?

5 views
Skip to first unread message

Nasser M. Abbasi

unread,
Jun 24, 2023, 4:24:33 AM6/24/23
to FriCAS - computer algebra system
I did a regression report on V 1.3.8 on one Linux running 

fricas --version
FriCAS 1.3.8
based on sbcl 2.2.5

And new Linux running 

>fricas --version
FriCAS 1.3.8
based on ecl 21.2.1

And noticed a timeout on this one integration problem. I build both Fricas on each Linux from same source tar file.

setSimplifyDenomsFlag(true)
integrate(1/(-x^3+1)/(b*x^3+a)^(1/3),x)

On the first system it finished much faster, in less than 2 minutes, on the second it finished in 6 minutes.

Both Linux are different Virtual boxes, running with similar Linux OS (Manjaro) and similar and plenty amount of RAM. All virtual boxes are on windows 10.

So the only difference I could think of is the lisp used?

I repeated the above more than one time, and the timings remain very different.  The second one is almost three times slower.

So my question: is there a preferred lisp to use? and how to tell fricas when building it to use it? 

I am not now sure why one used one lisp and the other used different one. I do not remember now setting this when configuring the build from source for Fricas. 

May be Linux had default lisp and it picked it up during the build?

--Nasser


Grégory Vanuxem

unread,
Jun 24, 2023, 8:42:04 AM6/24/23
to fricas...@googlegroups.com
Hello Nasser,

Le sam. 24 juin 2023 à 10:24, 'Nasser M. Abbasi' via FriCAS - computer algebra system <fricas...@googlegroups.com> a écrit :
I did a regression report on V 1.3.8 on one Linux running 

fricas --version
FriCAS 1.3.8
based on sbcl 2.2.5

And new Linux running 

>fricas --version
FriCAS 1.3.8
based on ecl 21.2.1

And noticed a timeout on this one integration problem. I build both Fricas on each Linux from same source tar file.

setSimplifyDenomsFlag(true)
integrate(1/(-x^3+1)/(b*x^3+a)^(1/3),x)

On the first system it finished much faster, in less than 2 minutes, on the second it finished in 6 minutes.

Both Linux are different Virtual boxes, running with similar Linux OS (Manjaro) and similar and plenty amount of RAM. All virtual boxes are on windows 10.

So the only difference I could think of is the lisp used?

Yes, exactly. SBCL is the fastest LISP implementation for FriCAS.
The big advantage of using ECL is that it is highly portable. It runs on Android for example.
From what I have read somewhere, even Maxima was built on that OS/device for example.  
 

I repeated the above more than one time, and the timings remain very different.  The second one is almost three times slower.

So my question: is there a preferred lisp to use? and how to tell fricas when building it to use it? 

By default, if you do not pass the '--with-lisp=LISP_IMPL' parameter at configure time SBCL if available will be chosen.
So this is equivalent to: '--with-lisp=sbcl' at configure time.
 

I am not now sure why one used one lisp and the other used different one. I do not remember now setting this when configuring the build from source for Fricas. 

I guess ECL was chosen because SBCL was not available or was defective.
 

May be Linux had default lisp and it picked it up during the build?

Likely. But as a matter of fact, the preferred LISP implementation for FriCAS, actually, is SBCL.
It is the fastest and, usually, very reliable. For example, on my settings Clozure CL does not always pass all tests (make check).

There could be some situations where other implementations perform better but I doubt that. If this is the case that would be marginal.
__
Greg 
 

--Nasser


--
You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fricas-devel...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fricas-devel/82e8f0c7-b4f6-4bbc-9540-bb7154244975n%40googlegroups.com.

Grégory Vanuxem

unread,
Jun 24, 2023, 8:49:22 AM6/24/23
to fricas...@googlegroups.com


May be Linux had default lisp and it picked it up during the build?

Likely.

I do not mean Linux, but your settings. I don't think Linux distributions install a LISP implementation by default. It depends on what you have installed after the initial setup I think.

Nasser M. Abbasi

unread,
Jun 24, 2023, 12:02:47 PM6/24/23
to FriCAS - computer algebra system
Thanks   Greg.  I just rebuild Fricas with  --with-lisp=sbcl  and now it did same integral in less than 2 minutes. I'll make sure to add this option next time I build Fricas.

--Nasser

Reply all
Reply to author
Forward
0 new messages