Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
00:02
reportable6 left
00:04
reportable6 joined
02:10
benchable6 left,
nativecallable6 left,
notable6 left,
coverable6 left,
reportable6 left,
quotable6 left,
unicodable6 left,
releasable6 left,
shareable6 left,
linkable6 left,
committable6 left,
squashable6 left,
bisectable6 left,
sourceable6 left,
statisfiable6 left,
evalable6 left,
greppable6 left,
tellable6 left,
bloatable6 left
02:11
sourceable6 joined,
benchable6 joined,
nativecallable6 joined
02:12
bloatable6 joined,
shareable6 joined,
linkable6 joined,
reportable6 joined,
squashable6 joined,
tellable6 joined,
bisectable6 joined
02:13
evalable6 joined,
unicodable6 joined,
releasable6 joined,
statisfiable6 joined,
coverable6 joined,
quotable6 joined,
greppable6 joined,
committable6 joined
02:14
notable6 joined
02:53
frost joined
02:58
MasterDuke left
03:58
committable6 left,
bloatable6 left,
bisectable6 left,
unicodable6 left,
quotable6 left,
evalable6 left,
notable6 left,
coverable6 left,
shareable6 left,
benchable6 left,
greppable6 left
03:59
committable6 joined,
shareable6 joined,
greppable6 joined,
quotable6 joined
04:00
benchable6 joined
04:01
bisectable6 joined,
unicodable6 joined,
coverable6 joined,
evalable6 joined,
notable6 joined,
bloatable6 joined
05:01
notable6 left,
evalable6 left,
bloatable6 left,
unicodable6 left,
quotable6 left,
nativecallable6 left,
linkable6 left,
greppable6 left,
coverable6 left,
releasable6 left,
tellable6 left,
committable6 left,
sourceable6 left,
shareable6 left,
reportable6 left,
statisfiable6 left,
bisectable6 left,
squashable6 left,
benchable6 left
05:02
releasable6 joined,
nativecallable6 joined,
reportable6 joined,
benchable6 joined,
unicodable6 joined,
notable6 joined,
sourceable6 joined
05:03
statisfiable6 joined,
evalable6 joined,
tellable6 joined,
quotable6 joined
05:04
greppable6 joined,
committable6 joined,
linkable6 joined,
bloatable6 joined,
coverable6 joined,
bisectable6 joined,
shareable6 joined,
squashable6 joined
05:14
Kaiepi left
05:33
Kaiepi joined
05:38
Kaiepi left
05:43
Kaiepi joined
05:51
Kaiepi left
05:53
Kaiepi joined
05:58
Kaiepi left
06:00
Kaiepi joined
06:02
reportable6 left
06:05
reportable6 joined
06:23
Kaiepi left,
Kaipi joined
06:30
Kaipi left,
Kaiepi joined
06:47
Kaiepi left
06:53
Kaiepi joined
07:44
patrickb joined
07:59
Kaiepi left
08:00
Kaiepi joined
08:39
Kaipi joined
08:40
Kaiepi left
|
|||
timo | there's nothing yet to dump disp program related data? | 09:49 | |
jnthnwrthngtn | timo: There's two `#define`s in src/disp/program.c; one dumps the outcome of recording the dispatch, the second dumps the dispatch program that was produced and installed. | 09:53 | |
timo | i wonder how i missed that | ||
(i only looked for "dump", and only in a few files, maybe that was it) | |||
jnthnwrthngtn | I sorta wish they each added the line/file of the callsite | 09:54 | |
timo | i wonder if i can get that in there without too much reading of the everything | 09:57 | |
so i'm just randomly browsing a spesh log of core setting compilation | |||
and i'm seeing ACCEPTS from QRegex with the type tuple QRegex (Conc), BOOTStr (Conc), the code is basically just "check params are ok, call `parse` method on object" | 09:58 | ||
and the parse method call is this here: [Annotation: Cached (bytecode offset 60)] | 09:59 | ||
dispatch_o r6(3), lits(lang-meth-call), callsite(0x1721d20, 8 arg, 4 pos, nonflattening, interned), r4(2), r5(1), r3(2), r2(2), r6(2), r7(1) | |||
but in the spesh log the stats don't point out any dispatcher outcomes at all, and the After version says "never dispatched" | |||
*looks at impl of lang-meth-call* | 10:00 | ||
jnthnwrthngtn | Yes, if you look at iirc MVM_frame_dispatch then you'll see it never sets a spesh correlation ID or records params etc. | 10:01 | |
That may be LHF-ish | |||
timo | oh my! that's a TLA that i like | ||
jnthnwrthngtn | Also spesh candidate selection | ||
The main thing to know is that the calling conventions are a bit different now | 10:02 | ||
And the adaptation needed will be there. Given MVM_frame_invoke is going away once we fully switch over to MVM_frame_dispatch, and most things are switched over anyway, you could just comment out the spesh bits in _invoke rather than finding a way to make it work with both at once | 10:03 | ||
Also if you're wondering how any of the dispatch works and didn't ready the 6guts posts, I think at least one of them is a decent introduction :) | 10:04 | ||
timo | github.com/MoarVM/MoarVM/blob/new-...2420-L2425 here the implementation of MVMDispOpcodeGuardNoResumptionTopmost falls through to MVMDispOpcodeGuardNoResumptionCaller falls through to MVMDispOpcodeUpdateResumeState, that smells unintentional, but if it is intentional, i'd put a comment for you | 10:05 | |
jnthnwrthngtn | I think that's accidental | 10:06 | |
timo | i'll cook up a commit quickly | ||
jnthnwrthngtn | Yeah, it is. | ||
...wonder how we get away with it o.O | 10:07 | ||
Please at least check for no change in NQP and Rakudo `make test` | |||
Just in case | |||
Next task for me is turning smart_intify (and later smart_numify) into dispatchers | 10:08 | ||
timo | that doesn't hang very low, does it? | ||
i guess it depends mostly on when you're going to do the next bit of new-disp work | |||
jnthnwrthngtn | Oh, I was going to do this right now :) | 10:09 | |
It will be one more `make test` failure eliminated. | |||
And maybe more spectests passing | |||
I probably should work on something else at some point today, but this is rather good fun :) | 10:10 | ||
Nicholas | the night is still young | 10:12 | |
jnthnwrthngtn | :) | ||
timo | t/nqp/097-hll.t ........................ 1/50 lang-meth-call cannot work out how to dispatch on type '(null)' | 10:15 | |
i presume no test failures of nqp tests are known | |||
i get this without my local changes as well, though | 10:18 | ||
Nicholas | I see that one fail. I assumed that it was a known failure | ||
timo | there's a few nok followed by that exception | 10:19 | |
OK, then that's probably fine. at least jn surely knows about it now if it's not | |||
jnthnwrthngtn | That one is a known failure | ||
There's a minor design decision that I'm procrastinating :) | |||
10:20
linkable6 left,
evalable6 left
|
|||
Nicholas | aha right, thanks. that answered my next question | 10:20 | |
timo | ah ISTR something about that | ||
jnthnwrthngtn | (Also fixing it almost certainly doesn't win me anything in Rakudo tests) | ||
10:20
linkable6 joined
10:22
evalable6 joined
|
|||
timo | ok rakudo's make test output is identical | 10:28 | |
jnthnwrthngtn | yay | ||
timo++ | |||
I see the libera move gave us opposite outcomes on nick length. | 10:29 | ||
Must be some conservation principle at work. | |||
10:29
Nicholas is now known as jnthn,
jnthn is now known as nicholas,
nicholas is now known as Nicholas
|
|||
Nicholas | OK, it's still registered, but it's not used. | 10:30 | |
(I forgot to chcek with whowas before pulling that little stunt) | |||
jnthnwrthngtn | Yeah, guess maybe some day if it's unused long enough I might get it back | ||
Nicholas | so I wonder when the next round of expiry will be | ||
they announced that they changed policy so that registered but unused nicks would expire rapidly. But I don't think that they made that policy retroactive. | 10:31 | ||
Geth | MoarVM/new-disp: 5e7743cdc3 | (Timo Paulssen)++ | src/disp/program.c Add unintentionally omitted break to cases |
||
MoarVM/new-disp: a284a6d5e2 | (Jonathan Worthington)++ | src/disp/syscall.c Add can-unbox-to-* syscalls This will save the various coercey dispatchers from doing a rather more expensive attempt to unbox followed by exception handling to see if it's possible. |
10:35 | ||
timo | the disp dump also doesn't output what the name of the dispatch target was that launched the recording? like froj must recording and program you can't tell that it was a boot-boolify? | 10:43 | |
jnthnwrthngtn | True | 10:44 | |
timo | i assume you'd also like that? | ||
especially boot-boolify can be sneaky i guess | 10:45 | ||
jnthnwrthngtn | Yeah, it can be useful info | 10:48 | |
Geth | MoarVM/new-disp: 560d22df24 | (Jonathan Worthington)++ | src/disp/syscall.c Further syscalls to aid porting smart_intify |
10:49 | |
jnthnwrthngtn | Yup, down to 4 files with failure in make test after porting smart-intify | 10:57 | |
I'll do smart-numify while I'm at it | 10:58 | ||
timo | mhh, the current_disp of the record will contain whatever we ended up calling, so would always be like boot-code or boot-constant etc, let's see where i need to look to find the first dispatcher in the chain instead | 11:06 | |
jnthnwrthngtn | Yeah, 'fraid so | 11:07 | |
Lunch, bbiab | |||
Geth | MoarVM/new-disp: 3b5dac2315 | (Timo Paulssen)++ | src/disp/program.c For dispatch recording and dispatch program dump, add filename and line number info |
11:13 | |
timo | here's the debug output addition | ||
sometimes looks unhelpful, for example at <unknown>:1 (<ephemeral file>:<mainline>) | 11:16 | ||
but what can you do | |||
how do we distinguish "unboxability" from "unboxability", i wonder. | 11:25 | ||
as in, what can be unboxed, and what can't be boxed | |||
i guess the latter would be inboxability | 11:26 | ||
and the combination would be inunboxability | |||
AFKabit | 11:27 | ||
11:32
dogbert17 joined
11:33
MasterDuke joined
|
|||
MasterDuke | timo: is the profiler going to need any changes to support new-disp? | 11:36 | |
jnthnwrthngtn | I suspect some of the missing line/file info is because we don't emit those annotations properly for rules | 11:52 | |
MasterDuke | is that something can be (easily) fixed? | 11:54 | |
jnthnwrthngtn | Yes | 11:55 | |
Geth | MoarVM/new-disp: 998bbc01ff | (Jonathan Worthington)++ | src/disp/syscall.c Further syscalls to aid porting smart_numify |
12:01 | |
jnthnwrthngtn | Either we are emitting a Stmts node around the regex node but not setting a match on it (and I think fixing that might do it), or alternatively we need to emit annotations on compilation of some regex nodes | 12:02 | |
12:02
reportable6 left
|
|||
MasterDuke | would this be a fix for master also? or just new-disp? | 12:03 | |
12:03
reportable6 joined
|
|||
jnthnwrthngtn | master | 12:04 | |
It's independent of new-disp | 12:05 | ||
I'd meant to look into it before because it also blocks comma being able to do code coverage of grammar rules | |||
MasterDuke | i'm up for small, self-contained projects while on holiday | 12:06 | |
have an idea of where in the (i assume rakudo) source to start looking? | 12:07 | ||
jnthnwrthngtn | Starting from the regex_def action method, if it's just a failure to stick a node on the QAST::Stmts | 12:08 | |
Otherwise look into compile_annotation and where it's used | 12:09 | ||
(In the NQP repo, under src/vm/moar/QAST/) | 12:10 | ||
MasterDuke | cool, thanks | ||
timo, jnthnwrthngtn: and what's the sample code you used that exposed the missing annotations? | 12:11 | ||
jnthnwrthngtn | Down to 3 failures in `make test` and up to 1296 fully passing spectest files | 12:19 | |
MasterDuke: If you have a grammar and run with MVM_COVERAGE_LOG=foo or some such, then `foo` will miss entries for the rule, iirc | 12:20 | ||
Ohh, it may not be regexes in general...not sure | 12:23 | ||
But | |||
./rakudo-m --ll-exception -e 'grammar G { token TOP { (<xxx>) } }; G.parse("x")' | |||
Oh, it is in fact | |||
In the output of that: | |||
from <unknown>:1 (<ephemeral file>:) | |||
from -e:1 (<ephemeral file>:TOP) | 12:24 | ||
Ah, no, it knows there TOP is. But the (...) (which compiles into its own block) gets no annotation | |||
dogbert17 (and others): I think new-disp is now at the point where it is becoming useful to look at remaining test (especially spectest) failures, and 1) report anything that is SEGV, 2) golf non-SEGV ones. For now, performance info is not useful (need to wire spesh back up). | 12:39 | ||
I've not actually seen a SEGV for a while :) | 12:40 | ||
.oO( cue report of 20 segfaults... ) |
12:41 | ||
haha...I just found one (heap profiler explodes) | 12:46 | ||
ah, a silly one too | 12:47 | ||
dogbert17 tries to build new-disp | 12:48 | ||
jnthnwrthngtn | Also, just fixed passing Proxy to `is rw` args in multiple dispatch | ||
1306 fullying passing spectest files | |||
I think that means less than 100 failing | |||
dogbert17 | noooo, I almost managed to build everything and then ... | 12:59 | |
+++ Generating perl6-valgrind-m | |||
+++ Creating installation directories | |||
+++ Removing old files | |||
MoarVM panic: Cannot handle new callsite format in MVM_args_copy_callsite | |||
make: *** [Makefile:1450: m-install-pre] Error 1 | |||
hmm, perhaps it just made it and then failed during some cleanup | 13:00 | ||
jnthnwrthngtn | ah, did you try to `make install`? | 13:01 | |
dogbert17 | yes | ||
jnthnwrthngtn | ah yes, that is indeed still busted | ||
`make test` and `make spectest` work without it though | |||
dogbert17 | cool, do I have to set any environment variables or is new disp used by default? | 13:02 | |
jnthnwrthngtn | By default now | 13:03 | |
dogbert17 | cool, three failed tests when running 'make test' but you mentioned that | 13:05 | |
13:05
MasterDuke left
13:06
MasterDuke joined
|
|||
jnthnwrthngtn | Yes, matches what I have here | 13:21 | |
Hopefully will soon be down to 2 | 13:22 | ||
Geth | MoarVM/new-disp: da6fd4a5a6 | (Jonathan Worthington)++ | 8 files Fix callstack marking in heap snapshot mode Which means that we no longer segfault when making a heap snapshot (or at least, not in the basic tested case). |
13:24 | |
jnthnwrthngtn | Yup, that makes it 2 for me | ||
MasterDuke | why do only QAST::Stmt and QAST::Stmts nodes have a `self.compile_annotation($node);` in them? | 13:32 | |
jnthnwrthngtn | Because statement level line numbers are considered accurate enough (and keep the size of the position info emitted down) | 13:39 | |
MasterDuke | k | 13:42 | |
dogbert17 | some tests complain about requiring mutable arguments even though they seem to have that? | 13:45 | |
Cannot resolve caller postfix:<-->(Int:D); the following candidates | |||
match the type but require mutable arguments: | |||
(Mu:D $a is rw) | |||
(Int:D $a is rw --> Int:D) | |||
jnthnwrthngtn | Are you at ffede8cc0be? That fixed a bunch of those | 13:46 | |
(It's the latest commit I pushed) | |||
dogbert17 | aha, lemme check | ||
13:47
patrickb left
|
|||
dogbert17 | I wasn't oops | 13:47 | |
13:48
patrickb joined
|
|||
jnthnwrthngtn | I've just done a local fix for S02-types/num.t too (need to make sure it doesn't regress anything) | 13:48 | |
Also some regex tests blow up with "Unexpected named argument 'result-int' passed" and I've got a probable fix for that locally too | 13:49 | ||
13:51
patrickb left
13:52
patrickb joined
|
|||
[Coke] wonders if it would help to get a blin run for new-dispatch before spectest hits 100% | 13:52 | ||
13:53
patrickb left
13:54
patrickb joined
|
|||
jnthnwrthngtn | Probably a bit early for that now, but yes, once we're within 10 tests or so, it could be an interesting indication | 13:54 | |
13:55
patrickb left
13:56
patrickb joined
13:57
patrickb left
13:58
patrickb joined
|
|||
dogbert17 | 'new-disp callwith nyi' I guess that one is trycky | 13:59 | |
*tricky | |||
Altai-man considers a good idea to do a run once spectest/stresstest are clean | 14:00 | ||
14:02
patrickb left,
patrickb joined
|
|||
jnthnwrthngtn | dogbert17: yes, that's both tricky and on my todo list :) | 14:02 | |
dogbert17 | ok, what about 'take without gather' then? | 14:03 | |
jnthnwrthngtn | That's quite unexpected | 14:05 | |
Worth golfing | 14:06 | ||
One thing worth noting: there may be spectests that are against fixes in master that we haven't got in new-disp yet (didn't rebase for a copule of weeks) | 14:07 | ||
Altai-man: Might be worth having it slightly ahead of that if the handful of failures are relatively esoteric, just to get a picture of how much ecosystem fallout there is and start to categorize it into "we have to fix it", "the module depends on impl details but we can bridge it", "the module depneds on impl details and we can't do anything about it", etc. | 14:09 | ||
Up to 1313 passing spectests for me | 14:10 | ||
dogbert17 | that's very close | 14:12 | |
14:16
patrickb left
14:17
frost left,
patrickb joined
|
|||
[Coke] | m: say 1313/1406 | 14:17 | |
camelia | 0.933855 | ||
14:17
MasterDuke77 joined
14:18
MasterDuke left
14:20
dogbert17 left,
dogbert11 joined
14:23
patrickb left,
patrickb joined
|
|||
dogbert11 | here's a MoarVM Panic: squish(Any, 'a', 'b', 'b', 'c', 'd', 'e', 'f', 'f', 'a') | 14:28 | |
[Coke] | is that on new-disp? | ||
jnthnwrthngtn | ah, that's the same one as with `make install` | 14:29 | |
dogbert11 | yes, seems to be | ||
[Coke]: yes it's on new-disp | 14:30 | ||
14:32
patrickb left,
patrickb joined
14:34
patrickb left,
patrickb joined
14:38
patrickb left
14:39
patrickb joined
14:43
patrickb left,
patrickb joined
14:49
patrickb left
14:50
patrickb joined
|
|||
dogbert11 | this also fails with new-disp: multi f((Int :$value, *%)) { "Int $value" }; multi f((Str :$value, *%)) { "Str $value" }; f("a" => "x") | 15:01 | |
jnthnwrthngtn | Ah, sub-signature unpacking. | 15:02 | |
Hm, maybe I have a guess about that | 15:03 | ||
15:10
patrickb left,
patrickb joined
15:13
patrickb left
|
|||
Geth | MoarVM/new-disp: 2c0acef072 | (Jonathan Worthington)++ | src/core/args.c Implement MVM_args_copy_callsite for new convs |
15:18 | |
jnthnwrthngtn | With that, `make install` works | 15:19 | |
dogbert11 | and you fixed at least one spectest file | 15:21 | |
jnthnwrthngtn | ah, nice | 15:23 | |
15:26
patrickb joined
|
|||
jnthnwrthngtn | Hm, where did the ~1405 number for spectests come from? Maybe it includes Inline::Perl5 tests? | 15:28 | |
for me it reports "Files=1349" at the end. I count 1321 `ok`s in the output. I see about 30 failed tests in the list of results. | |||
m: say 1321 / 1349 | 15:30 | ||
camelia | 0.979244 | ||
jnthnwrthngtn | At least 2 failing files are due to needing to rebase | ||
dogbert11 | perhaps 1405 was a stresstest, hmm | 15:31 | |
jnthnwrthngtn | Maybe | 15:32 | |
Anyway, seems to be it's looking rather better than we thought so far as spectest goes | 15:33 | ||
I was assuming I had | |||
~80 left to fix (without considering Inline::Perl5). There's actually more like ~30. | |||
MasterDuke77 | should a QAST::Regex ever not have a `:node($/)`? | 15:35 | |
jnthnwrthngtn | It's optional; the current compiler frontend is quite enthusiastic about placing them, but the RakuAST-based one will be far less eager | 15:36 | |
MasterDuke77 | hm | ||
dogbert11 | I have 35 test failures ATM | 15:43 | |
a bunch seems to be tests expecting a certain exception but gets AdHoc insted | 15:44 | ||
e.g. t/spec/S32-str/sprintf.t | 15:46 | ||
jnthnwrthngtn | Hm, that seems to be the same as one of the remaining `make test` issues | 15:49 | |
dogbert11 | here's a golf (I think): { sprintf "%d", 0^1 } | 15:52 | |
under new-disp I get: elems requires a concrete object (got a VMNull type object instead) | 15:53 | ||
it is expected to return: Directive %d not applicable for value of type Junction (one(0, 1)) | 15:54 | ||
nine | 192 | 15:58 | |
err...disregard that :) | 15:59 | ||
Nicholas | that's a bit short for a password | ||
even our combination bike locks have more digits than that :-) | 16:00 | ||
jnthnwrthngtn | dogbert11: ah, thanks for the golf, that's easier | 16:01 | |
dogbert11: I've just done a debugging tweak in NQP to try and help figure out what on earth is going on | |||
[Coke] | jnthnwrthngtn: my number just a wc -l off the file minus comments, I was super lazy! | 16:06 | |
jnthnwrthngtn | [Coke]: Ah, right, that includes tress tests then :) | 16:10 | |
dogbert11: Might have figured that one out just now | |||
dogbert11 | cool, a thinko? | 16:13 | |
jnthnwrthngtn | Probably | 16:14 | |
I fixed something in the NQP location that threw the exception and misunderstood what it was meant to be sending along | 16:15 | ||
dogbert11 | so it might be an easy fix then? | 16:16 | |
jnthnwrthngtn | Think I already have one | ||
Well, it fixes your golf. | |||
16:16
squashable6 left
|
|||
dogbert11 | there are half a dozen files where tests fail due to incorrect exceptions being returned | 16:17 | |
jnthnwrthngtn | And it fixes one more `make test`, and S32-str/sprintf.t | ||
dogbert11 | yay | ||
jnthnwrthngtn | Yeah, I suspect those all need different fixes, alas | ||
dogbert11 | darn | ||
16:18
squashable6 joined
|
|||
jnthnwrthngtn | Fix for the sprintf thing pushed (to the nqp repo) | 16:19 | |
dogbert11 | todays shocker is that I have a non alcoholic beer in my fridge | ||
jnthnwrthngtn | Tomorrow's shocker will be that I have lots of nice beer in the fridge but will have been told not to drink | 16:20 | |
dogbert11 | with 30 degrees C (86F) both inside and outside I'll sonn have to open it | 16:21 | |
jnthnwrthngtn | :) | ||
Ouch, that's way too hot | |||
dogbert11 | yeah, it's not supposed to be this hot. Guess I shouldn't complain though :) | 16:22 | |
jnthnwrthngtn | I fear that the things that are LHF-ish for me to fix are running out in the spectets now. Everything looks like something that needs non-trivial effort. :) | ||
I fear that the things that are LHF-ish for me to fix are running out in the spectets now. Everything looks like something that needs non-trivial effort. :) | 16:23 | ||
dogbert11 | noo | ||
16:24
MasterDuke77 left
|
|||
jnthnwrthngtn | Hmm, S05-modifier/counted-match.t is curious | 16:24 | |
dogbert11 is rebuilding nqp and rakudo | 16:26 | ||
jnthnwrthngtn | Hm, it vanishes upon golf. grr | ||
ah, it golfs to "aa" ~~ m:nth(1|2)/a/; "aa" ~~ m:nth(1^2)/a/; | 16:30 | ||
[Coke] has new beer that's a passionfruit mango randle. | 16:33 | ||
errrrrr a shandy. oops | 16:34 | ||
jnthnwrthngtn | Hm, I wonder if the assignment is accidentally auto-threading... | 16:39 | |
oh or hmm | |||
OK, now I'm at the "how did this ever work" point :) | 16:40 | ||
m: "aa" ~~ m:nth(1|2)/a/; "aa" ~~ m:nth(1^2)/a/; | 16:41 | ||
camelia | ( no output ) | ||
jnthnwrthngtn | m: dd $/; "aa" ~~ m:nth(1|2)/a/; dd $/; "aa" ~~ m:nth(1^2)/a/; dd $/; | ||
camelia | Nil $/ = Nil Junction $/ = any(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))) Junction $/ = one(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))) |
||
jnthnwrthngtn | We have this function: | 16:45 | |
method !match-nth(Mu \slash, \cursor, \move, \post, $nth, %opts) { | |||
Signature binding fails because $nth is Junction, not Any, and so triggers junction auto-threading | |||
And at least on new-disp, it sees that slash contains a Junction and so goes auto-threading over that, and then over $nth | 16:46 | ||
I'm guessing it doesn't on `master` | |||
m: dd $/; "aa" ~~ m:nth(1|2):i/a/; dd $/; "aa" ~~ m:nth(1^2):i/a/; dd $/; | 16:55 | ||
camelia | Nil $/ = Nil Junction $/ = any(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))) Junction $/ = one(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))) |
||
jnthnwrthngtn | m: dd $/; "aa" ~~ m:nth(1|2):x(1)/a/; dd $/; "aa" ~~ m:nth(1^2):x(1)/a/; dd $/; | 16:58 | |
camelia | Nil $/ = Nil List $/ = $(any(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))),) List $/ = $(one(Match.new(:orig("aa"), :from(0), :pos(1)), Match.new(:orig("aa"), :from(1), :pos(2))),) |
||
jnthnwrthngtn is confused | 17:00 | ||
Ah well, time to go home. | 17:01 | ||
dogbert11 | you've made a lot of progress today | 17:03 | |
jnthnwrthngtn | This week has been pretty productive for new-disp | 17:04 | |
dogbert11 | indeed | ||
japhb | jnthnwrthngtn++ # Heck yeah | ||
jnthnwrthngtn | Doubt I'll get to anything more tomorrow | 17:07 | |
home time & | |||
17:32
MasterDuke joined
17:50
patrickb left
17:56
patrickb joined
18:02
reportable6 left
18:04
reportable6 joined
18:11
MasterDuke left
|
|||
Geth | MoarVM: 97948c2a6f | (Ben Davies)++ | src/io/syncsocket.c Assign the result of a socket(2) call immediately This allows the socket to be closed should bind(2) or connect(2) fail. |
18:16 | |
MoarVM: d523b1fcf1 | (Patrick Böker)++ (committed using GitHub Web editor) | src/io/syncsocket.c Merge pull request #1505 from Kaiepi/set-syncsocket Assign the result of a socket(2) call immediately |
|||
18:16
MasterDuke joined
|
|||
dogbert11 | jnthnwrthngtn: the 'take without gather' problem in new-disp I was harping about before can be 'golfed' down to: | 18:17 | |
MVM_SPESH_BLOCKING=1 MVM_SPESH_NODELAY=1 ./rakudo-m -Ilib -MTest -e 'is do { [+] grep * %% 2, (1, 2, *+* ...^ * > 4_000_000) }, 4613732, "fibonacci"' | |||
patrickb | Any reason not to give Kaiepi a commit bit in moar? | 18:19 | |
^ping jnthnwrthngtn | |||
nine | jnthnwrthngtn: LOL I fixed t/spec/S02-names/is_cached.t on new-disp :) Feel free to throw away my commit if you have something else in mind. It's more an exercise in getting the lay of the land anyway ;) | 18:40 | |
18:58
linkable6 left,
linkable6 joined
19:27
squashable6 left,
squashable6 joined
19:34
Geth left
19:35
Geth joined
|
|||
jnthnwrthngtn | nine: Nice! Seems reasonable to me at first glance. | 20:11 | |
nine: One thing you may have an idea about is why ProxyReaderFactory's code gen ends up causing reproducible-builds.t to fail. | 20:13 | ||
I don't think the things its producing should end up anywhere in the build output, but apparently somehow they do. | 20:14 | ||
MasterDuke | ugh, testing my changes is much more annoying on the laptop, building rakudo takes twice as long as on the desktop | 20:20 | |
jnthnwrthngtn: i added a `$block[1].node($/)` here github.com/rakudo/rakudo/blob/mast....nqp#L4962 when $block[1] was gist.github.com/MasterDuke17/5fad8...dcb04c86e8 but that doesn't seem to have done anything | 20:32 | ||
was that at least a somewhat-close-to-correct thought? | 20:33 | ||
jnthnwrthngtn | MasterDuke: Is $block[1] a QAST::Stmts node? If so I'd expect that to help but... | 20:36 | |
MasterDuke | yep | ||
yep | 20:37 | ||
jnthnwrthngtn | MasterDuke: I think the problem is actually about positional captures | ||
github.com/Raku/nqp/blob/master/sr...s.nqp#L834 | 20:38 | ||
In there we never emit a QAST::Stmts around things afaict, and that is probably a problem | 20:39 | ||
MasterDuke | ah, i'll try some keyboard flailing around there | ||
i did look at all the cases of `rxtype<subcapture>` in rakudo's actions and they all had a `:node($/)` | 20:40 | ||
20:57
linkable6 left
20:59
linkable6 joined
21:06
patrickb left
22:20
committable6 left,
greppable6 left,
notable6 left,
releasable6 left,
bloatable6 left,
tellable6 left,
shareable6 left,
sourceable6 left,
benchable6 left,
evalable6 left,
statisfiable6 left,
coverable6 left,
bisectable6 left,
linkable6 left,
squashable6 left
22:21
quotable6 left,
unicodable6 left,
reportable6 left,
nativecallable6 left,
benchable6 joined,
coverable6 joined,
statisfiable6 joined,
bisectable6 joined
22:22
squashable6 joined,
greppable6 joined,
notable6 joined,
unicodable6 joined,
bloatable6 joined,
evalable6 joined
22:23
tellable6 joined,
sourceable6 joined,
releasable6 joined,
quotable6 joined,
linkable6 joined,
reportable6 joined,
nativecallable6 joined,
shareable6 joined
22:24
committable6 joined
23:46
linkable6 left,
evalable6 left
23:47
linkable6 joined
23:48
evalable6 joined
23:52
jgaz joined
|