freenode/#clasp - IRC Chatlog
Search
17:24:10
drmeister
Do these extensions include kernel Python code? If so - then we need to write Common Lisp code to mimic it.
17:28:28
yitzi
drmeister: Its rebuilding... you want to explain the "code completion" statement in the PR while we wait?
17:32:34
drmeister
But I'd like to be able to edit code in the input cells and hit tab and see function arguments and docstrings.
17:34:10
drmeister
Ok - what am I doing here? I've purposefully left out the function name. I just put a space there.
17:34:50
drmeister
Then I'd like it to come up with a list of suggestions to put in place right after the open parenthesis.
17:35:31
drmeister
It's like code completion in Python. foo.<point> <tab> -> you get all the methods that apply to 'foo'.
17:37:21
yitzi
And it's already implemented in common-lisp-jupyter. Maybe a little naive, but its there.
17:37:52
drmeister
Yes - the "code_inspect" message is how we would implement this. scymtym is one of our collaborators here who is developing a Common Lisp reader and something like a "language server protocol" that could provide support for this.
17:38:08
yitzi
https://github.com/yitzchak/common-lisp-jupyter/blob/262dab1e79bad0bd010f5d3d0429f8ae36ef0f7d/src/kernel.lisp#L141-L168
17:38:15
drmeister
It requires some fancy programming to predict what is reasonable. scymtym has thought about this a lot more deeply than I have.
17:38:59
drmeister
But I want Common Lisp to be as discoverable and have better programmer assistance tooling than we currently have. Both in slime and in jupyter notebooks.
17:39:39
yitzi
See link above. You just implement "inspect-code" method in your kernel subclass. I have a naive implement currently in common-lisp-jupyter.
17:39:45
drmeister
Yes. I'm familiar with the jupyter facilities that could support this and I'm excited by your generic function implementation of it.
17:41:11
drmeister
I don't implement what I described above - my idea above is still half-baked. I don't even know if it's reasonable.
17:42:18
drmeister
With single dispatch methods as you have in Python - it's easier to come up with a list of methods that apply to a variable. You still need to get an idea of the type of the variable to come up with good suggestions. It's probably really tricky. I think it's a worthwhile thing to try and get right though.
17:42:51
drmeister
That being said. The jupyter notebook input cells are a tedious programming environment for lots of code.
17:43:48
drmeister
Let's see what this docker looks like. nglview in jupyterlab is high priority and then hiding input cells.
17:46:36
yitzi
Look in the upper right hand corner next to the kernel name. Do you see a button with a crossed eye icon?
17:49:06
yitzi
Ok. must have been that extension. Thanks, I'll get back to on the docker image when it works.
18:14:01
drmeister
yitzi: The julia widget example that you have. How does the output work? What kind of widget are you using?
18:17:31
drmeister
yitzi: Within Cando we have code to generate svg files that display two-dimensional images of molecules.
18:19:33
yitzi
To display svg data use `jupyter:svg` defined here https://github.com/yitzchak/common-lisp-jupyter/blob/262dab1e79bad0bd010f5d3d0429f8ae36ef0f7d/src/results.lisp#L241
18:29:15
yitzi
::notify drmeister the julia example is probably in ~/quicklisp/local-projects/common-lisp-jupyter/examples
18:30:20
yitzi
::notify drmeister the julia example uses an "image" widget and sends a png to it. Truly hackish and slooooowwwwww!
19:37:41
drmeister
::notify yitzi - I use a service called irccloud.com - it keeps me logged in to IRC so I don't miss messages to me. I saw your comments about the image/svg widgets.
20:18:02
Colleen
drmeister: yitzi said 1 hour, 49 minutes ago: svg output is done with jupyter:svg and jupyter:svg-file
20:18:02
Colleen
drmeister: yitzi said 1 hour, 48 minutes ago: the julia example is probably in ~/quicklisp/local-projects/common-lisp-jupyter/examples
20:18:02
Colleen
drmeister: yitzi said 1 hour, 47 minutes ago: the julia example uses an "image" widget and sends a png to it. Truly hackish and slooooowwwwww!
20:18:22
drmeister
Removing the where tags or whatever was done with Derivable classes has broken Derivable classes.
22:42:38
Bike
is slot-value-using-class still isn't working for derivables... how far back did you rebuild? that was a change in hierarchy so pretty early
0:05:10
Bike
i mean, the problem here is that slot-value isn't working on derivable objects, and it needs to work on derivable objects
0:07:54
Bike
to explain what's going on, i separated out derivable objects from standard objects, and derivable classes from standard classes, so now derivable classes are no longer standard classes
0:08:32
Bike
we have a superclass std-class that's the superclass of both standard-class and funcallable-standard-class, so i can just make it a superclass of derivable-cxx-class as well and presto
0:09:04
drmeister
I think it's rhetorical for you. For me it's a real question. I've never seen this before.
0:15:01
drmeister
Are we using llvm-dwarfdump for debugging information? I thought we switched to llvm library calls.
0:19:31
drmeister
I'd like to use different values so we can track down why we have missing source info.
0:28:38
Bike
i pushed a fix for the slot-value thing. i actually tried it on a derivable object so i think it should work for you
0:59:35
Bike
yeah, when i made these changes i wanted to try running the static analyzer to make sure it wasn't broken, but you were too busy to tell me i think
1:03:25
Bike
well, i don't intend to make any more changes to this any time soon, but i'll keep that in mind