Search
Friday, 16th of October 2020, 17:43:21 UTC
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, 5:43:21 UTC