libera/#clasp - IRC Chatlog
Search
14:24:19
Bike
i don't want to rewrite all these mv-binds though. would it be ok to move the definition of mv-bind into clasp-builder, or would that cause problems? maybe i should copy it instead?
14:24:51
drmeister
That was how it was intended. init.lisp was to help us climb out of the Turing tarpit.
14:26:36
drmeister
We don't need it early - although there may have been some stuff moved in there that we need to keep early.
14:27:29
drmeister
I say we fill init.lisp with everything that we need but only what we need to get clasp-builder.lisp to compile and bootstrap.
14:28:35
drmeister
init.lisp is to configure things and to make pidgin Common Lisp slightly more tolerable.
14:29:13
yitzi
I wouldn't recommend worrying too much about what is in init.lisp in the immediate. There is a lot of stuff in clasp-builder that I will nuke eventually.
14:30:29
drmeister
We need it to run now. We are about to transition from the interpreter to the bytecode-compiler.
14:30:58
drmeister
The interpreter interpreted macros on the fly - so we could load things out of order.
14:31:21
yitzi
Understand. I just mean don't worry about making it "pretty." I am working on some major rewrites of clasp-builder.
14:31:45
Bike
moving definitions into init isn't actually hard or anything. it's easier than rewriting to use multiple-value-call
14:32:51
yitzi
If we want multiple files for init.lisp, I have a way to do that with koga and pass via the config header.
14:53:49
drmeister
I'm going to check all my macro changes against the normal build and the bytecode implicit compile build and make sure that I am doing no harm to the normal build and that the bytecode implicit build gets up to the point where the toplevel form handling shut me down last night.
14:54:23
drmeister
Then I will move my early macros into init.lisp (where they are currently loaded via (LOAD "export.lisp"))
14:55:05
Bike
we should be able to make the basic control macros (when ,do, multiple-value-bind, that kind of thing) available for use in clasp-builder, so that writing it won't be entirely terrible
14:55:55
drmeister
CASE probably won't be one of them. There is a CASE in clasp-builder.lisp - change that to COND.
14:56:25
drmeister
Also, HANDLER-CASE probably won't be one of them. There are two uses of HANDLER-CASE in clasp-builder.lisp. What do we want to do with those?
14:58:05
Bike
i rewrote the multiple-value-setq to not do that, and finagled do to avoid psetq when it can, and that was apparently enough
15:06:15
drmeister
If you've got it working then you could move the macros into init.lisp and I don't need to confuse things by pushing my solution to this.
15:09:09
drmeister
Ok, then I guess it makes sense for me to push this - because it's basically what I have except now I MOVED THE MACROS INTO INLINE.LISP
15:11:46
drmeister
I gotta figure out how to get jupyterhub working really quickly on AWS to run cando.
15:11:53
Bike
alright, so just push it and i'll work it out from there, like we talked about. apparently it won't even be that hard
15:14:46
drmeister
Oh - there is one other thing. I dealt with mv-setq by rewriting them using mv-bind
15:45:33
karlosz
probably to kkeep track of the current special binding scope it makes more sense to put it on the context structure
15:46:15
karlosz
something like context-special-count or something that the dynenv-info would save, then just compare a tthe exit point and generate cleanup code there
15:50:44
Bike
we might have to do something like that if we want to inline unwind-protect at some point
15:53:53
karlosz
hm, i suppose we also have to clean up not just intermediate speial bindings, but alos intermediate block/tagbodies
15:56:15
karlosz
because usually you don't have random crap like special bindings you are exiting from or intermediate non local exits
16:00:02
Bike
yeah... i might also have to reevaluate the alternate more complicated way i was imagining doing dynenv stuff, where you wouldn't have bytecode_vm calling itself recursively
16:55:08
Bike
it would work like unwinding tables in C++ work - for each bytecode function we associate a mapping from PCs to dynamic environment information
16:55:22
Bike
like if an instruction is inside a special-bind, there'd be information recorded on how to undo it
16:55:43
Bike
then we have a try/catch whatever block, and when we do a C++ unwind we consult the table to see what to do
16:57:20
drmeister
Does anyone know Ubuntu 22.04? I'm reintroducing myself to AWS and I want to run cando on it. Ubuntu 22.04 is my first choice. "snap" is the package manager?
16:59:49
drmeister
Yeah - it said emacs wasn't available via apt-get and I should use "snap" then when I tried that it said "emacs may perform arbitrary system changes yadda yadda yadda " so I need to use "snap --classic". Stupid tools.
17:00:55
drmeister
Debian - whenever I have the name "bookworm" someone asks for the number and when I have the number - someone asks for the name. amairight?
17:02:05
karlosz
Bike: i think its worth investigating if possible. im not really happy with the save-sp restore-sp thing now. it seems like a very inelegant optimization, especially since its per tagbody/block rather than per exit
17:02:54
karlosz
where we pop off multiple special binding frames wihtout just doing like UNBIND a bunch of times in the bytecode
17:06:26
karlosz
Bike: also another advantage of reifying the unwind and binding stacks is that that should also simplify invalidation of out-of-extent block/tagbody, i think. so we don't get consing anymore
17:35:02
drmeister
I offered to cover someone's 2.5 hour class on computational chemistry tomorrow evening. I did that a month ago when my calendar looked so wide open.
17:46:07
drmeister
I don't quite understand what the aclasp/bclasp/cclasp stages are now. Are they just turning on and off *features*?
17:50:13
Bike
i'm gonna see about tearing down the interpreter, which i don't think the staging actually needs to care about
17:50:46
Bike
evaluator.cc has a bunch of stuff we won't be deleting, so i shouldn't need to change the file list. maybe lambda list handler and environment.cc will get axed though.
17:56:01
Bike
deleting this will help me keep my record of deleting more code from clasp than i've added
18:00:48
drmeister
I got the jupyterhub server running and now I'm trying to install the cando kernels
18:01:47
drmeister
I installed cando from the instructions in the "ubuntu" account and jupyterhub installs a second user "jupyter-ubuntu".
18:02:05
drmeister
I open a shell within the jupyterlab environment and type `cando-user-install` and it just works.
18:10:10
drmeister
Geeze - I think it does - what the hell? It's building flexi-streams and at 470.7g - what the heck?
18:16:18
drmeister
It's at VIRT = 605.5g - I gotta believe that it's just AWS virtual machine goofyness
18:27:01
Bike
i am slightly worried that something is going wrong such that the bytecode compiler results in that 500 gb of consing
18:29:05
drmeister
I shut down the first cando-user-install and started it up again - now it is behaving itself.
18:30:04
Bike
let's see if anything explodes when all interpreted functions return nil unconditionally
19:02:07
Bike
it's tied into interpreter closures in ways i'm not sure of all the subtleties of, so i might just delete the interpreter proper but leave interpreter closures for the time being.
19:16:12
frgo_
Hi all - I have to pass on sad news: kpeock passed away on July 16th as a consequence of a short, severe illness.
19:26:11
yitzi
drmeister: https://zero-to-jupyterhub.readthedocs.io/en/stable/jupyterhub/customizing/user-environment.html#about-user-storage-and-adding-files-to-it
19:27:30
Bike
i can't entirely remove lambda list handlers, because the aclasp compiler uses them. i guess i really need to review what koga is doing and how to remove aclasp
19:45:45
yitzi
drmeister: I can see the extensions now. They need a rebuild... but that is progress.
19:53:45
yitzi
But we cant truely remove aclasp until we can run the static analyzer on the vclasp image.
20:00:10
yitzi
If you change the c++ layout we will need to run the analyzer. Since I havent been able to run the analyzer with a vclasp image we have to keep the old [abc]clasp images around.
20:01:30
yitzi
Therefore we can't remove the [abc]clasp targets from koga until we can host the analyzer on a vclasp image.
20:04:55
yitzi
There are also changes I have waiting for clasp/cando to get the combo to compile on vm.
20:06:18
Bike
also... are we still using the aclasp/bclasp compiler from clos? or is that disabled at the moment
20:09:17
Bike
without a native compiler, there's not much point compiling discriminating functions at all, since the bytecode isn't goingn to be any better than the interpreted discriminators
20:09:40
Bike
i have an idea for how to let us use clasp-cleavir to compile discriminating functions, but that's a whole other thing to do
20:20:30
Bike
i was also thinking about how to compile bytecoded functions. the macroexpand-all thing wouldn't be sufficient, i'm thinking, because we have some compiler macros that make sense in only one of the bytecompiler and cclasp
20:23:45
yitzi
drmeister: The "constructed" system from clasp-builder. The advantage is that you don't need to calculate-file-order or order the compile by load time. That stuff is all saved in each plist.
20:47:48
drmeister
Apparently, to configure jupyterhub you need to install helm and then write a config.yaml file and then use helm to toss the config.yaml fine into the jupyterhub aether to be picked up and used to configure itself?
20:51:19
karlosz
frgo: thank you for passing on the news. sad to hear especially since i had the pleasure of meeting him irl in march
20:52:30
Bike
huh. if i rewrite static-gfs to use coerce 'function instead of bclasp-compile, i get the same nonsensical type error
20:53:44
frgo
Yeah - Hi karlosz - I tried to get in contact for a few weeks and haven't heard back. So I decided to go active and tried to reach him via other channels and heard about his passing away.
20:57:37
drmeister
I was going to ask about funeral arrangements and then realized everything is in the past. Relationships on the internet are fragile.
21:14:12
drmeister
yitzi: There are separate instructions for configuring tljh (the littlest jupyterhub)