BenGoldberg I've been looking at a few Actions classes used with grammars, and noticed something a bit odd: I have not seen one single method which *doesn't* end in make(...) or $/.make: ... 01:59
It seems to me that we should offer a wrapper class which takes an Actions-like object (which *doesn't* have .made) on the methods, and which wraps each method in a version which does call .make; this would save users a good bit of typing. 02:02
raiph BenGoldberg: perhaps an :ast argument that takes an actions class and, if a method does not itself set $/.ast before returning, takes the return value and sets $/.ast to it? 02:34
I mean an :ast argument added to parse
ugexe maybe it could be accomplished if the return types were defined 02:41
BenGoldberg With the current setup, the return values of methods are totally ignored; the 'make' function (or method) stores it's argument in the $/ variable in such a way that .made can later fetch it. 04:46
[Tux] This is Rakudo version 2017.05-399-gbdf2019d4 built on MoarVM version 2017.05-76-gba6725f3 07:10
csv-ip5xs 2.810
test 13.039
test-t 4.362 - 4.427
csv-parser 13.870
lizmat Files=1204, Tests=61803, 218 wallclock secs (13.07 usr 4.78 sys + 1321.65 cusr 119.56 csys = 1459.06 CPU) 08:33
cono any1 have a minute to look: github.com/perl6/roast/pull/270 09:13
lizmat cono: is there any reason you use Thread.new instead of start { } ? 09:31
cono start { } gives me new thread ? 09:33
jnthn It schedules stuff on the thread pool
So no, doesn't promise a new thread
cono but from high level perspective it should work the same? 09:34
let me try 09:35
jnthn Probably it would work the same, looking at the code, yes
cono yeah, works fine, let me re-push 09:36
done 09:37
lizmat cono: instead of Thread.start I meant start { } 09:38
jnthn That said, if you start { ... } you should await it somewhere so any errors will show up 09:39
And, given it's a test, maybe the fewer other features it depends on the better, so while start { ... } might be better Perl 6 code in general, perhaps using Thread explicitly makes it a better test. 09:40
Don't feel strongly on it either way, though
lizmat well, lemme put it this way: if it doesn't work with start { }, most users of IO::Socket::Async will see errors 09:41
jnthn Huh?
This is the test for IO::Socket::INET 09:42
lizmat so perhaps we need both: with Thread.new to make sure the lower parts work, and with start { } to make sure it interacts correctly with HLL
ah, oops
jnthn Sure; pretty sure we do have other tests that use IO::Socket::INET + start together, though
It's just that this was our most minimal set of tests for it
Rather than checking integration with other things
lizmat ok
then I will refrain from making things more complicated :-) 09:43
jnthn But yeah, if start { ... } blocks were busted you'd have a very busted Perl 6 :)
cono so if no1 has any other concern may I click "merge" ? :) 10:47
eveo yeah, merge 11:00
tbrowder hi, #perl6 11:08
i'm working on my lite linter and a good test p6 prog for input to it. in fiddling with various combinations of =begin/=end pod blocks, both matched and unmatched, i'm finding possible inconsistencies in how perl6 treats them. it's too early to wave a flag but i thought the actual indentation of a =begin or =end isn't supposed to matter but it seems it sometimes does. 11:13
oops, wrong channel... 11:31
Geth roast: cd224efdc4 | cono++ | 4 files
Rework IO-Socket-INET test to make it more self-sufficient

Basing rework on improvement: MoarVM/MoarVM#600
11:38
roast: 09b5e818e8 | cono++ | S32-io/IO-Socket-INET.t
Rework Thread.new -> Thread.start
roast: 6da9a282a5 | cono++ (committed using GitHub Web editor) | 4 files
Merge pull request #270 from cono/socket_get_port

Rework IO-Socket-INET test to make it more self-sufficient
eveo NeuralAnomaly: 397 12:14
NeuralAnomaly: status
NeuralAnomaly eveo, [✘] Next release will be in 4 days and 16 hours. Since last release, there are 69 new still-open tickets (66 unreviewed and 0 blockers) and 397 unreviewed commits. See perl6.fail/release/stats for details
eveo ponders how to filter out dupes from those 397 commits
Oh, looks like I won't have to. Luckily the site lists the dupe right after the original 12:17
And the dupes are the ones with double profile icons: github.com/rakudo/rakudo/compare/2017.05...HEAD 12:20
jnthn Righty, back to work on the Proc refactors...
Geth rakudo/proc-using-proc-async: 6 commits pushed by (Jonathan Worthington)++ 12:25
jnthn (that was a rebase on nom)
eveo jnthn: should this change be made for $.ln-in in IO::Handle and IO::CatHandle too? github.com/rakudo/rakudo/commit/18...fba6fcb392 12:26
nl-in I mean
jnthn eveo: Yeah, it can be 12:31
eveo: It's just a code cleanup, not a functionality chance, to be clear 12:32
eveo Ah 12:33
Geth rakudo/proc-using-proc-async: 3adb14af96 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationRepository.pm
Switch to Proc::Async in PrecompilationRepository.
12:48
jnthn That passes all spectests still :) 12:49
Geth rakudo/proc-using-proc-async: 3da80259c4 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
Introduce read-internal and write-internal.

These are working names for the operations. They are the low-level, internal, methods for reading and writing from a handle. Since all of the higher-level ones now call them, this means that it is much easier to subclass IO::Handle: only this pair of methods and a handful of others need be overridden, and then you get all of the string-level and mixed-mode input and string-level output for free.
This is in preparation for IO::Pipe switching to use Proc::Async, which will become a concrete illustration of this.
13:16
rakudo/proc-using-proc-async: 40dd369d32 | (Jonathan Worthington)++ | src/core/Proc.pm
Re-work shell in terms of spawn.

Since there's really not much difference, and no reason to make a distinction at the VM op level that is so easily replicated at the Perl 6 level.
13:38
eveo m: my num $ = my str $ = 'Infinity'; 13:41
camelia Can't convert 'Infinity' to num: trailing stuff
in block <unit> at <tmp> line 1
eveo "trailing stuff"? heh. 13:42
jnthn win 28
buggable jnthn, Thank you for entering Accidental /win Lottery! The next draw will happen in -2 weeks, 2 days, 10 hours, 17 minutes, and 40 seconds
eveo heh
Temporal bugs will hunt me forever.
Geth rakudo/proc-using-proc-async: 2ccd5cb1f5 | (Jonathan Worthington)++ | src/core/Proc.pm
Don't use nqp::ops to implement QX.

Do it in terms of the Proc API instead, to ease refactoring.
13:49
jnthn OK, I think I've probably done all I can to make the re-working of Proc using Proc::Async stand a chance of going smoothly :) 13:50
Time to go for the big step 13:51
[Coke] jnthn++ 13:55
eater very cool jnthn :D 14:09
eveo adds a new "Internal" changelog section to log large internal stuff, like handle encoding refactor, or proc-as-proc-async refactor that still has some inpact on users, even if there's no apparent change in external API 14:47
jnthn eveo: Makes sense to me 14:48
Man, some effort to get this thing wroking 14:54
At least it passes make test now
jnthn spectests
Aww, 6 failures 14:56
ugexe eveo: that branch might solve your weird DESTROY test failure since it uses proc async for precomp 14:57
eveo Cool
.ask lizmat Do you remember which bug it was? Was it :{42 => 0}.Set still having 42 in it, despite value being 0? "This actually also fixes a hereto unseen bug in objecthash.Set coercion." github.com/rakudo/rakudo/commit/16...1ca5740fd8 15:46
yoleaux eveo: I'll pass your message to lizmat.
Geth rakudo/proc-using-proc-async: 7c279f479f | (Jonathan Worthington)++ | src/core/IO/Handle.pm
Introduce eof-internal also.

Which is always about the underlying handle, and not about the decoder.
15:52
rakudo/proc-using-proc-async: 92bd7e4f54 | (Jonathan Worthington)++ | 3 files
Re-implement Proc in terms of Proc::Async.

Almost works; the case of chaining the output of one Proc into another is still to come.
jnthn OK, got exactly one failing test case across the whole spectest with that lot 15:53
I know what it is, but will leave it until the morning to fix :)
eveo \o/ 15:54
lizmat eveo: I think I showed the bug on Channel shortly before the fix 15:57
yoleaux 15:47Z <eveo> lizmat: Do you remember which bug it was? Was it :{42 => 0}.Set still having 42 in it, despite value being 0? "This actually also fixes a hereto unseen bug in objecthash.Set coercion." github.com/rakudo/rakudo/commit/16...1ca5740fd8
eveo Don't see anything in logs on that day±1. I'll just log it as fix for :{}.Set ignoring values. 15:59
c: 2017.05 :{42 => 0}.Set.say 16:00
committable6 eveo, ¦2017.05: «set(42)»
eveo c: HEAD :{42 => 0}.Set.say
committable6 eveo, ¦HEAD(bdf2019): «set()»
lizmat eveo: yeah, objectHash.Set not checking for truthiness was the problem 16:01
eveo cool 16:02
jnthn Yay, r-j seems to have also survived the changes 16:14
oh darn, almost :/ 16:15
make install somehow blows up 16:17
In install-core-dist
Of course I'm presuming this is my change
eveo Oh god. 16:21
I made a buggy bingo program. And now 200+ people are emailing me about me.
about it
lizmat
.oO( bingo! )
Geth nqp: cabb94f14c | (Jonathan Worthington)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/DecoderInstance.java
Mark decoder instnace methods synchronized.

This shouldn't really be needed, but it seems it for some reason is at present.
16:36
jnthn Alrighty, that'll at least mean the JVM doesn't block the merge tomorrow :) 16:37
Will fix the last test I mentioned earlier and merge this lot tomorrow
lizmat good to have something for next week's P6W :-) 16:49
eveo .tell stmuk you have a PR in this repo. Also, looks like the Issues tab is disabled: github.com/stmuk/tap-harness6-prove6 17:50
yoleaux eveo: I'll pass your message to stmuk.
dogbert17 m: sub foo(--> Cool(Int)) { Nil } 17:54
camelia ( no output )
dogbert17 commit: 2016.06 ub foo(--> Cool(Int)) { Nil }
committable6 dogbert17, gist.github.com/a27df3ff2131e7cce3...d8c35ff0a8
dogbert17 commit: 2016.06 sub foo(--> Cool(Int)) { Nil }
committable6 dogbert17, ¦2016.06: «»
dogbert17 commit: 2016.01 sub foo(--> Cool(Int)) { Nil } 17:55
committable6 dogbert17, ¦2016.01: «»
eveo Nils bypasss type checks
dogbert17 but why can now have corecion types as return constraints?
s/why/we/
eveo m: sub foo(--> Int(Cool)) { "42" }().^name.say 17:56
camelia Int
eveo mc: sub foo(--> Int(Cool)) { "42" }().^name.say
committable6 eveo, ¦2015.12: «Type check failed for return value; expected Int(Cool) but got Str␤ in sub foo at /tmp/24upj8BSrJ line 1␤ in block <unit> at /tmp/24upj8BSrJ line 1␤ «exit code = 1»»
eveo Looks like it
dogbert17 cool, fixing up some docs again
eveo .ask lizmat do you think we should add some custom iterators for Array.Seq/List.Seq/Range.Seq seqs? Seq.sink does .sink-all, which on default Iterator .pull-ones until end, which causes sunk .Seq of infinite Array/List/Range (I don't know what else) hang 18:10
yoleaux eveo: I'll pass your message to lizmat.
eveo Well, List already got a custom iterator; should we add .sink-all to it 18:13
(can we?)
Ah, no we can't. But we can for range. 18:14
I'm gonna add one for Range righ tnow 18:15
Eh, never mind. I don't know what I'm doing 18:18
Oh wait. there's already a rpoper iterator \\oi/ 18:19
.tell lizmat nevermind. I realized we can't do that for List/Array 'cause they may be fed from a Seq. For Range, it already got a proper iterator, just going to give it a Seq method so it doesn't go through Any.Seq that does .list on it 18:21
yoleaux eveo: I'll pass your message to lizmat.
eveo ZofBot: Seqs, Drugs, and Rock'n'Roll
ZofBot eveo, The rest of the time, it doesn't really matter whether the reader takes "
eveo m: Seq.new((1..*).iterator) 18:25
or maybe not :| 18:26
camelia (timeout)
eveo Ah in that case it goes through the special case that handles Inf 18:27
.tell lizmat nevermind. Didn't add anything. I see (1..*).iterator goes through special case without pull-all. Just gonna leave it all as is
yoleaux eveo: I'll pass your message to lizmat.
eveo NeuralAnomaly: status 18:28
NeuralAnomaly eveo, [✘] Next release will be in 4 days and 10 hours. Since last release, there are 62 new still-open tickets (0 unreviewed and 1 blockers) and 1 unreviewed commits. See perl6.fail/release/stats for details
eveo ^ marked perl6-debug-m as blocker to reminder to self to try to fix it before release.
lizmat what can I say? :-) 18:30
yoleaux 18:10Z <eveo> lizmat: do you think we should add some custom iterators for Array.Seq/List.Seq/Range.Seq seqs? Seq.sink does .sink-all, which on default Iterator .pull-ones until end, which causes sunk .Seq of infinite Array/List/Range (I don't know what else) hang
18:21Z <eveo> lizmat: nevermind. I realized we can't do that for List/Array 'cause they may be fed from a Seq. For Range, it already got a proper iterator, just going to give it a Seq method so it doesn't go through Any.Seq that does .list on it
18:27Z <eveo> lizmat: nevermind. Didn't add anything. I see (1..*).iterator goes through special case without pull-all. Just gonna leave it all as is
eveo Nothing :D 18:31
Geth rakudo/nom: 0095cd8e27 | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/ChangeLog
Log all changes to date

Documents commits: 0104a439 01d948d2 02614f64 05f3e9a0 0646d3fa 06cd0bc3 071c88cb 07bff0e5 0a100825 0cb4df44 0e9ee0d1 10e9c8ba 122aca1c 12d31e36 1369632f 160de7e6 18dd0741 1ac7996a 1c16bf2e 1ed284e2 20310d7d 211063c7 232cf190 252dbf3a 27f09e9d 2816ef71 2ac120ce 2e041b06 2efd812c 326faed6 32eb285f 36bc4102 ... (12 more lines)
18:38
eveo ???????????????????????????????????????????????????????????????????????????????????????????????????????? 18:39
REMINDER: the next Rakudo compiler release will be this Saturday (Jun. 17).
Please check the ChangeLog, to ensure your work was correctly logged.
????????????????????????????????????????????????????????????????????????????????????????????????????????
Geth roast/6.c-errata: 5023c14153 | (Zoffix Znet)++ | integration/error-reporting.t
Fix syntax error

Made in github.com/perl6/roast/commit/79b6...1c6df18224
18:46
eveo .tell samcv on 6.c-errata t/spec/S15-nfg/grapheme-break.t now fails 3 Regional_Indicator tests. Are the tests wrong? 18:48
yoleaux eveo: I'll pass your message to samcv.
Geth roast/6.c-errata: b6f7a84191 | (Zoffix Znet)++ | S06-multi/type-based.t
Change broken native/where dispatch hang test

The test tests circular hang does not occur, but relied on a buggy behaviour that is now fixed[^1]. Fix the test by checking for hangs using a different test routine.
Explanation why old behaviour was a bug:
  irclog.perlgeek.de/perl6-dev/2016-...i_13462673
  rt.perl.org/Ticket/Display.html?id...xn-1433016
  [1] github.com/rakudo/rakudo/commit/cc...a613ecb0cf
19:02
roast: 405c151ae6 | (Zoffix Znet)++ | S06-multi/type-based.t
Revert "Remove test that's not correct"

This reverts commit 1ba85e82227bbbba636d2c6c0057367bff1dda70.
The test tests for hangs, so we're not going to remove it, but merely modify it.
19:03
roast: 01f8387e92 | (Zoffix Znet)++ | S06-multi/type-based.t
Change broken native/where dispatch hang test

The test tests circular hang does not occur, but relied on a buggy behaviour that is now fixed[^1]. Fix the test by checking for hangs using a different test routine.
Explanation why old behaviour was a bug:
  irclog.perlgeek.de/perl6-dev/2016-...i_13462673
  rt.perl.org/Ticket/Display.html?id...xn-1433016
  [1] github.com/rakudo/rakudo/commit/cc...a613ecb0cf
19:04
eveo m: say mix("e" => 4.4) (<=) mix("e" => 2.2) 19:08
camelia True
eveo m: say mix("e" => 1.4) (<) mix("e" => 2.2)
camelia False
eveo Is that right? There are some errata tests failing in t/spec/S03-operators/mix.t 19:09
Oh 19:10
mix("e" => 2.2)
m: mix("e" => 2.2)
camelia ( no output )
eveo m: dd mix("e" => 2.2)
camelia (:e(2.2)=>1).Mix
eveo pwned by generated test description 19:11
lizmat eveo: oops ? 19:12
eveo lizmat: I think everything's good. 19:13
lizmat *phew* :-)
eveo I mean, a change is needed, but it's due to the already-discussed semantics for these ops. 19:14
oh, actually not even due to that. I was looking at the wrong thing 19:26
eveo is amused he successfully argued for removal of tests in roast before noticing their removal isn't needed 19:27
For record, my argument was that normal ops in the section were TODOed as "needing further discussion", but their negations weren't and were now failing. So the tests were wrong to assume finalized behaviour for negations when non-negated ops weren't finalized. 19:28
But turns out it's just the test data is wrong and the tests actually still pass and the TODOed ops now pass too
Geth roast/6.c-errata: 4474fca9a7 | (Zoffix Znet)++ | S03-operators/mix.t
Fix incorrect test data creation

mix "foo" => 42; creates a Mix with a Pair as key and weight 1, so the tests that were passing, were passing for the wrong reason.
Remove fudges for now-passing TODOs
19:32
eveo k; just t/spec/S15-nfg/grapheme-break.t now failing 19:35
Geth rakudo/nom: 413eaeebb8 | (Zoffix Znet)++ | tools/contributors.pl6
Put Zoffix last if first in the contrib list

Don't wanna be first.
20:01
rakudo: danielcliffordmiller++ created pull request #1100:
Added myself (danielcliffordmiller) to the credits
20:07
lizmat wonders what the nick of danielcliffordmiller is 20:20
Geth rakudo/nom: 44c33ddefe | danielcliffordmiller++ (committed using GitHub Web editor) | CREDITS
Added myself to the credits
20:22
rakudo/nom: de74f173c9 | lizmat++ (committed using GitHub Web editor) | CREDITS
Merge pull request #1100 from danielcliffordmiller/patch-1

Added myself (danielcliffordmiller) to the credits
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/12/...ty-sorted/ 20:33
tadzik yay :) lizmat++ 20:36
eveo tadzik: you have a PR in some module 20:40
lizmat++ good weekly
tadzik eveo: Oh! Looking...
eveo tadzik: this one I think github.com/tadzik/Grammar-BNF/pulls 20:41
and the change that broke that test was removal of rogue space at the end of .message 20:43
tadzik hah, interesting 20:44
I can imagine the original author putting that space in there with a “*shrug*, I guess that's how it works” :P
thanks for pointing it out for me :)
timotimo yo tadzik! 20:57
tadzik yo!
eveo tadzik: just realized the travis file in that module still tries to rakudobrew panda. Sent a PR again github.com/tadzik/Grammar-BNF/pull/12 21:02
tadzik sweet, thanks :) 21:03
much appreciated 21:04
eveo Found the test failure with toaster \o/ 21:07
(as in toast.perl6.party )
timotimo i bougth a sandwich toaster today 21:08
[Coke] misses sandwiches. :| 21:17
Geth rakudo/nom: abfb52be1d | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make infix:<∉> about 10% faster

By only negating the final result, instead of negating the op.
21:36
lizmat m: dd { a => 1 } (<=) { a => 0 } # grrrr 21:43
camelia Bool::True
lizmat m: dd { a => 1 }.Set (<=) { a => 0 }.Set # should be the same
camelia Bool::False
lizmat will think about that tomorrow 21:45
eveo m: dd { a => 0 }.Set
camelia set()
eveo I'm hunting a toast burnage in some module. Dunno what the issue is yet, but I see .MixHash involved. 21:46
jnthn ooh, I should remember about that Decoder REPR one tomorrow also 21:48
travis-ci Rakudo build errored. Zoffix Znet 'Put Zoffix last if first in the contrib list 21:54
travis-ci.org/rakudo/rakudo/builds/242164372 github.com/rakudo/rakudo/compare/0...3eaeebb865
buggable Failed to fetch build data
lizmat good night, #perl6-dev! 21:56
eveo uh-oh buggable ded 22:09
Sounds like Weekly Readers are using my toaster up that's nomming all the RAM :D
hm, nope. just ded
ugh... hate TFW you're too dig into debugging to give up, but you don't actually use this code to care if it's fixed 22:23
timotimo hm, like, you'd have to write it down as a test case and run it regularly to see if it's still broken?
eveo No, some change in Rakudo broke a module and I'm deep in its guts right now 22:26
But I don't use that module, so I don't really care if it's broken
finally 22:45
c: 2017.05 dd (0 => 1, 0 => 0, 0 => 0, 0 => -1).Seq.MixHash
committable6 eveo, ¦2017.05: «().MixHash» 22:46
eveo c: HEAD dd (0 => 1, 0 => 0, 0 => 0, 0 => -1).Seq.MixHash
committable6 eveo, ¦HEAD(abfb52b): «(0=>0).MixHash»
eveo I think I recall lizmat inquiring about this one.
.tell lizmat toaster found a regression in .MixHash coercer. Would you know how to fix this? rt.perl.org/Ticket/Display.html?id...xn-1465951 22:53
yoleaux eveo: I'll pass your message to lizmat.
eveo Hiker burn seems a false positive. No errors 23:01
Need to start writing these down...
eveo calls it a night
ZofBot: good night, sweet prince! 23:02
ZofBot eveo, If "BinTree" is a signature type and $top is a "Capture" (argument list) object, the child types of the signature are applied to the actual arguments in the argument list object
timotimo i'll take a bit of time for p6 now and i'm wondering what to spend it doing 23:15
eveo Anything people who top weekly contribution count lists cannot do. 23:20
timotimo oh you :) 23:21
eveo Well, more than one :) And for rakudo, lizmat++ is pretty much always the leader 23:23
But I meant it makes sense to do things that likely won't get done in a while given the current list of active contributors :)
timotimo oh, neat, the range optimization still exists 23:31
you know, by introducing a local variable we could totally also handle non-fixed-at-compile-time ranges
eveo Here's a good one, if you're interested: rt.perl.org/Ticket/Display.html?id...et-history 23:32
"for ^N { } got about 2.5x slower in 5401a1a 23:33
"
timotimo ah, the for optimization happens in the gives-a-value branch of the want, but clearly the void version of the branch is being used in the end 23:37
looks like we're not generating a p6sink for the for loop case, but it does get sunk anyway 23:39