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.
Zoffix 6.d release when all of them get changed)
.tell wander 6.d release when all of them get changed)
yoleaux Zoffix: I'll pass your message to wander.
ugexe it also tells github its a perl6 file 00:33
hmmm but it does not identify `v6.c` as perl6 (only `use v6;`) 00:36
github.com/perl6/roast/search?l=perl 00:37
Zoffix It does, it just has heuristics for `strict` and `package` keywords with higher precedence 01:03
Ah, it does for non-.t files 01:04
But for .t it has semicolon right after `6`: github.com/github/linguist/blob/ma...cs.rb#L464
And .pm is similarly busted: github.com/github/linguist/blob/ma...#L369-L375 01:06
.pl would work: github.com/github/linguist/blob/ma...#L359-L366
Basically all three need to be collected and a single sane thing should be made and used for all three 01:07
Filed as github.com/github/linguist/issues/3906 01:10
samcv MasterDuke_++ reminded me of something i was thinking of doing during my grant but should shortly last in MoarVM master 04:23
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:24
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
00:20Z <Zoffix> wander: 6.d release when all of them get changed)
wander sorry
accidentally send early log 04:56
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:02
for usage, we can add `use` info when testing; but is it proper to hardcoding in test files? 05:05
samcv wander: 6.d is the next version of perl6 05:15
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:18
wander a new branch, i got it. 05:22
[Tux] Rakudo version 2017.10-186-gd6a3a7a1a - MoarVM version 2017.10-71-g8744857ed
csv-ip5xs1.123 - 1.136
csv-ip5xs-2012.913 - 13.098
csv-parser12.711 - 12.851
csv-test-xs-200.437 - 0.439
test12.145 - 12.288
test-t3.275 - 3.295
test-t --race1.393 - 1.455
test-t-2060.912 - 61.362
test-t-20 --race20.880 - 21.164
07:51
lizmat Files=1229, Tests=75833, 316 wallclock secs (14.79 usr 5.35 sys + 2187.35 cusr 215.48 csys = 2422.97 CPU) 08:26
Geth nqp: 7ce25e23d1 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
Bump Moar to get collaps_strands improvement
08:53
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...1-g8744857
7d7e7a0701 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION

This reverts commit 7ce25e23d183126a913a4f54fa0d105309573e59.
Alas, this breaks quite a lot :-(
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...0-gb379050
ufobat_ Zoffix, done and updated the PR 10:22
wander I've seen comments like 10:28
# L<S02/Double-underscore forms/"The double-underscore forms are going away:">
what's the use of L tag? I know how L tag works, but don't know why we put it here. 10:29
what's the meaning of the link 10:30
or say 10:34
by which conventions can I write down such a link 10:37
Geth roast/finish-pod: 590b7dcaeb | (Alex Chen)++ | 3 files
Merge redundant test of =finish pod
10:58
roast: W4anD0eR96++ created pull request #355:
Merge redundant test of =finish pod
synopsebot SPEC#355 [open]: github.com/perl6/roast/pull/355 Merge redundant test of =finish pod
Zoffix "Thanks for the report! We'd welcome a pull request with test cases.": github.com/github/linguist/issues/...-344213665 11:05
If anyone wants to hack a bit of ruby
wander: those are "smart links". Don't know how they work but they show up on desin.perl6.org 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:06
Geth roast: 590b7dcaeb | (Alex Chen)++ | 3 files
Merge redundant test of =finish pod
11:08
roast: f7f542e08e | (Zoffix Znet)++ (committed using GitHub Web editor) | 3 files
Merge pull request #355 from perl6/finish-pod

Merge redundant test of =finish pod
wander ok i see it. 11:10
the architecture of roast is quite different from that of historical specs. 11:11
I find it annoying that tests of pod are scattered everywhere 11:13
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'
although some special pod cases are better to be in separated files, but the current situation is more messy. 11:17
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
The proposed name is the most bizarre one I've seen to date: "+-1"
jnthn is surprised he hasn't seen Perly McPerlface yet 11:34
samcv +-1? 11:36
haha jnthn
ufobat_ +-1 is perl4 again?
samcv perl5 - (-1) 11:37
Zoffix samcv: yeah: mail.pm.org/pipermail/toronto-pm/20...04024.html 11:38
lizmat ±1 # unicode version 11:43
wander psix, [sɪks] or [pɪ-] 11:52
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
Missing test file: t/spec/S02-lexical-conventions/end-pod.t
Zoffix jnthn: that's normal; work in progress 12:00
wander will fix it: github.com/perl6/roast/pull/355#is...-344225401 12:01
jnthn OK, cool
Just testing some MoarVM fixes that should elimiante a bit of flappiness 12:02
Geth nqp: 75323714e2 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
Bump to jnthn's latest concurrency fixes
12:08
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...5-ge694386
dogbert11 lizmat: the hang is still present :( 12:12
Geth rakudo: W4anD0eR96++ created pull request #1250:
Satisfy roast commit
12:15
synopsebot RAKUDO#1250 [open]: github.com/rakudo/rakudo/pull/1250 Satisfy roast commit
Geth rakudo: 417d7dc5fe | (Alex Chen)++ (committed using GitHub Web editor) | t/spectest.data
Satisfy roast commit

Relevant perl6/roast#355
Run S02-lexical-conventions/finish-pod.t Remove S02-lexical-conventions/begin_end_pod.t Remove S02-lexical-conventions/end-pod.t
rakudo: 0e4b8cc086 | lizmat++ (committed using GitHub Web editor) | t/spectest.data
Merge pull request #1250 from W4anD0eR96/patch-1

Satisfy roast commit
rakudo: 0378292e47 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
Bump NQP to get latest MoarVM concurrency fixes
12:28
dogbert11 lizmat: did your SEGV disappear? 12:58
lizmat haven't tried yet 12:59
ufobat_ Zoffix, sorry I forgot about the CWD. PR has been updated :-) 13:01
Zoffix ufobat_: how come "next if nqp::iseq_s($part, $empty)" was removed? 13:17
ufobat_ wait a sec 13:22
i need to switch from daylight job to nighttime code mode 13:26
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
ufobat_ on the other side the empty $part is handled as well in ...
the other/inner while loop 13:30
Zoffix m: "///".IO.resolve.say
camelia "/".IO
Zoffix But that would now give "///".IO, wouldn't it?
ufobat_ github.com/ufobat/rakudo/blob/7990...th.pm#L305
> perl6 -e '$*SPEC= IO::Spec::Win32; IO::Path.new("C:\\\\\\").resolve.say' 13:31
"\C:".IO
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
ufobat_: that's with your patch?
ufobat_ aye
Zoffix Also, you can just use `IO::Path::Win32.new("C:\\\\\\").resolve.say`
ufobat_ ah cool :-)
now i'd say that i would probably add a skip on nqp::push_s 13:32
in the else, if there is an empty $part
Zoffix m: my $*SPEC = IO::Spec::Win32; "//foo/bar/meow".IO.resolve.say
camelia "\foo\bar\meow".IO
ufobat_ github.com/ufobat/rakudo/blob/7990...th.pm#L327
Zoffix That also is wrong. 13:33
Oh wait
m: my $*SPEC = IO::Spec::Win32; 「\\foo\bar\meow」.IO.resolve.say
camelia "\foo\bar\meow".IO
Zoffix That is wrong.
ufobat_ > perl6 -e ' my $*SPEC = IO::Spec::Win32; "\\\\foo\\bar\\meow".IO.resolve.say '
"\foo\bar\meow".IO
yeah :( thats wrong 13:34
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:36
m: IO::Spec::Win32.split(「\\foo\bar\meow」).perl.ay 13:37
camelia No such method 'ay' for invocant of type 'Str'. Did you mean any of these?
any
say

in block <unit> at <tmp> line 1
Zoffix m: IO::Spec::Win32.split(「\\foo\bar\meow」).perl.say
camelia (:volume("\\\\foo\\bar"), :dirname("\\"), :basename("meow"))
Zoffix m: IO::Spec::Win32.split("\\\\\x[308]foo\\bar\\meow").perl.say 13:38
camelia (:volume(""), :dirname("\\\̈foo\\bar"), :basename("meow"))
Zoffix m: IO::Spec::Win32.split("C:\x[308]foo\\bar\\meow").perl.say
camelia (:volume(""), :dirname("C:̈foo\\bar"), :basename("meow"))
Zoffix m: IO::Spec::Win32.split("C:\\x[308]foo\\bar\\meow").perl.say 13:39
camelia (:volume("C:"), :dirname("\\x[308]foo\\bar"), :basename("meow"))
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
Zoffix m: IO::Spec::Win32.split("C:\\foo\\bar\\\x[308]meow").perl.say 13:41
camelia (:volume("C:"), :dirname("\\foo"), :basename("bar\̈meow"))
ufobat_ m: say IO::Spec::Win32.split("\\\\host\\bla\blubb"); 13:45
camelia (volume => \\host\bla\blubb dirname => \ basename => \)
ufobat_ is that wrong?
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: github.com/ufobat/rakudo/blob/7990...#L248-L258 13:46
And the rest of $volume concation might work out. We need the `next if nqp::iseq_s($part, $empty)` check back, I think
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
m: say IO::Spec::Win32.split("\\\\host\\bla\blubb").perl
camelia (:volume("\\\\host\\bla\blubb"), :dirname("\\"), :basename("\\"))
Zoffix Looks weird by rightish to me. The \b is a backspace
Zoffix & 13:48
ufobat_ sorry? didnt understand?
Zoffix ufobat_: which part? :) 13:49
ufobat_ your last line :-)
Zoffix s/by/but/; 13:50
ufobat_ ah
but why is everyhing in the volume?
Zoffix ufobat_: it's a UNC path: en.wikipedia.org/wiki/Path_(comput...Convention 13:51
ufobat_ going to read it, thanks. 13:52
ufobat_ must switch back to daylight job mode :)
Geth rakudo: 3cba620404 | (Elizabeth Mattijsen)++ | 2 files
Fix JSONizing exceptions, spotted by Garland_g[m]++

When running with RAKUDO_EXCEPTIONS_HANDLER=JSON, any Exception that contains another Exception as one of the attributes, would throw. And since we apparently don't have a CATCHer there, would give a very LTA error message. Fixed by moving the JSONizing of an Exception to Rakudo::Internals::JSON, so it can recursively handle itself. And adapt the exception handling in Exception accordingly.
13:54
lizmat afaik, no RT ticket or GH issue for this one 13:55
Geth rakudo: b366859817 | (Elizabeth Mattijsen)++ | src/core/Exception.pm
Oops, this is dead code now
13:58
Zoffix m: try +"x"; say $!.^attributes.grep(*.has_accessor) 14:00
camelia (Mu $!source Mu $!pos Mu $!reason)
Zoffix m: try +"x"; say $!.Capture
camelia \(:pos(0), :reason("base-10 number must begin with valid digits or '.'"), :source("x"))
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Bump NQP to get latest MoarVM concurrency fixes' 15:43
travis-ci.org/rakudo/rakudo/builds/301916572 github.com/rakudo/rakudo/compare/0...78292e4716
buggable [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure).
AlexDaniel releasable6: status 16:47
releasable6 AlexDaniel, Next release in 4 days and ≈2 hours. No blockers. 0 out of 191 commits logged
AlexDaniel, Details: gist.github.com/904de87605d3c8d7a9...68dd8d1370
[Coke] AlexDaniel: OOC, do you have a job setup to clean up old gists? 16:58
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 16:59
also, I want old links to still work (e.g. if you stumble upon them in clog) 17:01
Geth nqp: 5aff9a2757 | (Jonathan Worthington)++ | 2 files
Add support for a block no-inline flag

And pass it down on the MoarVM backend.
17:09
nqp: 7578d32889 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Get latest MoarVM with no inline flag support
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...7-gb9a01f7
rakudo: c1df0b1ba3 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Bump NQP_REVISION for QAST::Block.no_inline
17:11
rakudo: 0ff32c7f8e | (Jonathan Worthington)++ | 2 files
Set no_inline when the dispatcher is needed
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]: rt.perl.org/Ticket/Display.html?id=132225 segmentation fault while concurrently updating SetHash
lizmat so maybe we should make it return Nil always? method protect(Lock:D: &code --> Nil) { 17:38
this breaks some code in the setting, but that is overseeable and can be fixed
jnthn It'll break an *incredible* amount of code
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
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
lizmat tries
jnthn That'd strip the Proxy off, though I dunno if it's solve the issue
lizmat probably not, as that would basically not do the STORE then 17:40
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
because it happens outside of the protected block
hmmm... seems the decont is doing the trick, does that know about Proxy ? 17:46
jnthn Ys
*yes
lizmat aha... 17:47
jnthn Because Proxy is a kind of container
lizmat runs a spectest
Geth rakudo: be9e19efd9 | (Elizabeth Mattijsen)++ | src/core/Lock.pm
Make sure Proxies are handles in Lock.protect

  - this fixes RT #132225
  - adding the decont() apparently sinks the Proxy, jnthn++
  - makes Lock.protect about 10% slower though :-(
17:58
synopsebot RT#132225 [open]: rt.perl.org/Ticket/Display.html?id=132225 segmentation fault while concurrently updating SetHash 17:59
lizmat *handled arghh
jnthn lizmat: It doesn't sink the proxy, it removes the value from the container, returning an read-only value 20:58
lizmat jnthn: then I either don't understand the problem, or the fix :-( 20:59
I though the problem was that the Proxy was returned by the protect block
*thought
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?
lizmat because it was so done concurrently outside of the protected block
jnthn I thought the issue was that the Proxy is decont'd in order to sink it
A Proxy isn't itself sunk, the value inside of it is 21:01
Just like we don't sink a Scalar, but rather the value inside of it
lizmat what *is* the value inside the Proxy ?
there's just two methods in there, no ?
jnthn Whatever FETCH returns
So the problem, as I understood it, is that the FETCH was called not under look 21:02
*lock
lizmat ah
jnthn And that could go badly wrong if other threads might mutate the underlying hash at the same time
lizmat hmmm... ok
that improves my understanding, :-)
jnthn Since I guess FETCH reads from an nqp::hash?
lizmat yup
jnthn tbh, I didn't look at the code at all, I was debugging something else :) 21:03
Glad my guess was helpful :)
lizmat yup, nailed it :-)
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
I think it'll allow quite a few more inlines too
lizmat that would be cool, especially for test-t I think
jnthn Yeah, I suspect that might drop a bit 21:05
I guess it'll help hashes too 21:06
Geth rakudo: 142c1d657c | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
A more HLL approach to handling exceptions in END

The original code was sorta cargo-culted from NQP at the time. Having it in HLL code means we can also handle exceptions at this point in time in HLL code. Also it seemed like a good idea to not have one END block's exception blow it for all of the other ones. Finally, give a summary of execution errors that occurred when done.
21:09
rakudo: fff43fd709 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Oops, fix typo in message, MasterDuke17++
21:17
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:31
jnthn I forget exactly, though I think "a little after Perl 6 got them" 23:32
It would have been a pretty trivial thing to port over 23:33
tbrowder hm, did yr nqp course talk about that, it’s about the only doc on nqp i’ve seen? 23:34
jnthn I'm not sure, but it was fairly late on that Perl 6 standardized on - and ' in identifiers in CORE.setting 23:35
uh, actually I guess we don't use ' anywhere in there :)
lizmat tbrowder: there's also github.com/perl6/nqp/blob/master/d...s.markdown
lizmat goes to bed&
tbrowder jnthn: did you see my email to yr edument address? 23:36
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 :)
tbrowder if p6 can get good (better) ascii performance, i will push it hard for brl-cad use (brlcad.org) 23:40
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
*spent
*bet
heh, this is why I'm not replying to it at this time of evening :)
tbrowder time for bed, jnthn...
jnthn Indeed, it almost is :) 23:42
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.
jnthn Of...ping? Wow. :)
tbrowder *Muuss
yep, died tragically young in a car accident 23:45
MasterDuke_ huh, didn't realize he did cad stuff also
yeah, around this time a couple years ago, i think it was right after thanksgiving
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:47
post-processing brl-cad runs was how i got started with p5 23:49
and p6 will be even better with it! 23:50