freenode/#clasp - IRC Chatlog
Search
12:57:46
Colleen
Bike: drmeister said 9 hours, 31 minutes ago: We are getting a weird crash on the buildbot with the deploy script. Not anything else, not macOS, not my linux machine - just the buildbot. The error and some of the backtrace is here: https://gist.github.com/drmeister/8232a97e40b55f477bcbdef56fba3fa1
12:57:46
Colleen
Bike: karlosz said 7 hours, 56 minutes ago: you're not going to believe this, but a 3 line change causes an entire gigabyte less of consing while compiling ironclad and also shaves 20 seconds off the whole kaboodle from 2 mins 20 seconds to 2 mins. the change looks like this... https://paste.gnome.org/pryehpgkv
13:00:54
Bike
::notify karlosz yeah doesn't surprise me. i'm hoping we can replace the current inlining system by just inlining preprocessed bir directly. think that should fix this
15:36:20
drmeister
We can resize accordion tabs in the browser now - it makes a huge difference to the workflow.
16:05:20
Bike
being able to inline functions that use a &rest parameter but only for apply would be interesting... few steps away from doing that but i can see a path
19:55:57
Colleen
karlosz: Bike said 6 hours, 55 minutes ago: yeah doesn't surprise me. i'm hoping we can replace the current inlining system by just inlining preprocessed bir directly. think that should fix this
19:56:58
karlosz
Bike: if we can get the semantics right and get the bir cloning performance okay, then yeah we should be able to solve nested inline call issues
19:57:24
karlosz
right now though as a stopgap (?) i'm going to PR some changes to some of the very basic operators in inline.lisp
19:57:39
Bike
i mean right now we're just compiling the ast of the definition of car into bir a thousand times, right
19:58:14
karlosz
changing stuff like (not ...) and (null ...) to compiler macros instead of inline definitions helps a lot
20:01:01
karlosz
https://github.com/clasp-developers/clasp/pull/1095/commits/e1d901d0f9017e8ad13e3276fe4fd845a16a6b13
20:01:20
karlosz
for brain-dead easy stuff like identity and endp expanding directly into the source seems fine
20:01:41
karlosz
python does source transformations for not and null as well so if if optimizations can simplify them asap
20:03:18
karlosz
the fixing up process seems to negate the performance wins of actually not doing the whole cst-to-ast shebang again once the forms are simple enough, i think
20:04:07
karlosz
for stuff like car and cdr its of course a bit more complicated because ideally we'd want the compiler to compile them in contextually
20:23:40
karlosz
Bike: ocf.io/~karlos/ironclad-60s.svg if you ctrl-f for CLONE-AST you'll see that there's a lot of overhead to doing it
20:24:36
karlosz
i looked at the actual code and it seemed like it was building a dictionary for every instance and then reconstructing it piece by piece
20:24:59
karlosz
so over just splicing in cons cells like with compiler macros its definitely a tad slower
21:01:31
copec
drmeister should take this as a challenge https://twitter.com/BadCOVID19Takes/status/1333504356386287621?s=20
21:16:53
Bike
there are amoebas that are bigger than insects, so logically there should be some oxygen molecules that are bigger than viruses.
21:21:29
Bike
generalized local calls are working in my branch now. i also extended the closure-less calls to work with ignored &rest parameters
22:03:17
Bike
do you think keeping local-mv-calls in the same local-calls slot of the function could be a problem?
22:06:10
karlosz
its a local call, and i don't think the anything that grovels that slot really care at all
22:06:36
karlosz
its a backpointer used for making representation strategy decisions for environments for the time bein
22:54:41
drmeister
Guys - this just resurfaced - does anything you have done in the last little while explain this?
22:55:06
drmeister
No applicable method for RELATE with arguments (:CANDO NIL #<LOGICAL :op logLowPrecedenceAnd> #<ATOM-TEST >)
23:02:17
drmeister
Do you have any ideas as to what you could unwind so that we can maybe get back to something that works and then apply changes more carefully to figure out what is going on?
23:06:53
karlosz
drmeister: the buildbot started failing on your accidental push, but it seemed to work before in terms of clasp commits
23:08:17
karlosz
does (defun f (x) (labels ((g ())) (g 3) (g 4)))) still do the right thing in terms of warnings and errors?
23:11:14
Bike
https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/cleavir/translate.lisp#L571-L582
23:14:06
karlosz
it seems like we unconditionally convert it to a local call even if the call is invalid
23:15:37
karlosz
hm, i think not converting to a local call if the args are not right will save a lot of the logic though
23:18:22
karlosz
also the ignored rest detection is a little brittle; it relies on the leti being deleted.
23:33:37
Bike
as for invalid calls, the main thing is i wanted to separate the analysis of whether a lambda list allows inlining
23:35:32
Bike
plus i think maybe the client should be the one deciding how to deal with invalid calls mainly. someone's got to do the logic