07:50
lizmat left,
lizmat joined
09:05
finanalyst left
11:29
librasteve_ left
|
|||
nine | Building with RAKUDO_RAKUAST=1 still requires this patch: github.com/rakudo/rakudo/commit/61...4c51e4c956 | 12:34 | |
timo | should we put in a "hack" to make this patch work fine with the legacy grammar? | 17:48 | |
nine | Might avoid this unfortunate kind of confusion | 17:49 | |
17:50
librasteve_ joined
|
|||
lizmat | looks that Slang::Roman also got broken on RakuAST sometime in the past months :-( | 18:15 | |
looks like Slang::Roman needs a fix | 18:23 | ||
20:00
MasterDuke joined
|
|||
MasterDuke | i had forgot that patch was needed for main to build with `RAKUDO_RAKUAST=1`. but unfortunately now my multi-part-name-fix branch gets in an infinite loop when building rakudo... | 20:04 | |
huh, why is it reading /proc/self/stat in a loop? | 20:11 | ||
memory use is slowly increasing | 20:15 | ||
gist.github.com/MasterDuke17/f882a...9e947a3655 has a snipped of an MVM_dump_backtrace | 20:28 | ||
timo | that would be the supervisor thread | ||
MasterDuke | gist updated with the start of the backtrace | 20:30 | |
timo | well, "build-exception" sounds suspicious | 20:33 | |
it's trying to create an exception and first it has to compile something? | |||
maybe it's trying to use a exception and it first has to instantiate the role by compiling and running the role body and that's actually where the problem is occuring? | 20:34 | ||
MasterDuke | it looks like it trying to compile something first, then tries to build the exception | ||
timo | oh, what's the call to "gist" in the middle for? | 20:35 | |
`<unknown>:1 (/home/dan/Source/raku/rakudo/blib/Perl6/BOOTSTRAP/v6c.moarvm:)` i would assume is one of our dispatchers | |||
they all don't have names assigned to them | 20:36 | ||
MasterDuke | if i'm reading it correctly, it's trying to compile a constant, which causes BEGIN-time interpretation, then compilation of some new class created dynamically. that throws, and then somehow we're in an infinite loop? | 20:39 | |
timo | i'm not yet familiar with all the IMPL-* methods that exist in rakuast | 20:44 | |
but yeah, from "scoped" -> "constant" i assume it's a "my constant" somewhere | 20:45 | ||
and that constant looks to be located inside of a class block | |||
MasterDuke | i wonder if it's the new wrappers | 20:46 | |
timo | from the implementation of .assuming? | 20:47 | |
MasterDuke | eh, not sure | 20:51 | |
ugh, the merge doesn't simply revert | 21:07 | ||
i believe it's `src/core.c/Rakudo/Iterator.rakumod:1760:Ā Ā my constant EmptyIterator = Empty.new;` | 21:13 | ||
but the code near there hasn't been touched in 4 years | 21:15 | ||
but that's the last call to `type-declarator:sym<constant>` in src/Raku/Actions.nqp before infinite loop | 21:24 | ||
yeah, and then it's IMPL-INTERPRETing `new` | 21:30 | ||
i don't see anything in the recent commits that's obviously related | 21:46 | ||
huh. when we're looping, in IMPL-FIXUP-DYNAMICALLY-COMPILED-BLOCK right before trying to build-exception, `$visit.name` is `&infix:<==>`. the first time it's `&infix:<->` | 22:09 | ||
timo | have you been able to find why it's running into an exception, or what the exception is or is supposed to be? | ||
MasterDuke | wasn't expecting those | ||
well, it's this block github.com/rakudo/rakudo/blob/main...#L342-L349 | 22:10 | ||
timo | could just be it's got trouble looking up any infixes at all and the first code it's trying to interpret has a == as the first infix mentioned and in the process of creating the exception the first infix mentioned in the code it tries to interpret is - | ||
or maybe we're so early in the code that these infixes truly aren't defined yet? | 22:11 | ||
i'm not sure where Iterator.rakumod lives in the grand map of things | |||
line 19628 has proto sub infix:<==> but EmptyIterator = Empty.new seems to be line 7644 | 22:15 | ||
MasterDuke | well, github.com/rakudo/rakudo/blob/main...1748-L1761 doesn't obviously have either of those | ||
timo | that's why i think the problem happens when trying to build an exception while trying to run `Empty.new` there | 22:16 | |
MasterDuke | right | 22:17 | |
that's not the most complicated `new()` i've ever seen | 22:20 | ||
timo | if you run again with spesh inlining turned off via env var, the backtrace may look different and may have slightly more helpful information | 22:21 | |
i also wonder if this is just the first mention of a constructor being compile-time evaluated that's blowing up and if just making it runtime instead will just go to the next BEGIN or constant | 22:28 | ||
MasterDuke | backtrace looks the same | 22:29 | |
timo | hm, ok. maybe it doesn't work the way i thought | 22:32 | |
MasterDuke | changing it to `my \EmptyIterator = Empty.new;` gets farther | ||
but it still dies when it didn't before | 22:33 | ||
gist.github.com/MasterDuke17/d9e7f...1e73428c39 | 22:34 | ||
timo | trying to compile a signature of a method in a role and not finding a type name? | 22:37 | |
MasterDuke | doesn't like `Iterate-int:D` | ||
that's from `typo-typename` | 22:38 | ||
timo | welp, gotta run | 22:42 | |
MasterDuke | later... | 22:43 | |
oh. looks like github.com/rakudo/rakudo/blob/main...4965-L4992 is missing github.com/rakudo/rakudo/blob/main...3419-L3424 | 22:50 | ||
how did rakudo build without that before? | 23:02 | ||
hm, what has `.O()` become in rakuast? | 23:16 | ||
well, will have to look into this more later | 23:20 | ||
23:24
MasterDuke left
|