»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
lizmat so what is the status on Proc::Async wrt ".start" and ".finish" ? 00:01
japhb kbenson just submitted the perl6-course deck to HN. Anyone with an account there that would like to upvote, I guess now is the time. :-) 00:04
news.ycombinator.com/item?id=10168170
japhb Looks like there's a post on www.reddit.com/r/perl6 00:07
*also
japhb Apologies for the rah-rah, but this really feels like one to advertise 00:07
colomon upvoted 00:08
and now I’ll actually look at it. ;)
this was what was going on Saturday while we were hackathoning? 00:09
dalek ast/glr: ccb5d4e | skids++ | S32-list/seq.t:
Add a cacophony of slice assignment tests involving Seqs
00:11
japhb masak++ # masak.org/carl/yapc-eu-2015-interes...s/talk.pdf 00:31
That one was definitely like " snuggling up with your 00:32
favorite cozy language, Perl 6."
lizmat sleep& 00:47
tony-o is there a mechanism for react whenever process is idle? 00:48
japhb tony-o: What is your definition of idle? 01:00
pink_mist is now imagining whenever ... { } whenever ... { } else { #we're idle } :P 01:10
ShimmerFairy [Coke]: for the record, my change on that was just to match existing behavior. I'd prefer if you could do +"-:16<-42>" and it came out to 0x42 (double negation) :) 02:59
_itz pl6anet.org/stats/ (50000+ hits per month last month) 04:47
dalek c: d20da36 | paultcochrane++ | lib/Type/Temporal.pod:
Add an alarm clock example for sleep-till
05:24
FROGGS if there is anybody around with an osx box who would like to try a branch, please ping me 06:13
bbi10 06:15
masak_venue good morning, #perl6 06:20
T minus 10 minutes for nine++'s talk
masak_venue 'If you go look at the Perl 6 FAQ, there's a section, "Why should I learn Perl 6?". It lists a grab-bag of language features, rather than a set of problems that Perl 6's new design can solve.' 06:22
from news.ycombinator.com/item?id=10168170
just wanted to flag that one up. seems we can do better on that FAQ answer.
the whole HN thread is rather on topic and interesting, in my opinion. 06:23
even though, as one might expect, a fair bit of it is "why Perl 6?"
masak_venue pink_mist: I think `whenever {} else {}` would be a non-good idea from a perf perspective 06:27
RabidGravy I think the headline could be "less boilerplate" 06:28
masak_venue pink_mist: also, using `else` for something other than `if` -- or using it for loops at all -- feels a little too much like Python's questionable for/else 06:32
ShimmerFairy masak_venue: well, 'if' or 'when' :) 06:33
masak_venue ShimmerFairy: right, but even `when` is just a funny kind of `if`
ShimmerFairy I meant to say 'with', oops
but still yes to what you said :) 06:34
vendethiel masak_venue: I think for/else is a good idea, but I dislike python's version (I prefer one where else is invoked if no iterations were made) 06:35
masak_venue vendethiel: heh.
vendethiel: I think at this point I'm of the (strange) opinion that Python's design choice is surprising/unintuitive but "right" 06:36
"it didn't issue a `break`" is strictly more powerful than "it didn't iterate" 06:37
also, the use case for it is "else (if we didn't find anything)", and "find anything" is usually associated with issuing a `break`
ShimmerFairy are there any cases where wrapping the loop in a conditional is really that much worse?
masak_venue yes-ish 06:38
I mean, there are worse code smells out there, but you're teetering on breaking DRY when you do `if @things { for @things { ... } } else {}` 06:39
ShimmerFairy masak_venue: I can see why a break would be more powerful to do an else on, but there are phasers to be put in a loop, IIRC :) . An else-ish thing after a loop would be more useful for a loop not running at all 06:40
lizmat perhaps a NONE phaser ? 06:40
FROGGS morning
lizmat to be fired whenever we didn't do *any* iterations in a loop ?
ShimmerFairy mornin' FROGGS o/ 06:41
lizmat FROGGS o/
masak_venue m: for [1, 2, 3], [] -> @things { unless (for @things { .say }) { say "no iterations" } } 06:42
GLRelia rakudo-moar 62e17b: OUTPUT«1␤2␤3␤no iterations␤»
camelia rakudo-moar e6f360: OUTPUT«1␤2␤3␤no iterations␤»
masak_venue I'm not sure how to do the "no break" thing idiomatically in Perl 6.
FROGGS lizmat: either that or allowing 'else' after loops :o)
masak_venue FROGGS: see backlog. 06:43
ShimmerFairy Interesting idea on the phaser, but that might be problematic, depending on what kind of performance gain we get from skipping looking in a loop's block
FROGGS masak: I did
masak_venue one problem would be that the NONE phaser would run inside a scope that wasn't entered.
lizmat relatedly, I think we might need the opposite of a "once" block
masak_venue (which is allowed, but a little uncomfortable)
lizmat a block that will execute always *except* the first time 06:44
ShimmerFairy I could also see something like 'if for @stuff { ... } else { ... }'
masak_venue lizmat: maybe we should call it a "nonce" block :P
lizmat masak_venue: the thought has crossed my mind :-)
masak_venue or call it "NEVAR" or something
"NOWAI" 06:45
ShimmerFairy while $condition { ... } meanwhile { ... } :P 06:46
masak_venue ShimmerFairy: the VM is not "looking in a loop's block" in any relevant sense. it's just running code it was told to run.
ShimmerFairy yeah, I figured my performance concern probably isn't much of one in any case :) 06:47
masak_venue if that's a real worry, then you need a lower-level language
but it probably isn't
ShimmerFairy masak_venue: based on my understanding, it might mean an extra subscripting call on QAST blocks in places to get to the proposed new phaser. the horror :P . 06:48
vendethiel masak_venue: seems like iffor / nonce kind a thing would be an easy macro to add anyway..:) 06:51
.oO( did he just say "easy"? )
masak_venue vendethiel: yes, I think so
modulo the usual "how to extend the language from a macro" open questions 06:52
ShimmerFairy masak_venue: to me, the first design problem that Perl 6 is there for is text processing, esp. text with non-trivial syntaxes (since grammars are soooooooooo awesome) 06:53
masak_venue I've been talking about it with TimToady++ a little during YAPC::Europe 06:54
he has some ideas that might help 06:55
ShimmerFairy I'd be interested in hearing what he thinks P6 is best for solving :) 06:56
FROGGS m: say $*KERNEL.name # lizmat: that's darwin for you, right?
GLRelia rakudo-moar 62e17b: OUTPUT«linux␤»
camelia rakudo-moar e6f360: OUTPUT«linux␤»
lizmat $ 6 'say $*KERNEL.name' 06:57
darwin
FROGGS: indeed :-)
FROGGS thanks :o)
RabidGravy it should be as there is a bit of code in Process.pm tjat depends on that
ShimmerFairy lizmat: by the way, that sorting thing I had trouble with on val()? Turns out, adding a simple check to see if there are any digits in the string brought 0.^methods.sort down from 90s to 25s :P (further improvements I've done have brought it down to the tens of seconds, still twice as long as before val) 07:02
I could push the branch if you're ever interested in testing its startup time now. 07:03
lizmat I won't have any time today... tomorrow would be better for me 07:04
ShimmerFairy lizmat: ok. You don't have to, I'm just offering in case you're interested in doing further comparisons :)
lizmat I am :-) just not today :-)
ShimmerFairy I'm also considering making a compile-time version of val() inside World.nqp or such, to handle strings with C<compile_time_value>s and perhaps free up some execution time :) 07:05
lizmat (/me is doing jnthn's talks this afternoon) 07:05
*talk 07:06
ShimmerFairy cool :)
ShimmerFairy BTW, am I right in remembering that P6 _used_ to be the normal, direct successor to P5, until things morphed into the current sibling-like relationship between the two langs? (If so, I'd like to add that historical explanation to the FAQ) 07:14
FROGGS ShimmerFairy: that was the original idea, aye 07:15
RabidGravy yeah, but it's likely that went out the window after 5.8.0 came out :) 07:16
ShimmerFairy Yeah, my understanding is "P6 started when P5 was in a slump, more work went into P5 after a while, now they're parallel-y organized, instead of serially" :)
FROGGS I can just guess but that is also what I am thinking 07:17
lizmat I have an opinion about this ;-)
FROGGS *g*
ShimmerFairy It's tempting for me to think "gee, people should've just contributed to P6 instead of giving up and going back to 5", but I assume rakudo wasn't so clearly the main impl to work on (or even existed) back then :) 07:18
Heather hi, Pugs is still being in development?
moritz Heather: no
(unless you do it :-)
vendethiel Heather: hey :). no, sadly
ShimmerFairy Not really, though I did see a commit recently that at least made it run on newer systems :)
RabidGravy I think we should re-invent the origin story like they do with superhero movies 07:19
FROGGS Heather: long time no read!
Heather FROGGS hi
lizmat
.oO( Reboot of $_ )
vendethiel Heather: do you want to make bikini run on pugs? *g* 07:20
Heather -_-' vendethiel I wish I can at least repair it 07:21
vendethiel Heather: did new idris break it?
Heather vendethiel yes
vendethiel aw :(
Heather vendethiel and error is as mystic as usual 07:22
vendethiel yes, that sounds idris-ish :-).
Heather vendethiel unless I will create yet another minimalistic reproduction
vendethiel well... it's not alike mystic error this time, this time it's error inside error because it has no relation with that is really going wtong 07:23
vendethiel
.oO( unification is both humanity's greatest strength, and its greatest weakness )
masak_venue hi Heather, welcome back 07:24
vendethiel I should get going, but anyway, Heather, you've contributed to Agda, Idris shouldn't be much harder :P. 07:24
Heather vendethiel agda refused my change! :) 07:25
masak hi
Heather hell... rakudo installer is still being that kind... 07:26
lizmat what kind? 07:28
Heather lizmat it just unpack into folder you can't specify, without even adding it to path 07:29
panda --version returns usage but doesn't tell version
lizmat well, I guess rakudo is still too modest wrt to global installation
ShimmerFairy moarvm also still doesn't default to /usr/local for linuxes, like any sensible compilable program :P 07:30
lizmat about a week ago, I added infix == eq eqv candidates for 2 Promises 07:30
the idea was that you would be able to say: 07:31
m: say (start { 42 }) == start 42
GLRelia rakudo-moar 62e17b: OUTPUT«True␤»
camelia rakudo-moar e6f360: OUTPUT«True␤»
lizmat in other words, the infix operator would block until both results are there, and then do the comparison
is this something that we would like to keep? 07:32
Heather pugs moved to stack :/
FROGGS it feels rather magical but I have not enough information to judge on that
ShimmerFairy lizmat: I feel like == and eq would probably want results, since they're coercive ops, but perhaps eqv is on the Promises themselves? 07:33
lizmat the example jnthn used in his talk, would basically become:
sub MAIN($file1, $file2) { 07:34
start { from-json(slurp($file1)) } eqv start from-json(slurp($file2))
?? 'Files contain identical JSON'
!! 'Files contain different JSON';
}
ShimmerFairy lizmat: in the sense of avoiding a couple declaration lines beforehand (my $json'd1 = start ...; my $json'd2 = start ...; $json'd1 eqv $json'd2), that might be nice. 07:35
lizmat: but are there cases aside from the literal 'start' keyword that it might be helpful? I imagine "real" starts could be a too verbose to inline in an expression. 07:36
moritz my $same = [eqv] map start { from-json(slurp($_)) }, $file1, $file2 07:37
lizmat Proc::Async.start/finish returns a promise
moritz erm, the start should be inside the block, of course
lizmat anyway, I think I'll leave that out the presentation for now... :-) 07:38
ShimmerFairy I don't think I mind comparsion ops being transparent for Promises, as long as working with the Promises themselves don't get too hard for however common it'd be to interact with those objects :) 07:39
Heather I can't read my own perl -_-' 07:44
dalek q: e808a96 | ShimmerFairy++ | answers.md:
Add a bit to the "Why not rename it?" question

Just a small historical explanation for why it has the name "Perl 6" in the first place, since that would likely aid understanding of this question :) .
07:52
lizmat what was the backronym for "Cool" again ? 08:20
(it's not in S99)
ShimmerFairy <something> Object Oriented Loop is what I remember 08:21
jdv79 "Cool, also known as the Convenient OO Loop, is a base class for strings, numbers and other built-in classes that you are supposed to use mostly interchangeably." - doc.perl6.org/type/Cool 08:28
lizmat jdv79++ 08:30
RabidGravy is there a thingy for testing whether some code made any warnings (whilst actually hiding the warnings preferably?) 08:53
cdc m: say '/etc/wgetrc'.IO.e 08:56
GLRelia rakudo-moar 62e17b: OUTPUT«True␤»
camelia rakudo-moar e6f360: OUTPUT«True␤»
cdc say '/etc/wgetrc'.IO.lines.hyper.map(* ~~ /<{'.'}>/).all.so
m: say '/etc/wgetrc'.IO.lines.hyper.map(* ~~ /<{'.'}>/).all.so
GLRelia rakudo-moar 62e17b: OUTPUT«Cannot find method 'Any'␤ in whatevercode at /tmp/pBrLk3Ugbr:1␤␤Incompatible MROs in P6opaque rebless␤ in any mixin at src/gen/m-Metamodel.nqp:1273␤ in whatevercode at /tmp/pBrLk3Ugbr:1␤␤False␤»
camelia rakudo-moar e6f360: OUTPUT«Method 'hyper' not found for invocant of class 'List'␤ in block <unit> at /tmp/KKX587MC47:1␤␤»
btyler_yapc hi folks -- I found a repeatable segfault that I _suspect_ is trying to write to a closed socket: gist.github.com/kanatohodets/66427...7c2616f6f2 08:57
cdc m: say '/etc/wgetrc'.IO.lines.map(* ~~ /<{'.'}>/).all.so
GLRelia rakudo-moar 62e17b: OUTPUT«False␤»
camelia rakudo-moar e6f360: OUTPUT«False␤»
btyler_yapc this happens with spesh, jit, and optimizations enabled or disabled. I'm happy to start trying to expose moar's async socket close to nqp if it seems like that's the right direction 08:58
cdc What does "Incompatible MROs in P6opaque rebless" ^^^ mean? It appears only when using .hyper. 09:00
diakopter lol GLRelia 09:02
moritz cdc: do you want it more specific than "bug"? 09:07
cdc moritz: I was not sure :) 09:08
moritz btyler_yapc: please opne a ticket (email to [email@hidden.address]
moritz (and yes, debugging help is also appreciated :-) 09:10
btyler_yapc moritz: nine just suggested trying to confirm the write-after-close issue by sleeping before socket close, and what do you know, no segfault :) 09:11
moritz btyler_yapc: aye; but it shouldn't segfault :-) 09:13
btyler_yapc right, of course -- this was just debugging 09:14
this was just to try to narrow down the segfault cause 09:15
andreoss m: my @z = 1,2,3; my @x = gather take |@z; say @x. perl 09:25
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0dV8RAOH7o␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/0dV8RAOH7o:1␤------> 031,2,3; my @x = gather take |@z; say @x. 7⏏5perl␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EC0sdkOMF4␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/EC0sdkOMF4:1␤------> 031,2,3; my @x = gather take |@z; say @x. 7⏏5perl␤»
andreoss m: my @z = 1,2,3; my @x = gather take |@z; say @x.perl
GLRelia rakudo-moar 62e17b: OUTPUT«[(1, 2, 3),]␤»
camelia rakudo-moar e6f360: OUTPUT«[1, 2, 3]<>␤»
andreoss which is correct? 09:25
moritz well, glr correctly implements the new semantics 09:26
andreoss can i specify with use v... ; to which version my code belongs? 09:46
moritz yes, but currently only 'use v6' is implemented (and possibly 'use v5' if Inline::Perl5 is installed, dunno) 09:47
andreoss i mean like use v6 'glr';
moritz nope
ShimmerFairy the glr branch is to be merged into nom Real Soon™, so it wouldn't be necessary for that specific thing in the future :) 09:52
And anyway, the 'v' pragma(?) is for Perl versions, not compiler versions.
RabidGravy and it doesn't really do much in P6 anyway 09:54
m: use v7
GLRelia ( no output )
camelia ( no output )
ShimmerFairy As of now, at least, it's mainly useful for telling a Perl 5 compiler to back off :)
andreoss m: say v6 cmp v5 09:55
GLRelia rakudo-moar 62e17b: OUTPUT«More␤»
camelia rakudo-moar e6f360: OUTPUT«More␤»
ShimmerFairy m: use v5 09:56
GLRelia rakudo-moar 62e17b: OUTPUT«===SORRY!===␤Could not find Perl5 in any of:␤ file#/home/steve/.perl6/2015.07.1-721-g62e17b4/lib␤ inst#/home/steve/.perl6/2015.07.1-721-g62e17b4␤ file#/home/steve/sandbox/perl6/rakudo/install/share/perl6/lib␤ file#/home/steve/sandbox/perl6/ra…»
camelia rakudo-moar e6f360: OUTPUT«===SORRY!===␤Could not find Perl5 in any of:␤ file#/home/camelia/.perl6/2015.07.1-215-ge6f3602/lib␤ inst#/home/camelia/.perl6/2015.07.1-215-ge6f3602␤ file#/home/camelia/rakudo-inst-2/share/perl6/lib␤ file#/home/camelia/rakudo-inst-2/share/per…»
RabidGravy I'm about to try to print something, there may be swearing and destruction 10:13
jnthn lizmat: Not fully up on backlog, but: no, I think I like the only way to wait on a Promise is .result (blocking), await (efficient) and .Supply (reactive); I'd rather keep such things visible and spelled out, not have them implicit. 10:27
yoleaux 29 Aug 2015 21:28Z <laben> jnthn: can you check why "say \(Hash) ~~ :(*@a)" and "say \(List) ~~ :(*@a)" die with exception "Invocant requires an instance of type Hash|List, but a type object was passed." in the binder?
31 Aug 2015 21:38Z <timotimo> jnthn: when you're back, could you upload t.h8.lv/MoarVM-2015.08.tar.gz to moarvm.org?
3 Sep 2015 23:53Z <japhb> jnthn: jnthn.net/papers/2015-spw-perl6-course.pdf is fantastic! Some variation on that needs to be part of a future "getting started" section on perl6.org.
jnthn lizmat: Otherwise it'll become a "list to remember" 10:28
lizmat jnthn 10:29
jnthn: ok
baest do perl6 have autoload?
btyler_yapc did some more fruitful digging on the segfaulty thing -- the handle is NULL by the time the write task takes place; it's clear that this isn't an issue of lacking nqp::asyncclose because closefh already maps to the right thing in moar for async sockets 10:33
lizmat m: class A { method FALLBACK($a) { say $a } }; A.foo # baest AUTOLOAD in Perl 6 10:36
GLRelia rakudo-moar 62e17b: OUTPUT«foo␤»
camelia rakudo-moar e6f360: OUTPUT«foo␤»
baest lizmat: thanks! I just saw the method CANDO, is that outdated? 10:38
masak_venue hey, #perl6, I wrote this: gist.github.com/masak/b84a87a694217c9508d6 10:40
I was sad to see I got a scary exception when running it :/
maybe someone can help me?
diegok -o/ masak_venue 10:41
masak_venue \o
lizmat baest: I think CANDO is still NYI
virtualsue m: say (1,2).WHAT 10:42
GLRelia rakudo-moar 62e17b: OUTPUT«(List)␤»
camelia rakudo-moar e6f360: OUTPUT«(Parcel)␤»
masak_venue I think "Cannot invoke this object" in this case is at the very least unexpected, and probably reportable as a bug 10:42
baest lizmat: Ok, but FALLBACK is pretty cool anyways, elegant and simple
lizmat S12:606
synbot6 Link: design.perl6.org/S12.html#line_606
masak_venue ok, it happens in the first .map 10:43
moritz m: constant nums = 1, 2, 3 ... Inf; say nums 10:47
GLRelia rakudo-moar 62e17b: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/jwYZbBpc4N:1␤␤Actually thrown at:␤ in block <unit> at /tmp/jwYZbBpc4N:1␤␤»
camelia rakudo-moar e6f360: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
masak_venue I've golfed it down to something that requires newlines. 10:49
let me try to paste it here
m: constant nums = 1, 2, 3 ... Inf;␤constant fizzbuzz = nums\␤ .map({ $_ %% 3 ?? "Fizz" !! $_ }); 10:50
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1J8VbjABI1␤An exception occurred while evaluating a constant␤at /tmp/1J8VbjABI1:2␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kAAlvWKBSo␤An exception occurred while evaluating a constant␤at /tmp/kAAlvWKBSo:2␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
masak_venue if I inline `nums`, the problem goes away
if I remove the unspace, the problem goes away
masak_venue vewwy stwange 10:50
masak_venue submits rakudobug
ShimmerFairy m: constant nums = 1; constant fizzbuzz = nums\␤.map({ $_ }); 10:54
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Y2BW2WrSV9␤An exception occurred while evaluating a constant␤at /tmp/Y2BW2WrSV9:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VVtZHQ5EZS␤An exception occurred while evaluating a constant␤at /tmp/VVtZHQ5EZS:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
ShimmerFairy masak_venue: a bit shorter :)
masak_venue thank you 10:55
ShimmerFairy m: my \nums = 1; constant fizzbuzz = nums\␤.map({ $_ });
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GsejRQtSaA␤An exception occurred while evaluating a constant␤at /tmp/GsejRQtSaA:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/J5ZF7NN3EU␤An exception occurred while evaluating a constant␤at /tmp/J5ZF7NN3EU:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object (REPR: Null, cs = 0)␤ at…»
masak_venue lunch & 10:56
ShimmerFairy m: my \nums = 1; nums\␤.map({ $_ }); 10:56
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4GMO_WE26U␤Variable '&nums' is not declared␤at /tmp/4GMO_WE26U:1␤------> 3my \nums = 1; 7⏏5nums\␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u9FZZNPAsj␤Variable '&nums' is not declared␤at /tmp/u9FZZNPAsj:1␤------> 3my \nums = 1; 7⏏5nums\␤»
ShimmerFairy ^ that's probably related
RabidGravy printer restored to shelf, no-one was injured. 11:03
Ven .tell lizmat irclog.perlgeek.de/perl6/2015-09-04#i_11168004 design.perl6.org/S02.html#Undefined_types 11:21
yoleaux Ven: I'll pass your message to lizmat.
TimToady trying to make List into a tuple type doesn't work 12:21
(because it ends up forcing non-lazy trying to determine WHICH)
ShimmerFairy So we'd need a separate Tuple type if we wanted one, then? 12:22
TimToady m: prolly 12:24
GLRelia rakudo-moar 62e17b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nlBK7doQzy␤Undeclared routine:␤ prolly used at line 1. Did you mean 'roll'?␤␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dSKxLGMuEE␤Undeclared routine:␤ prolly used at line 1. Did you mean 'roll'?␤␤»
TimToady oops 12:25
dalek kudo/glr: 17411ef | TimToady++ | src/core/List.pm:
List can't be Tuple

We can't afford to have WHICH based on all the elements of List, for two reasons: it's slow, and its .elems is forcing eagerness that causes the self-reference check to bring on heat-death of the universe.
12:31
TimToady 'sides, it breaks one of my slides... 12:33
FROGGS SDD++ 12:38
Ven notices he's started to use ?? everytime he wants to write a ternary, even in ruby... 12:46
moritz in perl 5 too
FROGGS same here :S 12:48
timotimo yeah, ?? !! seems quite a bit nicer than ? :
FROGGS but more often I use ~ to concat stuff in P5
timotimo oh my ~.~
daxim unfilled array elements: I know they stringify to the empty string and their type is Any, but what is their value?
moritz daxim: Any
timotimo daxim: their value is Any, too
moritz daxim: the type object 12:49
[Coke] m: my @a; @a[4]=3; say @a[1].WHAT; 12:53
GLRelia rakudo-moar 17411e: OUTPUT«(Any)␤»
camelia rakudo-moar e6f360: OUTPUT«(Any)␤»
daxim what's the design decision for making exists and deletes adverbs and not a method like kv? 12:57
jdv79 daxim: i have wondered that but didn't care enough to ask 12:58
they seem like outliers 12:59
timotimo because we'd have to have delete_pos and delete_key
for things that behave like Match or Capture, i.E. things that have both positional and associative functionality
daxim can you give a concrete example?
timotimo i never can :P 13:01
FROGGS if there was a method called .exists instead of the adverb, you would call .exists on Any 13:02
... on any Any in fact
so what if you store Any to a slot of an array? the slot exists then but would be the same Any as a slot that is made up for you because you asked for it 13:03
timotimo mhm
FROGGS and adverbs get passed to the method, like AT-POS for the postcircumfix []
and this method can then properly check if a slot exists or not
FROGGS daxim: so in every case you want to talk to the method that is returning something instead of talking to the return value directly, you'd probably want adverbs 13:04
daxim is that the generalised explanation for the existence of adverbs? 13:05
timotimo a little bit 13:06
FROGGS daxim: put differently: adverbs are just flags to the sub/method they get applied on, so these subs/methods can do different stuff then usual 13:07
timotimo i'm not sure it helps daxim, though? 13:10
FROGGS I don't know :o) 13:10
daxim it is still a bit vague, but that's not the fault of your explanation, but my lack of experience. I figure it will sink in later 13:11
ShimmerFairy daxim: our hashes and arrays don't have some sort of encapsulating type around values it returns, so you can't really define a method to go after the subscripting. 13:12
daxim: and when you think "I could just put a method before the subscript instead, to modify what the subscript does!", well, that's what adverbs are suited for. :)
timotimo ShimmerFairy: i don't think that's what daxim is suggesting, though. as i understand it, it's more like "why not @foo.exists(10) or %test.exists('hello')" 13:13
jdv79 imo adverbs stick out as an inconsistency or a rarity where the why is not obvious. 13:16
ShimmerFairy daxim: if what timotimo said is true, then in that case there's the argument that :exists and :delete are better for demonstrating the fact that you're basically subscripting, just something slightly different happens.
.exists(42) or .delete("foo") don't visually look like a subscript access, even though that's the main thing happening in those operations ("find this thing, but just tell me if it exists" / "find this thing, and delete it") 13:18
[Coke] now controlls @perlhex 13:20
timotimo cool
friendly take-over! >:)
[Coke] has no idea what to DO with it, mind. 13:21
timotimo we'll hopefully be able to help you with that
it's supposed to be for interesting/enlightening one-liners and snippets, right?
[Coke] Sure. :) 13:22
moritz ShimmerFairy, daxim, timotimo: $match.exists($key) wouldn't make it obvious if $match{$key}:exists or $match[$key]:exists is meant
moritz and for things like IntStr (subclass of both Int and Str), a type-based distinction is impossible 13:23
ShimmerFairy ah yes, there's that critical detail as well :)
jdv79 you might be able to just pick random p6 rosetta snippets
masak_venue I have a question about rosettacode.org/wiki/Man_or_boy_test#Perl_6
timotimo i already said that! :)
ShimmerFairy Ah look, here's one now!
moritz also, we wouldn't get autoquoting from %h<key>>exists
masak_venue how come it works as stated, but not when I change `--$k` to `$k - 1` ?
jdv79 ha
moritz timotimo: yes, but I don't know if your point came accross
timotimo neither do i :S 13:24
masak_venue when I change it to `$k - 1` it hangs. and I don't immediately see why it should even be different.
what am I missing? :)
ShimmerFairy imagines a special P6 keyboard that just has «» keys, perhaps as supershift™+,/supershift™+. 13:25
timotimo neo2 has those :P
it has something very similar to supershift™
daxim in X you can use Compose out of the box, no need to learn a whole 'nother layout like neo 13:26
timotimo of course
but neo is amazing
ShimmerFairy I use compose as well, perhaps the special keyboard is just a set-aside Compose key :) 13:26
timotimo it'd be pretty cool if other layouts got the "multiple layers" treatment neo2 has without rearranging all the basic letters 13:27
so it'd be much less of a re-learn for regular folks
ShimmerFairy (or as the config files would have it, a "Multi_key", which can almost fit into our use of the word "multi")
timotimo isn't it more like an adverb key? :P
ShimmerFairy a slang key, surely :) 13:28
daxim btw neo was designed before the author learned about duckduckgo.com/?q=ISO_LEVEL5_SHIFT that's why its levels and resp. shift keys are so quirky
timotimo "quirky" meaning "doesn't work in java applications", right 13:29
?
daxim ? 13:30
timotimo i don't think i understand what you mean :|
the first few results from that search are all "how do i get my level 5 arrow keys to work with $foo"
and yeah ... it's difficult to make that work across everything 13:33
QtCreator on windows, for example ... very frustrating
[Coke] The description at rosettacode.org/wiki/Category:Perl_6 could be updated to mention Christmas. 13:37
muraiki hihi 13:39
timotimo ohai
cdc m: react { whenever supply { for "/etc/os-release".IO.lines { emit $_ }; done } { .say } } 13:46
GLRelia rakudo-moar 17411e: OUTPUT«PRETTY_NAME="Debian GNU/Linux 8 (jessie)"␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/share/perl6/runtime/CORE.setting.moarvm:1␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/shar…»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ykCFEpuHxM␤Undeclared routines:␤ done used at line 1. Did you mean 'none', 'one'?␤ emit used at line 1. Did you mean 'exit'?␤␤»
cdc why does it^ work only for the first line? 13:47
I mean, in this example, "emit" is not from the "react" block, it is from the "supply" block and should be used by "whenever". 13:49
[Coke] I think move the supply outside of the react. testing.. 13:50
cdc it is already the case with my not-reduced code. 13:51
my $s = supply { for "/etc/os-release".IO.lines { emit $_ }; done }; react { whenever $s { 13:52
m: my $s = supply { for "/etc/os-release".IO.lines { emit $_ }; done }; react { whenever $s { .say } }
GLRelia rakudo-moar 17411e: OUTPUT«PRETTY_NAME="Debian GNU/Linux 8 (jessie)"␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/share/perl6/runtime/CORE.setting.moarvm:1␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/shar…»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3NldpYeH3c␤Undeclared routines:␤ done used at line 1. Did you mean 'none', 'one'?␤ emit used at line 1. Did you mean 'exit'?␤␤»
timotimo huh, so the dynamic scope somehow gets messed up? 13:54
or the handler only fires once for some reason?
i'm not sure if we even expect this to work properly? 13:55
m: my $s = supply { emit 1; emit 2; emit 3; }; react { whenever $s { .say } }
GLRelia rakudo-moar 17411e: OUTPUT«1␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/share/perl6/runtime/CORE.setting.moarvm:1␤Useless use of emit in react in any at /home/steve/sandbox/perl6/rakudo/install/share/perl6/runtime/CORE.setting.moarvm:1␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0QyO8_37T6␤Undeclared routine:␤ emit used at line 1. Did you mean 'exit'?␤␤»
timotimo i think we expect emit inside a supply { } only as a reaction to a whenever triggering something? perhaps? or something like that?
dalek ecs: a71e379 | skids++ | S99-glossary.pod:
Add "list to remember" to glossary
13:56
timotimo as in, the first time the block inside runs, it's only for setup?
cdc .ask jnthn is irclog.perlgeek.de/perl6/2015-09-04#i_11168945 a bug or a misunderstanding on my part? Thanks in advance! 13:59
yoleaux cdc: I'll pass your message to jnthn.
RabidGravy m: react { whenever Supply.from-list("/etc/os-release".IO.lines) { .say }} 14:01
GLRelia rakudo-moar 17411e: OUTPUT«PRETTY_NAME="Debian GNU/Linux 8 (jessie)"␤NAME="Debian GNU/Linux"␤VERSION_ID="8"␤VERSION="8 (jessie)"␤ID=debian␤HOME_URL="www.debian.org/"␤SUPPORT_URL="http:...an.org/"␤»
camelia rakudo-moar e6f360: OUTPUT«NAME=openSUSE␤VERSION="13.2 (Harlequin)"␤VERSION_ID="13.2"␤PRETTY_NAME="openSUSE 13.2 (Harlequin) (x86_64)"␤ID=opensuse␤ANSI_COLOR="0;32"␤CPE_NAME="cpe:/o:opensuse:opensuse:13.2"␤BUG_REPORT_URL="bugs.opensuse.org"␤HOME_URL="https://…»
timotimo we can probably install a handler for EMIT around the initial creation of the supply or react block and give a better error message in any case
cdc timotimo: thanks! :) 14:04
timotimo all thanks should go to RabidGravy :)
cdc RabidGravy: thanks! :) too ;) 14:05
however, I'm still wondering why "Supply.from-list" doesn't behave like "supply { for { emit } }" ...
RabidGravy the parser doesn't get to see the already compiled emit 14:11
timotimo hm?
RabidGravy the useless use of emit is in the grammar I think 14:12
PerlJam src/core/Supply.pm line 1065 14:14
jnthn cdc: Looks like a bug, probbly 'cus I implemented the whole lot supply/react/whenever in 6 hours on a plane... :) 14:18
yoleaux 13:59Z <cdc> jnthn: is irclog.perlgeek.de/perl6/2015-09-04#i_11168945 a bug or a misunderstanding on my part? Thanks in advance!
cdc jnthn: ok, not a big worry then :) Thanks !
cdc would be capable to implement awesomeness in 6 hours too ... 14:19
PerlJam Is there a way (besides using tap) to say whenever $supply.is-done { do-something } ?
jnthn PerlJam: whenever is a loop ;) 14:20
whenever $supply { LAST do-something() }
PerlJam doh!
yeah, I keep forgetting that . IT doesn't look loopy enough to me :)
jnthn for $seq -> $value { }
whenever $supply -> $value { }
;)
timotimo ohai jnthn 14:21
jnthn o/ timotimo 14:22
cdc For information: RT #125987 Unexpected "Useless use of emit in react" 14:23
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125987
btyler_yapc on the topic of whenever and react, I'm about to present this as a lightning talk at YAPC::EU: gist.github.com/kanatohodets/8ffb1...04c80225cc 14:24
jnthn cdc: Thanks :)
jnthn btyler_yapc: cute :) 14:25
RabidGravy is this stuff fairly settled? If so I'll stick it in the docs
jnthn RabidGravy: Yeah, and you may find my original gist on it informative 14:25
Though it's not all done and as I mentioned a moment ago was done on a pretty short timescale ;)
I'll be polishing :) 14:26
btyler_yapc same thing with IO::Select in perl5 also now in that gist (I gave a talk about event loop workings at SPW, and that was my simple example) 14:26
lizmat messages! 14:27
yoleaux 11:21Z <Ven> lizmat: irclog.perlgeek.de/perl6/2015-09-04#i_11168004 design.perl6.org/S02.html#Undefined_types
RabidGravy jnthn, cool, I haven't checked the original gist since before you implemented it :)
lizmat jnthn: I managed to do your 50 min talk in 25 :-(
good thing there were some questions...
RabidGravy lizmat, I always seemed to deliver talks in half the alloted time 14:28
jnthn lizmat: ...how?! 14:29
I overran my slot at SPW o.O
Apparently I waffle a lot :P
timotimo oh, waffles are great, though! 14:29
RabidGravy gaufres! 14:30
ShimmerFairy jnthn: you took all the extra time then, clearly! :P 14:31
lizmat jnthn: I just spoke too fast, didn't pace myself properly
I guess I'm a bit out of touch with presenting
was the first presentation for a large group I gave in a long time (a year to be precise) 14:32
jnthn lizmat: Still, good you filled the slot I had to vacate with something 6y :) 14:33
lizmat++
lizmat thank you :-) 14:33
lizmat especially since DrForr's talk was cancelled due to his unfortunate fall 14:33
timotimo argh, i hope he gets well soon!
lizmat basically, he did an mst 14:34
timotimo so it was very loud?
lizmat no, it was very broken
the hip, then
lizmat daxim: if you really want to check for existence of a key in a hash and not use adverbs 14:35
m: my %h = a => 42; say %h.EXISTS-KEY('a') 14:36
GLRelia rakudo-moar 17411e: OUTPUT«True␤»
camelia rakudo-moar e6f360: OUTPUT«True␤»
lizmat m: my %h = a => 42; say %h.DELETE-KEY('a'); say %h
GLRelia rakudo-moar 17411e: OUTPUT«42␤␤»
camelia rakudo-moar e6f360: OUTPUT«42␤␤»
pink_mist 0_o that's suprising to me
*surprising
lizmat but that won't work for slices
just for single values 14:37
it's basically directly using the underlying logic
pink_mist oh wait, it isn't surprising; I missed that you had a say in front of the delete
daxim good to know, "underlying" means where? 14:38
jnthn EXISTS-KEY is the low-level API a collection type actually implemented so the @foo{$x}:exists actually works 14:39
ShimmerFairy the default [] and {} implementations use methods like EXISTS-KEY or AT-POS as part of their logic, to make supporting those for your own classes easier 14:39
jnthn @foo{@keys}:exists calls .EXISTS-KEY on each key in the slice, for example 14:40
daxim anyone else bothered by the distortions of history in the first paragraph of <news.ycombinator.com/item?id=10168821>? 14:42
[Coke] "most of the core language developers were working on Perl 6" seems especially false. 14:44
RabidGravy m: class M is Hash { method EXISTS-KEY(|c) { say "boo"; nextsame; }}; my M $m = M.new; say $m{42}:exists; # for reference
GLRelia rakudo-moar 17411e: OUTPUT«boo␤False␤»
camelia rakudo-moar e6f360: OUTPUT«boo␤False␤»
jnthn daxim: I might still be if I'd not heard the line a thousand times and grown too thick a skin to care any more. :) 14:45
[Coke] in other news: people still read ycombinator?
diakopter thick++ skin++
[Coke] A wild diakopter++ appears!
[Coke] waves 14:46
diakopter particles
timotimo most of the core language developers were working on perl 6 !!! 14:47
cool!
RabidGravy nearer to 5.6.0 than 5.8.0
timotimo so in this parallel universe, perl 6 has already been past its "finished release" for the last 10 years
competing implementations of perl 6, with hatred and contempt between all of them 14:48
every team trying their best to swipe the rug from under the feet of the other implementing teams in order to grasp the golden perl 6 graal first
diakopter [Coke]: to answer your HN question: cs.stanford.edu/people/karpathy/hn...lysis.html
ShimmerFairy timotimo: I think someone threw the grail against the wall before the fights begun, though :P 14:49
timotimo and then, the perl 5 camp committed to regular releases, out of spite towards the perl 6 people, who became more and more foreign to them 14:49
jdv79 did someone say waffles? i could do a few right now. 14:50
timotimo jdv79: look in front of you now.
do you have a waffle?
jdv79 i read hn all the time
timotimo wouldn't you be happier if you did?
jdv79 i do not
sadly
diakopter [Coke]: also this porter.io/blog/hackernews-cheaters...f-you-can/
jdv79 completely
RabidGravy no time for gofres there's beer ro be drunk 14:51
[Coke] huh. 14:52
[Coke] hoelzro: if I try #125977, I get Type check failed in binding &code; expected 'Callable' but got 'Hash' 15:02
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125977
hoelzro [Coke]: ah, my bad; I should've posted my actual script 15:04
hoelzro fixes it
[Coke] hoelzro: I added a "say 1" in there, segfaults fine. :|
note that if I just use 1;, it completes and doesn't segfault. 15:05
[Coke] RT: 1,037 tickets again. :| 15:06
hoelzro [Coke]: the pointy block version should probably segfault; I just added it to the ticket 15:07
grondilu m: class A { has @!a handles <at_pos>; submethod build(:@a) {} }; say A.new(:a(my @ = 1))[0];
GLRelia rakudo-moar 17411e: OUTPUT«A.new␤»
camelia rakudo-moar e6f360: OUTPUT«A.new␤»
grondilu m: class A { has @!a handles <at_pos>; submethod BUILD(:@a) {} }; say A.new(:a(my @ = 1))[0];
GLRelia rakudo-moar 17411e: OUTPUT«A.new␤»
camelia rakudo-moar e6f360: OUTPUT«A.new␤»
jnthn figures he's an hour or so's worth of energy to hack on something :) 15:13
Maybe like merging glr into nom :) 15:14
hoelzro dun dun dun 15:15
RabidGravy jnthn++ # plan! I've only got a few hours hacking to fix my modules before I off to Beefa 15:16
hoelzro then we can start removing deprecations =)
grondilu m: class A { has @!a handles <at_pos>; submethod build(:@a) { @!a = @a } }; say A.new(:a(my @ = 1))[0]; 15:20
GLRelia rakudo-moar 17411e: OUTPUT«A.new␤»
camelia rakudo-moar e6f360: OUTPUT«A.new␤»
grondilu m: class A { has @!a handles <at_pos>; submethod BUILD(:@a) { @!a = @a } }; say A.new(:a(my @ = 1))[0];
GLRelia rakudo-moar 17411e: OUTPUT«A.new␤»
camelia rakudo-moar e6f360: OUTPUT«A.new␤»
grondilu tinyurl.com/phq49fm 15:23
jnthn It's called AT-POS now, not at_pos
# Your branch is ahead of 'origin/nom' by 510 commits. 15:24
So commit!
RabidGravy wahay!
grondilu, -->
m: class A does Positional { has @!a handles <AT-POS>; submethod BUILD(:@a) { @!a = @a } }; say A.new(:a(1,2))[0];
grondilu oh OK, a deprecation warning for at_pos would be nice
camelia rakudo-moar e6f360: OUTPUT«1␤»
GLRelia rakudo-moar 17411e: OUTPUT«1␤»
grondilu I suppose that may explain why my Clifford module was broken 15:25
RabidGravy it never gets called so it can't be deprecated as it were
flussence should trait_mod:<handles> check .^can on the thing it's attaching to and throw a warning for things like that? 15:26
jnthn grondilu: It's been, like, months and months.
grondilu yeah sorry I haven't done any perl6 related stuff for quite some time. 15:27
jnthn grondilu: No probs; just noting there almost certainly was such a message until rather recently :) 15:30
bah, I did the spectest without merging glr into master in roast also...
std: class Foo { method bar { } }; Foo.new.bar:; 15:33
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Illegal use of colon as invocant marker at /tmp/xoqG0_SJVe line 1:␤------> 3ass Foo { method bar { } }; Foo.new.bar:7⏏5;␤Check failed␤FAILED 00:00 138m␤» 15:33
jnthn std: class Foo { method bar { } }; Foo.new.bar: ;
camelia std 28329a7: OUTPUT«ok 00:00 136m␤»
jnthn "ass Foo" :D
GLRelia std : OUTPUT«Can't chdir to '/home/steve/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 171.␤ EvalbotExecuter::_auto_execute(HASH(0x206fe38), "class Foo { method bar { } }; Foo.new.bar:;", GLOB(0x23ad250), "/tmp/5P6bBXa6If", "std") called at lib/EvalbotExecute…» 15:34
FROGGS what the
what is that rude jnthn doing in here! :D 15:35
jnthn I love how the error started "Illegal use of colon"... :P
FROGGS *g* 15:37
jnthn Some spectest fallout with the merge, but I'm going to push it and we can clean it up together :)
dalek Heuristic branch merge: pushed 510 commits to rakudo/nom by jnthn 15:38
Heuristic branch merge: pushed 276 commits to roast by jnthn
jnthn It's done! \o/
FROGGS ohh, is that the glr -> nom merge? 15:39
RabidGravy apparently
FROGGS \o/
jnthn Yes :) 15:40
RabidGravy jnthn++ # nothing like a spot of jfdi on a friday
FROGGS ohh a pro pos jfdi... I'm intending merging C++ support this weekend 15:41
jnthn Yeah, well, the backlogs were full of consensus this and what would jnthn do that...so I decided to jfdi :)
FROGGS it cannot hurt but it will let es get in in shape by playing with it...
jnthn FROGGS: +1, I've been fine with that merge for a good while :)
FROGGS yay!
jnthn: AFAICT g++, clang++ and cl pass the sanity tests 15:42
RabidGravy FROGGS++ # groovetastic - I can take the shonky C wrapper out of the soundtouch module
FROGGS RabidGravy: ohh, that will mean that I'll get feedback :o) 15:42
jnthn I guess now I've done the merge I should be good and help clean up some spectests :) 15:43
FROGGS I'll hook in in about 3 hours, when the kids are in bed 15:44
dalek ast: 777fc21 | jnthn++ | S02-magicals/KERNEL.t:
Extra test for easier failure analysis.
15:54
kudo/nom: 0802eec | jnthn++ | src/core/Kernel.pm:
Add missing `flat` to fix signals test on Win32.
15:55
jnthn That's one down :)
jnthn Ah, a bunch of the new failures are 'cus TimToady decided List.WHICH should go away. :) 15:56
lizmat :-) 15:58
I see 7
one of which is an OS X known issue
so we're really at 6 :-)
jnthn At least 3 are about the TimToady change 15:59
I guess I'll fix them and if we get a Tuple-y type in the future we just write tests for that 16:00
Loren_ sub MAIN(@files) { for @files -> $f { } } 16:03
ugexe sub MAIN(*@files) { for @files -> $f { } } 16:05
Loren_ sub MAIN(@files) { for @files -> $f { say $f; } } > merge.pl , I use like this ./merge.pl something.txt, but it's not working
grondilu hang on. Has the GLR just happened?
jnthn grondilu: yes
dalek ast: f12a825 | jnthn++ | S (2 files):
Fixes now List is back to being a reference type.
grondilu jnthn++ 16:06
jnthn (many other folks)++ made it possible :)
Loren_ Oh.. thks. 16:06
ugexe, thks
FROGGS the next steps probably are to check all modules and try to find issues in the implementation
ugexe glad i could answer it before you could ask :)
grondilu so any early estimate on perf improvement or is that too soon?
FROGGS and after that looking into optimizations and cleanups
masak_venue m: sub foo( Str &b:(Bool --> Int) ) { say "alive" }; foo( sub (Bool) { 42 } ) 16:07
GLRelia rakudo-moar 17411e: OUTPUT«Type check failed in binding &b; expected 'Callable[Str]' but got 'Sub'␤ in sub foo at /tmp/ubc2f2A6Cn:1␤ in block <unit> at /tmp/ubc2f2A6Cn:1␤␤»
camelia rakudo-moar e6f360: OUTPUT«Type check failed in binding &b; expected 'Callable[Str]' but got 'Sub'␤ in sub foo at /tmp/fBPFLs3lWv:1␤ in block <unit> at /tmp/fBPFLs3lWv:1␤␤»
FROGGS grondilu: it is too early
masak_venue submits rakudobug
jnthn masak_venue: Wait, why?
masak_venue (it ignores the inner/Int return type directive)
jnthn Oh... 16:08
DIHWIDT :P
masak_venue I think it should fail by forbidding doubly declaring it like that
jnthn Yeah, there's precedent for trying to catch such thinkos
masak_venue jnthn: yes, lichtkind did it by mistake and didn't even realize.
jnthn m: my Int foo() returns Str { } 16:08
GLRelia rakudo-moar 17411e: OUTPUT«5===SORRY!5===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/kE7BRJqeZr:1␤------> 3my Int 7⏏5foo() returns Str { }␤Malformed my␤at /tmp/kE7BRJqeZr:1␤------> 3my Int 7⏏5foo() returns Str { }␤␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/FG3lZlDRBh:1␤------> 3my Int 7⏏5foo() returns Str { }␤Malformed my␤at /tmp/FG3lZlDRBh:1␤------> 3my Int 7⏏5foo() returns Str { }␤␤»
masak_venue it would be nice to catch it and throw the perfect error message
jnthn m: my Int sub foo() returns Str { }
GLRelia rakudo-moar 17411e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KWyJw7BEBS␤Redeclaration of return type for foo (previous return type was Int)␤at /tmp/KWyJw7BEBS:1␤»
camelia rakudo-moar e6f360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RNk5jWh_lG␤Redeclaration of return type for foo (previous return type was Int)␤at /tmp/RNk5jWh_lG:1␤»
jnthn Something like that
masak_venue yes, that one 16:09
Loren_ hehe.. I hope have a book 'perl6 program language' 16:10
someday .
masak_venue Loren_: me too! 16:11
dalek ast: 18b7541 | jnthn++ | S32-io/IO-Socket-INET.pl:
Update socket test for GLR, deprecations.
masak_venue Loren_: it will happen -- question is how soon.
Loren_: are you new here? if so, welcome! 16:12
Loren_: (if you're a lurker, then welcome anyway!) :P
RabidGravy have any publishers expressed interest in making one?
dalek ast: 3a02f73 | jnthn++ | integration/advent2013-day07.t:
Another victim of List.WHICH removal.

Happily, restoring the behavior in the original advent article.
16:13
masak_venue RabidGravy: I believe it's more about authors expressing an interest than about publishers expressing an interest
Loren_ masak_venue, Em, yes.
masak_venue :) 16:15
RabidGravy masak_venue, I dunno back in the just-pre-dotcom-boom days, they were actively canvassing for authors for Perl books
masak_venue Loren_: are you a fiver? are you at YAPC::EU?
Loren_ masak_venue, No. That has a little difficult to learn perl6, I'm from china . Insied g.f.w.
My English just so so.. 16:16
RabidGravy give it a couple of hours and your English will be better than mine ;-) 16:17
Loren_ RabidGravy, thks, i will. 16:18
RabidGravy my what a lot of spectests
PerlJam has an interest in writing a Perl 6 book 16:19
Now ... if only I had the time to do it well.
RabidGravy have they multiplied in the last while or has my computer got slower
dalek kudo/nom: 5db6cbd | jnthn++ | src/core/Capture.pm:
Fix/optimize Capture.WHICH.

Accidentally relied on List.WHICH, even though it didn't mean to.
16:23
masak_venue Loren_: 很高兴认识你! 16:24
^^
masak_venue 's battery is running low
Loren_ masak_venue, i just a 'pi min'
masak_venue, i just a 'pi ming'
jnthn masak_venue: So you use Chinese so you can make less keystrokes to say the same thing? :)
masak_venue jnthn: 是 16:25
Loren_ masak_venue, it can't display properly
masak_venue, just use english 16:26
PerlJam heh
dalek kudo/nom: 9c5cb50 | jnthn++ | src/core/Capture.pm:
Toss a bogus flat in Capture.WHICH.
jnthn Spectest should be a good bit cleaner now. 16:27
(The fallout wasn't really much glr merge, and mostly List.WHICH getting removed and an unfortunate consequence that had for the GLR code)
RabidGravy screw it then, not going to re-spectest, just rakudobrew it all up 16:28
jnthn RabidGravy: We were only talking a dozen failures over several files anyways 16:29
jnthn Out of thousands of tests/files that ain't bad 16:29
moritz m: say <a b> === <a b> 16:30
GLRelia rakudo-moar 17411e: OUTPUT«False␤»
camelia rakudo-moar e6f360: OUTPUT«True␤»
RabidGravy yeah, I'd already started running it before you fixed them
jnthn On HEAD that is now False
Guess camelia is behind
moritz glr is gone? 16:31
RabidGravy gone, gone, gone 16:32
jnthn moritz: Aye, merged 16:33
GLRelia++ can also be wished a fond goodbye too :)
moritz :-) 16:34
jnthn I'm not sure that was fond :P
Effective, however :)
moritz it was a very fond kick, with no rudness whatsever in the message :-)
jnthn I need to have another whack at Windows-specific issues in spectests, not to mention some further S17 flakiness work, but run I just did looked alright 16:36
RabidGravy looks like most of my fallout is the done -> done-testing thing whch ain't no glr thang 16:37
moritz yes, I think I fixed my modules, and submitted one or two pull requests for that 16:38
but the ecosystem isn't small anymore :/
RabidGravy Ooh and a Parcel 16:40
RabidGravy and a Parcel in a Pair tree 16:42
moritz moritz@hack:~/p6/perl6-all-modules$ git grep --word Parcel | cut -d/ -f 1,2|sort -u|wc -l 16:43
16
hoelzro jnthn++ # glr merge
perl6_newbee hi all 16:45
Loren_ welcome to perl6 16:46
jnthn rejects RT #125963 with a little explanation of why 16:47
That's one RT down :)
perl6_newbee Can someone explain how I can return two arrays from a sub? return (@array, @array1) does not work as expected. I know I could use sub irgendwas(@array is rw, @array1 is rw) but i want it the Perl way :-)
RabidGravy m: say ("a".."z","A".."Z").pick(15).join(""); 16:48
camelia rakudo-moar e6f360: OUTPUT«riAXKWStlEcUyJH␤»
jnthn RabidGravy: That needs a .flat.pick after GLR I think 16:49
(I guess camelia ain't updated...)
RabidGravy yep, cheers
another one down ;-) only another 14 modules
jnthn heh, I should check my modules too 16:50
moritz perl6_newbee: I'm fairly certain that return (@a1, @a2) works; it's just a matter of what you do with it on the caller side
jnthn But I should probably cook us some dinner here first :)
And then probably relax, so I can more properly recover... :)
& 16:51
JimmyZ perl6_newbee: you can't do my(@c, @d) = (@a1, @a2)
moritz but my ($c, $d) = thesub() works 16:52
perl6_newbee hmm, I have my (@array, @array1) = irgendwas() in my script. But I get always all stuff in the first array. 16:53
Loren_ m: sub test() { my @a1 = (1, 3); my @a2 = (2, 4); return (\@a1, \@a2); }; my @x = test(); say @x[0].perl; say @x[1].perl; 16:54
camelia rakudo-moar e6f360: OUTPUT«Potential difficulties:␤ To pass an array, hash or sub to a function in Perl 6, just pass it as is.␤ For other uses of Perl 5's ref operator consider binding with ::= instead.␤ Parenthesize as \(...) if you intended a capture of a single var…»
Loren_ it's print '\([1, 3]<>) 16:55
\([2, 4]<>)' in my perl6
lizmat m: my (@a,@b) = sub { (1,2,3),(4,5,6) }(); dd @a,@b 16:56
camelia rakudo-moar e6f360: OUTPUT«@a = [1, 2, 3, 4, 5, 6]<>␤@b = []<>␤»
lizmat hmmm
lizmat according to glr, that shouldn't have flattened, should it ? 16:56
JimmyZ m: my ($a,$b) = sub { (1,2,3),(4,5,6) }(); dd $a,$b 16:57
camelia rakudo-moar e6f360: OUTPUT«$a = 1␤$b = 2␤»
pink_mist is camelia glr-ified yet?
lizmat ah... good point
$ 6 'my (@a,@b) = sub { (1,2,3),(4,5,6) }(); dd @a,@b' 16:58
@a = [(1, 2, 3), (4, 5, 6)]
@b = []
different, still not good, I think
perl6_newbee that looks like my problem
what is 'dd'?
JimmyZ ./perl6-m -e 'my ($a,$b) = sub { (1,2,3),(4,5,6) }(); dd $a,$b'
lizmat yeah
JimmyZ $a = $(1, 2, 3)
$b = $(4, 5, 6)
[Coke] jnthn++ merging. I was not looking forward to that. :)
lizmat perl6_newbee: dd is tiny data dumper
lizmat m: my $a = 42; dd $a, "foo" 16:59
camelia rakudo-moar e6f360: OUTPUT«$a = 42␤"foo"␤»
Loren_ m: sub test() { my @a1 = (1, 3); my @a2 = (2, 4); return (\@a1, \@a2); }; my @x = test(); dd @x;
camelia rakudo-moar e6f360: OUTPUT«Potential difficulties:␤ To pass an array, hash or sub to a function in Perl 6, just pass it as is.␤ For other uses of Perl 5's ref operator consider binding with ::= instead.␤ Parenthesize as \(...) if you intended a capture of a single var…»
perl6_newbee ah I use always say xyz.perl 16:59
cool 17:00
moritz fwiw Stage parse on the JVM-build dies with "java.lang.NullPointerException"
which is why camelia isn't up-to-date
Loren_ The above code works fine in my perl6 'version 2015.05-198-gd6430c1 built on MoarVM version 2015.05-79-g458940f' 17:01
ugexe thats something like 2 months old 17:01
ugexe around when all the list changes started 17:02
perl6_newbee my script is running with rakudo-2015-06 on WIndows 10.
[Coke] and predates glr, no doubt.
Loren_ ugexe, yes, i'm not update it since i installed .
[Coke] hoelzro: You still planning on ripping out the deps? 17:04
perl6_newbee I have WIndows 10 only at work. so next week I will try to figure out what happens
hoelzro [Coke]: yes, I was just about to start
[Coke] hoelzro++
[Coke] tries a local jvm build.. 17:05
ugexe m: say $*PERL.compiler.version
camelia rakudo-moar e6f360: OUTPUT«v2015.7.1.215.ge.6.f.3602␤»
ugexe thats old. latest you can just do return (@a1, @a2) 17:06
[Coke] those last 4 words should probably be one word.
Loren_ I will try that code when rakudo update finish. 17:10
[Coke] confirms the jvm buildfail 17:18
dalek kudo/nom: d977ee6 | hoelzro++ | src/core/Pod.pm:
Remove deprecated Pod::Block.content
17:20
kudo/nom: e251aa7 | hoelzro++ | src/Perl6/Actions.nqp:
Remove deprecated $*OS and $*OSVER
ugexe jvm has been failing for like 1.5 months i thought
dalek ast: 68f7764 | hoelzro++ | S02-types/deprecations.t:
Fix up deprecation warnings test

  $*OS and $*OSVER are no longer deprecated; they're just gone now
17:21
ast: 6786fc8 | hoelzro++ | S17-lowlevel/lock.t:
Only skip low level lock test for RT #125977 on Moar

It works fine on JVM
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125977
lizmat YAPC::EU shutting down& 17:22
RabidGravy m: my @d := ".".IO.parent.dir 17:30
camelia ( no output )
RabidGravy is camelia not updated? 17:31
cognominal so, parcels are gone?
[Coke] cognominal: yes, gone 17:33
(jvm) github.com/coke/perl6-roast-data/b...ummary.out - not failing everywhere. I confirmed it's failing on os x. 17:34
RabidGravy: the e6f360 tells you if it is or not 17:35
it's the sha1 used to build that rakudo-moar.
RabidGravy er, WTF does "Bytecode stream version too low" mean? 17:42
grondilu hum somehow I suspect my install does not work well: 17:44
$ perl6 --version
This is perl6 version 2015.07.1-728-g9c5cb50 built on MoarVM version 2015.07-108-g7e9f29e
^that does not look very recent
m: say $*VERSION
camelia rakudo-moar e6f360: OUTPUT«Dynamic variable $*VERSION not found␤ in block <unit> at /tmp/QUAwXPdiFt:1␤␤Actually thrown at:␤ in block <unit> at /tmp/QUAwXPdiFt:1␤␤»
ugexe thats within the last hour? 17:45
grondilu yes
at least it's supposed to 17:46
ugexe it is for rakudo at least
moritz camelia doesn't update, because the rakudo-JVM build fails 18:00
kbenson ugexe: I just build with rakudobrew within the last 30-45 minutes: "This is perl6 version 2015.07.1-730-ge251aa7 built on MoarVM version 2015.07-108-g7e9f29e" 18:03
masak jnthn++ # glr merge 18:04
soooo....
...when are we renaming 'nom' to 'master'? :)
kbenson was glr just merged?
masak yes 18:05
nine Woohoo!
moritz nine++ # doing a huge amount of the fixup work
kbenson then let me be the first to suggest there may be a regression somewhere :( 18:06
hopefully just in the p6doc module or its tests
gist.github.com/kbenson/9f16328b11dad400a695 18:07
[Coke] we are trying to shake out ecosystem regressions, yes. bring 'em in. 18:08
hoelzro $*CWD = IO::Path.new(cwd()) # what's the recommended way to do this, now that cwd() is going away? 18:12
dalek line-Perl5: 9a4e8b0 | (Stefan Seifert)++ | / (4 files):
Adjust to the post GLR world
18:13
Inline-Perl5: 78dc003 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Inline-Perl5: Seem to need a sink() on Perl5Parent now as well
nine Sorry dalek :/ 18:13
muraiki yay glr merge jnthn++ nine++ everyone ++ 18:14
nine Btw. Inline::Perl5 passes its own tests and the spec tests. I'm not sure if it needs further changes. Right now you often have to itemize a hash to avoid flattening which makes using Perl 5 modules from Perl 6 a bit weirder than I'd like.
Many Perl 5 APIs require you to pass a hash with arguments to emulate named arguments. Right now you have to write foo(${bar => 1}) in such cases 18:17
muraiki nine: yeah, almost all of our internal code uses named args
well, we use the: foo(bar => baz) form 18:18
and there are some weird cases where we foo({bar => baz})
but that was abandoned at some point in the last 15 years
I guess the latter form isn't uncommon in javascript ;) 18:19
nine The latter form has the advantage that you get the "odd number of elements" warning in the caller's place. 18:20
That's why it's recommended at least by some.
muraiki good point. I never thought about that
nine Ok, out for dinner now. 18:21
muraiki looks like Log::Syslog::Native has an error running tests post-glr
dalek kudo/nom: 686e9aa | hoelzro++ | src/ (2 files):
Remove deprecated winner/more from Supply
18:24
kudo/nom: 03b5a0a | hoelzro++ | src/core/ (5 files):
Removed a bunch of deprecated I/O constructs
ast: 5c6d958 | hoelzro++ | S02-types/WHICH.t:
Remove Proc::Status from WHICH check

It has been removed with open(:pipe)
masak heads down to dinner 18:25
timotimo get down and dinner!
muraiki here's the failing Log::Syslog::Native test info gist.github.com/muraiki/fe68e78a0427c93ea3e0 18:26
muraiki although it's weird because neither test file reported any failures explicitly. is it because of "Parse errors: No plan found in TAP output" ? 18:27
hoelzro I think that's all the deprecation removals I'll do for today 18:38
let the ecosystem breathe a bit
ugexe muraiki: there is no plan, and the tests use 'done()' which no longer sets the plan (its done-testing() or something) 18:40
muraiki ugexe: that explains it. thanks!
flussence first glr fallout on my end (probably): panda now thinks "Text-Tabs-Wrap" isn't a valid module name and refuses to install it... 18:54
ugexe on a side note, Test::Corpus's META.info<provides> looks like it was incorrectly generated 19:06
flussence probably... I ought to redo all my META.info files by hand. Any docs for the file format? 19:07
ugexe S22 19:08
design.perl6.org/S22.html#META6.json
it says provides is optional, but i dont think it is anymore (or wont be in the future) 19:10
Ulti ohai 19:11
check out the latest comments gist.github.com/MattOates/c2e19950..._primes-p6
also the Stats module is GLR ready (in other news) 19:14
muraiki awesome! 19:18
muraiki wow, what a speedup 19:20
FROGGS ugexe: provides is optional in a sense that your dist might not ship packages/modules, but binaries or other resoures 19:23
Ulti yeah the best thing about it is it just DWIMs and isn't slow! so much more obvious what its doing than some of the other solutions 19:24
dalek c: 44c6360 | muraiki++ | lib/Language/testing.pod:
done() has become done-testing()
c: cc499db | FROGGS++ | lib/Language/testing.pod:
Merge pull request #122 from muraiki/master

done() has become done-testing()
pmurias hi 19:26
dalek kudo/cpp3: 73a46f6 | FROGGS++ | t/04-nativecall/ (3 files):
try cl, g++ and clang++ to build/test C++ libs
19:27
kudo/cpp3: 327bb6b | FROGGS++ | lib/NativeCall.pm:
automatically guess C++ name mangler
Ulti primes-naive-functional: ran in 0.007 wow o___O just the same minus the race 19:32
that's so much faster I better check its actually doing anything 19:34
flussence oh great, Text-Tabs-Wrap is actually broken by glr. Something for me to do :D
Ulti nope its really doing it that much faster wow 19:36
jdv79 RabidGravy: what did you do to H::U? 19:37
now i get test fails
dalek p: ac4a334 | FROGGS++ | tools/build/MOAR_REVISION:
bump moar revision for C++ support
RabidGravy it was working fine for me about an hour ago
Ulti once you go to far more load like 10000 as the max parallel comes online and does faster
RabidGravy I'll take a look when I have done with these other modules 19:38
FROGGS hmpf, I totally forgot that I have to port the C++ stuff to jvm before I can merge the NativeCall stuff in rakudo :o( 19:39
jdv79 does it work on glr? i haven't updated in a couple days.
FROGGS .tell japhb I merged C++ stuff in moar, but have to port it to jvm before I can merge the rakudo/cpp3 branch... hopefully this happens this weekend 19:40
yoleaux FROGGS: I'll pass your message to japhb.
jdv79 i'll also look later. dinner & 19:41
RabidGravy jdv79, some weird glr fallout but nothing I've touched recently 19:57
timotimo Ulti: what the hell? 19:58
that's amazing
but isn't "upto 1000" really small? 19:59
Ulti: also, loop labels are implemented in rakudo now 20:00
timotimo m: outer: loop (my $n = 0; $n < 10; $n++) { loop (my $m = 0; $m < $n; $m++) { next outer if $m == $n div 2; say "$n $m" } } 20:01
camelia rakudo-moar e6f360: OUTPUT«2 0␤3 0␤4 0␤4 1␤5 0␤5 1␤6 0␤6 1␤6 2␤7 0␤7 1␤7 2␤8 0␤8 1␤8 2␤8 3␤9 0␤9 1␤9 2␤9 3␤»
timotimo hm
not so simple to say if it's doing anything here %)
i think it is doing something.
Ulti timotimo: feel free to add to the gist :P I took those direct from Tim King's blog 20:06
timotimo oh
i thought that was just a typo of "timing" :D
Ulti yeah 1000 is small if you do 10000 the parallel grep is the bestest 20:07
timotimo ah, that's the post from many years ago?
Ulti yeah
where it took like 11 seconds
timotimo draw a time growth curve? :) 20:08
Ulti soooo 11 down to 0.007 seconds not too shabby!
timotimo kinda good
Ulti progress has been made >:D
timotimo oh, that's the built-in is-prime
Ulti yeah
timotimo of course that's fast :P
Ulti :P 20:09
yeah its a statistical test rather than iterate all the things
timotimo yup
it's also written in C and such
Ulti fine I'll write a parallel one of a similar form
timotimo thank you :3 20:10
Ulti throw in a few native types for good measure... 20:14
timotimo well, only for up to 64 bit big prime numbers of course 20:15
timotimo and when are 64bit sized prime numbers interesting enough? 20:17
dalek rl6-roast-data: 9c185f8 | coke++ | / (10 files):
today (automated commit)
20:18
timotimo someone uploaded "all prime numbers that fit into 32bits" saying "File primes.32b presents all 203280220 32-bit odd prime numbers from 3 to 4294967291.
"
so there's more or less enough of them to be interesting
Ulti doh segfault gunna have to think harder 20:24
screw it im gunna do the one that doesn't require any state 20:26
that would also be more impressive if it beats one of the non parallel ones that does a lot fewer comparissons 20:27
RabidGravy there, it only took three and a half hours to GLR up those 16 modules 20:29
RabidGravy jnthn, you'll be happy to know the OO::Monitors is fine 20:29
Ulti my code causes all sorts of horror gist.github.com/MattOates/125009c88f6ee9f5f101 20:46
tony-o japhb: idle being nothing else happening in the event loop 20:47
timotimo does race already work? 20:48
tony-o japhb: i was picturing something like whenever { react $*PROC.idle { } }
Ulti timotimo: yup or at least it did before 20:49
timotimo OK
Ulti this runs but screws up before finishing
tony-o or some way of injecting a sub to run in the main loop in order to read from $*IN so i can push it to a supply or separate thread
timotimo Ulti: did you try a moar with --asan yet? or valgrind? 20:51
Ulti nope
timotimo where does Stats come from?
Ulti my github via the ecosystem 20:52
timotimo ah, just panda-install Stats, eh? 20:53
Ulti yup 20:54
- the -
though I perhaps dont know enough about how race works to be sure I'm spawning a *tonne* of threads on that inner race 20:56
I assumed I would only be using 6 20:57
timotimo how long does it run on your 'puter?
Ulti for the 100 iterations it never finished
it always failed with one message or another
timotimo i get like 17 moar processes from this
Ulti :/
timotimo it takes like 3 minutes or something to run 20:58
i'll just do 10 runs instead of 100 in the bench script
asan barfs at something here 21:00
we've allocated a frame from the fixed size allocator, later we've freed that from MVM_frame_dec_ref, but we explode inside interp_run 21:01
timotimo that's just a decont instruction 21:01
Ulti :< 21:03
timotimo so it's still running in a frame that hasn't been inc'd often enough? 21:04
Ulti I'm afraid I'm going to be next to no help :Z 21:05
I just want to torture the implementors and eat popcorn 21:06
:P
timotimo fair enough :) 21:11
jonathan_ the "1 == all %($/).values" doesn't seem to work in t/03-cookies.t 21:12
timotimo can you golf the problem? 21:14
like, what's (%($/).values).perl look like? 21:15
oh it's you, gravy
jonathan_ it's in a regex, kinda tricky 21:16
jonathan_ basically it's "token foo { [ <f1> | <f2> | <f3> ] * % '; ' <?{ 1 == all %($/).values }> }" 21:18
i.e. all of f1 f2 f3 separated by ; in any order 21:19
dha So, do state variables function in P6 as they experimentally do in P5? 21:27
jonathan_ timotimo, it's a Seq of Match objects 21:28
RabidGravy dha, if you mean the initialisation is only done once then yes 21:30
jdv79 dha: state vars are experimental in p5 or they have changed in a way that is experimental? 21:33
dha I mean generally. There appears to be NO information in the P6 docs/specs about it, and I'd like to try to get it documented. C<supersede> also appears in variables.pod and that would be the last TODO in there. 21:34
jdv79 iirc they've been aroound for years now
dha jdv79 - you need to enable them with C<use feature>
RabidGravy jdv79, I've got H::U down to just the cookies test 21:35
pink_mist dha: I don't think there's anything experimental about state variables in perl5 21:39
lizmat_ dha: state variables work: they are internally used for e.g. once blocks 21:40
dha My mistake. They need to be specifically enabled, but they aren't experimental. 21:40
lizmat_ m: for ^3 { say once DateTime.now; sleep .5 }
dha lizmat_- Good. Now, they just need to be documented. :-)
camelia rakudo-moar e6f360: OUTPUT«2015-09-04T23:40:48+02:00␤2015-09-04T23:40:48+02:00␤2015-09-04T23:40:48+02:00␤»
dha Also, if I understand correctly, there's an anonymous state variable C<$> which isn't notably documented either, although I've seen it used. 21:41
lizmat m: sub a { say $++ }; a; a; a 21:42
camelia rakudo-moar e6f360: OUTPUT«0␤1␤2␤»
lizmat it's an unnamed state variable that is typically used in situations such as this ^^^
dha Yes, like that. :-)
lizmat m: sub a { say $++; say $++ }; a; a; a # just wondering 21:43
camelia rakudo-moar e6f360: OUTPUT«0␤0␤1␤1␤2␤2␤»
dha I'm looking to try to write docs for C<state>, hence my question about how similar it is to the P5 version, as that has some text I can work from. 21:43
lizmat looks like two unnamed state variables in the same scope are different 21:44
instances
pink_mist is that specced?
dha Are they, or is that an order of evaluation issue?
pink_mist - I think I can answer that. A couple of examples using state variables appear in the specs, but they are not actually described. 21:45
pink_mist well, I meant specifically the behaviour of more than one instance of $ there, not state variables in general 21:47
lizmat $++ is basically short for "state $foo++" with 'foo' being a unique string
pink_mist ah, gotcha
cool
dha Yeah, I don't think C<$> is specced anywhere. Unless it is nowhere near the phrase "state variable" 21:48
lizmat I think TimToady knows more about it 21:55
and on that note, I'm going to get some more sleep than last night& 21:56
pink_mist sleep well 21:57
RabidGravy jdv59, H::U should be working with GLR-ed rakudo now 22:12
Ven FROGGS: do you still need the test for cpp3? I can do it right now 22:17
(seems like there's no cpp3 branch on moarvm) 22:18
RabidGravy right, and that's all the dependencies sorted out as well 22:22
PAH! I FART AT THE GLR!
tadzik fart in its GLR direction? 22:31
yoleaux 2 Sep 2015 22:23Z <mohij> tadzik: github.com/patzim/rakudobrew
2 Sep 2015 22:23Z <mohij> tadzik: Supports shell local switching and dynamically determining the target version.
tadzik /o\
.tell mohij Wow, thanks man!
yoleaux tadzik: I'll pass your message to mohij.
RabidGravy tadzik, you know that regex you were asking about in HTTP::UserAgent? I took it out because I couldn't get it to work with the GLRed nom - adding instead five additional tests 22:37
skids So... there's some unfinished GLR business... the *@ vs **@ on sub forms in Any-iterable (and probably a few other places). 22:41
dalek kudo-star-daily: 64da386 | coke++ | log/ (9 files):
today (automated commit)
RabidGravy skids, on the other hand I am quite surprise it only took three and a half hours to make 19 modules work with the GLR in :) 22:43
so on the whole 22:44
skids Yes, it might end up for the better that those waited until after the merge, actually.
RabidGravy everyone++ # job well done people
skids ++everyone
dha +everyone+ 22:45
pink_mist every++one
RabidGravy now I can go and get ratted in the Mediterranean for two weeks with impunity :)
skids has to track down some rather elusive things in Sum.
dha It sounds like RabidGravy's plan is more fun. 22:46
RabidGravy :)
nighty night peeps 22:47
dha night. 22:48
pink_mist good night 22:50
skids m: buf8.new(1025).perl.say; buf8.new(202020202020202020202020202020202020202020).perl.say 22:53
camelia rakudo-moar e6f360: OUTPUT«Buf[uint8].new(1)␤Cannot unbox 138 bit wide bigint into native integer␤ in any at src/gen/m-Metamodel.nqp:1677␤ in block <unit> at /tmp/D4XIkKj8zO:1␤␤»
timotimo you think we should have a bigint-to-buffer function? 22:54
skids Well right now I'm doing: Buf.new( 1 X+& (self.Int X+> ($columns-1...0)) ); and it will only get uglier without one. But you'd have to be able to specify size and endian stuf too, so... 22:56
skids Oh that's my buf1 func. but anyway. 22:57
timotimo mhm 23:03
skids Maybe pack() 23:06
timotimo we've had interest in that for some time anyway
ShimmerFairy Yeah, we still need to figure out some kind of binary grammar thing (that is, the binary data version of grammars) 23:25
timotimo aye
ShimmerFairy And ideally a syntax that's not as horrifically compressed as what I've seen of P5's pack() :) 23:27
timotimo digs into building a websocket implementation again ... 23:28
is there a good namespace for that module? 23:29
probably Net:: 23:30