Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-08-13

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 ilmari[m] joined #perl6-dev
00:04 CIAvash[m] joined #perl6-dev
00:17 lizmat joined #perl6-dev
00:57 pharv_ joined #perl6-dev
01:21 BenGoldberg m: dd 42.kv
01:21 camelia rakudo-moar 30584d: OUTPUT: «(0, 42).Seq?»
01:29 tadzik joined #perl6-dev
01:50 CIAvash[m] joined #perl6-dev
01:50 ilmari[m] joined #perl6-dev
01:52 ilbot3 joined #perl6-dev
01:52 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:16 [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 astj joined #perl6-dev
02:17 [Coke] ah, it's doing the anon-class trick.
02:22 astj joined #perl6-dev
02:40 [Coke] 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 [Coke] (if I leave the newer version in place, it satisfies the requirement)
02:41 [Coke] (and cloning nqp is slow)
02:47 [Coke] (me uses rakudobrew to do the builds, but git bisect in a rakudo checkout to keep track of the versions)
03:00 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:08 [Coke] timotimo: that's basically what r-brew is doing, aye? I'll just use rbrew. :)
03:08 [Coke] (I'd use whateverable if any other OS was having this problem...)
03:09 timotimo i think rbrew makes full fresh clones (or uses git folder reference or whatever)
04:34 ugexe rakudobrew triple [rakudo-ver [nqp-ver [moar-ver]]]
04:34 ugexe seems like you'd probably want to use that (which i'm not familiar with)
08:40 moritz how do I code-gen something that runs when the regex engine backtracks over it?
08:40 moritz (I want to implement <commit>)
09:44 dogbert17 joined #perl6-dev
10:15 moritz are the backtrack modes explained somewhere?
10:15 moritz I' see there are modes 'r', 'f' and 'g' at least
10:15 moritz what do they do?
10:16 moritz ratchet, frugal, greedy?
11:23 AlexDani` joined #perl6-dev
12:00 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:03 dogbert17 t/spec/S32-io/IO-Socket-Async.t actually SEGV's
12:04 MasterDuke i think i've been seeing all the others, but not that one
12:04 MasterDuke even when run by itself?
12:06 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?
12:07 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
12:07 dogbert17 yup, 32 bit :) gist here: https://gist.github.com/dogbert17/7e7baa9475ccb03961939aa20bc35b0e
12:08 * dogbert17 pleasu don't say I forgot to turn off --full-cleanup
12:09 * dogbert17 nah, this is gdb
12:12 MasterDuke if you've got a couple spare minutes, how would you feel about testing my gist mentioned in https://github.com/MoarVM/MoarVM/pull/631 pre- and post- its patch?
12:12 dogbert17 sure
12:13 MasterDuke do you have a time that reports maxresidentk?
12:13 MasterDuke e.g., /usr/bin/time
12:13 dogbert17 yes
12:13 MasterDuke cool
12:15 MasterDuke in case it isn't obvious, at the top it expects a path to a checked out rakudo repo
12:18 dogbert17 dou you want me to replace the ^20 with ^5 ?
12:20 MasterDuke no, my later testing found not much difference with ^5, but a lot with ^20
12:21 dogbert17 ok, will try ^20
12:21 MasterDuke thanks. afk for probably a while, but will backlog
12:22 dogbert17 29.04user 15.99system 0:29.07elapsed 154%CPU (0avgtext+0avgdata 370916maxresident)k (without patch)
12:25 dogbert17 .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
12:25 timotimo yo
12:26 dogbert17 hi timotimo, seen this? https://gist.github.com/dogbert17/7e7baa9475ccb03961939aa20bc35b0e
12:30 dogbert17 timotimo: if you reload the gist I have added valgrind output at the bottom
12:35 timotimo okay, so the li->socket pointer is null i suppose?
12:35 dogbert17 want me to check?
12:35 timotimo yeah a little debug printf could do that, or gdb of course
12:36 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 :\
12:36 dogbert17 (gdb) p li.socket
12:36 dogbert17 $1 = (uv_tcp_t *) 0x0
12:36 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
12:37 timotimo huh, why is there a . instead of a -> ?
12:37 dogbert17 because that's what I wrote :) sec
12:37 dogbert17 (gdb) p li->socket
12:37 dogbert17 $2 = (uv_tcp_t *) 0x0
12:38 timotimo huh, weird
12:39 dogbert17 I'm still on 32 bit if that makes any difference
12:40 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)
12:41 dogbert17 timotimo: at least it fails consistently
12:41 timotimo that's good, i shall look with rr later
12:43 dogbert17 cool
12:44 timotimo does it crash reliably on your end?
12:45 dogbert17 yes
12:45 timotimo not at all on mine :|
12:45 dogbert17 interesting
12:46 dogbert17 what happens if you disable the JIT?
12:46 timotimo no problem
12:47 dogbert17 hmm, perhaps some kind of 32 bit problem after all then
12:48 timotimo yeah, could be :\
12:52 dogbert17 have you done any changes in syncsocket.c recently? there's a coverity complaint there
12:58 timotimo just put in some telemetry stuff
13:01 dogbert17 ok
13:03 timotimo this is about async though?
13:05 dogbert17 very true
13:18 mspo joined #perl6-dev
13:19 mspo hi there seems to be fully qualified paths embedded inside of rakudo/moar object files (precomp/stuff)
13:19 mspo is there any way to trick that for DESTDIR support?
13:22 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 https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTRegexCompilerMAST.nqp a
13:29 moritz jnthn: my plan was actually to throw an exception (or have a FAIL_COMMIT method analogous to FAILGOAL)
13:30 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
13:31 jnthn The place I pointed to you is where backtracking is handled.
13:31 jnthn *you to
13:32 jnthn There's no generic "if this point is backtracked over then X" mechanism though
13:32 jnthn Backtrack points are managed using an integer stack
13:32 jnthn (aka "the bstack")
13:32 moritz jnthn: thanks; I'll look hard at the code and see if I can make any sense of it
13:33 moritz jnthn: another question; is the highwater stuff generic, or for parsing within rakudo only?
13:33 moritz if the former, can we expose it to the user somehow?
13:33 moritz as Cursor.highwater or so
13:33 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.
13:34 jnthn 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 jnthn I think maybe :dba stuff isn't implemented in Rakudo?
13:34 jnthn So that's perhaps a pre-req
13:35 * jnthn bbiab
13:39 moritz m: say 'abc' ~~ regex { :db('a regex') a+ }
13:39 camelia rakudo-moar 30584d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>?Unrecognized regex modifier :db?at <tmp>:1?------> 3say 'abc' ~~ regex { :7?5db('a regex') a+ }?»
13:39 moritz m: say 'abc' ~~ regex { :dba('a regex') a+ }
13:39 camelia rakudo-moar 30584d: OUTPUT: «Nil?»
13:39 moritz m: say 'abc' ~~ regex {  a+ }
13:39 camelia rakudo-moar 30584d: OUTPUT: «?a??»
13:40 moritz nqp: say('abc' ~~ regex { :dba('a regex') a+ })
13:40 camelia nqp-moarvm: OUTPUT: «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…»
14:12 masak joined #perl6-dev
14:18 BenGoldberg joined #perl6-dev
15:13 llfourn joined #perl6-dev
16:53 pharv_ joined #perl6-dev
17:25 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:58 timotimo uh oh, is that soon?
17:58 timotimo oh
17:58 timotimo yeah it is
18:19 nine timotimo: any chance of seeing you there?
18:23 jnthn nine: Ah, cool...I'll be there :)
18:25 jnthn 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 jnthn There's a sleeper train from Linz to Zurich btw
18:26 timotimo nine: no :<
18:27 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:28 timotimo ;( ;(
18:28 jnthn Such timing...
18:28 jnthn Guess I'd better start writing my slides soon too...
18:28 jnthn Will see if I can remember how to do a talk at a workshop :)
18:28 jnthn walk; bbiab
18:32 Zoffix \o/
18:39 dogbert17 joined #perl6-dev
19:22 pharv_ joined #perl6-dev
19:31 AlexDaniel joined #perl6-dev
19:33 geekosaur joined #perl6-dev
19:56 stmuk pack your Swiss power adaptors!
19:57 stmuk also useful for Liechtenstein
19:58 jnthn huh, they aren't about the same as in most of the rest of continental Europe?
20:00 jnthn Oh. "A type C plug fits perfectly into a type J socket."
20:00 jnthn That's probably why I never noticed :)
20:00 jnthn Or at least, forgot.
20:03 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:04 b2gills 120 vs 240, grounding vs non-grounding, latching vs non-latching, and finally one just for RV's
20:10 lizmat joined #perl6-dev
20:12 stmuk ah never realised the usual Euro one worked!
20:12 stmuk b2gills: Japan has two power systems I believe
20:13 b2gills Yeah, 50Hz and 60Hz
20:13 stmuk ah the extra Swiss ping is just earth (ground)
20:13 stmuk pin ^
20:57 lizmat http://www.evanmiller.org/a-review-of-perl-6.html   # interesting read
20:58 lizmat HN comments: https://news.ycombinator.com/item?id=15004216
20:59 lizmat now at No. 6 in HN
21:09 Zoffix wow, that article is huge
21:10 lizmat yup
21:15 ugexe "Function arguments can be named or positional, but not both. " ?
21:21 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:23 Zoffix 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
21:23 Geth ¦ rakudo/nom: Fix some issues with R:I.OneValue
21:23 Geth ¦ rakudo/nom:
21:23 Geth ¦ rakudo/nom: - make sure sink-all works ok on JVM
21:23 Geth ¦ rakudo/nom: - add support for skip-one
21:23 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3ad3346938
21:51 AlexDaniel “Perl 6 allows any form of quotation construct recognized by the Unicode standard, so the following are equivalent:” ummm… not entirely equivalent
21:52 dogbert17 joined #perl6-dev
21:53 Zoffix It's fine. The person never claimed to be an expert Rakudo programmer and it's not documentation :)
21:54 Geth ¦ rakudo/nom: 50f0508f60 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
21:54 Geth ¦ rakudo/nom: Add R:I.TwoValues.skip-one
21:54 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50f0508f60
21:57 Zoffix *sigh* I should invent new social media platform.
21:58 Zoffix AI polices you and removes anything negative.
22:02 AlexDaniel .oO( me? )
22:02 AlexDaniel :)
22:03 AlexDaniel it goes without saying that the article is awesome
22:08 Zoffix Nah, not you. Just all the nonsense I've seen on Twitter and Facebook this week.
22:12 AlexDaniel hm, a module that can generate a helpful error message from a failed parse would be nice indeed
22:13 AlexDaniel I needed this at least once, and ended up write my own hacky logic for it
22:13 AlexDaniel writing
22:13 Geth ¦ rakudo/nom: c229022cb0 | (Elizabeth Mattijsen)++ | src/core/Pair.pm
22:13 Geth ¦ rakudo/nom: Make Pair.WHICH be consistent in light of .freeze
22:13 Geth ¦ rakudo/nom:
22:13 Geth ¦ rakudo/nom: This should, at least for now, fix RT #131887 .  Must admit that .freeze
22:13 Geth ¦ rakudo/nom: was a bad idea: it is no longer in the core, and I would vote for removal
22:13 Geth ¦ rakudo/nom: in 6.d or 6.e, and then revert this patch.
22:13 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c229022cb0
22:13 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131887
22:14 AlexDaniel oh, and there goes a mention of “your stuff is not closed, here's your EOF line number” kind of messages
22:15 AlexDaniel I think I had a list of things that do it somewhere…
22:15 AlexDaniel there's this ticket but that's just for quotes: RT #130261
22:15 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=130261
22:19 lizmat which concludes my hacking for today
22:20 lizmat tomorrow: decommute from TPCiA and unpacking / returning of the van
22:20 lizmat and then the P6W again  :-)
22:30 lizmat joined #perl6-dev
22:34 timotimo someone with a hackernews account want to propose this snippet instead of s/y/n/? perl6 -pe '.=subst("y", "n", :g)'
22:34 timotimo that's a whole bunch faster
22:34 timotimo trans may be faster, too
22:37 * timotimo properly times a bunch of variants
22:39 Zoffix Also Perl version doesn't even decode Unicode, let alone deal in graphemes.
22:39 timotimo well, yeah
22:39 timotimo if i slurp the whole input and use subst with :g i get it done in 0.7s
22:40 timotimo not even 2x as long as perl5
22:40 timotimo though i believe s/y/n/ will only replace the first y in every line?
22:40 timotimo so it's not semantically equivalent
22:42 timotimo 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:43 timotimo doing -n with .subst(...).say gives me 14 seconds
22:43 timotimo that's still slow but not nearly as prohibitive as the figure shown in the post
22:43 timotimo this is what i like to call "performance cliff"
22:44 timotimo interesting, tr/y/n/ takes 31 seconds inside a -pe
22:45 timotimo also, the "jit startup delaying" comment is far off the target, but i'm not sure what to answer there
22:46 * Zoffix decided to just close the page and forget about it.

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary