Skip to content

fredokun/cl-jupyter

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 

cl-jupyter

An enhanced interactive Shell for Common Lisp (based on the Jupyter protocol)

 cl-jupyter: an enhanced interactive Common Lisp Shell
(Version 0.8 - Jupyter protocol v.5.0)
--> (C) 2014-2018 Frederic Peschanski (cf. LICENSE)
                                 __________       
                                /         /.      
     .-----------------.       /_________/ |      
    /                 / |      |         | |      
   /+================+\ |      | |====|  | |      
   ||cl-jupyter      || |      |         | |      
   ||                || |      | |====|  | |      
   ||* (fact 5)      || |      |         | |      
   ||120             || |      |   ___   | |      
   ||                || |      |  |166|  | |      
   ||                ||/@@@    |   ---   | |      
   \+================+/    @   |_________|./.     
                         @           ..  ....'    
     ..................@      __.'. '  ''         
    /oooooooooooooooo//      ///                  
   /................//      /_/                   
   ------------------                          

Important : cl-jupyter is entering maintenance, I do not plan further enhancement beyond bug fixes. A derivative of cl-jupyter with more features supported is available at: https://github.com/yitzchak/common-lisp-jupyter

Requirements

To try cl-jupyter you need :

  • a Common lisp implementation, for now

    • either SBCL 1.3.x or above (with native threads enabled)

    • or Clozure CL 1.10 or above (with native threads enabled) ...

    • CLASP supported on a separate 'widget' branch (drmeister version)

    • ECL is planned, for other implementations please fill an issue.

  • Quicklisp (cf. http://www.quicklisp.org)

  • Python 3.x (cf. http://www.python.org)

  • Jupyter 4.x (cf. http://www.jupyter.org)

Quick install

Please run the installation script :

python3 ./install-cl-jupyter.py

By default, cl-jupyter assumes SBCL as the default lisp implementation. Using CCL instead requires the following command line:

python3 ./install-cl-jupyter.py  --lisp=ccl

Note: cl-jupyter seems to work better with CCL on MacOS but on Linux everything's fine with SBCL and it is the most tested configuration. Alas, it seems cl-jupyter does not work on Windows (I cannot try myself). If using a VM I would recommend the Linux/SBCL configuration.

As an optional step, you can pre-install the quicklisp dependencies to avoid a veeeerrrry long first startup.

  • using SBCL

    sbcl --load ./cl-jupyter.lisp
    
  • using CCL

    ccl --load ./cl-jupyter.lisp
    

Running cl-jupyter

The following commnad starts the jupyter notebook environment.

    jupyter notebook

The file about-cl-jupyter.ipynb is an example of a Lisp-based notebook.

The file about-cl-jupyter.pdf is a printable PDF version of this notebook that can be generated by the Jupyter nbconvert tool.

Note: the jupyter console and qtconsole are not (well) supported.


... have fun !