freenode/#clasp - IRC Chatlog
Search
13:06:21
beach
So the top-level looks sort of like this: (lambda (env) (let ((f-cell (sicl-genv:find-function-cell 'f env))) ... (funcall (car f-cell) ...)))
13:10:25
makomo
so, (f ...) would be SICL code, while (funcall (load-time-value ...)) would be the generated CL code?
13:16:08
makomo
beach: i reread the above about tying a couple of times -- i think i understand now.
13:20:03
makomo
beach: so if you didn't have LOAD-TIME-VALUE, i guess it would still be doable, but you would have to come up how to encode such a thing within the fasl yourself?
13:22:28
scymtym_
context-dependent completion experiment: https://techfak.de/~jmoringe/eclector-context-completion.ogv
13:29:15
scymtym
the processing goes something like emacs+company <-> lsp-mode <-> cl lsp <-> more custom stuff <- concrete-syntax-tree <- eclector
13:36:51
scymtym
Bike: yeah. i made a dedicated emacs mode so i don't mess up lisp-mode and can work on the code in the same emacs
14:19:39
drmeister
Bike: I have CI and buildbot totally figured out. We can automate everything, building branches, running the static analyzer, building docker images.
14:20:26
drmeister
We can use our machines and AWS spot instances. I still need to demonstrate that I can spin up a spot instance to do a particular task and then shut it down again.
14:21:23
drmeister
But I currently have a free-tier AWS machine running the buildbot master and an AWS instance worker building clasp right now and my laptop is hooked in as a worker.
15:29:50
drmeister
Does anyone have feelings about how dangerous it is to open a port (buildbot) on a machine to the world with no ip filtering?
15:30:40
drmeister
Currently I limit access to the IP's of my machines here - but when I'm moving around on my phone that locks me out.
15:38:10
drmeister
"ssh port tunneling" brings back nightmares from my youth when I used to mess around with this sort of thing.
15:52:42
beach
Bike: I misread the Common Lisp HyperSpec before. CALL-METHOD does not supply the method with definition OF CALL-NEXT-METHOD and NEXT-METHOD-P. It supplies the the method with definitions FOR CALL-NEXT-METHOD and NEXT-METHOD-P, in other words it supplies the list of next methods.
15:57:35
beach
My two book projects are slowly rising in importance: 1. Common Lisp reference manual and 2. Common Lisp for language implementers.
16:00:39
Bike
i think MOP (and by extension, some of the more obscure parts of CLOS) could use a rehaul to make a really good standard
16:04:49
Bike
besides the no-next-method thing heisig mentioned earlier (which is what i was thinking of yesterday), the other thing is that mop make-method-lambda and clhs call-method contradict on how many arguments call-method can have; and furthermore make-method-lambda doesn't specify how further arguments to call-method are evaluated
16:08:04
beach
It would be good if you could re-read Pascal's paper, just to confirm what makomo and I think, i.e. that his code in the example expansion is wrong.
16:10:41
Bike
now that's odd because the "Required presence of generic function metaobjects" section is about a problem that arises when make-method-lambda is executed during macroexpansion.
16:13:28
beach
On page 6 he says that the MOP does not allow for method functions to be closures, which is not true.
16:15:15
beach
MAKE-METHOD-LAMBDA can't do anything with the GENERIC-FUNCTION argument, becaue it may not be the one that the method is aimed for.
16:16:07
beach
And the file compiler can store information about the generic-function-class and the method-class, so that it can be accessed by defmethod.
16:17:01
Bike
we actually did have that problem in clasp -inherited from ECL- but jackdaniel redid it to use prototypes.
16:18:05
jackdaniel
like three weeks of insane confusion, 2 minute fix, 5 minute contemplation and poof, never happened
16:19:01
Bike
in this case the file compiler doesn't store information about generic-function-class and method-class, though. could do that too. more compile time information about methods might be nice to have.
16:20:19
beach
Bike: Ah yes, you are still not using a SICL first-class global environment for the Cleavir-based compiler. I am definitely thinking of including that kind of information in those environments for use by SICL.
16:21:17
Bike
nothing standard actually needs that information, i don't think. except make-method-lambda i guess. I was thinking about it in connexion with the effective-method-functions-in-FASLs thing.
16:23:45
Bike
my current macro requires that the generic function actually exists, is actually fbound, actually has all the methods, etc
16:58:59
Bike
call-method is the longest part in this one. for clasp there's a bunch of other junk for the cases where we don't use effective method functions.
17:04:23
beach
I think I will need to attack that in the morning when my brain is still working. This evening, after having had my favorite coauthor over for lunch, and having debugged my method-combination code, I think I am unable to attack some code of this complexity.
17:05:52
beach
But the number of readers may be fairly limited, so perhaps it is better done as a community project with free access to source and PDF.
17:06:21
beach
I had imagined using CreateSpace for on-demand printing as I do for my other book projects.
17:14:30
beach
makomo: It looks like you are interested in SICL/Cleavir. If that is true, do you have something you would like to work on?
17:18:19
beach
OK, today I think I debugged some problems in my implementation of method combinations. Didier Verna told me the design is sane, so that's what I went with.
17:20:00
beach
Given the distractions today (favorite coauthor for lunch, gardener coming over) I think that's a pretty good day after all.
17:22:54
beach
Tomorrow, I'll rewrite COMPUTE-APPLICABLE-METHOD to do what it is supposed to and include code for the consequences of that rewrite.
18:23:33
makomo
beach: i don't have anything particular in mind currently but of what i heard so far -- bootstrapping, FCGEs and Cleavir sound very interesting
18:24:06
makomo
i don't think i'm up to speed with the whole design/goal of the project yet, i still have reading to do
18:26:36
makomo
also, both a new school year and my first job are about to start, so i won't take anything on currently
20:23:51
drmeister
How does Python work? If you have a backtrace and that includes a source file - if you nuke that source file - the code is supposed to stop working right? GARGH - apparently not.
23:29:11
drmeister
I'm finalizing the buildbot stuff. I can launch EC2 instances now to build things.
0:00:01
makomo
Bike: a quick question since you're half familiar with my DSL. one component can have multiple :process blocks. since the order of expanding macros is unspecified, i'm probably going to have a bad time if i'm relying on the fact that (<- ...) will do work at macroexpansion time and somehow associate the usage of <- with a specific process, right?
0:00:50
makomo
Bike: because, if there are multiple :processes, i'm not really going to know which <- is being expanded (and which process to associate it with)
0:01:30
makomo
well there goes the macroexpansion solution. can't run away from the code walker i suppose