BenGoldberg m: dd 42.kv 01:21
camelia (0, 42).Seq?
[Coke] how can I examine the contents of "self!LINES-ITERATOR" in an IO::Handle object (I have the rakudo source open, so can cheat) 02:16
ah, it's doing the anon-class trick. 02:17
if I have a checkout of rakudo built with --gen-moar & --gen-nqp; how can I bisect getting rakudo's requested version (and no higher) without having to rm -rf nqp each bisect? 02:40
(if I leave the newer version in place, it satisfies the requirement)
(and cloning nqp is slow) 02:41
(me uses rakudobrew to do the builds, but git bisect in a rakudo checkout to keep track of the versions) 02:47
timotimo [Coke]: cd nqp; git checkout $(cat ../tools/build/NQP_REVISION); cd MoarVM; git checkout $(cat ../tools/build/MOAR_REVISION); perl Configure --prefix=...; make -j5 install; cd ../; perl Configure --prefix=...; make install; cd ..; perl Configure ...; make install 03:00
[Coke] timotimo: that's basically what r-brew is doing, aye? I'll just use rbrew. :) 03:08
(I'd use whateverable if any other OS was having this problem...)
timotimo i think rbrew makes full fresh clones (or uses git folder reference or whatever) 03:09
ugexe rakudobrew triple [rakudo-ver [nqp-ver [moar-ver]]] 04:34
seems like you'd probably want to use that (which i'm not familiar with)
moritz how do I code-gen something that runs when the regex engine backtracks over it? 08:40
(I want to implement <commit>)
are the backtrack modes explained somewhere? 10:15
I' see there are modes 'r', 'f' and 'g' at least
what do they do?
ratchet, frugal, greedy? 10:16
dogbert17 currently we have test failures in the following files: t/spec/S03-junctions/autothreading.t, t/spec/S05-modifier/ignoremark.t, t/spec/S05-modifier/samemark.t, t/spec/S32-io/IO-Socket-Async.t, t/spec/S32-io/IO-Socket-INET.t 12:00
t/spec/S32-io/IO-Socket-Async.t actually SEGV's 12:03
MasterDuke i think i've been seeing all the others, but not that one 12:04
even when run by itself?
dogbert17 i just wiped my rakudo install so I should have fresh stuff, hold on a sec and I'll whip up a gist 12:06
MasterDuke btw, still using a 32bit vm?
AlexDaniel .seen samcv 12:07
yoleaux I saw samcv 10 Aug 2017 22:33Z in #moarvm: <samcv> wonder if we want to make a script to put them all in order of their numbers? though the compilier may optimize it since it sees goto statements after each
dogbert17 yup, 32 bit :) gist here: gist.github.com/dogbert17/7e7baa94...a20bc35b0e
dogbert17 pleasu don't say I forgot to turn off --full-cleanup 12:08
dogbert17 nah, this is gdb 12:09
MasterDuke if you've got a couple spare minutes, how would you feel about testing my gist mentioned in github.com/MoarVM/MoarVM/pull/631 pre- and post- its patch? 12:12
dogbert17 sure
MasterDuke do you have a time that reports maxresidentk? 12:13
e.g., /usr/bin/time
dogbert17 yes
MasterDuke cool
in case it isn't obvious, at the top it expects a path to a checked out rakudo repo 12:15
dogbert17 dou you want me to replace the ^20 with ^5 ? 12:18
MasterDuke no, my later testing found not much difference with ^5, but a lot with ^20 12:20
dogbert17 ok, will try ^20 12:21
MasterDuke thanks. afk for probably a while, but will backlog
dogbert17 29.04user 15.99system 0:29.07elapsed 154%CPU (0avgtext+0avgdata 370916maxresident)k (without patch) 12:22
.seen timotimo 12:25
yoleaux I saw timotimo 12:24Z in #moarvm: <timotimo> and we only spesh call targets if they are being called from an interned callsite
timotimo yo
dogbert17 hi timotimo, seen this? gist.github.com/dogbert17/7e7baa94...a20bc35b0e 12:26
timotimo: if you reload the gist I have added valgrind output at the bottom 12:30
timotimo okay, so the li->socket pointer is null i suppose? 12:35
dogbert17 want me to check?
timotimo yeah a little debug printf could do that, or gdb of course
AlexDaniel MasterDuke: hmm, what about building rakudo/moar with debug symbols turned on and everything (for whateverable)? Maybe use valgrind for these also 12:36
timotimo i just woke up after some really low quality sleep :\
dogbert17 (gdb) p li.socket
$1 = (uv_tcp_t *) 0x0
AlexDaniel MasterDuke: like, we don't have a space issue anymore, so I guess there's no problem for us and it sounds super useful actually
timotimo huh, why is there a . instead of a -> ? 12:37
dogbert17 because that's what I wrote :) sec
(gdb) p li->socket
$2 = (uv_tcp_t *) 0x0
timotimo huh, weird 12:38
dogbert17 I'm still on 32 bit if that makes any difference 12:39
timotimo it could perhaps, but it shouldn't 12:40
dogbert17 MasterDuke: 32.86user 16.47system 0:32.57elapsed 151%CPU (0avgtext+0avgdata 338564maxresident)k (with your patch)
timotimo: at least it fails consistently 12:41
timotimo that's good, i shall look with rr later
dogbert17 cool 12:43
timotimo does it crash reliably on your end? 12:44
dogbert17 yes 12:45
timotimo not at all on mine :|
dogbert17 interesting
what happens if you disable the JIT? 12:46
timotimo no problem
dogbert17 hmm, perhaps some kind of 32 bit problem after all then 12:47
timotimo yeah, could be :\ 12:48
dogbert17 have you done any changes in syncsocket.c recently? there's a coverity complaint there 12:52
timotimo just put in some telemetry stuff 12:58
dogbert17 ok 13:01
timotimo this is about async though? 13:03
dogbert17 very true 13:05
mspo hi there seems to be fully qualified paths embedded inside of rakudo/moar object files (precomp/stuff) 13:19
is there any way to trick that for DESTDIR support?
jnthn moritz: On <commint>, "Since the start of the entire match" implies the failure needs to cascade all the way up the call stack. I think the original plan was the use negative integers in the position to indicate the required amount of failure, where -1 was just "backtrack locally", -2 was something like "get out of this regex" and -3 was "cascade" or so. See github.com/perl6/nqp/blob/master/s...erMAST.nqp a 13:22
moritz jnthn: my plan was actually to throw an exception (or have a FAIL_COMMIT method analogous to FAILGOAL) 13:29
jnthn Hmm...it'd want to be a control exception if done that way, I'd think. 13:30
moritz jnthn: what I don't know is how to write something that is triggered when the cursor backtacks over it
jnthn The place I pointed to you is where backtracking is handled. 13:31
*you to
There's no generic "if this point is backtracked over then X" mechanism though 13:32
Backtrack points are managed using an integer stack
(aka "the bstack")
moritz jnthn: thanks; I'll look hard at the code and see if I can make any sense of it
jnthn: another question; is the highwater stuff generic, or for parsing within rakudo only? 13:33
if the former, can we expose it to the user somehow?
as Cursor.highwater or so
jnthn My gut feeling is it'd be better to try and work within that mechanism, rather than trying to do it via an exception.
It's only for Rakudo at the moment, though I'd be good with exposing it if we can figure out a good API 13:34
I think maybe :dba stuff isn't implemented in Rakudo?
So that's perhaps a pre-req
jnthn bbiab 13:35
moritz m: say 'abc' ~~ regex { :db('a regex') a+ } 13:39
camelia 5===SORRY!5=== Error while compiling <tmp>?Unrecognized regex modifier :db?at <tmp>:1?------> 3say 'abc' ~~ regex { :7?5db('a regex') a+ }?
moritz m: say 'abc' ~~ regex { :dba('a regex') a+ }
camelia Nil?
moritz m: say 'abc' ~~ regex { a+ }
camelia ?a??
moritz nqp: say('abc' ~~ regex { :dba('a regex') a+ }) 13:40
camelia Confused at line 2, near "say('abc' "? at gen/moar/stage2/NQPHLL.nqp:768 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:panic)? from gen/moar/stage2/NQP.nqp:919 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/nqp.moarvm:comp_unit)? from gen/mo…
nine Oh boy, the train ride to the Swiss Perl Workshop will be ~ 11 hours. At least I've got my hotel room secured. 17:25
timotimo uh oh, is that soon? 17:58
oh
yeah it is
nine timotimo: any chance of seeing you there? 18:19
jnthn nine: Ah, cool...I'll be there :) 18:23
We're actually traveling home via Linz, but breaking the journey in 2 other places on the way to get a bit of vacation :) 18:25
There's a sleeper train from Linz to Zurich btw
timotimo nine: no :< 18:26
jnthn There's usually a Prague to Zurich sleeper, but it's cancelled for two weeks exactly when we were gonna use it. :S So now doing Praha - Wien and taking the sleeper from there to Zurich. 18:27
timotimo ;( ;( 18:28
jnthn Such timing...
Guess I'd better start writing my slides soon too...
Will see if I can remember how to do a talk at a workshop :)
walk; bbiab
Zoffix \o/ 18:32
stmuk pack your Swiss power adaptors! 19:56
also useful for Liechtenstein 19:57
jnthn huh, they aren't about the same as in most of the rest of continental Europe? 19:58
Oh. "A type C plug fits perfectly into a type J socket." 20:00
That's probably why I never noticed :)
Or at least, forgot.
b2gills That's nothing compared to the US for currents above 20 Amps, I think there are something like 4 or 5 different plug styles for 30A for example 20:03
120 vs 240, grounding vs non-grounding, latching vs non-latching, and finally one just for RV's 20:04
stmuk ah never realised the usual Euro one worked! 20:12
b2gills: Japan has two power systems I believe
b2gills Yeah, 50Hz and 60Hz 20:13
stmuk ah the extra Swiss ping is just earth (ground)
pin ^
lizmat www.evanmiller.org/a-review-of-perl-6.html # interesting read 20:57
HN comments: news.ycombinator.com/item?id=15004216 20:58
now at No. 6 in HN 20:59
Zoffix wow, that article is huge 21:09
lizmat yup 21:10
ugexe "Function arguments can be named or positional, but not both. " ? 21:15
Zoffix You can't (easily) declare to for a param to be taken as either positional or named. That's what I took from that, at least. 21:21
haha. HN comment: "I like to imagine the Geth in Mass Effect run on a hybrid Perl6/Erlang platform." 21:23
Geth rakudo/nom: 3ad3346938 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Fix some issues with R:I.OneValue

  - make sure sink-all works ok on JVM
  - add support for skip-one
AlexDaniel “Perl 6 allows any form of quotation construct recognized by the Unicode standard, so the following are equivalent:” ummm… not entirely equivalent 21:51
Zoffix It's fine. The person never claimed to be an expert Rakudo programmer and it's not documentation :) 21:53
Geth rakudo/nom: 50f0508f60 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Add R:I.TwoValues.skip-one
21:54
Zoffix *sigh* I should invent new social media platform. 21:57
AI polices you and removes anything negative. 21:58
AlexDaniel
.oO( me? )
22:02
:)
it goes without saying that the article is awesome 22:03
Zoffix Nah, not you. Just all the nonsense I've seen on Twitter and Facebook this week. 22:08
AlexDaniel hm, a module that can generate a helpful error message from a failed parse would be nice indeed 22:12
I needed this at least once, and ended up write my own hacky logic for it 22:13
writing
Geth rakudo/nom: c229022cb0 | (Elizabeth Mattijsen)++ | src/core/Pair.pm
Make Pair.WHICH be consistent in light of .freeze

This should, at least for now, fix RT #131887 . Must admit that .freeze was a bad idea: it is no longer in the core, and I would vote for removal in 6.d or 6.e, and then revert this patch.
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131887
AlexDaniel oh, and there goes a mention of “your stuff is not closed, here's your EOF line number” kind of messages 22:14
I think I had a list of things that do it somewhere… 22:15
there's this ticket but that's just for quotes: RT #130261
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130261
lizmat which concludes my hacking for today 22:19
tomorrow: decommute from TPCiA and unpacking / returning of the van 22:20
and then the P6W again :-)
timotimo someone with a hackernews account want to propose this snippet instead of s/y/n/? perl6 -pe '.=subst("y", "n", :g)' 22:34
that's a whole bunch faster
trans may be faster, too
timotimo properly times a bunch of variants 22:37
Zoffix Also Perl version doesn't even decode Unicode, let alone deal in graphemes. 22:39
timotimo well, yeah
if i slurp the whole input and use subst with :g i get it done in 0.7s
not even 2x as long as perl5 22:40
though i believe s/y/n/ will only replace the first y in every line?
so it's not semantically equivalent
going over lines() with a for loop and subst+say-ing every one gives me 12 seconds, doing it with hyper operators gives me 27 seconds 22:42
doing -n with .subst(...).say gives me 14 seconds 22:43
that's still slow but not nearly as prohibitive as the figure shown in the post
this is what i like to call "performance cliff"
interesting, tr/y/n/ takes 31 seconds inside a -pe 22:44
also, the "jit startup delaying" comment is far off the target, but i'm not sure what to answer there 22:45
Zoffix decided to just close the page and forget about it. 22:46