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:03
reportable6 joined
|
|||
japhb | jnthnwrthngtn++ # Awesome progress! :-) | 00:20 | |
01:03
evalable6 left,
linkable6 left
01:05
evalable6 joined
01:06
linkable6 joined
|
|||
MasterDuke | is there an easy way to negate the return value of a function call in the lego jit? | 01:23 | |
e.g., isfalse_s is just sugar for !istrue_s | 01:24 | ||
neither of which are currently jitted | |||
(they have templates, but not a lego jit implementation) | 01:25 | ||
05:11
quotable6 left,
benchable6 left,
linkable6 left,
releasable6 left,
reportable6 left,
bisectable6 left,
coverable6 left,
evalable6 left,
statisfiable6 left,
greppable6 left,
sourceable6 left,
committable6 left,
bloatable6 left,
shareable6 left,
tellable6 left,
nativecallable6 left,
squashable6 left,
unicodable6 left,
notable6 left,
shareable6 joined,
sourceable6 joined,
tellable6 joined
05:12
notable6 joined,
squashable6 joined,
statisfiable6 joined,
reportable6 joined,
coverable6 joined,
benchable6 joined,
greppable6 joined,
bloatable6 joined,
evalable6 joined
05:13
nativecallable6 joined,
releasable6 joined,
linkable6 joined
05:14
committable6 joined,
bisectable6 joined,
quotable6 joined,
unicodable6 joined
06:02
reportable6 left
06:03
reportable6 joined
|
|||
timo | depends on what course of correction i will take | 06:06 | |
like, do we want something that is aware of what SF's we're currently looking into and preventing only the inlining of calls into SFs we've already seen once? do we want a simple recursion depth counter for inlining optimization in general? do we want a count of how much we've been going into recursions so far and prevent anything further so that no pathological situations can occur when optimizing | 06:16 | ||
a single frame takes seconds because it keeps looking into other inlining options? | |||
07:03
evalable6 left,
linkable6 left
07:04
linkable6 joined,
evalable6 joined
07:10
patrickb joined
08:06
Kaiepi left
08:11
Kaiepi joined
08:51
patrickb left
|
|||
Nicholas | .tell brrt Good *, brrt. colabti.org/irclogger/irclogger_lo...1-07-14#l8 | 08:56 | |
tellable6 | Nicholas, I'll pass your message to brrt | ||
jnthnwrthngtn | moarning o/ | 09:37 | |
Nicholas | \o | 09:38 | |
09:51
evalable6 left,
linkable6 left
09:52
evalable6 joined
09:54
linkable6 joined
11:02
linkable6 left,
evalable6 left
11:05
linkable6 joined,
evalable6 joined
11:23
MasterDuke left
|
|||
jnthnwrthngtn | Good news: did a fix that makes all the NativeCall tests pass on new-disp. Bad news: ran spectests and 120 new failures. What on earth have I done... | 11:36 | |
Nicholas | failed to eat lunch? | 11:39 | |
jnthnwrthngtn | It ran while I was eating lunch | ||
First world problems, but my office machine, while being pretty darn fast, is not as fast my home dev box, which is newer and so faster. | 11:46 | ||
I could swap them around, but I have no idea whether the near future will see more home working or less. | 11:47 | ||
Nicholas | but if you did that, you'd have a better dev box *and* a better coffee machine in the same place? Wouldn't that upset some balance? | ||
Is the pub next to the office still allowed to be open? | |||
jnthnwrthngtn | Yes, but we're not allowed to go to it unless we do at least a self-test + sworn declaration. | 11:48 | |
(Because they tightened up the rules from "3 weeks after first dose" to "2 weeks after second dose" last week) | 11:49 | ||
Nicholas | but 2 weeks after second dose, and (for the current rules) you'd be allowed in with just the proof of second dose? | ||
(and we obviously don't know if the rules will change again by that time) | |||
jnthnwrthngtn | Yes | 11:50 | |
Well, and they don't actually require staff to check at restaurants, there's just spot checks by inspectors (which I've never seen happen, although I've not really been out enough to make it terribly likely anyway, even when I was in the 2-week window when I could) | 11:51 | ||
Ah, seems the regression was indeed an "I need lunch" kind of one. I forgot to account for capture parameters, which also allow all nameds. | 11:56 | ||
Also, the passing nativecall ones means I'm down to just one screen of `make test` failure output (8 tests, though 1 seems flappy) | 12:01 | ||
12:03
reportable6 left
12:04
reportable6 joined
|
|||
jnthnwrthngtn | Yay, 1202 fully passing spectests with that. | 12:09 | |
dogbert17 | how many left, 250? | 12:10 | |
jnthnwrthngtn | I don't know how many there currently are without checkout out `master` and running it and seeing the number at the end | ||
If anybody has it handy I'd be curious :) | |||
dogbert17 | on my system it's 1405 excluding the perl 5 tests which I don't run | 12:12 | |
jnthnwrthngtn | m: say 1405 - 1202 | 12:22 | |
camelia | 203 | ||
jnthnwrthngtn | m: say 1202 / 1405 | ||
camelia | 0.855516 | ||
jnthnwrthngtn | Not bad | ||
Pretty sure my next task should be to port the regex compiler | 12:25 | ||
(To emit dispatch ops) | |||
Since the next problem I'm looking at appears to be because I didn't do that | |||
I really wish people would just cope with long files rather than splitting stuff out in ways that mean I can't just open src/core.c/ClassName.pm6 and find what I'm looking for... | 12:27 | ||
dogbert17 | has someone managed to hide the regex compiler :) | 12:33 | |
jnthnwrthngtn | No, just INTERPOLATE :) | 12:34 | |
Though the regex compiler is also a tad harder to refactor than first hoped | |||
12:34
MasterDuke joined
|
|||
Nicholas | jnthnwrthngtn: Stage start : 0.002 | 12:40 | |
No MoarVM syscall with name 'capture-names-list' at gen/moar/BOOTSTRAP/v6c.nqp:5228 (/home/nick/Perl/rakudo/blib/Perl6/BOOTSTRAP/v6c.moarvm:has-named-args-mismatch) | |||
did you forget to push something? | |||
Geth | MoarVM/new-disp: 576d50b041 | (Jonathan Worthington)++ | 3 files Add capture-names-list syscall To get an array of the names of the named arguments being passed by the capture. |
12:41 | |
jnthnwrthngtn | Yes, sorry. | ||
MasterDuke | seems like negating a function call via the jit isn't possible. think i'd need to add a `flip` argument to MVM_coerce_istrue_s | 13:02 | |
jnthnwrthngtn | MasterDuke: That's getting deleted in new-disp, fwiw | 13:09 | |
Or at least, the boolification stuff in there is | |||
MasterDuke | ah, good to know. i'll put a pause on this until after new-disp lands | 13:10 | |
jnthnwrthngtn | smart stringify and friends also | 13:11 | |
MasterDuke | it'll be nice to have all that stuff simplified | 13:12 | |
jnthnwrthngtn | They all become dispatchers, pretty much | 13:13 | |
14:02
frost left
|
|||
[Coke] | (cope with long files) - was part of that performance, in which case we can recombine once you make everything faster? :) | 14:04 | |
Geth | MoarVM/hash-fsck-fixes: 736154d29d | (Nicholas Clark)++ | 3 files Fix some bugs in the various hash_fsck functions. They were still assuming that the metadata sentinel byte needed to be 1, and reporting an error if it was not. This should have been changed as part of commit b432533e90f175a7 in Oct 2020: The hash metadata sentinel byte can be 0 - it does not need to be 1. ... (5 more lines) |
14:08 | |
MoarVM: nwc10++ created pull request #1513: Fix some bugs in the various hash_fsck functions. |
14:09 | ||
MoarVM: 736154d29d | (Nicholas Clark)++ | 3 files Fix some bugs in the various hash_fsck functions. They were still assuming that the metadata sentinel byte needed to be 1, and reporting an error if it was not. This should have been changed as part of commit b432533e90f175a7 in Oct 2020: The hash metadata sentinel byte can be 0 - it does not need to be 1. ... (5 more lines) |
14:41 | ||
jnthnwrthngtn | Uff, this'll be "fun". I switched the regex compiler fully over to emitting disaptch ops instead of findmeth/invoke sequences. It compiles NQP well enough that it compiles the NQP parts of Rakudo (and such that all NQP tests pass). It then does a misparse somewhere in CORE.setting. | 14:54 | |
Error while compiling, type X::Comp::AdHoc | 14:55 | ||
payload: Missing required term after infix | |||
at line 2, near " :\n" | |||
...I don't believe that line number at all | |||
nine | I always treat line numbers with a healthy dose of scepticism ;) | 15:01 | |
jnthnwrthngtn | Yeah, it was waaay off. The correct one is 319 and it happens when we see an operator adverb :) | 15:05 | |
This...doesn't tell me a lot. | |||
dogbert17 | enocoffee perhaps | 15:08 | |
Nicholas | I was going to suggest tea | ||
dogbert17 | E_NO_T :) | 15:09 | |
jnthnwrthngtn | Of all things, why does it have to be operator adverbs...now I have to remember a bit about how those a parsed. | 15:13 | |
timo | oof, i remember something about putting multiple adverbs in a row, but i think that was justā¢ for lists of pairs | 15:14 | |
jnthnwrthngtn | Well, it's more the way they are parsed as infixes but then marked as fake and the expression parser is like "oh, let's pretend we never saw an infix!" | 15:19 | |
Of all the things I can guess might be wrong, they all feel too unlikely to really be the issue though | |||
timo | well, great that the nqp regex test suite doesn't catch this i guess?!? :( | 15:22 | |
though involving invocations it's possibly more about the methods that set stuff on cursors and such | |||
jnthnwrthngtn | Well, <fake_infix> is parsed and passes, but then fake is never seen in HLL EXPR | 15:25 | |
Oh. It's already gone missing right after we call that | 15:26 | ||
timo | something something pass by reference vs value vs container vs something or other | ||
jnthnwrthngtn | Well, current suspicion falls on flattening | 15:27 | |
timo | surely nothing related to return values | ||
jnthnwrthngtn | <O(|%item_assignment, :assoc<unary>, :fake<1>, :dba<adverb>)> | ||
timo | ah, well, i'm sure you're already on top of the issue | ||
jnthnwrthngtn | yup, if I change it to this: | 15:29 | |
<O(:prec<i=>, :assoc<right>, :assoc<unary>, :fake<1>, :dba<adverb>)> | |||
Then it shows up | |||
Wonder what I've managed to do... | 15:30 | ||
meh, that was silly... | 15:34 | ||
Goodness, this is super glacial now that we no longer get spesh of rules | 15:40 | ||
MasterDuke | how easy is it going to be to spesh these new dispatchers and such? | 15:44 | |
15:45
linkable6 left,
evalable6 left
|
|||
jnthnwrthngtn | Relatively straightforward for those that don't do resumption | 15:46 | |
Nicholas | I'm sure that this is the wrong order, but will your dev time improve if you speshed some of this before finishing the rest? | ||
jnthnwrthngtn | This is quite possible. :) | 15:47 | |
15:47
linkable6 joined
|
|||
Geth | MoarVM/new-disp: af3a8b1616 | (Jonathan Worthington)++ | src/core/args.c Fix a thinko in args flattening If we install a named arg's value into an earlier slot because it overrides a value we flattned in, we still need to progress through the list of original named arguments. |
15:48 | |
15:48
evalable6 joined
|
|||
jnthnwrthngtn | Hmm, that almost gets the tests that interpolate stuff into regexes working, except apparently it's not happy about multi-dispatch with natives somehow | 15:55 | |
nine | timo: have you done some work on the spesh recursive inline issue yet? | 16:05 | |
jnthnwrthngtn | And now it is. Down to 6 failing files in `make test` | 16:36 | |
[Coke] | wow | 16:44 | |
timo | sorry, i still haven't decided how to actually fix it | 16:50 | |
[Coke] | jnthnwrthngtn: is it worth switching "Raku" to 'Raku' in that last commit? | 17:15 | |
In normal code I wouldn't bother, but maybe it might make a difference in the compiler? | |||
jnthnwrthngtn | [Coke]: Hm, single quoted string instead of double quoted? The compiler produces ths same code if it's a literal value. | 17:19 | |
17:19
evalable6 left,
linkable6 left
|
|||
jnthnwrthngtn | It is a bit of a mix and match in there though. In my slight defence, that error code was copy-paste-tweak from BOOTSTRAP :) | 17:19 | |
Current spectest status: 1272 passing | 17:20 | ||
17:20
linkable6 joined
|
|||
jnthnwrthngtn | m: say "$(1272 - 1197) new today" | 17:20 | |
camelia | 75 new today | ||
jnthnwrthngtn | m: say 1272 / 1405 | 17:21 | |
camelia | 0.905338 | ||
17:21
evalable6 joined
|
|||
jnthnwrthngtn | I have energy left tonight after dinner, I'll wire up the coercion stuff so Int($blah) works | 17:21 | |
That should help unblock some of the further `make test` files, and no doubt more spectests | 17:22 | ||
*If I have energy... | |||
home & | 17:23 | ||
17:33
[Coke] left
17:39
[Coke] joined
18:02
reportable6 left,
Kaiepi left
18:03
Kaiepi joined
18:05
reportable6 joined
18:06
Kaiepi left,
Kaiepi joined
20:07
dogbert17 left
20:19
Kaiepi left,
Kaiepi joined
|
|||
jnthnwrthngtn | Did and pushed the coercion type support. Down to 5 failing tests in `make test` (one of them moved on to a different failure mode), and 1281 passing spectests. | 23:13 | |
23:47
linkable6 left,
evalable6 left,
linkable6 joined
23:50
evalable6 joined
|
|||
timo | looks shiny in any case :) | 23:56 |