freenode/#clasp - IRC Chatlog
Search
13:08:33
Bike
drmeister: any luck with DEBUG_COMPILER? i tried building with it but didn't see any difference.
13:37:41
karlosz
on the topic of tail calls, is there any transformation that introduces them? i see there is a tailcall instruction, but i grepped through the sources and didnt see how they could be introduced
13:37:41
minion
karlosz, memo from beach: Lambda lifting is a good thing in general, but in your example, you modified the signature of a function that is returned, and that would not be correct.
13:52:39
beach
karlosz: I think the idea was that it would be introduced as a transformation once it has been detected at the HIR level that a call is indeed a tail call.
13:53:42
karlosz
beach: okay, that makes sense. was just looking to see if there was code to introduce them, since there are mir and lir specializers for them
13:54:48
beach
Plus, MIR needs to be highly specialized on implementation-specific stuff like how the implementation represents objects.
13:55:34
beach
In SICL, AREF will have an indirection that won't necessarily exist in other implementations (for simple arrays).
14:02:08
Bike
the problem i had with lowering aref to mir was that the size of entries would vary based on the element type. and sub-word access might be funny.
14:02:49
Bike
the otherthing was i was wondering if you could do an aref with unknown element type by computing the element size at runtime from the array element type, which would look pretty different in ir
14:53:33
karlosz
so ive gotten enough contification working to get this compiled to a tight loop https://paste.gnome.org/p7l7au4a0
16:27:53
drmeister
I just checked it - yes ---- Did you add it to your DEBUG_OPTIONS = [ "DEBUG_COMPILER" ]
16:33:36
drmeister
Check *features* - it should be there - if it is - then it needs a rebuild - the verify-module and verify-functions are featured out with #+debug-compiler - correct?
16:37:00
drmeister
Nevermind - it was my screwup - I hacked wscript to write to /tmp/build.lisp and then conflated it with build.log
16:38:13
Bike
oh, because the log files interleave. i see. yeah putting the pid in there might be good.
16:44:54
Bike
I mean even if there's multiple simultaneous builds it mostly just seems to slow it down a bit
16:45:34
drmeister
I need to get a docker image rebuilt and so I quickly need to test and debug some stuff.
16:46:13
drmeister
I was being blocked by this stupid file that I was generating in the wscript file.
16:49:53
drmeister
I'm turning off all llvm inlining and optimization to test the effect on the final stage of building cando - including compiling quicklisp packages.
16:51:19
drmeister
ASDF since version 3.1.x has radically changed its internal structure (according to Fare in the ASDF mailing list) and POIU is out of date.
17:31:10
drmeister
The verify-function verify-module functions don't report anything if there is no problem.
17:51:12
Bike
i had to add a core:function-lambda-list alias so slime would still work, but that's not a big thing
18:04:27
Bike
also, before, about rewinding valists- i think i spoke too soon. with required, optional, rest arguments it should be easy, but for key arguments we grab them in a loop, so we either unroll a little or do something like va_arg does
18:04:41
Bike
though i confess i don't understand why valists would be redone with all the register complication
18:10:03
Bike
so the last eval is (read-from-string (cdr entry)), in process-command-line-load-eval-sequence.
18:47:28
Bike
drmeister: we were reading the environment wrong. (entry . 0) just meant 0 was the index- the actual value was (:eval . (core:quit))
18:54:29
Bike
drmeister: if i'm looking at the argument valist, it's empty (whereas it should have one value, the string).
19:02:38
drmeister
And what I'd really want to do is get a break point on the entry to the function and see what is going on with the arguments.
19:03:17
Bike
read-from-string takes both &optional and &key, so i can imagine there being an issue- i didn't test that.
19:03:33
Bike
but i just replaced the keyword argument compilation, all the other stuff is the same.
19:04:52
Bike
anyway i don't know what the raw tagged pointer is. i have (core::T_sp)headFunc = (theObject = 0x###)
20:08:38
kpoeck
Did you see issue ##574: New Lisp dialect with no gc rely (use reference count and develop by C++) call for notice and help
20:09:51
Bike
drmeister: I essentially didn't think about the case of having both &optional and &key, so I have to do some rewriting.
20:12:43
kpoeck
well it links to another github projects, so perhaps its really a cry for help, but definitively not a clasp issue
20:14:47
Shinmera
ACTION remembered the time he wrote his own lambda-list destructurer https://github.com/Shirakumo/maiden/blob/master/agents/commands/parsing.lisp#L127-L242
20:15:32
Bike
which there is only one of, because cleavir doesn't handle it. except it does for macro lambda lists