On 30/04/2026 16:36, 'Ralf Hemmecke' via FriCAS - computer algebra
system wrote:
> On 4/30/26 15:17, Waldek Hebisch wrote:
>> On Sun, Apr 26, 2026 at 08:00:50PM +0200, 'Ralf Hemmecke' via FriCAS -
>> computer algebra system wrote:
>>> Waldek has given a version that worked for him,
>>>
>>>
https://groups.google.com/g/fricas-devel/c/sTWdp7tkfcs/m/U9on7GVcAQAJ
>>>
>>> Kurt has already given me a version that we will probably use for the
>>> new
>>> jfricas version, but I did not yet have time to check it and upload
>>> it. I am
>>> also not sure whether Waldek still has something in his stack of patches
>>> that will break jfricas again.
>>
>> I would like to move administration of output format and related
>> streams to Spad code. That will affect jfricas. But I can not
>> say when this may happen. There are several things that have
>> higher priority. And I would like to have shorter release cycle,
>> so there is good chance that there will be a release before
>> such change.
In principle webspad.lisp could be replaced by a spad 'package' when the
'new code' is conclusive. It also had the advantage that no lisp file
had to be distributed (i.e. only fricaskernel.py).
>
> Understandable. However, that would mean that I would release a new
> jFriCAS that works (for compatibility reasons) with the old streams code
> of FriCAS 1.3.13 and the one that exists now. And in a few weeks there
> will be another change that make another change to jfricas necessary.
> That, of course, needlessly blows up the jFriCAS code with an
> intermediate version. So if possible, I would like to avoid code in
> jFriCAS that just works for FriCAS 1.3.14 (i.e. current trunk) and is
> obsolete in all other versions.
At the moment we use the lisp *feature* list to distinguish the code
change by using the trick
(handler-case (|mkOutputConsoleStream|)
(error (c)
(format t "mkOutputConsoleStream has been removed: ~a~%" c)
(pushnew ':new-webspad *features* :test #'eq) ))
so that #+-new-webspad allows backward compatibility. It would be of
course much simpler when some versioning existed like SVN revision or
so, or if Waldek could set a *feature* when making changes ...
In my version *features* is (:new-webspad is of course only a bad temp
choice):
Value = (:NEW-WEBSPAD :FRICAS_HAS_REMOVE_DIRECTORY :HUNCHENTOOT
:HUNCHENTOOT-NO-SSL :SPLIT-SEQUENCE
:SBCL-DEBUG-PRINT-VARIABLE-ALIST
:CL-FAD :BORDEAUX-THREADS :THREAD-SUPPORT
ALEXANDRIA::SEQUENCE-EMPTYP
:FLEXI-STREAMS :CHUNGA :CL-PPCRE :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3
:ASDF2 :ASDF :OS-UNIX :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE
:X86-64
:GENCGC :64-BIT :ANSI-CL :COMMON-LISP :ELF
:IEEE-FLOATING-POINT :LINUX
:LITTLE-ENDIAN :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION
:SB-LDB
:SB-PACKAGE-LOCKS :SB-THREAD :SB-UNICODE :SBCL :UNIX)
I think it's manageable one way or another. A pure spad solution would
certainly be most favourable.