52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 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 notebook`to 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
 | |
|   ~~~~
 | |
| 
 | |
| 
 | |
| 
 |