Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:36 nebuchadnezzar left 00:38 nebuchadnezzar joined 00:44 squashable6 left 00:47 squashable6 joined, ChanServ sets mode: +v squashable6 01:15 lizmat left 01:16 lizmat joined, lucasb left 02:59 rba left 04:16 AlexDaniel left, AlexDaniel joined 05:19 rba joined 05:22 rba left 05:23 rba joined 05:35 rba left, rba joined 05:45 rba left, rba joined 05:58 [TuxCM] left 06:31 vrurg left, vrurg joined 06:46 lizmat left 07:03 lizmat joined 07:07 patrickb joined 07:11 lizmat left 07:51 lizmat joined 07:53 [TuxCM] joined
|Tux| Rakudo version 2019.03.1-667-gd4ceb97e0 - MoarVM version 2019.05-99-g729303de7
csv-ip5xs0.717 - 0.719
csv-ip5xs-205.114 - 5.256
csv-parser22.945 - 23.177
csv-test-xs-200.428 - 0.443
test7.050 - 7.053
test-t1.757 - 1.764
test-t --race0.781 - 0.859
test-t-2028.755 - 28.998
test-t-20 --race9.311 - 9.319
07:54
5.256
08:09 lizmat left 08:32 lizmat joined 10:26 |Tux| left 10:34 [TuxCM] left 10:35 [TuxCM] joined 11:11 [TuxCM] left 12:36 [TuxCM] joined 13:17 lucasb joined, vrurg left 13:18 vrurg joined 13:23 vrurg left
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/7b...619e4ef640 13:26
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2019....9-gda96d39
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/fc4aca08 13:29
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2019....1-gd780b76
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/b5bf7cd4 13:37
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2019....3-g0e5f3d0
13:39 vrurg joined
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/f1c80fdd 14:10
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2019....7-gddb5d2d
14:24 vrurg left 14:26 vrurg joined 14:47 vrurg_ joined 14:49 vrurg left, vrurg_ is now known as vrurg 15:42 patrickb left
MasterDuke AlexDaniel: you created release branches for NQP and Rakudo, right? so i could merge my PRs now? 15:47
AlexDaniel yes
Geth nqp/master: 14 commits pushed by (Daniel Green)++, MasterDuke17++
review: github.com/perl6/nqp/compare/4300d...e9672a7b84
15:55
16:11 lizmat left
MasterDuke is t/02-rakudo/reproducible-builds.t failing on windows (appveyor) a known thing? or a legitimate problem with my Rakudo PR? 16:46
16:46 lucasb left
MasterDuke it only failed for the `Environment: RAKUDO_OPTIONS=--backends=moar --gen-nqp=master --gen-moar=master` run 16:47
huh. and jvm build in travis can't find Test? the jvm build actually works locally 16:50
AlexDaniel MasterDuke: where do you even see that? 16:54
TreyHarris Any cases to think about where `cmp-ok($got, &[==], $expected)` should be preferred over `is($got, $expected)` except for allomorphs? I was about to write an `is-equal` but I realized that's so obvious there must be a reason it isn't included. (I know `ok` is even simpler but you don't get the automatic diagnostics; OTOH, `cmp-ok`'s saying `# expected: 5ā¤# matcher: 'infix:<==>'ā¤# got: 4` is kinda 17:20
crufty itself
s:s/cases to think/cases (of Numerics) to think/ 17:21
And that question was meant for #perl6, apologies, I'm on a narrower-than-usual screen and didn't notice the ambiguity in my channel sidebar 17:23
17:44 epony left
jnthn MasterDuke++ # NQP int changes 17:49
timotimo TreyHarris: there's is-deeply, which is often "the right thing" where you mean "is-equal" 18:02
18:08 patrickb joined
TimToady well, a bare eqv oughta do that 18:09
Geth rakudo/master: 5 commits pushed by (Daniel Green)++, MasterDuke17++ 18:23
18:23 epony joined
ugexe MasterDuke: it must be an issue with your PR 18:38
MasterDuke: its never shown up on a appveyor run before anyway. But I ran that test locally on windows using moar-blead and it passes 18:52
19:02 brrt joined
timotimo i'm glad to put MasterDuke int charge of that 19:03
19:13 lizmat joined 19:22 brrt left 19:28 brrt joined
timotimo TimToady: i've got to say i didn't actually take an actionable idea from our discussion on NFA enhancements for future pass-fate-down-iness 19:29
TimToady a way to access the current Match (or an attribute of it) from within the NFA would help 19:30
timotimo right. how did the suggestion sound to add to the nqp::nfarun op an argument that takes an array that info will be pushed into? 19:31
TimToady that would help, though long-term we might find it a bottleneck if the NFA wants to do other things with the current match 19:33
don't have anything particular in mind though
maybe caches of previous dispatches
timotimo that'd be something hung off of the NFA itself, or maybe thread-local (or maybe using atomic ops)? 19:34
TimToady mebbe 19:35
the way the NFA works, we probably need to push on multiple arrays depending on how 'sub' the sub-NFA is, unless we go with unique fates 19:36
but an array of arrays could be passed in as an array
timotimo right
that'll "just"ā„¢ make the addressing more interesting in the NFA "code"
TimToady I'm kinda leaning back toward unique fates to avoid rewriting sub-NFAs, in which case a single list works, but we might need to copy sub-NFAs in anyway until we figure out how to tail-ref things for the NFA 19:38
timotimo allow me to swing back towards a "simplest thing that can possibly already work" approach so i can actually do something :P 19:39
TimToady is fine with that 19:40
esp since the simplest thing that can possibly work is only barely within current branepower limits...
19:42 travis-ci joined
travis-ci Rakudo build errored. MasterDuke17 'Merge pull request #2670 from MasterDuke17/default_nqp_vars_and_ops_to_int_instead_of_num 19:42
travis-ci.org/rakudo/rakudo/builds/554367871 github.com/rakudo/rakudo/compare/d...9a3b9f3e1e
19:42 travis-ci left
timotimo will the values that get pushed onto that array be statically put into the nfa op stream? 19:43
hm, but there's also the question which array in the array-of-arrays gets its data 19:44
TimToady well, it's all relative to which proto is going to pay attention to which sub-array 19:45
or which range of fates, with the uniqueness approach
with the array-of-arrays approach, you merely have to check or guarantee that the right array goes to the right proto; with the unique approach, you probably need both high and low guards before the switch to avoid grief, unless something can be guaranteed monotonic, in which case one guard is probably sufficient 19:49
certainly one would want to avoid reallocating arrays of arrays on every token match somehow
TimToady doesn't recall whether STD used guards at all, or just asssumed everything would proceed in lockstep 19:51
to the first approximation, you only need one fate per level, if the NFA got it right 19:53
but there are places in the grammar these days that probably rely on backtracking to earlier fates when the "longer" one is vetoed 19:54
timotimo not sure what to guard against; position in the target string?
yeah, i bet
TimToady that is needed to avoid combinitoric explosion, yes 19:55
masak I realize I probably need to study these array-of-arrays and unique approaches. is STD still the state-of-the-art to read up on this?
TimToady if you start stacking fates for subsequent positions, you get 'kaboom'
masak: well, I dunno, it was always pretty grotty even when it worked :) 19:56
MasterDuke AlexDaniel: ci.appveyor.com/project/rakudo/rak...llLog=true is the job that had the reproducible test failure
TimToady given that it had to do backtracking by emulating lazy lists with closures of closures of closures.... 19:57
MasterDuke all: the default-int merges pass a spectest (using MoarVM, i didn't try with any other backends), but i'd be lying if i thought i got everything 100% perfect 20:00
committable6 MasterDuke, gist.github.com/0662ec44589049b408...a9d5299130
MasterDuke i'm hoping to be a little bit more available the next couple days than usual, so please ping me if anything comes up
TimToady oops, forgot to eat... & 20:01
20:05 travis-ci joined
travis-ci Rakudo build failed. MasterDuke17 'Merge pull request #2670 from MasterDuke17/default_nqp_vars_and_ops_to_int_instead_of_num 20:05
travis-ci.org/rakudo/rakudo/builds/554367871 github.com/rakudo/rakudo/compare/d...9a3b9f3e1e
20:05 travis-ci left 20:35 brrt left, brrt joined
MasterDuke was kind of able to repro the t/04-nativecall/20-concurrent.t error. got a `MoarVM panic: Internal error: zeroed target thread ID in work pass` while running it in a loop with a spectest running in the background 20:51
ooo, now a segfault 20:59
masak TimToady: I'm looking to implement a mutable parser, in order to support `is parsed` in 007 21:06
so the NFA needs to be recomputed at some points during the parse 21:07
jnthn masak: It's a similar case to introducing new operators, I guess? Or do you not handle that yet? 21:19
masak yes, new operators are a special case, since it only hits the optable parser 21:21
I want to bring that to the whole grammar, including statements, terms, and other categories 21:22
(and lexically scoped, of course, so the parser "pops" on parsing a block `}` and loses the added rules) 21:23
timotimo i find that optable
masak timotimo: I think a lot of people will :)
it's a little bit of a relief to go from having my brain melt from thinking about macro hygiene to having it melt from thinking about mutable parsers instead 21:24
jnthn masak: In Rakudo that's largely handled by mixing in to the grammar type 21:25
And making sure it uses the correct language for the next statement
MasterDuke jnthn: does the backtrace in github.com/rakudo/rakudo/issues/3030 look at all useful? i'm running now with the jit disabled, but it hasn't triggered yet 21:26
masak yeah, I think that's fine. but "mixing in" just an implementation detail here. right now when I'm playing around, my grammar is just a JSON-like data structure, and so "mixing in" would just mean adding more data into it (and be prepared to undo it later)
is*
'night, #perl6-dev 21:27
timotimo gnite masak
jnthn masak: Well, it's more that you just throw it away, since it's a `but` rather than a `does`. But of course, the immutability and easy impl strategy of "just copy everything" is why it's slow to add new operators in Rakudo :) 21:28
masak: Not really, though try with a small nursery and MVM_GC_DEBUG=1 to try and tease it out, and probably without JIT
timotimo i thought it's mostly the "optimize the NFA all over again" that is slow 21:29
jnthn Well, calculate the NFA all over again too :) 21:30
MasterDuke what size nursery do people use when debugging? 21:31
timotimo true, merging all the substates and such 21:32
jnthn MasterDuke: I typically go for somewhere in the 8KB-32KB region 21:36
MasterDuke neither error has shown up again so far with jit disabled and MVM_GC_DEBUG=1, now adding in the nursery change 21:39
oh. `MoarVM panic: Must not GC when in the specializer/JIT`
jnthn Oh!! 21:40
Now, bp that panic and you'll have a *really* useful stack trace
MasterDuke lost that gdb session, but running again 21:41
MasterDuke doesn't remember how to get perl6-gdb-m to run in a loop, but stop and drop into the gdb shell if there's a non-normal exit 21:43
MasterDuke is just hitting 'r' a lot right now
jnthn bp exit 21:49
commands
r
end
set pagination off
Or something like that; typed from memory
If "commands" doesn't work, try "actions" :)
MasterDuke jnthn++ that seems to be working 21:50
jnthn: got a much more involved backtrace now, issue just updated 21:57
Kaiepi should rakudo include information about all the env variables that can be passed to it when you do `perl6 --help`, not just NQP_HOME/PERL6_HOME/whatever? 22:00
timotimo like moar --help does?
Geth nqp: patzim++ created pull request #561:
Support build with spaces in path
Kaiepi yes timotimo
22:00 vrurg left
Geth rakudo: patzim++ created pull request #3031:
Spaces in path
22:08
patrickb .tell vrurg I'd be grateful for testing on MacOS of these branches. There are changes and respective PRs in MoarVM, nqp-configure, nqp and rakudo. All necessary to get it to work. 22:12
yoleaux patrickb: I'll pass your message to vrurg.
patrickb .tell vrurg No hurry, this is for post release anyways. 22:13
yoleaux patrickb: I'll pass your message to vrurg.
22:50 patrickb left
ugexe wonder if we should change our CI to build in a directory containing a space 23:12
so it doesn't regress later 23:13
23:42 brrt left