AlexDaniel fwiw looking at it again today I'm also puzzled by the current behavior of &say. I know that junctions are not always intuitive, but I'm expecting printing a .gist of something to do just that 00:15
I also don't understand the reasoning for this optimization: github.com/rakudo/rakudo/commit/6e...6d71a46d41 00:16
adding a candidate so that calling .say a lot of times on a Str is faster? I'd say throw a sleep in there to make sure people don't use say for that purpose 00:17
that's a joke of course, but optimizing for misuse is perhaps not something we should be doing 00:19
.tell lizmat in case you need some extra uninformed opinions: irclog.perlgeek.de/perl6-dev/2018-...i_15861908 00:20
yoleaux AlexDaniel: I'll pass your message to lizmat.
timotimo AlexDaniel: but you're calling say with the junction, and calling stuff with junctions usually autothreads 00:34
MasterDuke my int @d = ^10; my int $m = 4; my int $p = 2; my int $BASE = 1000000000; @d[$m] = ((@d[$m] + $p * @d[$m-$p]) % $BASE); dd @d 00:45
evalable6 array[int].new(0, 1, 2, 3, 8, 5, 6, 7, 8, 9)
MasterDuke my int @d = ^10; my int $m = 4; my int $p = 2; my int $BASE = 1000000000; my int $a = @d[$m] + $p * @d[$m-$p]; @d[$m] = $a % $BASE; dd @d 00:46
evalable6 array[int].new(0, 1, 2, 3, 8, 5, 6, 7, 8, 9)
MasterDuke timotimo: for me (with the added print in the int,int candidate for infix:<%>, the second prints, but the first doesn't
`say @d[$m] % $BASE` prints, but `say (@d[$m] + $m) % $BASE` does not 00:49
`say ($m + $m) % $BASE` does
so it's the native array 00:52
Zoffix AlexDaniel`: +1 on removing special-casing for say Str. It always bothered me that "say prints a gist" has to be followed by "except on Str" 00:53
m: say <42> but role { method git { say "not-42" } }
camelia 42
Zoffix Affects subclasses too
oh
m: say <42> but role { method gist { say "not-42" } }
camelia 42
Zoffix yeah
m: say 42 but role { method gist { "not-42" } } # yes the same feature works for other types 00:54
camelia not-42
Zoffix s/yes/yet/;
timotimo: if we go by what's supposed to usually happen with Junction, then `say` should not thread, as it can take a Mu. So that fact that it still threads would be special-casing in that view. 00:57
We can have a very easy definition of say "equivalent to put of .gist" 00:59
And toss the special casing we have for Str and toss the special-casing we have for Junctions and it'll magically Do The Right Thing.
ZofBot: death to specialcases 01:00
ZofBot Zoffix, .oO( Glomming Submethods for Fun and Profit )
Zoffix wonders what Perl 6 without any special-casing would look like 01:01
MasterDuke 'perl 6' 01:09
thank you, i'll be here all night 01:10
huh, the native $idx version of AT-POS in native_array.pm is being called... 01:55
m: use nqp; my int $a = 1; say nqp::objprimspec($a); my Int $b = 2; say nqp::objprimspec($b) 02:38
camelia 0
0
MasterDuke m: use nqp; my str $a = "a"; say nqp::objprimspec($a); myStr $b = "b"; say nqp::objprimspec($b) 02:39
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$b' is not declared
at <tmp>:1
------> 3 = "a"; say nqp::objprimspec($a); myStr 7⏏5$b = "b"; say nqp::objprimspec($b)
MasterDuke m: use nqp; my str $a = "a"; say nqp::objprimspec($a); my Str $b = "b"; say nqp::objprimspec($b)
camelia 0
0
MasterDuke shouldn't some of those give a value other than 0?
nqp: my str $a := "a"; say(nqp::objprimspec($a)); my str $b; say nqp::objprimspec($b); my $c; say nqp::objprimspec($c) 02:43
camelia Confused at line 2, near "say nqp::o"
at gen/moar/stage2/NQPHLL.nqp:707 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:panic)
from gen/moar/stage2/NQP.nqp:920 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/nqp.moarvm:comp_unit)
from gen/mo…
02:56
MasterDuke nqp: my str $a := "a"; say(nqp::objprimspec($a)); my str $b; say(nqp::objprimspec($b)); my $c; say(nqp::objprimspec($c))
camelia 3
3
0
MasterDuke works in nqp
timotimo: if i just pull the array accesses out into their own native int variables, `e.g., my int $a = @d[$m]` and put those in the math expressions it goes from 1000s to 270s with the correct result 04:09
AlexDaniel` timotimo: fair enough... 06:57
lizmat . 08:29
yoleaux 00:20Z <AlexDaniel> lizmat: in case you need some extra uninformed opinions: irclog.perlgeek.de/perl6-dev/2018-...i_15861908
lizmat AlexDaniel`: I'm not sure I understand the reason why you would be against special casing of Str:D in say 08:30
m: say "the result is $score"
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$score' is not declared
at <tmp>:1
------> 3say "the result is 7⏏5$score"
lizmat say "the result is $score" # feels like a pretty common "good" thing to do ? 08:31
AlexDaniel` lizmat: not that I'm fully against, but it's a weird optimization to have in my opinion
lizmat and since Str.gist returns self
AlexDaniel` if "the result is $score" is called just once, what's the point of optimizing it? 08:32
lizmat I bet there are a lot of programs out there that do a lot of "say" 08:33
*and* every little bit helps
AlexDaniel` and if it's called hundreds or thousands of times, then very likely it's a misuse of &say
lizmat why? 08:34
AlexDaniel` but no problem we can leave it there
because a human is not going to read thousands of lines, this is very likely something produced for machines
lizmat I don't see the misuse?
AlexDaniel` and in that case &put should be used
lizmat so we should take out the Str:D candidate for put ? 08:35
the same reasoning holds there, I think
AlexDaniel` huh? 08:36
so &say is for humans, &put is for machines 08:37
lizmat ?
AlexDaniel` you don't agree with that?
hmmm… let's see if we have it doc-ed somewhere
lizmat is confused now
AlexDaniel` docs.perl6.org/language/faq#How_an...nt_differ?
> But there's another difference: print and put converts its arguments to a string by calling the Str method on each item passed to, say uses the gist method instead. The former is meant for computers, the latter for human interpretation. 08:38
lizmat well, it's nice that someone wrote this up like this, but I'm more in the liberal school here 08:39
I don't assign a value to say / put or print
they're all ways of outputting things 08:40
in different ways
you, as a user / developer, determine what is most appropriate for you
"put" was a *very* late addition, that TimToady put in just before 6.c came out 08:41
I would also say that "dd" is optimized for debugging, not "say"
1. because it does a .perl
2. it writes to STDERR, so it won't interfere with normal output 08:42
3. it does some extra to prevent hanging on some constructs that are infinite
[Tux] Rakudo version 2018.02.1-47-g838782b7d - MoarVM version 2018.02-6-g1849ae6d6
csv-ip5xs0.836 - 0.862
csv-ip5xs-207.823 - 7.893
csv-parser12.742 - 12.759
csv-test-xs-200.439 - 0.453
test9.613 - 9.677
test-t2.677 - 2.708
test-t --race1.103 - 1.106
test-t-2048.559 - 48.735
test-t-20 --race16.858 - 18.104
08:43
AlexDaniel ok, we don't have to change it, it's not a big deal :) FWIW Some related discussion here: github.com/perl6/doc/pull/1437
yoleaux 00:34Z <thundergnat> AlexDaniel: Issue submitted github.com/rakudo/rakudo/issues/1573 A little verbose but I figured too much was better than not enough. Thanks for your help!
AlexDaniel bisect: old=2014.01 put 42 08:52
bisectable6 AlexDaniel, Bisecting by exit code (old=2014.01 new=838782b). Old exit code: 1
AlexDaniel, bisect log: gist.github.com/70eea9e4454c05d0ae...f0e75ae246 08:53
AlexDaniel, (2015-11-12) github.com/rakudo/rakudo/commit/bc...24544082e6
AlexDaniel right so the optimization was there before &put existed
lizmat yes, way before, as far as I remember 09:00
AlexDaniel 2014-06-16 09:03
lizmat hopes AlexDaniel can live with github.com/perl6/doc/commit/a08d92b076 09:08
AlexDaniel “humen“ 09:09
Geth rakudo: abfbd1ab1f | (Elizabeth Mattijsen)++ | src/core/Num.pm
Make sub rand/srand a multi
09:10
lizmat AlexDaniel: would it make sense to add a "blocker" section to gist.github.com/Whateverable/2138e...61cde51016 09:11
to have an easy overview of remaining blocker tickets ? 09:12
AlexDaniel lizmat: github.com/perl6/doc/issues/1802 09:15
lizmat: github.com/perl6/whateverable/issues/292
lizmat :-) 09:16
AlexDaniel lizmat: as for the doc commit, it's totally fine but probably needs a little blurb mentioning that dd is rakudo-specific, otherwise no problem
lizmat m: say gethostname 09:27
camelia camelia
AlexDaniel say gethostname
e: say gethostname
evalable6 superserver
AlexDaniel xD
lizmat looks like this is not specced, not tested and not documented 09:28
and it looks like it has existed at least since 2013 09:29
AlexDaniel c: 2014.01 say gethostname
committable6 AlexDaniel, ¦2014.01: «superserver␤»
AlexDaniel greppable6: gethostname
greppable6 AlexDaniel, 13 lines, 4 modules: gist.github.com/efd256be2c9c28e8f5...44d0dd5830 09:30
AlexDaniel there's one person using it
lizmat looks like my Sys::Hostname module can be simplified :-) 09:31
gfldex m: sub infix:«<<»(Array \a, Any \v){ a.push: v }; my @a; @a << 42; 09:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of << to do left shift; in Perl 6 please use +< or ~<
at <tmp>:1
------> 3y \a, Any \v){ a.push: v }; my @a; @a <<7⏏5 42;
gfldex is that ^^^ intentional?
(if so, it's an ENODOC)
lizmat that feels like a false positive to me 09:56
AlexDaniel no really but it's a known problem
there are many cases when it assumes that you're parsing regular perl 6 without custom ops and complains about unrelated stuff
lizmat afk for a few hours&
AlexDaniel not*
gfldex rakudo is to clever for it's own good :) 09:57
|Tux| test-t 2.600 - 2.601 10:32
Zoffix "<lizmat> and since Str.gist returns self" that isn't guaranteed. The "little bit that helps" is at the cost of special-cased behavior that breaks custom Str and its subclasses 11:10
m: class Foo is Str { method gist { "just a foo" } }; say Foo
camelia just a foo
Zoffix :(
m: class Foo is Str { method gist { "just a foo" } }; say Foo.new
camelia 11:11
Zoffix There's no reasonable explanation for why Foo:D.gist stops using Foo.gist other than we stuck a special case to for minor performance gain
And the FAQ even says "The gist method, which you can also create for your own classes" 11:13
Nor does it explain why you can `say Mu` and get Mu.gist, but if you do `say Junction:D` you get… potentially no output at all. Why doesn't it just use Junction.gist and display that? Again, a special case for no other reason that it's mis-designed. (the special-casing for print/put can be argued that there's no non-threaded Junction.Str meaning [it returns a Junction] and the options are to thread or to 11:16
throw)
This shit's broken. 11:17
lizmat well, then it has been broken for a *long* time 11:22
at least since github.com/rakudo/rakudo/commit/6e...74cbeef22c 11:26
almost 4 years ago
Geth rakudo: 6d6a69fd01 | (Elizabeth Mattijsen)++ | src/core/OS.pm
Make sub gethostname a multi
11:39
rakudo: 3a0d53ced5 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm
Revert 6e0ac15e574cbeef22c
rakudo: c1d2a5bc4f | (Elizabeth Mattijsen)++ | src/core/Pair.pm
Make sub pair a multi
11:40
AlexDaniel is anybody writing tests for the revert? 11:49
I'm busy right now but I can file a ticket if nobody is on it
lizmat I'll write some tests 11:52
AlexDaniel OK
Geth rakudo: 4da2418ac9 | (Elizabeth Mattijsen)++ | src/core/Proc.pm
Make sub run/shell multi's
11:54
dogbert2 when will MoarVM be bumped, does anybody know? 11:59
lizmat dogbert2: no idea, should it? 12:00
AlexDaniel isn't it bumped already? 12:01
lizmat last bump was for 2018.02 it appears 12:02
(of tools/build/NQP_REVISION)
AlexDaniel aaaah, moarvm is bumped in nqp
but nqp is not bumped in rakudo
Geth rakudo: 62fc311851 | (Elizabeth Mattijsen)++ | src/core/Match.pm
Make sub make a multi
12:04
lizmat ok, lemme test if it works :-)
dogbert2 I was looking for the libuv upgrade
AlexDaniel oh right that's a big good one
dogbert2 then I can run some tests :-) 12:05
lizmat building/testing now, gimme 5 mins or so
dogbert2 lizmat++
AlexDaniel dogbert2++ for the reminder 12:07
undersightable-- for not existing (should've reminded automatically) 12:08
dogbert2 hmm, how many bots do we have now :-)
AlexDaniel 16 whateverables I think 12:09
dogbert2 cool
AlexDaniel huggable: bots
huggable AlexDaniel, The #perl6 irc channel normally hosts several helpful bots. I am a bot, and everyone else voiced on this channel is a bot. See the full list here: github.com/perl6/doc/issues/711#is...-235414744
dogbert2 bisect: uptime
bisectable6 dogbert2, 2 days, 1 hour, 34 minutes, and 41 seconds, 241.5625MiB maxrss. This is Rakudo version 2018.01-209-gf74890550 built on MoarVM version 2018.01-97-g22d2db5e0 implementing Perl 6.c.
dogbert2 are they still suffering from SEGV's?
at least memory usage looks good 12:10
AlexDaniel yes, still segv-ing
and yes memory usage is almost perfect
dogbert2 argh
AlexDaniel I can't push anyone to fix this because, well, you can't test these bots locally yet 12:12
but you can run them! 12:13
it's just a matter of setting up some lightweight irc server for the test suite
or changing it so that it is not needed
once there's an easy way to run the test suite we'll be able to have some useful bug reports 12:14
several of them actually
lizmat hmmm, I got a hang on t/spec/S29-os/system.t 12:16
but it ran fine by itself :-(
going to push anyway
Geth rakudo: fed92e3b82 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
Bump NQP to get all the latest NQP and MoarVM goodies
rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....8-g24f9097
d3f50dbac8 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
lizmat
.oO( release early, release often )
AlexDaniel xD the sound of point releases 12:18
dogbert2 rebuilds ... 12:20
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Revert 6e0ac15e574cbeef22c' 12:23
travis-ci.org/rakudo/rakudo/builds/346734055 github.com/rakudo/rakudo/compare/a...0d53ced5d8
lizmat t/04-nativecall/09-nativecast.t seems to have failed one of its tests ^^^ 12:26
cannot reproduce :-(
|Tux| $ perl6 --doc lib/Text/CSV.pod6 12:32
===SORRY!=== Error while compiling /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pod6
Two terms in a row
as posted in github.com/Tux/CSV/issues/10
lizmat www.meetup.com/Amsterdam-Core-Infr...247649657/ # not a word of Perl in there 12:33
|Tux| where should I find "the problem" or is that syntax just wrong
lizmat "we’re moving from monolith architecture to SOA"
AlexDaniel oh, so that's a .pod6 failure?
|Tux| AlexDaniel, your guess is better than mine :) 12:37
AlexDaniel |Tux|: can you golf it? 12:38
|Tux| AlexDaniel, gist.github.com/Tux/0d0237b59882b6...1642b1a145 12:40
will that do?
AlexDaniel c: HEAD run <wget -O sandbox/test.pod6 gist.githubusercontent.com/AlexDan...e1.txt> 12:42
committable6 AlexDaniel, gist.github.com/6563bd723b08d20467...4f0eccf1d9
AlexDaniel c: HEAD run <perl6 --doc sandbox/test.pod6>
committable6 AlexDaniel, gist.github.com/ba83b670b3f32236cb...b6b3391eb9 12:43
lizmat FWIW, since the NQP bump, I'm seeing a lot more flappers in spectest :-(
AlexDaniel |Tux|: ↑ why is that different?
lizmat in weird places such as: S11-modules/perl6lib.t and t/spec/S16-io/put.t
all of them "You planned N tests but ran 0" 12:44
AlexDaniel ah shit, missing =
lizmat which feels like a segfault somewhere along the way
AlexDaniel c: HEAD run <wget -O sandbox/test.pod6 gist.githubusercontent.com/AlexDan...e1.txt>
Geth rakudo: b9f40fea53 | (Elizabeth Mattijsen)++ | src/core/signals.pm
Make sub signal a multi
committable6 AlexDaniel, gist.github.com/ff5f87e3b5fb7ea808...41edeb6694
AlexDaniel c: HEAD run <perl6 --doc sandbox/test.pod6>
committable6 AlexDaniel, gist.github.com/3f96bbb53e0ca3158f...65821d5183
AlexDaniel ok so here it is reproduced
c: 2017.12 run <perl6 --doc sandbox/test.pod6>
committable6 AlexDaniel, gist.github.com/39d3c2dfe527d9a13b...fda8bedcaa
AlexDaniel but identical problem on 2017.12 12:45
6c: run <perl6 --doc sandbox/test.pod6>
committable6 AlexDaniel, gist.github.com/4d1a5f8d20d983cf8f...b3a5c44745
AlexDaniel |Tux|: not a regression as far as I can see :)
|Tux| I didn't say so :) 12:46
AlexDaniel 6c: run <perl6 --version>
committable6 AlexDaniel, gist.github.com/f0877a0c45d07097a6...a1e271219d
|Tux| This is Rakudo version 2018.02.1-47-g838782b7d built on MoarVM version 2018.02-6-g1849ae6d6
implementing Perl 6.c.
AlexDaniel |Tux|: I think it just needs =begin pod and =end pod … 12:50
|Tux|: “Every Pod document has to begin with =begin pod and end with =end pod. Everything between these two delimiters will be processed and used to generate documentation.”
|Tux| AlexDaniel, I think that .pod and .pod6 files could be exempt to that rule? 12:52
FWIW /me has no problem whatsoever in adding those two lines, but it feels kinda silly 12:53
Geth rakudo: dfef828357 | (Elizabeth Mattijsen)++ | src/core/Str.pm
Make subs trim/trim-leading/trim-trailing multi's
12:59
lizmat [Tux]: FWIW, in perl 5, .pod does not have a special meaning either, does it ? 13:02
|Tux| no, but it does not require =begin pod and =end pod, as a strirting valid = (like =head1) *implies* that this is pod up to and including =cut 13:03
(or end-of-file) 13:04
lizmat ah, on such a bicycle :-) 13:05
|Tux| :]
lizmat I guess Perl 6 is more picky than that
|Tux| that is why I posed the proposition
feel free to ignore. I added the =begin/end pod to that document 13:06
AlexDaniel huggable: rakudobug 13:10
huggable AlexDaniel, Report bugs on github.com/rakudo/rakudo/issues/new If you don't have access to GitHub, you can email your report to [email@hidden.address] . See also: github.com/rakudo/rakudo/wiki/rt-introduction
AlexDaniel ↑ here's the place for all worthy propositions :)
[Coke] I just got a weird error from 'make xtest' in the doc suite, error reported in nqp running the Perl 6 Grammar moarvm bytecode: gist.github.com/coke/7aabc5c3a416e...feb717a0fa 13:12
(running it a second time there's no warnings) 13:13
AlexDaniel
.oO( Fixed! )
13:14
dogbert2_ initial spectest with MVM_SPESH_NODELAY=1 and MVM_SPESH_BLOCKING=1 looks no worse than usual
Geth rakudo: 9a0a7bdd83 | (Elizabeth Mattijsen)++ | src/core/Str.pm
Make sub chrs a multi
13:16
lizmat dogbert2_: maybe it's been like that for a while already
haven't run so many spectests on a day in a long time 13:17
lizmat just did GH #1574 13:21
github.com/rakudo/rakudo/issues/1574
dogbert2_ lizmat++ 13:30
there are a couple of nasty bugs left, threading and GC related, they rear their ugly heads from time to time 13:31
Geth rakudo: 32b08035b4 | (Elizabeth Mattijsen)++ | src/core/Str.pm
Make sub uniparse a multi
13:33
lizmat which concludes my first run on ^sub in the core 13:34
[Coke] lizmat++
Geth roast: 2ca70b92d1 | (Elizabeth Mattijsen)++ | 2 files
Add tests to check say/note(Str:D) call .gist
13:41
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make subs trim/trim-leading/trim-trailing multi's' 14:17
travis-ci.org/rakudo/rakudo/builds/346761094 github.com/rakudo/rakudo/compare/b...ef828357dd
Rakudo build passed. Elizabeth Mattijsen 'Make sub uniparse a multi' 14:57
travis-ci.org/rakudo/rakudo/builds/346775454 github.com/rakudo/rakudo/compare/9...b08035b42d
dogbert2_ stresstest was clean on my 32 bit vm
lizmat m: sub a(\a) { a = 42 }; my int $a; a $a; say $a # will this ever work ? 15:52
camelia Cannot modify an immutable Int (0)
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
moritz lizmat: I don't think so, because int is pass-by-value, not pass-by-reference 15:55
lizmat m: sub a($a is rw) { $a = 42 }; my int $a; a $a; say $a # but this works ? 15:56
camelia 42
[Coke] I'm assuming that's getting boxed. 16:16
m: sub a($a is rw) { say $a.WHAT; $a=42}; my int $a; say $a.WHAT; a $a; say $a; say $a.WHAT
camelia (Int)
(Int)
42
(Int)
[Coke] ... oh right, WHAT has to box it.
m: sub a($a is rw) { dd $a; $a=42}; my int $a; dd $a; a $a; dd $a; 16:17
camelia 0
0
42
[Coke] ... I don't know how to test my theory. :)
japhb wonders if DUMP still works 16:22
m: sub a($a is rw) { dd $a; $a=42}; my int $a; put $a.DUMP; a $a; put $a.DUMP;
camelia 0
0
42
japhb m: sub a($a is rw) { dd $a; $a=42}; my int $a; put $a.VAR.DUMP; a $a; put $a.DUMP;
camelia ▶0
0
42
japhb m: sub a($a is rw) { dd $a; $a=42}; my int $a; put $a.VAR.DUMP; a $a; put $a.VAR.DUMP;
camelia ▶0
0
▶42
japhb Hmmm 16:23
TimToady waves his scepter and sez that "say" must NOT autothread junctions, because the main purpose of "say" is to serve illogical humans, and not to be as consistent as our math operators pretend to be 17:59
timotimo pray say 18:54
Geth rakudo: b62e0eb7a7 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm
&say should not auto-thread

As per irclog.perlgeek.de/perl6-dev/2018-...i_15864766
19:43
lizmat afk again& 19:45
Geth rakudo: 52176c3c79 | TimToady++ | src/Perl6/Grammar.nqp
improve message 1<3 heuristic to recognize 1<=3

Also happens to recognize 1<==3, fwiw...
21:11
roast: 8c27f8eb83 | usev6++ | S16-io/eof.t
[JVM] Unfudge now passing (sub-)tests
21:35
MasterDuke jnthn, timotimo: `my int @d = ^10; say @d[2] % @d[4];`, that should use the int,int candidate for infix:<%>, correct? 22:19
jnthn Ideally, but I'm not sure we're quite there yet 22:20
MasterDuke ah
that would explain what i was seeing with rindolf's code 22:21
"if i just pull the array accesses out into their own native int variables, `e.g., my int $a = @d[$m]` and put those in the math expressions it goes from 1000s to 270s with the correct result"
jnthn: what needs to be done? 22:57
jnthn MasterDuke: I'm not 100% sure, but I think at the very least we'd need to track known native arrays in the optimizer and understand accesses to them will give back native int/num/str 23:19
MasterDuke static optimizer? 23:22
jnthn Yes 23:28
Hmmm...what should I do on vacation? I know...implement a lock-free data structure. github.com/jnthn/p6-concurrent-stack :) 23:34
'night, #perl6-dev
lizmat wonders why that doesn't use a repr('ConcBlockingQueue') undeneath? 23:39
Geth rakudo: af35389485 | (Elizabeth Mattijsen)++ | 5 files
Make sure all set ops have an "is pure" on their proto only
23:46
lizmat sleep&