Search
Friday, 16th of October 2020, 15:43:32 UTC
15:44:47
Bike
or rather, the issue might just be that it's declared twice for some reason
15:59:44
Bike
karlosz: did you not build clasp after your cleavir changes? we still have things using map-instructions. i can rewrite them, but did you not?
16:14:15
karlosz
Bike: i thought i did.... mustve gotten the wrong cleavir commit
16:14:42
karlosz
sorry about that, could you rewrite them?
16:14:48
karlosz
should be straightforward i think
16:17:05
karlosz
ugh... i grepped for (map-instructions instead of (cleavir-bir:map-instructions
16:39:02
Bike
so does unwind not have the continuation as an input now?
16:52:13
karlosz
the catch slot represents the saved continuation
16:52:36
karlosz
i'm just identifying what used to be the cont var with the catch itself, since the cont var was ssa anyway
16:53:27
karlosz
this way we also justify having a backpointer to the catches bound in a function, which both pcv and eliminate-catches can use
16:53:41
karlosz
as well as any other operations which want to deal with nonlocal exits
16:54:56
karlosz
using the backpointer space that used to be reserved for contvars
17:51:33
Bike
if you compile (flet ((%f (a) a)) (%f)) you get a BUG: No variable for datum: #<ARGUMENT a>
17:52:12
Bike
something to do with local call analysis? if you have (%f 4) instead there's no problem
17:55:20
Bike
yeah, if i turn it off it goes away
17:56:58
Bike
and it passes the verifier. dammit
17:58:52
Bike
check-argument-list-compatible always returns t but it looks like stuff checks it
18:00:16
Bike
ok, that seems to be the issue.
18:02:33
karlosz
yeah it was supposed to warn :(
18:02:46
karlosz
and then switch to not converting
18:02:51
Bike
yeah that's the part that's busted.
18:02:56
Bike
it's a simple fix, i'll push in a minute
18:03:34
karlosz
ideally we'd generalize that to not just required args
18:03:46
karlosz
but lambda list parsing = ungood
18:04:21
karlosz
not even sure how to represent &rest
18:04:25
Bike
we might need the compiler to understand defaulting
18:04:57
karlosz
either having entry points explicitly represented in bir or otherwise
18:05:17
karlosz
&rest could totally be elided at compile time by taking the max of the supplied arguments of the local calls
18:05:27
karlosz
and defaulting unsupplied
19:07:57
Bike
bir clasp is passing internal tests, except for ones relating to elt
19:08:08
Bike
since i shut off the inline definition and the C++ definition doesn't do enough error checking
19:08:14
Bike
(so, not a flaw in the bir compiler)
19:13:42
Bike
i dummied out most of the definitions in inline.lisp, since they require primops and stuff that i was too lazy to implement immediately
19:13:49
Bike
lacking that definition, elt is the C++ definition
19:13:58
Bike
and the C++ definition doesn't do enough error checking.
19:14:18
Bike
probably the good way to handle elt would be bla bla type propagation rewrites bla bla
19:14:26
Bike
plus fixing the C++ definition i guess
21:08:49
drmeister
What needs fixing with the C++ definition of ELT?
21:09:04
drmeister
Is this something you need from me?
21:13:49
Bike
mm, well, i'm not sure how to organize it
21:13:57
Bike
the underlying problem is that rowMajorAref does not bounds checking
21:14:05
Bike
but i don't know if you want an unsafe version or what
21:25:40
drmeister
Is it better to have unsafe version of ELT and add the bounds checking after? Or a version of ELT for lists and another for vectors - both unsafe?
21:26:10
Bike
row-major-aref also does no bounds checking, which is also a problem
21:26:17
Bike
so it should probably be at that level, not elt
22:34:37
Bike
ansi tests tagged one thing being miscompiled. whoopsie
22:49:52
Bike
also a problem with IF where the numbers of values don't agree... eck...
2:56:49
beach
Good morning everyone!
Saturday, 17th of October 2020, 3:43:32 UTC