Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-09-21

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

All times shown according to UTC.

Time Nick Message
00:25 entonian joined #perl6-dev
01:55 ilbot3 joined #perl6-dev
01:55 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:22 geekosaur joined #perl6-dev
02:34 geekosaur joined #perl6-dev
03:12 geekosaur joined #perl6-dev
03:47 skids joined #perl6-dev
04:53 Ven`` joined #perl6-dev
05:40 patrickz joined #perl6-dev
06:28 [Tux] This is Rakudo version 2017.09-38-g78a4824b8 built on MoarVM version 2017.09.1-18-g3a2eab52
06:28 [Tux] csv-ip5xs        1.345 -  1.493
06:28 [Tux] test             9.903 - 10.491
06:28 [Tux] test-t           3.441 -  3.481
06:28 [Tux] csv-parser      12.786 - 12.944
06:29 [Tux] samcv, your changes still not merged?
06:29 [Tux] Error encoding UTF-8 string: could not encode codepoint 1939620 (0x1D98A4), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
06:29 [Tux] in block <unit> at 88.t line 7
06:29 samcv i will merge it right now. let me just check appveyor
06:29 [Tux] Error encoding UTF-8 string: could not encode Unicode Surrogate codepoint 56625 (0xDD31)
06:29 [Tux] in block <unit> at 88.t line 7
06:30 samcv ok bumping now
06:38 Geth ¦ nqp: a5f92f2fe3 | (Samantha McVey)++ | tools/build/MOAR_REVISION
06:38 Geth ¦ nqp: Bump MoarVM: Fix 2 big utf8-c8 bugs & fix MacOS build
06:38 Geth ¦ nqp:
06:38 Geth ¦ nqp: utf8-c8:
06:38 Geth ¦ nqp: Fixes a bug where encoding values above 0x10FFFF or Surrogate
06:38 Geth ¦ nqp: codepoints would throw and fail.
06:38 Geth ¦ nqp:
06:38 Geth ¦ nqp: Fixes a bug with utf8-c8 where concatenation, replace, or
06:38 Geth ¦ nqp: <…commit message has 11 more lines…>
06:38 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/a5f92f2fe3
06:38 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.09.1-16-g3b4b032...2017.09.1-21-g523725a3
06:39 Geth ¦ rakudo/nom: 963a0f0657 | (Samantha McVey)++ | tools/build/NQP_REVISION
06:39 Geth ¦ rakudo/nom: Bump Moar/NQP: Fix 2 big utf8-c8 bugs & fix MacOS build
06:39 Geth ¦ rakudo/nom:
06:39 Geth ¦ rakudo/nom: utf8-c8:
06:39 Geth ¦ rakudo/nom: Fixes a bug where encoding values above 0x10FFFF or Surrogate
06:39 Geth ¦ rakudo/nom: codepoints would throw and fail.
06:39 Geth ¦ rakudo/nom:
06:39 Geth ¦ rakudo/nom: Fixes a bug with utf8-c8 where concatenation, replace, or
06:39 Geth ¦ rakudo/nom: <…commit message has 15 more lines…>
06:39 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/963a0f0657
06:39 samcv [Tux], ok :) go ahead
06:39 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.09-3-g4bc6050...2017.09-7-ga5f92f2fe
06:39 samcv if you have the time to run the tests again
06:48 [Tux] samcv++; # 88.t doesn't crash anymore!
06:48 samcv :-)
06:49 samcv i think i fixed basically everything in my grant tbh :P
06:49 [Tux] HUGS are in place :)
06:49 [Tux] you deserve them
06:50 samcv well if i come back to NL i will accept a hug :)
06:50 samcv and to think i was worried about meeting the grant, but ended up exceeding it
06:51 [Tux] This is Rakudo version 2017.09-39-g963a0f065 built on MoarVM version 2017.09.1-21-g523725a3
06:51 [Tux] csv-ip5xs        1.322 -  1.341
06:51 [Tux] test             9.810 -  9.912
06:51 [Tux] test-t           3.407 -  3.577
06:51 [Tux] csv-parser      12.585 - 13.040
06:52 [Tux] within the noise range. no significant slowdown
07:08 lizmat Files=1227, Tests=75100, 295 wallclock secs (14.55 usr  5.20 sys + 1997.49 cusr 211.59 csys = 2228.83 CPU)
08:21 robertle joined #perl6-dev
09:18 [TuxCM] joined #perl6-dev
09:28 Geth ¦ rakudo: stmuk++ created pull request #1167: japhb++ die where --jobs > 1 used
09:28 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1167
09:59 TimToady joined #perl6-dev
10:40 Geth ¦ rakudo/nom: 99f90e6528 | (Steve Mynott)++ | t/harness6
10:40 Geth ¦ rakudo/nom: japhb++ catch case where --jobs used
10:40 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/99f90e6528
10:40 Geth ¦ rakudo/nom: 045ef448b6 | lizmat++ (committed using GitHub Web editor) | t/harness6
10:40 Geth ¦ rakudo/nom: Merge pull request #1167 from stmuk/nom
10:40 Geth ¦ rakudo/nom:
10:40 Geth ¦ rakudo/nom: japhb++ die where --jobs > 1 used
10:40 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/045ef448b6
11:15 Geth ¦ rakudo/supply-block-refactor: 9d903408e3 | (Jonathan Worthington)++ | src/core/Supply.pm
11:15 Geth ¦ rakudo/supply-block-refactor: Push Tap objects down to subscribers
11:15 Geth ¦ rakudo/supply-block-refactor:
11:15 Geth ¦ rakudo/supply-block-refactor: The `.tap(...)` call now takes an optional `:&tap` named argument that
11:15 Geth ¦ rakudo/supply-block-refactor: will be called, synchronously and ahead of any `emit`/`done`/`quit`,
11:15 Geth ¦ rakudo/supply-block-refactor: with the Tap object. This means that there is now a reliable way to
11:15 Geth ¦ rakudo/supply-block-refactor: get the Tap object, no matter the behavior of the source Supply. There
11:15 Geth ¦ rakudo/supply-block-refactor: were two notable cases where we had trouble:
11:15 Geth ¦ rakudo/supply-block-refactor: <…commit message has 14 more lines…>
11:15 Geth ¦ rakudo/supply-block-refactor: review: https://github.com/rakudo/rakudo/commit/9d903408e3
12:06 pmurias joined #perl6-dev
12:06 Geth ¦ nqp/master: 9 commits pushed by pmurias++
12:06 Geth ¦ nqp/master: 085912eb4d | [js] make nqp::getmessage return nqp::null_s when there is no message
12:06 Geth ¦ nqp/master: 80f78822a9 | [js] Add missing npm dep
12:06 Geth ¦ nqp/master: 239747322b | Test 0 ** 0 with bignums
12:06 Geth ¦ nqp/master: 3909a4823d | [js] NaN is true in nqp
12:06 Geth ¦ nqp/master: 30d3659724 | Test nqp::istrue on result of nqp::nan
12:06 Geth ¦ nqp/master: 16d135c62f | [js] Make nqp::cmp_n work with nqp::nan properly
12:06 Geth ¦ nqp/master: 5ab6d35622 | Test nqp::cmp_n with nqp::nan
12:06 Geth ¦ nqp/master: 2199a7fce7 | [js] Implement nqp::existspos.
12:06 Geth ¦ nqp/master: 9abe4b24f6 | Test nqp::existspos with array elements containing nqp::null
12:06 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/a5f92f2fe3...9abe4b24f6
12:25 AlexDaniel joined #perl6-dev
12:30 vendethiel- joined #perl6-dev
12:41 jdv79 what's a easy way to build and use a modified moar?
12:43 jnthn Easy to understand what's going on? Just get checkouts of NQP and Rakudo, and perl Configure.pl --prefix=/path/to/moar/install
12:43 jnthn For most MoarVM changes you won't need to rebuild NQP/Rakudo
12:43 jnthn You can just change stuff and make -j install in MoarVM
12:44 skids joined #perl6-dev
12:55 jdv79 ok
12:56 lizmat commute to NR.pm meeting&
13:20 raiph joined #perl6-dev
14:02 jnthn I just had to write this https://gist.github.com/jnthn/25349dee44f20b932c8663dbe504c39e to help me debug a problem
14:02 jnthn Figure it may be useful more generally
14:02 jnthn Polished version of it could end up as a module
14:03 timotimo oh, that's cute
14:06 jnthn Hate bugs that rarely show up though
14:07 jnthn Though presumably if I could always get it to show up in 20,000-30,000 requests before, surviving 250,000 would be a decent indication I got it
14:15 jnthn Well, it did
14:16 jnthn (having a big supply-using thing to test on)++
14:22 Geth ¦ rakudo/supply-block-refactor: 0d600a0cb6 | (Jonathan Worthington)++ | src/core/Supply.pm
14:22 Geth ¦ rakudo/supply-block-refactor: Don't re-acquire lock after running supply body
14:22 Geth ¦ rakudo/supply-block-refactor:
14:22 Geth ¦ rakudo/supply-block-refactor: Instead, just use the one we're already holding to decrement the
14:22 Geth ¦ rakudo/supply-block-refactor: active tap count. Prevents a potential deadlock if an `emit` gets
14:22 Geth ¦ rakudo/supply-block-refactor: in from one of the `whenever`s and then does some kind of `await`.
14:22 Geth ¦ rakudo/supply-block-refactor: review: https://github.com/rakudo/rakudo/commit/0d600a0cb6
14:26 jnthn Wow, that fix also gets performance back to being pretty good :)
14:26 jnthn Guess that was contended over quite a bit
14:30 jnthn That leaves me with just the throttle issue
14:37 jnthn "just"
14:40 DrForr Ah, "just". That final 80% that you find after digging through the first 80%.
14:40 jnthn I do somewhat fear that it might unravel a bunch of the changes too :/
14:42 jnthn Just discovered a Cro HTTP/2 hang, which I somewhat feared may happen because it uses a "supplies in the chain talking to each other" approach also
14:44 jdv79 not sure what that means.
14:44 jdv79 sounds racy though
14:44 * DrForr girds himself for his first Prague.pm social.
14:48 jnthn DrForr: Hm, when/where's that? I thought I was on the mailing list but didn't see anything for ages...
14:49 DrForr Tonight at 7pm, "Prague Perl Mongers meeting is planned for Thursday September 21st at 7 PM at the "BeerGeek" bar, Jiřího z Poděbrad.
14:49 DrForr I don't know if it got to the mailing list, I'm not on it myself.
14:50 DrForr Maybe someone *thinks* they're sending announcements to a dead list?
14:50 DrForr beergeek.cz at Vinohradska' 62 apparently.
14:50 DrForr I'm close enough that I can drop my bag off at home and head over.
14:51 jnthn DrForr: Wait, you're based in Prague these days?
14:52 DrForr Moved here on the 1st as it happens.
14:52 * DrForr waves from the GoodData offices.
14:52 jnthn Ah. :-)
14:53 Zoffix :)
14:53 jnthn Yeah, http://www.mezl.eu/praha-pm doesn't mention it at all :)
14:55 DrForr I also note that most of the Mailing List links are crossed out.
14:55 jnthn Yeah
14:55 jnthn Just noticed that
14:56 jnthn If you know (or find out) how I can find out when meetings happen, I'd love to know :)
14:57 jnthn Can't make it tonight, alas; if I'd known some days sooner I probably coulda. Next time...
14:57 DrForr I just asked the person that passed me the info what's going on, so I'll pass it along to you when I get it.
14:57 DrForr No worries, I figured that was the case.
15:00 DrForr I'm outta here, off to said meeting.
15:00 DrForr o/
15:00 jnthn Have fun o/
15:25 jnthn m: my $s1 = Supplier.new; my $s2 = Supplier.new; Supply.merge($s1.Supply, $s2.Supply).tap: { say $_; $s2.emit(2) }; $s1.emit(1)
15:25 camelia rakudo-moar 045ef4: OUTPUT: «(timeout)1␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2…»
15:27 jnthn That hangs in my branch also, after the say 1
15:29 jnthn m: my $s1 = Supplier.new; $s1.Supply.tap: { say $_; $s1.emit(2) }; $s1.emit(1)
15:30 camelia rakudo-moar 045ef4: OUTPUT: «(timeout)1␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2…»
15:31 jnthn m: my $s1 = Supplier.new; $s1.Supply.tap: { say $_; $s1.emit(2); say "here" }; $s1.emit(1)
15:31 camelia rakudo-moar 045ef4: OUTPUT: «(timeout)1␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2␤2…»
15:31 jnthn oh hah, because it was using a reentrant mutex for the protection...
15:34 jnthn DWIM is hard.
16:41 hankache joined #perl6-dev
16:41 teatime joined #perl6-dev
16:43 [TuxCM] joined #perl6-dev
16:50 jnthn Hm, well, I may have something approaching a solution...
16:53 jnthn ah, no :(
16:53 jnthn Or at least, not without further changes
16:54 nine So still _approaching_ a solution, not already there
16:55 jnthn Yeah, hopefully
16:55 * jnthn is curious what the spectest fallout will be
16:55 jnthn It does actually fix some stuff
16:55 sjn if there's no solution, it's all precipitate :)
16:56 jnthn I guess while what I have works it introduces a tad too much concurrency in places
16:57 jnthn And that maybe is the reason things break
16:58 jnthn Wow, the only regression is a new hang
16:58 jnthn In 1 file
16:58 jnthn OK, maybe it's not so wildly off given I know of 2 things that are probably still a bit wrong, then
16:58 Geth ¦ roast/rt132135: b0cd4b3edf | (Justin DeVuyst)++ | S32-io/IO-Socket-Async.t
16:58 Geth ¦ roast/rt132135: Tests for async socket returned port values.  See RT#132135.
16:58 Geth ¦ roast/rt132135: review: https://github.com/perl6/roast/commit/b0cd4b3edf
16:58 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=132135
17:03 jnthn In the very best case, the mechanism I've come up with now might eliminate and solve more problems that the one I did yesterday. Not sure yet.
17:04 jnthn We'll see tomorrow.
17:10 stmuk joined #perl6-dev
17:15 b2gills Sometimes you have to go down the wrong route for a while to find the right one
17:31 nine Aw crap. Compiling the optimized body for a native sub in a CHECK phaser would require the setup for that routine to have already run. But that actually loads the library which we do only at runtime.
17:32 nine So...I'd have to export an INIT phaser, too which runs the setups?
17:40 nine But the nativecallbuild op which loads the library as part of setup also returns whether we can JIT compile the call or not.
17:41 nine So I'd need to restructure that whole part of the code to get the information in a separate step without loading the library :/
17:56 nine At least I just found out why compiling the optimized code for subs called at BEGIN time fails: the $!do attribute is bound at runtime during the fixup. So while I did set it just fine after compilation, it got overwritten by the original block: { * }
18:10 AlexDaniel joined #perl6-dev
18:42 Geth ¦ nqp: 1177ace084 | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
18:42 Geth ¦ nqp: Revert "Error reporting tweak."
18:42 Geth ¦ nqp:
18:42 Geth ¦ nqp: It's ok to return null if exception has no message.
18:42 Geth ¦ nqp:
18:42 Geth ¦ nqp: This reverts commit d228c929f85fa96e043fc30c3439880169e9484d.
18:42 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/1177ace084
19:10 AlexDaniel joined #perl6-dev
19:22 geekosaur joined #perl6-dev
19:33 perlpilot joined #perl6-dev
19:56 robertle joined #perl6-dev
20:03 AlexDaniel joined #perl6-dev
20:08 AlexDaniel joined #perl6-dev
20:41 Ven`` joined #perl6-dev
20:42 jnthn nine: Doing anything at INIT time for native calls is probably now roth it
20:42 jnthn *worth
20:42 jnthn nine: Since typically only so many of the possible native subs are called by a given application
20:42 jnthn So it's cheaper to pay for just some of 'em
20:46 nine jnthn: would be nice if we could at least do the compilation at CHECK time. Inline::Perl5 does use quite a few native subs even for trivial programs. And it should be possible to move a part of the setup cost to installation time.
20:46 nine And it actually is! I don't actually need the decision right away. As it's installation time (or worst precomp time), I can just compile both versions, the JIT compiled and the fallback and only decide which of those to install at runtime.
20:47 jnthn Yeah, CHECK time makes more sense
20:47 jnthn http://old.cd.cz/zazitky/kam-na-vylet/1758-prazsky-zeleznicni-den-a-oslavy-25-let-zeleznice-v-pid
20:47 jnthn oops
20:48 jnthn Since JIT happens at runtime the resolution happens late enough for it to produce the good code, so all's well
20:58 gfldex is a long running program meant to segfault when I rebuild the Rakudo it is using?
20:59 jnthn I guess you'd have to re-install it to affect things?
21:00 jnthn I've hard this before, though
21:00 jnthn *heard
21:03 * nine has seen it happen a couple of times
21:06 jnthn So, sounds like it does. As for "meant to", I'm pretty sure nobody set out with it as an explicit goal. ;)
21:07 jnthn Maybe a consequence of us mmap'ing stuff and then it changes underneath us?
21:24 gfldex on linux the mmaped file (as opposed to the files directory entry) should stay intact until the last filehandle is closed (and thus the inode in /proc/$pid/fd/ is gone)
21:25 gfldex i will try to do some digging on the weekend
21:26 teatime iirc, this is often caused by overwriting existing executable rather than unlinking the old and creating the new; if you unlink, as gfldex says the old file continues to exist as long as stuff has it open.
21:27 jnthn Ah, maybe our install does a copy and that's not doing the unlink/create new thing
21:29 teatime iirc again, cp actually does unlink first for this reason.
21:29 * gfldex takes notes not to build Rakudo on windows
21:38 teatime hrm, or actually, I think it's mv that does that, possibly not cp
21:57 Ven`` joined #perl6-dev
22:08 timotimo i've put a bit of work into making rakudo install not just cp into existing .moarvm files
22:08 timotimo to prevent exactly that kind of crash you're describing
22:08 timotimo could very well be i missed a case or two
22:08 timotimo look for a perl6 command inside the makefile
22:08 timotimo it'll also show up in the output of "make install"
22:10 Geth ¦ 6.d-prep: 795b56ead6 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
22:10 Geth ¦ 6.d-prep: List passing Windows strestest
22:10 Geth ¦ 6.d-prep:
22:10 Geth ¦ 6.d-prep: as a TODO item for release
22:10 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/795b56ead6
22:41 ugexe i've gotten into a chicken/egg spot with the perl6 file deletion inside the makefile before
22:44 teatime there's also install, if you don't want to mv; I was wrong about cp and thinking of mv
22:51 timotimo is there install on windows in nmake?
22:52 teatime I know almost nothing about windows :)
22:54 BenGoldberg joined #perl6-dev
22:54 timotimo yeah, putting smarter stuff into the makefile is a great way to break the build on a platform hardly anybody tests at the moment
22:59 skids joined #perl6-dev
23:13 lizmat joined #perl6-dev
23:25 Geth ¦ roast: skids++ created pull request #327: Add test for RT#129812
23:25 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=129812
23:25 Geth ¦ roast: review: https://github.com/perl6/roast/pull/327
23:25 Geth ¦ roast: fd1a92f9e9 | skids++ | S06-traits/misc.t
23:25 Geth ¦ roast: Add test for RT#129812
23:25 Geth ¦ roast: review: https://github.com/perl6/roast/commit/fd1a92f9e9
23:25 Geth ¦ roast: 63181b3c9f | skids++ (committed using GitHub Web editor) | S06-traits/misc.t
23:25 Geth ¦ roast: Merge pull request #327 from skids/rt129812
23:25 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=129812
23:25 Geth ¦ roast:
23:25 Geth ¦ roast: Add test for RT#129812
23:25 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=129812
23:25 Geth ¦ roast: review: https://github.com/perl6/roast/commit/63181b3c9f
23:51 Geth ¦ roast: c8a7565a68 | (Zoffix Znet)++ | S05-match/positions.t
23:51 Geth ¦ roast: Test all regex blocks update $/
23:51 Geth ¦ roast:
23:51 Geth ¦ roast: RT#126249: https://rt.perl.org/Public/Bug/Display.html?id=126249
23:51 Geth ¦ roast: review: https://github.com/perl6/roast/commit/c8a7565a68
23:51 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126249

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