japhb samcv: Even if you get a grant, consider starting the application/interview process at any companies you are interested in, because some of them have long hiring cycles. Like 6-12 weeks sometimes. 01:09
samcv yeah for sure
brokenchicken m: .[0.. .first(:k, {$_ == 5})].say with (^20) 01:39
camelia rakudo-moar e5ca5c: OUTPUT«(0 1 2 3 4 5)␤»
brokenchicken m: .[.first(:k, {$_ == 5})..*].say with (^20) 01:40
camelia rakudo-moar e5ca5c: OUTPUT«(5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)␤»
brokenchicken .tell b2gills seems we already have the exclude-while/includewhile (irclog.perlgeek.de/perl6-dev/2017-...i_13983469 ) that are sufficiently short to type given they aren't an oftused feature. You'd have to check each element anyway, so you don't get the benefit of free skipping with them, like .skip() 01:41
yoleaux2 brokenchicken: I'll pass your message to b2gills.
brokenchicken m: say &skip
camelia rakudo-moar e5ca5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ skip used at line 1. Did you mean 'slip'?␤␤»
brokenchicken m: use Test; say &skip 01:42
camelia rakudo-moar e5ca5c: OUTPUT«sub skip (;; Mu | is raw) { #`(Sub|72674896) ... }␤»
brokenchicken whispers: "stop added things" 01:43
And yes, I'm a hipocrite, because I added .parse-base, BAIL-OUT, and DateTime infix:<-> 01:45
:)
b2gills m: .[0.. .first(:k, {$_ == 5})].say with (^20).lazy 01:53
camelia rakudo-moar e5ca5c: OUTPUT«This Seq has already been iterated, and its values consumed␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken :(
b2gills m: say ^20 .map: { $_ == 5 ?? last() !! $_ } 01:54
camelia rakudo-moar e5ca5c: OUTPUT«(0 1 2 3 4)␤»
brokenchicken hm, why didn't the robot deliver the message? 01:56
b2gills Your incorrectly assuming it didn't 01:59
brokenchicken .tell Zoffix orly
yoleaux2 brokenchicken: I'll pass your message to Zoffix.
brokenchicken Ah. Didn't know it can take /msg 02:00
MasterDuke brokenchicken: btw, here are the results of a --profile-compile of a rakudo build: gist.github.com/MasterDuke17/77230...805c3274b5 02:01
i used the SQL output option and sqlite to read/query it 02:02
|Tux| This is Rakudo version 2017.01-45-ge5ca5c278 built on MoarVM version 2017.01-10-g76872dbe 09:54
csv-ip5xs 2.776
test 12.533
test-t 4.993
csv-parser 13.855
Geth p: c2871d7c21 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MOAR_REVISION for a leak fix.
10:49
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...0-g76872db
kudo/nom: 483e4fd2f7 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Get latest MoarVM, with a leak fix.

  * Fix a leak of asynchronous task handles, which affected programs
   using Proc::Async and IO::Socket::Async.
11:00
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....4-gc2871d7
kudo/nonblocking-await: 3d4ae23218 | (Jonathan Worthington)++ | 6 files
Stub in the `Awaitable` role.

For now, just a marker role for things that we can `await`. Later, it it will require a method for subscribing a resumption.
11:19
kudo/nonblocking-await: 9044fcac38 | (Stefan Seifert)++ | 10 files
First attempt at adding a CORE.d setting

Patch by nine++ cherry-picked and updated to build/work on HEAD.
kudo/nonblocking-await: 6901df36ac | (Jonathan Worthington)++ | 10 files
Start sketching out new `await` implementation.

This does not yet support non-blocking `await`, but the factoring is designed to enable it to be put in place. For now, only Promise has been updated to support `await` under the new factoring, and only a single result may be `await`ed.
jnthn Just a rebase of existing work so I don't get dodgy tests :)
Or rather, can see what I'm actually breaking :)
Geth p/robust_dentin_dentout: 0e8d180c56 | (Timo Paulssen)++ | src/QRegex/NFA.nqp
make nfa debugger resistant to negative indents

in at least one case $ind reached far into the negatives, and before this patch it'd just straight-up crash during debug output.
11:20
p: timo++ created pull request #344:
make nfa debugger resistant to negative indents
lizmat Files=1166, Tests=56206, 183 wallclock secs (10.90 usr 4.47 sys + 1100.83 cusr 108.08 csys = 1224.28 CPU) 11:30
Geth kudo/nonblocking-await: 7d1f409636 | (Jonathan Worthington)++ | src/core/Awaiter.pm
Initial blocking `await-all` implementation.
12:05
lizmat Q: do we consider testing iterators something we should do in roast ? 12:40
the other day I ran into a problem where my @a = foo would work ok, but for foo { } did not 12:41
and that was because there was a bug in the pull-one implementation, but not in the push-all implementation
so I'm considering adding tests for all iterator methods on iterators obtained from list / array / map / hash / typed hash / native arrays / baggy / mixy / setty 12:42
jnthn lizmat: The Iterator API is something I consider public/part of the language, so it's reasonable for those to get roasted 12:56
lizmat ok, firing up the barbeque :-) 12:57
jnthn: given an existing hash, are we guaranteed the same order of keys for every nqp::iterator in the future ? 12:58
jnthn No
lizmat note: I'm talking about a single instantiated object 12:59
jnthn Ah, and so in a single process
lizmat not about the same keys / values
yes
jnthn If you don't modify it at all
lizmat indeed
jnthn Then very probably yes
But...
Hm
Actually "maybe not"
lizmat ah ?
jnthn If we were to implement robin hood hashing, which moves stuff around on lookups, we might change that? 13:00
lizmat ok, so I can't depend on it
ok, will make testing slightly more troublesome 13:01
but there you go :-)
jnthn ah no, just looked it up
I mis-remembered exactly what happens
I think based on codecapsule.com/2013/11/11/robin-hood-hashing/ that we don't permute on lookup 13:02
lizmat ok, then I'll assume same order 13:05
and when not, we will need to fix the tests
jnthn Yeah, as long as no mutation, I think you can.
lizmat oki!
jnthn Even with the various hashing changes we'll likely make 13:06
Geth kudo/nonblocking-await: 6fa4f9d608 | (Jonathan Worthington)++ | src/core/Supply.pm
Implement get-await-handle for Supply.
13:24
p: 7cbefd9003 | (Samantha McVey)++ | tools/build/MOAR_REVISION
Bump Moar to pull in Unicode name/sequence name improvements.

Make getting Uni seq/cp's case insensitive and add seq from NamedSequences.txt
  github.com/MoarVM/MoarVM/compare/7......50c87ce
13:26
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...-g4aab5064
samcv \o/ 13:27
brokenchicken m: "\c[couple with heart]".say 13:29
yoleaux2 02:01Z <diakopter> brokenchicken: oyoy
camelia rakudo-moar 483e4f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [couple with heart]␤at <tmp>:1␤------> 3"\c[couple with heart7⏏5]".say␤»
brokenchicken m: "\c[family]".say
camelia rakudo-moar 483e4f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [family]␤at <tmp>:1␤------> 3"\c[family7⏏5]".say␤»
brokenchicken diakopter: oyoy what?
Geth kudo/nom: 3a774066d5 | (Samantha McVey)++ | tools/build/NQP_REVISION
Bump Moar to pull in Unicode name/sequence name improvements.

Make getting Uni seq/cp's case insensitive and add seq from NamedSequences.txt
  github.com/MoarVM/MoarVM/compare/7......50c87ce
13:30
kudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....-g7cbefd90
cca24d8cc3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
samcv \o/
jnthn Yowser, the await-handle impl for channel is some fun 13:45
Geth kudo/nonblocking-await: 4d8c32a3f4 | (Jonathan Worthington)++ | src/core/Supply.pm
Don't generate an unrequired accessor.
14:05
kudo/nonblocking-await: 0bb2dbc0ae | (Jonathan Worthington)++ | src/core/Channel.pm
Implement get-await-handle for Channel.
jnthn Righty, time for fun with continuations... 14:30
Geth kudo/nom: 3a77cb5519 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Fix R:It:Mappy.skip-one

It had an off-by-one issue about indicating the end of an iterator Spotted by writing iterator tests for hashes.
14:49
Woodi [6~[5~[6~[6~[5~[5~[6~[6~ 15:04
brokenchicken m: say ?6~?5~?6~?6~?5~?5~?6~?6 15:05
camelia rakudo-moar cca24d: OUTPUT«TrueTrueTrueTrueTrueTrueTrueTrue␤»
Woodi sorry... 15:08
brokenchicken We'll never forgive you!
jnthn Woo, I can now do sleepsort using `await` for 100 values, and it Works Just Fine 15:21
Now for the trickier await-all
brokenchicken lizmat: fwiw, protos don't get auto-created for tokens and you can't put stuff other than * in them: RE: stackoverflow.com/questions/4176917...-6-grammar 15:25
m: grammar { token TOP { <foo> }; token foo:sym<meow> {meow}; token foo:sym<moo> {moo} }.parse: "meow"
camelia rakudo-moar 3a77cb: OUTPUT«No such method 'foo' for invocant of type '<anon|65049920>'␤ in regex TOP at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: grammar { token TOP { <foo> }; proto token foo {"." *}; token foo:sym<meow> {meow}; token foo:sym<moo> {moo} }.parse: "meow"
camelia rakudo-moar 3a77cb: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Proto regex body must be {*} (or <*> or <...>, which are deprecated)␤at <tmp>:1␤------> 3mmar { token TOP { <foo> }; proto token 7⏏5foo {"." *}; token foo:sym<meow> {meow};␤»
brokenchicken m: grammar { token TOP { <foo> }; proto token foo {*}; token foo:sym<meow> {meow}; token foo:sym<moo> {moo} }.parse: "meow"
camelia ( no output )
lizmat brokenchicken: ah, I was extrapolating from subs/methods :-( 15:26
please correct me on SO :-)
brokenchicken Wonder if there's a barrier for them being auto-made 15:27
lizmat m: my %h{Any} = a => 42, b => 666; my $i = %h.kv.iterator; dd $i.skip-at-least(3); dd $i.pull-one # bug 15:29
camelia rakudo-moar 3a77cb: OUTPUT«1␤(666, 1)␤»
lizmat found with new iterator tests 15:30
brokenchicken \o/ 15:36
tests++
Geth kudo/nom: e7ea4c291c | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Fix issue with R:It.Mappy-kv-from-pairs.skip-one

Spotted with new Hash.iterator tests
ast: 15e3d6905a | (Elizabeth Mattijsen)++ | S32-hash/iterator.t
Initial set of Hash.iterator tests
15:49
kudo/nom: 608049f711 | (Elizabeth Mattijsen)++ | t/spectest.data
Add Hash.iterator tests
15:51
lizmat afk&
brokenchicken damn, made a boo-boo in changelog pre-release :/ 16:03
.oO( I need a changelog-making robot... )
Geth kudo/nom: 42a1effb95 | (Zoffix Znet)++ | docs/ChangeLog
Move change incorrectly logged for 2016.12 instead of 2017.01
16:04
kudo/nonblocking-await: 94bfd71f32 | (Jonathan Worthington)++ | src/core/ThreadPoolScheduler.pm
Implement ThreadPoolScheduler non-blocking await.

Now, if we do an `await` in code being run in the thread pool, and the awaited value(s) are not yet available, we take a continuation. This frees up the thread to process more work from the thread pool. When all of the awaited results are available, or the production of one of them produces an exception, then the resumption of the continuation will be scheduled in the thread pool.
This behavior will only happen if you say `use v6.d.PREVIEW`.
16:16
[Coke] jnthn: where is "only happens in 6.d.PREVIEW logic for that commit?" 16:17
[Coke] misquotes.
jnthn It isn't
github.com/rakudo/rakudo/blob/nonb...d/await.pm 16:18
It's in there
If you don't use v6.d.PREVIEW, then you get the original `await` implementations, which block. 16:19
Rather than using the $*AWAITER mechanism.
[Coke] danke.
jnthn bitte :)
Now to write a bunch of decent tests for this 16:22
Actually, I need a break first :) 16:24
Geth p/master: 10 commits pushed by pmurias++
review: github.com/perl6/nqp/compare/7cbef...cad861b162
17:56
kudo/nonblocking-await: 658958e284 | (Jonathan Worthington)++ | src/core/Promise.pm
Fix thinko in Promise.get-await-handle.
18:05
TimToady m: grammar { token TOP { <foo> }; proto token foo {"." {*}}; token foo:sym<meow> {meow}; token foo:sym<moo> {moo} }.parse: "meow" 18:06
camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Proto regex body must be {*} (or <*> or <...>, which are deprecated)␤at <tmp>:1␤------> 3mmar { token TOP { <foo> }; proto token 7⏏5foo {"." {*}}; token foo:sym<meow> {meow␤»
TimToady brokenchicken: it would have to be written like ^^^, but NYI
brokenchicken Ah
TimToady but {*} is unambiguous inside regex as well as mainline braid
Geth kudo/js: ab7cf8edde | (Pawel Murias)++ | src/vm/js/Perl6/Ops.nqp
[js] Refactor nqp::p6trialbind to have it implemented the same way as similiar ops.
kudo/js: c820894ecd | (Pawel Murias)++ | src/vm/js/Perl6/Ops.nqp
[js] Implement nqp::p6captosig.
kudo/js: 105268eab6 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js
[js] Adapt to nqp::istype changes.
ast: d6711ed343 | (Jonathan Worthington)++ | S17-promise/nonblocking-await.t
Some initial tests for non-blocking `await`.
18:10
jnthn (Which, after fixing my silly Promise thinko, now all pass)
Geth kudo/nonblocking-await: d088e0e0ad | (Jonathan Worthington)++ | 2 files
Fix await-all: $remaining shouldn't go negative.

Avoids some wasteful work as well as fixing a race.
19:42
ast: c8e03430df | (Jonathan Worthington)++ | S17-promise/nonblocking-await.t
Further non-blocking await tests.

Covers supplies, channels, and error handling.
kudo/nonblocking-await: aecbd60017 | (Jonathan Worthington)++ | t/spectest.data
Run S17-supply/nonblocking-await.t.
19:49
brokenchicken huggable: 6.d tests :is: github.com/rakudo/rakudo/commit/aecbd60017 19:51
huggable brokenchicken, Added 6.d tests as github.com/rakudo/rakudo/commit/aecbd60017
brokenchicken hmm
Wait, how will this work. (once I stop being lazy) We'll add t/spectest.data-6.c for 6.c tests. t/spectest.data would be for `master` roast branch, and t/spectest.data-6.d would be for 6.d tests 19:52
but 6.d tests would not pass on master, because we're making master still be the stuff the current (6.c) rakudo does 19:53
Or we stick em all in master and have a skip thing to skip the test file if compiler can't do 6.d 19:54
oh ok, so nom will be able to do 6.d.PREVIEW... never mind me then :) 19:55
Geth kudo: jnthn++ created pull request #1004:
Initial implementation of non-blocking await for 6.d.PREVIEW
20:03
brokenchicken w00t 20:04
m: use 6.d.PREVIEW
camelia rakudo-moar 42a1ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ use used at line 1␤␤»
brokenchicken heh
jnthn Review welcome, especially from those in-the-known on concurrency stuff 20:05
fwiw, it's use v6.d.PREVIEW 20:09
afk for a bit :)
Geth kudo/nom: aecbb3efc6 | (Elizabeth Mattijsen)++ | 4 files
Fix count-only on all Hash based .kv methods

The count-only provided by R:It:Mappy was only giving half of the actual value for .kv methods. Spotted by additional iterator testing.
20:19
brokenchicken sweet
Geth ast: e9d91b90c4 | (Elizabeth Mattijsen)++ | S32-hash/iterator.t
Add tests for Hash.iterator.count-only/bool-only
20:21
brokenchicken wonders how to get in-the-known on concurrency stuff 20:49
Is there a club?
moritz there's a subscription, 40USD a month
brokenchicken hehe, steep! 20:50
moritz is only familiar with the very high-level concurrency stuff 20:51
Geth kudo/nom: ec5dad5e29 | (Elizabeth Mattijsen)++ | src/core/Capture.pm
Give Capture.list the same logic as Capture.hash
20:52
kudo/nom: 49e2d40a43 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:It.Mappy-keys

Abstracting the Map.keys functionality.
kudo/nom: 0ad05ce31c | (Elizabeth Mattijsen)++ | src/core/List.pm
Make List.keys on lazy lists a bit faster

By using R:It.Callable and a lexical int, instead of a .values.map and a state variable.
21:46
lizmat good night, #perl6-dev! 22:13
brokenchicken night 22:16