On Sun, Oct 25, 2020 at 06:56:36PM -0400, Kostas Oikonomou wrote:
> [ko@wiley ~]$ sbcl
> This is SBCL 2.0.6, an implementation of ANSI Common Lisp.
> More information about SBCL is available at <
http://www.sbcl.org/>.
>
> SBCL is free software, provided as is, with absolutely no warranty.
> It is mostly in the public domain; some portions are provided under
> BSD-style licenses.?? See the CREDITS and COPYING files in the
> distribution for more information.
> ;;; loading #P"/usr/local/lib/sbcl/asdf/asdf.lisp"
> * (aref "??" 0)
> #\GREEK_SMALL_LETTER_ALPHA
> *
>
>
> And now FriCAS:
>
>
> ko@wiley ~]$ fricas
> Checking for foreign routines
> FRICAS="/usr/local/lib/fricas/target/amd64-portbld-freebsd12.1"
> spad-lib="/usr/local/lib/fricas/target/amd64-portbld-freebsd12.1/lib/libspad.so"
> foreign routines found
> openServer result 0
> ???????????????????????????????????????????? FriCAS Computer Algebra System
> ?????????????????????????????????????????????????????? Version: FriCAS 1.3.6
> ???????????????????????????????????? Timestamp: Sat Jul 11 03:10:07 UTC 2020
> -----------------------------------------------------------------------------
> ???? Issue )copyright to view copyright notices.
> ???? Issue )summary for a summary of useful system commands.
> ???? Issue )quit to leave FriCAS and return to shell.
> -----------------------------------------------------------------------------
>
>
> (1) ->)lisp (aref "??" 0))
> Value = #\LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX
> (1) ->
That is strong indication that sbcl used to build FriCAS either
does not support Unicode or rather have its Unicode support
turned off. To clarfy: FriCAS uses Lisp function 'read-line'
to read input line. If line begins with ')lisp ' to rest is
passed to Lisp. When you interact with sbcl the first step
is equivalent to 'read-line'. So both test are supposed to
produce the same result (and they do on my machine, using
slightly different sbcl version). Actually, the character
above has code 206 which is the first byte of UTF-8
encoding of smallcase alpha. So clearly Lisp used by
FriCAS for some reason is switched to work in single-byte
mode.
So the problem seem to be mostly with sbcl and Free BSD.
FriCAS just uses what is provided by sbcl. My understanding
is that actually FriCAS has no way to influence it, sbcl
chooses mode for standard input before FriCAS can do
anything and does not allow changing mode afterwords.
One can try to find out when exactly problem is introduced.
Your test indicate that sbcl alone works in Unicode mode.
As first step FriCAS creates copy of sbcl whith a
bunch of useful routines. If you keep build tree
(worth doing when testing) there should be
subdrectory like
build/x86_64-freebsd/bin/
(on my Linux machine it is build/x86_64-linux-gnu/bin/).
In this directory there are 3 exacutables. One, called
'lisp' is above mentioned copy of sbcl. You should be
able to run it like sbcl and it should behave almost
the same (the difference is where it looks for files,
but built-in thing should be exactly the same). The
secodn one is 'bootsys'. It has more routines loaded
but still should give the same results as sbcl.
If alredy 'lisp' can not handle Unicode (meaning
the sigle line test I gave), then this would
significantly narrow down the problem
P.S. Please keep info on the mailing list.
--
Waldek Hebisch