yitzchak / common-lisp-jupyter

A Common Lisp kernel for Jupyter along with a library for building Jupyter kernels.
https://yitzchak.github.io/common-lisp-jupyter
MIT License
223 stars 28 forks source link

Some problems on Mac within M2 pro Chip #97

Open hauter opened 1 year ago

hauter commented 1 year ago

1. Create kernel.json with mistake

After (cl-jupyter:install), the kernel.json will be this:

cat ~/Library/Jupyter/kernels/common-lisp/kernel.json
{
  "argv": [
    "/opt/homebrew/Cellar/sbcl/2.3.4/libexec/bin/sbcl",
    "--eval",
    "(ql:quickload :common-lisp-jupyter)",
    "--eval",
    "(jupyter:run-kernel 'jupyter/common-lisp:kernel)",
    "{connection_file}"
  ],
  "display_name": "Common Lisp",
  "language": "common-lisp",
  "interrupt_mode": "message",
  "metadata": {
    "debugger": true
  }
}

but:

which sbcl
/opt/homebrew/bin/sbcl

ll /opt/homebrew/bin/sbcl
lrwxr-xr-x@ 1 xxx  admin    29B Jul 20 18:21 /opt/homebrew/bin/sbcl -> ../Cellar/sbcl/2.3.4/bin/sbcl

I have to change '/opt/homebrew/Cellar/sbcl/2.3.4/libexec/bin/sbcl' => '/opt/homebrew/bin/sbcl'

2. Auto completion doesn't work well with jupyter-lab (command: jupyter-lab):

cl

And works well with jupyter-notebook (command: jupyter notebook)

cl-ok

3. Some Env information:

uname -a
Darwin MP16-M2-32.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:46 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T6020 arm64

sbcl --version
SBCL 2.3.4

pip3 --version
pip 23.2.1 from /opt/homebrew/lib/python3.10/site-packages/pip (python 3.10)

pip3 list
Package                   Version
------------------------- ---------
aiofiles                  22.1.0
aiosqlite                 0.19.0
anyio                     3.7.1
appnope                   0.1.3
argon2-cffi               21.3.0
argon2-cffi-bindings      21.2.0
arrow                     1.2.3
asttokens                 2.2.1
async-lru                 2.0.3
attrs                     23.1.0
Babel                     2.12.1
backcall                  0.2.0
beautifulsoup4            4.12.2
bleach                    6.0.0
certifi                   2023.7.22
cffi                      1.15.1
charset-normalizer        3.2.0
comm                      0.1.3
curlify                   2.2.1
debugpy                   1.6.7
decorator                 5.1.1
defusedxml                0.7.1
exceptiongroup            1.1.2
executing                 1.2.0
fastjsonschema            2.18.0
fqdn                      1.5.1
idna                      3.4
ipykernel                 6.25.0
ipython                   8.14.0
ipython-genutils          0.2.0
isoduration               20.11.0
jedi                      0.18.2
Jinja2                    3.1.2
json5                     0.9.14
jsonpointer               2.4
jsonschema                4.18.4
jsonschema-specifications 2023.7.1
jupyter_client            8.3.0
jupyter-console           6.6.3
jupyter_core              5.3.1
jupyter-events            0.6.3
jupyter-lsp               2.2.0
jupyter_server            2.7.0
jupyter_server_fileid     0.9.0
jupyter_server_terminals  0.4.4
jupyter_server_ydoc       0.8.0
jupyter-ydoc              0.2.5
jupyterlab                4.0.3
jupyterlab-pygments       0.2.2
jupyterlab_server         2.24.0
MarkupSafe                2.1.3
matplotlib-inline         0.1.6
mistune                   3.0.1
nbclassic                 1.0.0
nbclient                  0.8.0
nbconvert                 7.7.3
nbformat                  5.9.1
nest-asyncio              1.5.6
notebook                  6.5.4
notebook_shim             0.2.3
overrides                 7.3.1
packaging                 23.1
pandocfilters             1.5.0
parso                     0.8.3
pexpect                   4.8.0
pickleshare               0.7.5
pip                       23.2.1
pip-autoremove            0.10.0
platformdirs              3.9.1
prometheus-client         0.17.1
prompt-toolkit            3.0.39
psutil                    5.9.5
ptyprocess                0.7.0
pure-eval                 0.2.2
pycparser                 2.21
pycryptodomex             3.18.0
Pygments                  2.15.1
pyrsistent                0.19.3
python-dateutil           2.8.2
python-json-logger        2.0.7
PyYAML                    6.0.1
pyzmq                     25.1.0
QtPy                      2.3.1
referencing               0.30.0
requests                  2.31.0
rfc3339-validator         0.1.4
rfc3986-validator         0.1.1
rpds-py                   0.9.2
Send2Trash                1.8.2
setuptools                67.6.1
six                       1.16.0
sniffio                   1.3.0
soupsieve                 2.4.1
stack-data                0.6.2
terminado                 0.17.1
tinycss2                  1.2.1
tomli                     2.0.1
tornado                   6.3.2
traitlets                 5.9.0
typing_extensions         4.7.1
uri-template              1.3.0
urllib3                   2.0.4
wcwidth                   0.2.6
webcolors                 1.13
webencodings              0.5.1
websocket-client          1.6.1
wheel                     0.40.0
widgetsnbextension        4.0.8
y-py                      0.6.0
ypy-websocket             0.8.4
yitzchak commented 1 year ago

There is no way around Issue 1. We try to guess the path, but if the implementation can't tell us the correct one then the user will need to specify via (clj:install :bin-path "/opt/homebrew/bin/sbcl")

I'll have to look into the second issue. There has likely been a change in the Jupyter protocol.