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, orby 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 |