This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/python/yap_kernel/YAP_KERNEL.md
Vitor Santos Costa 5c8f8457fa debugger
2018-09-10 17:06:13 +01:00

1.8 KiB

A Jupyter Kernel for YAP (#yap_kernel)

This Jupyter kernel supports interaction with YAP Prolog. The kernel patches IPython and PyKernel so that the user interacts with the Prolog interpreter. Most of the original kernels are unaffected by the changes.

You will need python3 and jupyter notebookto use this package, plus: - setuptools; - wheel - pip

The configuration script should recognize whether these Python packages are installed.

See tut.ipynb for details on how to use the system.

Both jupyter notebook and jupyter lab rely on the Javascript editor CodeMirror for editing tasks such as highlighting, inlining, and folding. Unfortunately, CodeMirror does not support the Prolog language. Starting from Wielemaker's excellent CodeMirror module for swish, YAP includes a codemirror for Prolog, designed to fit easily with any CodeMirror-based application.

  • Jupyter lab includes a complex dependency mechanism, that always tries to download from the Internet. We do a first build to ensure all packages are there, set the build offline, patch the different copies of codemirror, and build locally.

    CM=$HOME/github/CodeMirror
    PYLIB=$HOME/.local/lib/python3.6/site-packages
    PYSHARE=$HOME/.local/share
    cd $PYLIB/jupyterlab
    jupyter lab build
    cp commands.py commands.py.bk
    sed  's/.node., YARN_PATH,/\"node", YARN_PATH, "--offline",/g' commands.py
    cd $PYSHARE/jupyter/lab/staging/node_modules/codemirror/mode
    split -n l/5 meta.js
    cat xaa xab > meta.js
    echo '     {name: "Prolog", mime: "text\/x-prolog", mode: "prolog", ext: ["yap","pl", "ypp", "prolog"]}' >> meta.js
    cat xac xad xae >> meta.js
    cp -a $CM/mode/prolog prolog
    cd $PYLIB/jupyterlab
    jupyter lab build
    mv commands.py.bk commands.py