Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-11-14

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

All times shown according to UTC.

Time Nick Message
00:20 Zoffix .tell wander roast files should have the `use v6.*` of whatever language version they cover. So in 6.c-errata branch, all of them have `use v6.c`. In master, those are proposals for `v6.d`, but since that's currently unavaiable, they have `use v6.c` or `use v6.d.PREVIEW` and will be changed to 6.d on 6.d release. If you say you saw `use v6`, it should be changed to proper version (or can be just left until
00:20 yoleaux Zoffix: I'll pass your message to wander.
00:20 Zoffix 6.d release when all of them get changed)
00:20 Zoffix .tell wander 6.d release when all of them get changed)
00:20 yoleaux Zoffix: I'll pass your message to wander.
00:31 MasterDuke joined #perl6-dev
00:33 ugexe it also tells github its a perl6 file
00:36 ugexe hmmm but it does not identify `v6.c` as perl6 (only `use v6;`)
00:37 ugexe https://github.com/perl6/roast/search?l=perl
01:03 Zoffix It does, it just has heuristics for `strict` and `package` keywords with higher precedence
01:04 Zoffix Ah, it does for non-.t files
01:04 Zoffix But for .t it has semicolon right after `6`: https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb#L464
01:06 BenGoldberg joined #perl6-dev
01:06 Zoffix And .pm is similarly busted: https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb#L369-L375
01:06 Zoffix .pl would work: https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb#L359-L366
01:07 Zoffix Basically all three need to be collected and a single sane thing should be made and used for all three
01:10 Zoffix Filed as https://github.com/github/linguist/issues/3906
01:24 MasterDuke joined #perl6-dev
01:33 MasterDuke_ joined #perl6-dev
01:36 dugword joined #perl6-dev
02:54 BenGoldberg joined #perl6-dev
02:57 ilbot3 joined #perl6-dev
02:57 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
03:23 ufobat_ joined #perl6-dev
04:21 bloatable6 joined #perl6-dev
04:23 samcv MasterDuke_++ reminded me of something i was thinking of doing during my grant but should shortly last in MoarVM master
04:24 samcv using memcpy instead of iterating by grapheme when collapsing strings, which happens somewhat often. and also when nqp::optimized is called. the new method, when the strands of a rope are all the same type will make folding it 4x faster
04:52 wander joined #perl6-dev
04:55 wander do we ought to add `use v6;` in every .t file of roast? is it for historical reason or for explicit?
04:55 yoleaux 00:20Z <Zoffix> wander: roast files should have the `use v6.*` of whatever language version they cover. So in 6.c-errata branch, all of them have `use v6.c`. In master, those are proposals for `v6.d`, but since that's currently unavaiable, they have `use v6.c` or `use v6.d.PREVIEW` and will be changed to 6.d on 6.d release. If you say you saw `use v6`, it should be changed to proper version (or can be just left until
04:55 yoleaux 00:20Z <Zoffix> wander: 6.d release when all of them get changed)
04:55 wander sorry
04:56 wander accidentally send early log
05:02 wander really? if we `use v6.d` in roast files, then roast seems be neither a test suit of 'Perl 6', or a substitution of 'Perl 6' spec, but test suit of rakudo implement
05:05 wander for usage, we can add `use` info when testing; but is it proper to hardcoding in test files?
05:10 awwaiid joined #perl6-dev
05:15 samcv wander: 6.d is the next version of perl6
05:18 samcv there is 6.c-errata branch for the older 6.c tests. roast is basically the in development tests for the spec. and when ready we will declare 6.d and the current master possibly with some changes will become 6.d branch
05:22 wander a new branch, i got it.
05:45 lizmat joined #perl6-dev
05:58 AlexDaniel joined #perl6-dev
06:31 dugword joined #perl6-dev
07:21 geospeck joined #perl6-dev
07:31 dugword joined #perl6-dev
07:48 [TuxCM] joined #perl6-dev
07:51 [Tux] Rakudo version 2017.10-186-gd6a3a7a1a - MoarVM version 2017.10-71-g8744857ed
07:51 [Tux] csv-test-xs-20      0.437 -  0.439
07:51 [Tux] csv-ip5xs           1.123 -  1.136
07:51 [Tux] test-t --race       1.393 -  1.455
07:51 [Tux] test-t              3.275 -  3.295
07:51 [Tux] test               12.145 - 12.288
07:51 [Tux] csv-parser         12.711 - 12.851
07:51 [Tux] csv-ip5xs-20       12.913 - 13.098
07:51 [Tux] test-t-20 --race   20.880 - 21.164
07:51 [Tux] test-t-20          60.912 - 61.362
08:26 lizmat Files=1229, Tests=75833, 316 wallclock secs (14.79 usr  5.35 sys + 2187.35 cusr 215.48 csys = 2422.97 CPU)
08:53 Geth ¦ nqp: 7ce25e23d1 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
08:53 Geth ¦ nqp: Bump Moar to get collaps_strands improvement
08:53 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7ce25e23d1
08:53 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.10-70-gb379050...2017.10-71-g8744857
08:57 dugword joined #perl6-dev
09:00 Geth ¦ nqp: 7d7e7a0701 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
09:00 Geth ¦ nqp: Revert "Bump Moar to get collaps_strands improvement"
09:00 Geth ¦ nqp:
09:00 Geth ¦ nqp: This reverts commit 7ce25e23d183126a913a4f54fa0d105309573e59.
09:00 Geth ¦ nqp:
09:00 Geth ¦ nqp: Alas, this breaks quite a lot :-(
09:00 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7d7e7a0701
09:00 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.10-71-g8744857...2017.10-70-gb379050
09:18 robertle joined #perl6-dev
09:30 Ven joined #perl6-dev
09:56 statisfiable6 joined #perl6-dev
09:59 [TuxCM] joined #perl6-dev
10:19 wander joined #perl6-dev
10:22 ufobat_ Zoffix, done and updated the PR
10:28 wander I've seen comments like
10:28 wander # L<S02/Double-underscore forms/"The double-underscore forms are going away:">
10:29 wander what's the use of L tag? I know how L tag works, but don't know why we put it here.
10:30 wander what's the meaning of the link
10:34 wander or say
10:37 wander by which conventions can I write down such a link
10:45 AlexDaniel joined #perl6-dev
10:58 Geth ¦ roast/finish-pod: 590b7dcaeb | (Alex Chen)++ | 3 files
10:58 Geth ¦ roast/finish-pod: Merge redundant test of =finish pod
10:58 Geth ¦ roast/finish-pod: review: https://github.com/perl6/roast/commit/590b7dcaeb
10:58 Geth ¦ roast: W4anD0eR96++ created pull request #355: Merge redundant test of =finish pod
10:58 Geth ¦ roast: review: https://github.com/perl6/roast/pull/355
10:58 synopsebot SPEC#355 [open]: https://github.com/perl6/roast/pull/355 Merge redundant test of =finish pod
11:05 Zoffix "Thanks for the report! We'd welcome a pull request with test cases.": https://github.com/github/linguist/issues/3906#issuecomment-344213665
11:05 Zoffix If anyone wants to hack a bit of ruby
11:06 Zoffix wander: those are "smart links". Don't know how they work but they show up on desin.perl6.org http://design.perl6.org/S02.html#Lexical_Conventions (notice right-aligned S02-* links). I don't pay much attention to these since design.perl6.org is now a historical document that's no longer actively gets updated
11:08 Geth ¦ roast: 590b7dcaeb | (Alex Chen)++ | 3 files
11:08 Geth ¦ roast: Merge redundant test of =finish pod
11:08 Geth ¦ roast: review: https://github.com/perl6/roast/commit/590b7dcaeb
11:08 Geth ¦ roast: f7f542e08e | (Zoffix Znet)++ (committed using GitHub Web editor) | 3 files
11:08 Geth ¦ roast: Merge pull request #355 from perl6/finish-pod
11:08 Geth ¦ roast:
11:08 Geth ¦ roast: Merge redundant test of =finish pod
11:08 Geth ¦ roast: review: https://github.com/perl6/roast/commit/f7f542e08e
11:10 wander ok i see it.
11:11 wander the architecture of roast is quite different from that of historical specs.
11:13 wander I find it annoying that tests of pod are scattered everywhere
11:15 Zoffix :)
11:15 wander some is in 'S02-lexical-conventions/comments.t', some is in 'S02-lexical-conventions/pod-in-multi-line-exprs.t', and most in 'S02-literials/pod.t'
11:17 wander although some special pod cases are better to be in separated files, but the current situation is more messy.
11:31 releasable6 joined #perl6-dev
11:32 Zoffix w00t an email on local mongers group proposing a new name idea for Perl 6... Happy a local group is talking about Perl 6.
11:32 Zoffix The proposed name is the most bizarre one I've seen to date: "+-1"
11:34 * jnthn is surprised he hasn't seen Perly McPerlface yet
11:36 samcv +-1?
11:36 samcv haha jnthn
11:36 ufobat_ +-1 is perl4 again?
11:37 samcv perl5 - (-1)
11:38 Zoffix samcv: yeah: http://mail.pm.org/pipermail/toronto-pm/2017-November/004024.html
11:43 lizmat ±1   # unicode version
11:52 wander psix, [sɪks] or [pɪ-]
11:59 Zoffix Yeah, "psix where 'p' is silent" aka "P6" currently seems to be the leading candidate
11:59 jnthn Missing test file: t/spec/S02-lexical-conventions/begin_end_pod.t
11:59 jnthn Missing test file: t/spec/S02-lexical-conventions/end-pod.t
12:00 Zoffix jnthn: that's normal; work in progress
12:01 Zoffix wander will fix it: https://github.com/perl6/roast/pull/355#issuecomment-344225401
12:01 jnthn OK, cool
12:02 jnthn Just testing some MoarVM fixes that should elimiante a bit of flappiness
12:02 dogbert11 joined #perl6-dev
12:07 |Tux| joined #perl6-dev
12:08 geospeck joined #perl6-dev
12:08 Geth ¦ nqp: 75323714e2 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
12:08 Geth ¦ nqp: Bump to jnthn's latest concurrency fixes
12:08 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/75323714e2
12:08 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.10-70-gb379050...2017.10-75-ge694386
12:12 dogbert11 lizmat: the hang is still present :(
12:15 Geth ¦ rakudo: W4anD0eR96++ created pull request #1250: Satisfy roast commit
12:15 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1250
12:15 synopsebot RAKUDO#1250 [open]: https://github.com/rakudo/rakudo/pull/1250 Satisfy roast commit
12:15 Geth ¦ rakudo: 417d7dc5fe | (Alex Chen)++ (committed using GitHub Web editor) | t/spectest.data
12:15 Geth ¦ rakudo: Satisfy roast commit
12:15 Geth ¦ rakudo:
12:15 Geth ¦ rakudo: Relevant perl6/roast#355
12:15 Geth ¦ rakudo:
12:15 Geth ¦ rakudo: Run S02-lexical-conventions/finish-pod.t
12:15 Geth ¦ rakudo: Remove S02-lexical-conventions/begin_end_pod.t
12:15 Geth ¦ rakudo: Remove S02-lexical-conventions/end-pod.t
12:15 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/417d7dc5fe
12:15 Geth ¦ rakudo: 0e4b8cc086 | lizmat++ (committed using GitHub Web editor) | t/spectest.data
12:15 Geth ¦ rakudo: Merge pull request #1250 from W4anD0eR96/patch-1
12:15 Geth ¦ rakudo:
12:15 Geth ¦ rakudo: Satisfy roast commit
12:15 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0e4b8cc086
12:19 sergot joined #perl6-dev
12:28 Geth ¦ rakudo: 0378292e47 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
12:28 Geth ¦ rakudo: Bump NQP to get latest MoarVM concurrency fixes
12:28 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0378292e47
12:58 dogbert11 lizmat: did your SEGV disappear?
12:59 lizmat haven't tried yet
13:01 ufobat_ Zoffix, sorry I forgot about the CWD. PR has been updated :-)
13:17 Zoffix ufobat_: how come "next if nqp::iseq_s($part, $empty)" was removed?
13:22 ufobat_ wait a sec
13:26 ufobat_ i need to switch from daylight job to nighttime code mode
13:27 wander joined #perl6-dev
13:29 ufobat_ it was actually required to keep it, because on 'C:\' with skipping all empty party you wound't get the \ bag on the string
13:29 Zoffix ufobat_: no rush. I'd like to build this on Windows and try out a few things and I won't have access to my windows box for ~10h
13:29 ufobat_ on the other side the empty $part is handled as well in ...
13:30 ufobat_ the other/inner while loop
13:30 Zoffix m: "///".IO.resolve.say
13:30 camelia rakudo-moar 0378292e4: OUTPUT: «"/".IO␤»
13:30 Zoffix But that would now give "///".IO, wouldn't it?
13:30 ufobat_ https://github.com/ufobat/rakudo/blob/7990da7b76ddd154867589a84dd1baefb5eade22/src/core/IO/Path.pm#L305
13:31 ufobat_ > perl6 -e '$*SPEC= IO::Spec::Win32; IO::Path.new("C:\\\\\\").resolve.say'
13:31 ufobat_ "\C:".IO
13:31 Zoffix That's just the non-resolving cleanup codepath. It only triggers when it can't find the path on disk and when `:completely` flag is off
13:31 Zoffix ufobat_: that's with your patch?
13:31 ufobat_ aye
13:31 Zoffix Also, you can just use   `IO::Path::Win32.new("C:\\\\\\").resolve.say`
13:31 ufobat_ ah cool :-)
13:32 ufobat_ now i'd say that i would probably add a skip on nqp::push_s
13:32 ufobat_ in the else, if there is an empty $part
13:32 Zoffix m: my $*SPEC = IO::Spec::Win32; "//foo/bar/meow".IO.resolve.say
13:32 camelia rakudo-moar 0378292e4: OUTPUT: «"\foo\bar\meow".IO␤»
13:32 ufobat_ https://github.com/ufobat/rakudo/blob/7990da7b76ddd154867589a84dd1baefb5eade22/src/core/IO/Path.pm#L327
13:33 Zoffix That also is wrong.
13:33 Zoffix Oh wait
13:33 Zoffix m: my $*SPEC = IO::Spec::Win32; 「\\foo\bar\meow」.IO.resolve.say
13:33 camelia rakudo-moar 0378292e4: OUTPUT: «"\foo\bar\meow".IO␤»
13:33 Zoffix That is wrong.
13:33 ufobat_ > perl6 -e ' my $*SPEC = IO::Spec::Win32; "\\\\foo\\bar\\meow".IO.resolve.say '
13:33 ufobat_ "\foo\bar\meow".IO
13:34 ufobat_ yeah :( thats wrong
13:36 Zoffix It's possible a hackishish fixes could be detecting IO::Spec::Win32 $!SPEC in resolve and then, for Windows, using one of the path splitting methods to extract the UNC/volume thing and then just handling that speparately.
13:37 Zoffix m: IO::Spec::Win32.split(「\\foo\bar\meow」).perl.ay
13:37 camelia rakudo-moar 0378292e4: OUTPUT: «No such method 'ay' for invocant of type 'Str'. Did you mean any of these?␤    any␤    say␤␤  in block <unit> at <tmp> line 1␤␤»
13:37 Zoffix m: IO::Spec::Win32.split(「\\foo\bar\meow」).perl.say
13:37 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume("\\\\foo\\bar"), :dirname("\\"), :basename("meow"))␤»
13:38 Zoffix m: IO::Spec::Win32.split("\\\\\x[308]foo\\bar\\meow").perl.say
13:38 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume(""), :dirname("\\\̈foo\\bar"), :basename("meow"))␤»
13:38 Zoffix m: IO::Spec::Win32.split("C:\x[308]foo\\bar\\meow").perl.say
13:38 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume(""), :dirname("C:̈foo\\bar"), :basename("meow"))␤»
13:39 Zoffix m: IO::Spec::Win32.split("C:\\x[308]foo\\bar\\meow").perl.say
13:39 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume("C:"), :dirname("\\x[308]foo\\bar"), :basename("meow"))␤»
13:39 ufobat_ i was actually missing an.. probably wrong wording now, an NQPish version of IO::Spec::* and both IO::Path and IO::Spec:* would depend on this implmentation
13:41 Zoffix m: IO::Spec::Win32.split("C:\\foo\\bar\\\x[308]meow").perl.say
13:41 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume("C:"), :dirname("\\foo"), :basename("bar\̈meow"))␤»
13:45 ufobat_ m: say IO::Spec::Win32.split("\\\\host\\bla\blubb");
13:45 camelia rakudo-moar 0378292e4: OUTPUT: «(volume => \\host\blalubb dirname => \ basename => \)␤»
13:45 ufobat_ is that wrong?
13:46 Zoffix So basically, you'd do my $volume = %.parts<volume>; my $path = join $sep, %!parts<dirname  basename>; (the first %. is intentionally a method call, to set %!parts) and then use $path instead of self.absolute here: https://github.com/ufobat/rakudo/blob/7990da7b76ddd154867589a84dd1baefb5eade22/src/core/IO/Path.pm#L248-L258
13:46 Zoffix And the rest of $volume concation might work out. We need the `next if nqp::iseq_s($part, $empty)` check back, I think
13:47 Zoffix ufobat_: write this out in just normal Perl 6 code. Don't worry about nqp. Let's get it working right first and we (or someone else) can optimize it later.
13:47 Zoffix m: say IO::Spec::Win32.split("\\\\host\\bla\blubb").perl
13:47 camelia rakudo-moar 0378292e4: OUTPUT: «(:volume("\\\\host\\bla\blubb"), :dirname("\\"), :basename("\\"))␤»
13:47 Zoffix Looks weird by rightish to me. The \b is a backspace
13:48 * Zoffix &
13:48 ufobat_ sorry? didnt understand?
13:49 Zoffix ufobat_: which part? :)
13:49 perlpilot joined #perl6-dev
13:49 ufobat_ your last line :-)
13:50 Zoffix s/by/but/;
13:50 ufobat_ ah
13:50 ufobat_ but why is everyhing in the volume?
13:51 Zoffix ufobat_: it's a UNC path: https://en.wikipedia.org/wiki/Path_(computing)#Uniform_Naming_Convention
13:52 ufobat_ going to read it, thanks.
13:52 * ufobat_ must switch back to daylight job mode :)
13:53 wander joined #perl6-dev
13:54 Geth ¦ rakudo: 3cba620404 | (Elizabeth Mattijsen)++ | 2 files
13:54 Geth ¦ rakudo: Fix JSONizing exceptions, spotted by Garland_g[m]++
13:54 Geth ¦ rakudo:
13:54 Geth ¦ rakudo: When running with RAKUDO_EXCEPTIONS_HANDLER=JSON, any Exception that
13:54 Geth ¦ rakudo: contains another Exception as one of the attributes, would throw.  And
13:54 Geth ¦ rakudo: since we apparently don't have a CATCHer there, would give a very LTA
13:54 Geth ¦ rakudo: error message.  Fixed by moving the JSONizing of an Exception to
13:54 Geth ¦ rakudo: Rakudo::Internals::JSON, so it can recursively handle itself.  And
13:54 Geth ¦ rakudo: adapt the exception handling in Exception accordingly.
13:54 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/3cba620404
13:55 lizmat afaik, no RT ticket or GH issue for this one
13:58 Geth ¦ rakudo: b366859817 | (Elizabeth Mattijsen)++ | src/core/Exception.pm
13:58 Geth ¦ rakudo: Oops, this is dead code now
13:58 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/b366859817
14:00 Zoffix m: try +"x"; say $!.^attributes.grep(*.has_accessor)
14:00 camelia rakudo-moar 0378292e4: OUTPUT: «(Mu $!source Mu $!pos Mu $!reason)␤»
14:00 Zoffix m: try +"x"; say $!.Capture
14:00 camelia rakudo-moar 0378292e4: OUTPUT: «\(:pos(0), :reason("base-10 number must begin with valid digits or '.'"), :source("x"))␤»
14:50 llfourn joined #perl6-dev
14:57 pmurias joined #perl6-dev
15:13 dugword joined #perl6-dev
15:19 pmurias joined #perl6-dev
15:43 travis-ci joined #perl6-dev
15:43 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Bump NQP to get latest MoarVM concurrency fixes'
15:43 travis-ci https://travis-ci.org/rakudo/rakudo/builds/301916572 https://github.com/rakudo/rakudo/compare/0e4b8cc0867a...0378292e4716
15:43 travis-ci left #perl6-dev
15:43 buggable [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure).
16:05 AlexDaniel joined #perl6-dev
16:24 dugword joined #perl6-dev
16:47 AlexDaniel releasable6: status
16:47 releasable6 AlexDaniel, Next release in 4 days and ≈2 hours. No blockers. 0 out of 191 commits logged
16:47 releasable6 AlexDaniel, Details: https://gist.github.com/904de87605d3c8d7a913d268dd8d1370
16:51 TimToady joined #perl6-dev
16:55 geospeck left #perl6-dev
16:58 [Coke] AlexDaniel: OOC, do you have a job setup to clean up old gists?
16:59 AlexDaniel [Coke]: nope. The plan was to set up my own system for gists, but I never got to it. So I'm simply abusing github at this point
17:01 AlexDaniel also, I want old links to still work (e.g. if you stumble upon them in clog)
17:09 Geth ¦ nqp: 5aff9a2757 | (Jonathan Worthington)++ | 2 files
17:09 Geth ¦ nqp: Add support for a block no-inline flag
17:09 Geth ¦ nqp:
17:09 Geth ¦ nqp: And pass it down on the MoarVM backend.
17:09 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/5aff9a2757
17:09 Geth ¦ nqp: 7578d32889 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
17:09 Geth ¦ nqp: Get latest MoarVM with no inline flag support
17:09 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7578d32889
17:09 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.10-75-ge694386...2017.10-77-gb9a01f7
17:11 Geth ¦ rakudo: c1df0b1ba3 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
17:11 Geth ¦ rakudo: Bump NQP_REVISION for QAST::Block.no_inline
17:11 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/c1df0b1ba3
17:11 Geth ¦ rakudo: 0ff32c7f8e | (Jonathan Worthington)++ | 2 files
17:11 Geth ¦ rakudo: Set no_inline when the dispatcher is needed
17:11 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0ff32c7f8e
17:37 lizmat jnthn timotimo re RT #132225, it is not documented that $lock.protect: { } is supposed to return the result of the block
17:37 synopsebot RT#132225 [open]: https://rt.perl.org/Ticket/Display.html?id=132225 segmentation fault while concurrently updating SetHash
17:38 lizmat so maybe we should make it return Nil always?  method protect(Lock:D: &code --> Nil) {
17:38 lizmat this breaks some code in the setting, but that is overseeable and can be fixed
17:38 jnthn It'll break an *incredible* amount of code
17:38 lizmat this feels like a more sane solution that having all sorts of side-effects leaking out of the protected block through e.g. Proxy
17:39 jnthn Would be arguably could do is decont the result before releaseing the lock, though
17:39 lizmat or any other value that has a dedicated .sink method that may do evil things
17:39 * lizmat tries
17:39 jnthn That'd strip the Proxy off, though I dunno if it's solve the issue
17:40 lizmat probably not, as that would basically not do the STORE then
17:40 lizmat if I understand correctly, it was the Proxy.sink being responsible for doing the STORE that causes all of these issues in the first place
17:40 lizmat because it happens outside of the protected block
17:46 lizmat hmmm... seems the decont is doing the trick, does that know about Proxy ?
17:46 jnthn Ys
17:46 jnthn *yes
17:47 lizmat aha...
17:47 jnthn Because Proxy is a kind of container
17:47 * lizmat runs a spectest
17:57 [TuxCM] joined #perl6-dev
17:58 dugword joined #perl6-dev
17:58 Geth ¦ rakudo: be9e19efd9 | (Elizabeth Mattijsen)++ | src/core/Lock.pm
17:58 Geth ¦ rakudo: Make sure Proxies are handles in Lock.protect
17:58 Geth ¦ rakudo:
17:58 Geth ¦ rakudo: - this fixes RT #132225
17:58 Geth ¦ rakudo: - adding the decont() apparently sinks the Proxy, jnthn++
17:58 Geth ¦ rakudo: - makes Lock.protect about 10% slower though  :-(
17:58 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/be9e19efd9
17:59 synopsebot RT#132225 [open]: https://rt.perl.org/Ticket/Display.html?id=132225 segmentation fault while concurrently updating SetHash
17:59 lizmat *handled  arghh
18:13 AlexDaniel joined #perl6-dev
19:53 TimToady joined #perl6-dev
19:54 robertle joined #perl6-dev
20:41 pmurias joined #perl6-dev
20:52 pmurias joined #perl6-dev
20:58 jnthn lizmat: It doesn't sink the proxy, it removes the value from the container, returning an read-only value
20:59 lizmat jnthn: then I either don't understand the problem, or the fix :-(
20:59 lizmat I though the problem was that the Proxy was returned by the protect block
20:59 lizmat *thought
21:00 lizmat and that sinking the Proxy object *outside* of the block made sure the STORE was done, causing havoc
21:00 jnthn Hm, I don't know that's how it works?
21:00 lizmat because it was so done concurrently outside of the protected block
21:00 jnthn I thought the issue was that the Proxy is decont'd in order to sink it
21:01 jnthn A Proxy isn't itself sunk, the value inside of it is
21:01 jnthn Just like we don't sink a Scalar, but rather the value inside of it
21:01 lizmat what *is* the value inside the Proxy ?
21:01 lizmat there's just two methods in there, no ?
21:01 jnthn Whatever FETCH returns
21:02 jnthn So the problem, as I understood it, is that the FETCH was called not under look
21:02 jnthn *lock
21:02 lizmat ah
21:02 jnthn And that could go badly wrong if other threads might mutate the underlying hash at the same time
21:02 lizmat hmmm... ok
21:02 lizmat that improves my understanding, :-)
21:02 jnthn Since I guess FETCH reads from an nqp::hash?
21:02 lizmat yup
21:03 jnthn tbh, I didn't look at the code at all, I was debugging something else :)
21:03 jnthn Glad my guess was helpful :)
21:03 lizmat yup, nailed it :-)
21:04 jnthn I think we get 10% off array access/assignment (well, actually a bit more if the loop I was testing it in were accounted for) once the things blocking inlining postcircumfix:<[ ]> are resolved
21:04 jnthn I think it'll allow quite a few more inlines too
21:04 lizmat that would be cool, especially for test-t I think
21:05 jnthn Yeah, I suspect that might drop a bit
21:06 jnthn I guess it'll help hashes too
21:09 Geth ¦ rakudo: 142c1d657c | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
21:09 Geth ¦ rakudo: A more HLL approach to handling exceptions in END
21:09 Geth ¦ rakudo:
21:09 Geth ¦ rakudo: The original code was sorta cargo-culted from NQP at the time.
21:09 Geth ¦ rakudo: Having it in HLL code means we can also handle exceptions at this
21:09 Geth ¦ rakudo: point in time in HLL code.  Also it seemed like a good idea to not
21:09 Geth ¦ rakudo: have one END block's exception blow it for all of the other ones.
21:09 Geth ¦ rakudo: Finally, give a summary of execution errors that occurred when done.
21:09 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/142c1d657c
21:17 Geth ¦ rakudo: fff43fd709 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
21:17 Geth ¦ rakudo: Oops, fix typo in message, MasterDuke17++
21:17 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/fff43fd709
21:36 releasable6 joined #perl6-dev
22:02 unicodable6 joined #perl6-dev
22:03 committable6 joined #perl6-dev
22:03 bisectable6 joined #perl6-dev
22:03 bloatable6 joined #perl6-dev
22:03 statisfiable6 joined #perl6-dev
22:28 dct joined #perl6-dev
22:54 dct joined #perl6-dev
23:31 tbrowder can someone answer an nqp question: when did nqp get kebab identifier names?  for some reason i thought nqp identifiers basically had same rules as p5.
23:32 jnthn I forget exactly, though I think "a little after Perl 6 got them"
23:33 jnthn It would have been a pretty trivial thing to port over
23:34 tbrowder hm, did yr nqp course talk about that, it’s about the only doc on nqp i’ve seen?
23:35 jnthn I'm not sure, but it was fairly late on that Perl 6 standardized on - and ' in identifiers in CORE.setting
23:35 jnthn uh, actually I guess we don't use ' anywhere in there :)
23:35 lizmat tbrowder: there's also https://github.com/perl6/nqp/blob/master/docs/ops.markdown
23:35 * lizmat goes to bed&
23:36 tbrowder jnthn: did you see my email to yr edument address?
23:37 tbrowder lizmat: yes, you are right about the ops doc”
23:37 jnthn tbrowder: I did, I even ran a callgrind run today to try and figure out what to answer :)
23:40 tbrowder if p6 can get good (better) ascii performance, i will push it hard for brl-cad use (http://brlcad.org)
23:41 jnthn The summary is that a bunch of the cycles are spend in the decoder, and I get I can make that go faster
23:41 jnthn *spent
23:41 jnthn *bet
23:41 jnthn heh, this is why I'm not replying to it at this time of evening :)
23:41 tbrowder time for bed, jnthn...
23:42 jnthn Indeed, it almost is :)
23:44 jnthn Anyway, will do a little more analysis and get back to your soon.
23:44 tbrowder btw, brl-cad was started by Mike Muus, the author of ping.
23:44 jnthn Of...ping? Wow. :)
23:44 tbrowder *Muuss
23:45 tbrowder yep, died tragically young in a car accident
23:45 MasterDuke_ huh, didn't realize he did cad stuff also
23:45 MasterDuke_ yeah, around this time a couple years ago, i think it was right after thanksgiving
23:47 tbrowder oh, yeah, big time. brl-cad was open-sourced by US Army early this century. great cad pkg used by military and others for all kinds of analyses.
23:49 tbrowder post-processing brl-cad runs was how i got started with p5
23:50 tbrowder and p6 will be even better with it!

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