Jupyter kernel for FriCAS based on Frederic Peschanski's cl-jupyter.
- FriCAS installed, SBCL version
- SBCL 1.2.x for Linux,
SBCL_HOME
set! - Jupyter 4.1+, check with
$jupyter --paths
- libzmq4 ** (see
Update
section at the end!)
Note: The version of SBCL must match that of which FriCAS has been compiled!
This is so because SBCL cannot load cores (AxiomSYS in this case) of different
versions. See FAQ
(further below) how to get type/version of FriCAS'
underlying Lisp. By the way there will be no harm to your existing FriCAS
installation ;)
Tested on Ubuntu 14+. If you are missing some of the items above then consult the
links given to get installation information. The install.sh
script
is going to check all the prerequisites (except libzmq4) and will exit
in
case of missing items, thereby issuing an error number [n]
which might help
to fix some issues (see below).
Either by git
:
git clone https://github.com/nilqed/fricas_jupyter.git
or by downloading a zip
file:
master.
Unpack with
unzip fricas_jupyter-master.zip
Change to the source directory and run the install script:
./install.sh
jupyter notebook
http://localhost:8888
New -> FriCAS
If you encounter an error (marked by a number in square brackets at a line begin) then check the corresponding hints below to resolve the issue.
[1] ... Check $PATH and/or try: $ fricas -list
[2] ... Check if AxiomSYS is in $AXIOM/bin
[3] ... Set SBCL_HOME. Check with $echo $SBCL_HOME
[4] ... Check $PATH and/or try: $ sbcl --version
[5] ... Retry ./install.sh
[6] ... Retry ./install.sh
[7] ... Check manually with: $jupyter --paths
[8] ... Try: $jupyter kernelspec install --user ./ifricas
[9] ... Check if $HOME/.local/bin exists and is writable.
If the hints above do not help then open an issue
here, please.
A log file generated by ./install.sh > install.log
might be useful.
There are only two files to be installed by install.sh
:
ifricas/kernel.json -> $HOME/.local/share/jupyter/kernels
iSPAD -> $HOME/.local/bin
Those can easily be removed by hand (no sudo required).
The first time the Lisp sources will be compiled by quickload
, usually to
a cache like:
$HOME/.cache/common-lisp/sbcl-1.2.14-linux-x64/...
and this may take some minutes.
Subsequent installs
(e.g. after upgrading Lisp files) will use the cache, what is
much faster.
However, afer a successful installation the source directory will not be used anymore and can be deleted (if wished so).
-
How to check which Common-Lisp flavour/version was used to build FriCAS?
fricas -nox )lisp (lisp-implementation-type) )lisp (lisp-implementation-version) )quit
-
How to interrupt/continue the kernel?
To interrupt use the notebook menu entry: Kernel/Interrupt To continue type '0' in the console (debugger continue)
-
How to use
*debugger-hook*
?Enter the following in two separate cells of the notebook: )lisp (defun debug-ignore (c h) (declare (ignore h)) (print c) (abort)) )lisp (setf *debugger-hook* #'debug-ignore) After that, any 'interrupt' only shows a message and ignores the debugger.
There is a docker image at https://hub.docker.com/r/nilqed/fricas_jupyter/
docker pull nilqed/fricas_jupyter
docker run -p 443:8888 -t -i nilqed/fricas_jupyter jupyter notebook --ip=*
go to http://localhost:443
New -> FriCAS
In preparation.
You will find chapter 1 of the book
as notebook (sections) at
nb/ug.
A lot of notebooks (converted from the .input files) can be found at https://github.com/nilqed/fricas_input
Have a look into the folder nb/fricas_input/nbconvert.ipynb/ where one can render a notebook by clicking.
17-JUN-2016 : pzmq -- https://github.com/orivej/pzmq.git
Change in the size of the message structure, zmq_msg_t, in 0MQ version 4.1.x to 64 bytes from a size of 32 bytes in version 4.0.x.
17-DEC-2016 : libzmq -- https://gist.github.com/cdjhlee/b8e3c927a01b0948b42d
Note: you will need libzmq.so.4 (the script at the link above might help).
libzmq5/xenial probably won't work because pzmq
only supports
ZeroMQ 4.0 bindings at the moment (see @link in the previous entry).
Development: iSPAD
Features: HTML export