freenode/#clasp - IRC Chatlog
Search
13:43:08
Shinmera
All you need for static vectors is: 1) a way to stop the GC from moving it and 2) a way to get a pointer to the array's contents
13:46:07
Shinmera
The implementation can offer to free them, but to be portable the user must invoke free-static-vector, yes.
15:23:16
shiho
drmeister: I tried ./waf build_dboehm and got the error. "Build failed --> missing file: '/Users/shiho/Development/cando/build/boehm/fasl/cando.fasb'"
15:47:24
beach
Oh, and the new boot code I am working on for SICL is much faster, because I make the host expand my macros and I also make the host do most computations on the types that I borrow from it, like lists, etc.
16:56:58
kpoeck
What about -(or sbcl allegro cmu clisp openmcl lispworks ecl abcl mocl genera clasp) (error "your implementation is not supported")
16:59:00
Shinmera
kpoeck: The reader error ain't so nice but that line won't work there because it's within a defpackage (so no forms)
17:58:59
drmeister
Shiho and Kevslinger - can you ping me when you are (1) in and (2) cando has finished building?
18:01:24
drmeister
Kevslinger: You may still need to use: /opt/clasp/bin/dev-fork-jupyter-lab ~/Development/clasp/build/boehm/iclasp-boehm
18:02:20
drmeister
Basically, the dev-fork-jupyter-lab script needs the path to the clasp executable you want to run
18:02:44
drmeister
We will simplify this as we go forward - right now we just need to get up and running with this new development environment.
18:04:07
drmeister
Shinmera: I actually need to use trivial-gray-streams right now. I need a gray stream that looks like a string-output-stream but that sends a message to jupyterlab with its contents whenever stream-finish-output is invoked.
18:05:26
drmeister
Kevslinger: Could you rename ~/Development/clasp to ~/Development/cando? We should standardize that if you have extensions/cando then you are building cando and not clasp.
18:24:42
kpoeck
Condition of type: SIMPLE-ERROR No applicable method for UPDATE-INSTANCE-FOR-REDEFINED-CLASS with arguments of types CLAUSE-INFO NULL NULL NULL.
18:26:56
shiho
drmeister: Build doesn't finish but looks stopped. It says "Condition of type: SYMPLE-PROGRAM-ERROR"
18:26:56
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/clos/change.lsp#L108
18:28:40
drmeister
kpoeck: What do you get with (clos:class-precedence-list (find-class 'clause-info))
18:30:08
drmeister
I'm wondering why that method didn't get invoked - the first argument is probably a standard-object - no?
18:31:15
kpoeck
returns (#<The STRUCTURE-CLASS ITERATE::CLAUSE-INFO> #<The STRUCTURE-CLASS STRUCTURE-OBJECT> #<The BUILT-IN-CLASS T>)
18:38:46
kpoeck
Iterate does not seem to have any clos-code, so I wonder why this is even been called
18:39:15
kpoeck
The backtrace from quicklisp is not too helpfull, will try to load iterate the old fashioned way
18:39:46
kpoeck
There are a couple of (eval-when () ) in the code, that probably executing while loading the fasl
18:54:25
drmeister
Kevslinger: I made a mistake with clasp-local-projects that might hit you - it hit shiho
18:56:03
drmeister
Yeah - it's not a big deal. You probably don't have the latest quicklisp packages because I used clasp's fetch-git-revision.sh script incorrectly.
19:08:34
drmeister
I'm not used to getting positive updates - I'm immediately suspicious when anyone says anything nice to me.
19:26:36
kpoeck
The problem in iterate is here: https://gitlab.common-lisp.net/iterate/iterate/blob/master/iterate.lisp#L2474
19:27:53
kpoeck
As far as I can see, there is no structure redefinition, just calling the constructor
19:32:37
kpoeck
(defmethod clos:update-instance-for-redefined-class ((instance structure-object) added-slots discarded-slots property-list &rest initargs))
19:33:31
kpoeck
I did (load "/Users/karstenpoeck/quicklisp/dists/quicklisp/software/iterate-20180228-git/package.lisp")
19:33:55
kpoeck
and (compile-file "/Users/karstenpoeck/quicklisp/dists/quicklisp/software/iterate-20180228-git/iterate.lisp" :print t)
19:35:52
Bike
Hm. Not sure what to do here. I mean conceptually, redefining a structure class is what's happening here, somehow. That's not okay to do. Maybe we want to support it to be nice, but what if the slot definitions change? It's not obvious how the instance should be updated.
19:37:53
drmeister
Yeeesh - I thought the standard said that structure classes absolutely can not be redefined.
19:39:21
drmeister
Clasp's structs are implemented with the same underlying machinery as classes - so we might be able to support this.
19:42:46
Bike
we have the same underlying representation, but that might change, and anyway the behavior for standard objects is based on how regular slot definitions work
19:43:35
Bike
(making sure we're on the same page: update-instance is called by the gf machinery when it finds a stamp mismatch)
20:02:46
Kevslinger
drmeister: When I try running the dev-fork jupyterlab, I get an error right after "Starting Jupyter-lab" that says "ModuleNotfoundError: No module named jupyter_client.session"
20:03:40
kpoeck
To the best of my knowledge -i'd put in print in the defstruct macro - every defstruct is just called once
20:03:40
Kevslinger
After doing some digging, I found that the jupyter_client package in /opt/clasp/lib/python3.7/site-packages contains a session.py file which is a symlink to a hardcoded /Users/meister/Development/widget-dev/ipywidgets7.1/jupyter_client/session.py
20:30:33
kpoeck
(ql:quickload "opticl") loads now (with the workaround for clos:update-instance-for-redefined-class)
20:57:46
drmeister
Kevslinger: Argh - sorry about that - I had the debug version from widget-dev symlinked in.
20:59:06
drmeister
Kevslinger: Is there a session.py.symlinked_away file in the jupyter_client directory?
20:59:50
Kevslinger
I copied the session.py from my local session.py into the /opt/clasp jupyter_client directory
21:00:17
drmeister
I think shiho's is working for an extremely specific reason - she's using my old laptop and there is a file on the other end of the link in my directory on that laptop.
21:01:17
drmeister
In order to get logging from the Python code I use a nasty trick of moving session.py to session.py.symlinked_away and then creating a symlink from session.py to the one in widget-dev
21:02:21
drmeister
I hastily gave you a tarball of my /opt/clasp directory instead of building a clean one - booh me.
21:03:06
drmeister
It's not a big problem though - just replace the session.py with the session.py.symlinked_away version.
21:04:26
drmeister
Copying the one from your directory probably will work - but it could also be a different version - so be careful.
21:06:39
drmeister
And there was no reason that you should - Martin told me that was what he uses when he want's to remind himself that a particular file is the original and that he symlinked to some other file.
21:07:21
drmeister
Perhaps session.py.this-is-the-original-and-the-other-file-is-a-symlink would be more clear.