Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-01-14

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 geekosaur not very much; vt52s were ancient terminals, not very capable, and probably only supported for backward compatibility with old programs
00:01 TimToady the vt52 was better than the vt05 though
00:01 TimToady 72x80, uppercase only
00:01 TimToady er, 72x20
00:01 timotimo ingy: dunno. when did you last run it?
00:01 geekosaur the one thing real vt52s had over real vt100s was speed... but that doesn't apply to xterm
00:01 rjbs THE INTRODUCTION OF MIXED CASE WAS WESTERN DECADENCE THAT I SOUNDLY REJECT
00:02 TimToady tell that to St Cyril
00:02 geekosaur (real vt100s had a 1MHz Z80 or something like that; they were often painfully slow, and you absolutely needed flow control)
00:03 lue Didn't (some of) those ALL-CAPS terminals use reverse video for capitalization?
00:03 geekosaur I think that was an Apple ][ innovation
00:04 timotimo TimToady: do you think "no warnings :p5" is good syntax to suppress warnings like "in perl6 please use 0o123 for octal values"?
00:04 lue If you're playing with ANSI codes right now, \e[5m is the best one :)
00:04 rjbs I can only imagine how much more I'd have disliked writing longhand if I had to do it all in Glagolitic script.
00:04 TimToady timotimo: seems reasonable on first blush
00:05 timotimo good :)
00:05 timotimo the first implementation will be file-global rather than lexically-scoped, though
00:05 TimToady but that's against the Policy Manual
00:06 TimToady someone might complain
00:06 berekuk joined #perl6
00:06 lue .oO(You won't notice unless you don't put 'no warnings' at the top of the file)
00:07 timotimo :)
00:07 timotimo or rather: "from here on out in this compilation unit"
00:11 BenGoldberg lue, I prefer \e[25m over \e[5m :)
00:12 ingy timotimo: running now
00:13 * ingy ♥s compilation units
00:13 timotimo :)
00:13 timotimo that script isn't written in perl6, is it? :)
00:14 lue BenGoldberg: 25 does nothing for me :/
00:15 BenGoldberg It turns off blink :)
00:16 ingy timotimo: crapped out on Task/Factors-of-a-Mersenne-number Icon section
00:16 ingy this always happens
00:16 ingy sloppy wiki editing breaks the Script
00:17 timotimo :(
00:19 timotimo lue: what should the behavior be if you specify some value other than True to the pair for :p5?
00:19 timotimo in no warnings, i mean
00:19 timotimo oh, actually :p5 turns into a pair object with the value Mu o_O
00:20 lue no warnings :!p5  ==  I like making useless statements. :)
00:21 timotimo that gives me a value of Mu, too o_O
00:21 lue == use warnings :p5  , to be more serious
00:22 lue Are you sure arglist case of use actually works in Rakudo? :)
00:23 timotimo well ...
00:23 timotimo kind of?
00:24 dpk joined #perl6
00:24 dpk hey everyone
00:24 dpk sorry for yoleaux's extended absence
00:25 dpk do you still want him here?
00:25 dpk and: remind me if there's a prefix in here to disable logging that yoleaux should respect, please
00:26 dpk (do you use [off] or # or something?)
00:26 BenGoldberg preflex: seen yoleaux
00:26 preflex yoleaux was last seen on #perl6 80 days, 5 hours, 4 minutes and 30 seconds ago, saying: 18:23Z <diakopter> Mouq: awesome work on stdsigspace Mouq++
00:26 BenGoldberg .ping
00:26 yoleaux There is no ping command; nor can this be construed as a response.
00:27 BenGoldberg We've certainly missed yoleaux, or at least, I have
00:27 dpk .private-prefix [off]
00:27 yoleaux dpk: OK, private-prefix for #perl6 set to '[off]' with paranoid mode off.
00:27 timotimo oh that's neat
00:27 lue dpk: we've been using preflex to leave messages in the interim, but we've missed the other stuff it does, esp. the .u option :)
00:27 lue .u ☃
00:27 yoleaux U+2603 SNOWMAN [So] (☃)
00:28 dpk :-)
00:28 BenGoldberg .u 2014
00:28 yoleaux U+2014 EM DASH [Pd] (—)
00:28 lue well, the "esp.  .u" is for me at least :)
00:28 BenGoldberg r: say "Happy ", "—".ord
00:28 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«Happy 8212␤»
00:29 lue BenGoldberg: quit time-hopping.
00:29 BenGoldberg oops
00:29 TimToady .u 🐩💩
00:29 yoleaux U+1F429 POODLE [So] (🐩)
00:29 yoleaux U+1F4A9 PILE OF POO [So] (💩)
00:29 BenGoldberg r: say "Happy ", "—".ord.hex
00:29 camelia rakudo-jvm eb1aa5: OUTPUT«No such method 'hex' for invocant of type 'Int'␤␤»
00:29 camelia ..rakudo-parrot eb1aa5: OUTPUT«No such method 'hex' for invocant of type 'Int'␤  in block  at /tmp/pbGSa18DDO:1␤␤»
00:29 timotimo r: sub test(*%kwarg) { say %kwarg; return (1, 2, 3, 4) }; test[2]:foo
00:29 camelia rakudo-parrot eb1aa5: OUTPUT«().hash␤Unexpected named parameter 'foo' passed␤  in sub postcircumfix:<[ ]> at gen/parrot/CORE.setting:2347␤  in sub postcircumfix:<[ ]> at gen/parrot/CORE.setting:2313␤  in block  at /tmp/6wqXGLdCSK:1␤␤»
00:29 camelia ..rakudo-jvm eb1aa5: OUTPUT«().hash␤Unexpected named parameter 'foo' passed␤  in sub postcircumfix:<[ ]> at gen/jvm/CORE.setting:2337␤␤»
00:29 timotimo r: sub test(*%kwarg) { say %kwarg; return (1, 2, 3, 4) }; test[2] :foo
00:29 camelia rakudo-jvm eb1aa5: OUTPUT«().hash␤Unexpected named parameter 'foo' passed␤  in sub postcircumfix:<[ ]> at gen/jvm/CORE.setting:2337␤␤»
00:29 camelia ..rakudo-parrot eb1aa5: OUTPUT«().hash␤Unexpected named parameter 'foo' passed␤  in sub postcircumfix:<[ ]> at gen/parrot/CORE.setting:2347␤  in sub postcircumfix:<[ ]> at gen/parrot/CORE.setting:2313␤  in block  at /tmp/zTcM4TMmMt:1␤␤»
00:30 lue r: say "Happy ", "—".ord.base(16)
00:30 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«Happy 2014␤»
00:30 lue BenGoldberg: ^
00:30 lue (though if you want, say, leading zeros, you'd need .fmt("%02X") and such)
00:32 dalek rakudo/moar-support: eeca2f1 | jonathan++ | src/ (3 files):
00:32 dalek rakudo/moar-support: Partially fix p6isbindable on sigs with 'where'.
00:32 dalek rakudo/moar-support:
00:32 dalek rakudo/moar-support: Fixes one of the tests that runs into the issue, but seemingly not the
00:32 dalek rakudo/moar-support: other.
00:32 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/eeca2f1733
00:33 rurban1 joined #perl6
00:33 timotimo should no warnings :p5 turn off this warning, too?
00:33 * BenGoldberg has trouble imagining a need for leading zeros on the year
00:33 timotimo r: say :foo<>
00:33 camelia rakudo-jvm eb1aa5: OUTPUT«Potential difficulties:␤    Pair with <> really means an empty list, not null string; use :foo('') to represent the null string,␤      or :foo() to represent the empty list more accurately␤    at /tmp/cIOonKqWNF:1␤    ------> [32msay :foo<>[33m⏏…»
00:33 camelia ..rakudo-parrot eb1aa5: OUTPUT«Potential difficulties:␤    Pair with <> really means an empty list, not null string; use :foo('') to represent the null string,␤      or :foo() to represent the empty list more accurately␤    at /tmp/CnW8mJbNnA:1␤    ------> [32msay :foo<>[33m…»
00:34 lue BenGoldberg: that was just a general statement on when .base() is and isn't useful.
00:34 BenGoldberg :)
00:34 timotimo also, that octal prefix thing is the only one i can find that makes sense to get the p5 warning treatment
00:35 lue timotimo: check X::Obsolete
00:35 timotimo ah, right
00:36 lysobit joined #perl6
00:36 lue Not that you should just block X::Obsolete; there might be non-P5-isms that use it too.
00:36 lysobit left #perl6
00:37 timotimo nah, there's obs, sorryobs and worryobs
00:37 timotimo i should only block worryobs
00:37 timotimo except that's not used even once :)
00:37 timotimo all other obsoletion problems are deadly
00:38 lue Maybe there's should be an X::Obsolete::P5 if it's too hard to block the buggers :)
00:39 timotimo https://gist.github.com/timo/0fbbe912e59722e1b8eb
00:39 jnthn dinner &
00:40 lue timotimo++  # maybe you'll accidentally implement all of 'no warnings' in the process? :P
00:41 timotimo probably not
00:41 timotimo it may be easy, though ;)
00:41 timotimo i think i'll just push it, aye?
00:41 timotimo actually, a spectest won't hurt
00:42 lue Yeah, though my senses are telling me perhaps in a non-main branch. I'm not an expert on rakudo's conventions with git though.
00:42 timotimo sure, doesn't make a big difference to me :)
00:42 timotimo so long as somebody ends up merging it before too long :P
00:43 dalek rakudo/no_p5_warnings: d347325 | (Timo Paulssen)++ | src/Perl6/Grammar.nqp:
00:43 dalek rakudo/no_p5_warnings: with "no warnings :p5", don't complain about 05 as not octal
00:43 dalek rakudo/no_p5_warnings: review: https://github.com/rakudo/rakudo/commit/d34732594c
00:44 lue At least until you get  no warnings :p5;  working I'd say. I don't want to accidentaly write warning-less code with  'no warnings'
00:44 timotimo ... but that already works?
00:44 lue Oh, your gist suggested otherwise.
00:44 timotimo it did?
00:45 timotimo oh, oops, yeah
00:45 timotimo gimme a sec and i'll revise it :)
00:45 * lue can't wait for all the P5 warnings to be blocked by 'no warnings :p5', unless that's done too.
00:45 timotimo there you go
00:46 timotimo well, all other p5 warnings i found were actually fatal, so can't be blocked
00:47 lue Huh. Well, I in any case don't want to be told I've been victim of a P5-ism when I in fact don't know them.
00:47 timotimo feel free to send suggestions my way
00:49 lue There'll probably be some error-message-changing, the way I see it. I basically want to tell the compiler "I don't know Perl 5. Don't bring it up when I mess up. $, means I mis-typed, not that I'm thinking in P5 terms."
00:49 timotimo ah, that's interesting, too
00:50 timotimo r: if (1) { ... } elif (2) { ... }
00:50 camelia rakudo-parrot eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/de7veJcehx␤In Perl 6, please use "elsif' instead of "elif"␤at /tmp/de7veJcehx:1␤------> [32mif (1) { ... } elif [33m⏏[31m(2) { ... }[0m␤    expecting any of:␤        argument list…»
00:50 camelia ..rakudo-jvm eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/PG5TUE1zb6␤In Perl 6, please use "elsif' instead of "elif"␤at /tmp/PG5TUE1zb6:1␤------> [32mif (1) { ... } elif [33m⏏[31m(2) { ... }[0m␤    expecting any of:␤        argument list␤ …»
00:51 timotimo well, you see how i've made it work, you could go ahead and do some changes yourself :P
00:52 lue Yeah :) I just need to fill out that CLA... (I *could* just set up a PR thing, but I'd rather just have access to the repo itself)
00:52 rurban1 joined #perl6
00:52 timotimo sure, that was pretty easy in my case at least :)
00:52 timotimo there were just three test files that aborted with "outdated version of Perl6::Grammar" wat.
00:52 timotimo or was that "src/Perl6/Grammar.nqp"?
00:54 lue My first thought is to give .obs and friends a new argument, which would be the "P5-less warning"
00:55 dalek rakudo/no_p5_warnings: 9c241ed | (Timo Paulssen)++ | src/Perl6/Grammar.nqp:
00:55 dalek rakudo/no_p5_warnings: error out on unknown module for "no ..."
00:55 dalek rakudo/no_p5_warnings: review: https://github.com/rakudo/rakudo/commit/9c241edc23
00:56 lue though there's also the option of hiding <.obs> messages and their triggers behind a "if $*PERL5_WARNINGS" or whatever, and let the parser give me the true P6 error.
00:56 timotimo sure
00:56 timotimo FWIW, it would be cool to have modules for different languages that make sensible suggestions based on what language(s) you're coming from :P
00:57 lue use warnings :FORTRAN
00:57 timotimo "can't import this name (did you mean to use 'use' instead?"
00:57 dpk left #perl6
00:58 lue timotimo: actually, if we want to do that, then perhaps we need a new module/pragma/thing.  'use fromlang :cpp' or something.
00:58 timotimo yeah
00:58 lue Kinda jumps out the realm of 'warnings' I'd think.
00:58 timotimo yes
00:59 timotimo that's why i said "have modules"
00:59 timotimo i'm driving home now
00:59 lue Yeah, but I was thinking of modules being able to attach new arglists to an existing command, like 'use warnings :FORTRAN' or 'use fromlang :APL', and suggesting a different name to attach them to.
01:00 lue drive safe timotimo o/
01:01 * lue wonders if the P5 warnings/errors would be better implemented as a module loaded by default if such a reform happens, instead of a built-in-to-the-grammar feature.
01:01 thou It depends not on the module being written, but on the person sitting behind the keyboard. So more likely to be used as a command-line option than checked in, perhaps?
01:01 thou s/checked in/hard-coded in the file/
01:02 lue thou: sure. It's called perl6 -MFromLang::FORTRAN   :D
01:02 lue Actually, I wonder how you would add a new arglist to an existing module name...   "augment module warnings;" ?
01:05 lue FROGGS: could/would I use "augment module warnings;" if I wanted to add :foo to the possible arglist items of warnings? ("use warnings :foo" then)
01:07 Alina-malina joined #perl6
01:17 * timotimo arrived
01:19 lue timotimo: Just poking around in the source code, transforming the one <special_variable> (within an alternation) in Grammar.nqp to  if $*P5_WARNINGS { <special_variable> } (or however it's done) is enough to block off a slew of P5-isms :)
01:20 lue r: say @: ;
01:20 camelia rakudo-jvm eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/9CTf2VsCGD␤Unsupported use of @: variable␤at /tmp/9CTf2VsCGD:1␤------> [32msay [33m⏏[31m@: ;[0m␤    expecting any of:␤        argument list␤        prefix or term␤        prefix o…»
01:20 camelia ..rakudo-parrot eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Qn3sIt_LBj␤Unsupported use of @: variable␤at /tmp/Qn3sIt_LBj:1␤------> [32msay [33m⏏[31m@: ;[0m␤    expecting any of:␤        argument list␤        prefix or term␤        prefi…»
01:20 timotimo hmm
01:20 lue The errors resulting would look however they do for non-P5-related malformed sigil usages.
01:25 skids joined #perl6
01:28 rurban1 joined #perl6
01:28 * lue imagines the non-P5 error for <> would be "ambiguous use of wordlist operator. Please use () or < > for an empty list, or '' for a null string."
01:40 clsn Made signature matching match sub-signatures... and then thought about it... I think sub-signatures should not be matched.
01:41 clsn Does that make sense?
01:41 * lue &
02:00 * clsn sends in a bunch of the Rakudobugs he's been noticing and whining about here without submitting them.
02:01 japhb When comparing signatures, I see three use cases: 1) Are these two the same signature object?  (should Just Work with ===, IIRC), 2) Are these two signatures equivalent, if not the same object?  (I would expect eqv to do this), 3) Will these two signatures accept exactly the same spaces of arguments, or at least, that one is a true subset of the other?  (I would expect .ACCEPT to do this.)
02:01 timotimo clsn: why are your rakudobugs always so hard? :(
02:02 clsn The way I see it, signature A should ACCEPT signature B iff any argument-string that works for B also works for A.  To the extent that is determinable (we can't deal with constraints, for example).
02:02 japhb Sure
02:02 clsn But I don't think the return values enter into the picture, and I'm thinking that subsignatures also don't.
02:03 japhb Well -- except that subsignatures must be bindable as well, no?
02:03 clsn I've been working on Signature.ACCEPT; it's complicated (what about :a(:b($x)) vs :a($x), :b(x)?  They don't match, but you have to detect it)
02:03 timotimo TimToady was just here about an hour ago or so :)
02:04 colomon clsn++
02:04 jnap joined #perl6
02:04 japhb Yes, definitely clsn++ for this work
02:05 clsn But do the subsignatures necessarily mean anything?  Suppose I had :(Dog $d (Int $height, Rat $weight)).  That matches a Dog object, and binds its height and weight attributes, I think.  But I could also have :(Dog $x (Str $name)).  It still just matches a Dog object!  Both signatures would take the same arguments.
02:06 clsn I've also been working on Parameter.perl and Signature.perl.  They're hairier than they look.
02:06 clsn Thanks, guys.
02:06 timotimo \o/
02:07 timotimo clsn++
02:10 clsn Hmm, maybe I'm not understanding what subsignatures do after all...
02:10 clsn No, I think I'm using it right and Rakudo doesn't follow the spec yet... At least this part.
02:11 timotimo subsignatures can also go into deciding about multiness, no?
02:12 smls r: say (255, 255, 0)>>.base(16)>>.fmt("%02s").join;
02:12 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«FFFF00␤»
02:12 smls nice :)
02:12 timotimo er
02:12 timotimo r: say (255, 255, 0).fmt("%02x")
02:13 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«ff ff 00␤»
02:13 timotimo oh. not quite.
02:13 timotimo r: say (255, 255, 0)>>.fmt("%02x").join
02:13 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«ffff00␤»
02:13 smls ok, you win :)
02:13 smls even nicer
02:13 clsn r: class Dog { has Str $.name }; sub f(Dog $d (Str $name)) { say $name; }; my $fido=Dog.new(name=>"Fido"); f($fido);
02:13 timotimo happy to help :)
02:13 camelia rakudo-jvm eb1aa5: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in sub-signature of parameter $d␤␤»
02:13 camelia ..rakudo-parrot eb1aa5: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in sub-signature of parameter $d␤  in sub f at /tmp/PmESWyKB42:1␤  in block  at /tmp/PmESWyKB42:1␤␤»
02:13 clsn As I read S06, that should work.
02:14 timotimo clsn: that needs to be a named parameter in the subsignature
02:14 clsn Not according to S06...
02:14 timotimo oh?
02:14 [Coke] r: $foo:: = 42;
02:14 camelia rakudo-jvm eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Qnwkkvamra␤Variable '$foo' is not declared␤at /tmp/Qnwkkvamra:1␤------> [32m$foo::[33m⏏[31m = 42;[0m␤    expecting any of:␤        postfix␤»
02:14 camelia ..rakudo-parrot eb1aa5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ATph_tuumB␤Variable '$foo' is not declared␤at /tmp/ATph_tuumB:1␤------> [32m$foo::[33m⏏[31m = 42;[0m␤    expecting any of:␤        postfix␤»
02:14 clsn sub traverse ( BinTree $top ( $left, $right ) )  ... In this, $left and $right are automatically bound to the left and right nodes of the tree. If $top is an ordinary object, it binds the $top.left and $top.right attributes. If it's a hash, it binds $top<left> and $top<right>.
02:15 [Coke] ^^ pick a test file for that?
02:15 timotimo give me a direct link?
02:15 timotimo ah there
02:15 clsn (^^ quote from S06)
02:15 timotimo yeah, weird.
02:15 clsn Otoh, something like :([Int $a, Str $b]) is also a subsignature, and maybe a sensible one.
02:16 timotimo it doesn't seem like that example would be correct
02:17 clsn yeah, :([Int, Str]) works.
02:17 clsn r: sub f([Int $a, Str $b]) { say "$a, $b" }; f([7,"x"])
02:17 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«7, x␤»
02:17 clsn That works fine.
02:18 clsn r: sub f([Int $a, Str $b]) { say "$a, $b" }; f([7,8])
02:18 camelia rakudo-jvm eb1aa5: OUTPUT«Nominal type check failed for parameter '$b' in sub-signature␤␤»
02:18 camelia ..rakudo-parrot eb1aa5: OUTPUT«Nominal type check failed for parameter '$b'; expected Str but got Int instead in sub-signature␤  in sub f at /tmp/WCnEN4LRzN:1␤  in block  at /tmp/WCnEN4LRzN:1␤␤»
02:18 clsn And that is correctly rejected for sub-signature failure.  So maybe I should be matching sub-signatures.
02:20 clsn Hmm... It does work if you use named arguments, but you need to have them all or use a slurpy.
02:21 clsn r: class Dog { has Str $.name }; sub f(Dog $d (Str :name($n))) { say $n; }; my $fido=Dog.new(name=>"Fido"); f($fido);
02:21 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«Fido␤»
02:21 clsn But if Dog is bigger...
02:21 clsn r: class Dog { has Str $.name; has Int $.height }; sub f(Dog $d (Str :name($n))) { say $n; }; my $fido=Dog.new(name=>"Fido", height=>181); f($fido);
02:21 camelia rakudo-jvm eb1aa5: OUTPUT«Unexpected named parameter 'height' passed in sub-signature of parameter $d␤␤»
02:21 camelia ..rakudo-parrot eb1aa5: OUTPUT«Unexpected named parameter 'height' passed in sub-signature of parameter $d␤  in sub f at /tmp/aLJZUzNnQX:1␤  in block  at /tmp/aLJZUzNnQX:1␤␤»
02:22 clsn It's an extra param.  You either need to make sure you have _all_ the has-es, or else use a slurpy.
02:22 clsn r: class Dog { has Str $.name; has Int $.height }; sub f(Dog $d (Str :name($n), *%_)) { say $n; }; my $fido=Dog.new(name=>"Fido", height=>181); f($fido);
02:22 camelia rakudo-parrot eb1aa5, rakudo-jvm eb1aa5: OUTPUT«Fido␤»
02:22 clsn I guess maybe I should leave sub-signature matching in.
02:32 slavik joined #perl6
02:32 [Coke] moritz: is https://rt.perl.org/Ticket/Display.html?id=112216 really settled enough to need a test yet?
02:40 dalek Net--IRC/concurrency: b8c4bc2 | (Geoffrey Broadwell)++ | docs/ (2 files):
02:40 dalek Net--IRC/concurrency: Fix minor doc typos
02:40 dalek Net--IRC/concurrency: review: https://github.com/TiMBuS/​Net--IRC/commit/b8c4bc2963
13:40 ilbot3 joined #perl6
13:40 topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
13:40 moritz bibifuc_ seems like, yes :(
13:41 timotimo aaw :(
13:41 timotimo moritz: can the irclog website offer data it shows as html in json form, too?
13:42 moritz timotimo: yes
13:42 timotimo does it already?
13:42 moritz timotimo: just send an Accept: application/json header to the usual pages
13:42 moritz s/pages/URLs/
13:42 timotimo does it work on the channel overview pages and the whole overview, too? :D
13:42 timotimo i need an extension for my browser that allows me to fiddle with headers like that :|
13:42 moritz it should.
13:43 moritz why do you want json in your browser?
13:43 timotimo development purposes and generally trying things for fun :)
13:44 bibifuc_ irclog is back, thanks!
13:45 moritz it seems that ilbot3 isn't robust to network errors yet :(
13:50 treehug88 joined #perl6
13:53 timotimo moritz: could the overview page of a channel also output the amount of activity for each day, rather than just the urls?
13:54 moritz timotimo: would be possible, though the activity isn't always available as a precise number
13:55 timotimo ah? how imprecise is it?
13:56 moritz it's never available for today, and sometimes not available for yesterday
13:56 timotimo oh well, never mind then :P
13:58 timotimo this "advanced rest client" for chrome seems like a pretty powerful tool
13:58 timotimo especially nice tidbit: for the output it offers a "parsed" tab where it pretty-prints json for example
13:58 timotimo and it remembers all the things you have
14:00 moritz timotimo: if you want to patch it to include the imprecise activiy numbers, lib/Ilbot/Frontend/JSON.pm in the moritz/ilbot repo is the place to go
14:06 treehug88 joined #perl6
14:10 timotimo hm, this postman application is apparently also pretty good
14:11 Koma left #perl6
14:19 jnap joined #perl6
14:21 * grondilu thinks sub ζ($s) { (state %){$s} //= [+] map * **-$s, 1..* } is probably the coolest function he's ever written on Rosetta code.  Lots of Perl6 features in very few characters :)
14:22 grondilu (it's from http://rosettacode.org/wiki/Sum_of_a_series#Perl_6)
14:24 jnap joined #perl6
14:31 skids joined #perl6
14:37 kivutar joined #perl6
14:38 kbaker joined #perl6
14:43 TimToady state %{Int} might be better
14:44 TimToady but maybe not, depending on how an Int hashes :)
14:48 jeffreykegler joined #perl6
14:48 * mathw tries to comprehend that, spends the next hour picking brain off the walls
14:48 jeffreykegler left #perl6
14:52 [Coke] http://flowingdata.com/2014/01/14/lexic​al-distance-between-european-languages/ for the language folks.
14:54 FROGGS sehr interessant!
14:54 tadzik muy interesante
14:54 FROGGS ohh, I mean "very interesting!" :o)
14:57 colomon someone needs to implement "is cached" in Rakudo so grondilu can stop using state everywhere
14:58 FROGGS hehe -> http://flowingdata.com/2013/09/03/m​ost-popular-porn-searches-by-state/
14:58 grondilu "cached" would be a nice trait to have indeed
14:59 grondilu but the problem with "cached" is that you need a generic way to create the key from the signature.  That's not trivial, is it?
15:01 dalek Heuristic branch merge: pushed 125 commits to nqp/loop_labels by FROGGS
15:02 thou joined #perl6
15:02 btyler joined #perl6
15:03 treehug88 joined #perl6
15:04 grondilu (not to mention that for multi subs you may need several caches)
15:06 mathw maybe you could pass something to the trait to help it out
15:06 timotimo FROGGS: you're working on loop labels again \o/
15:07 FROGGS timotimo: yes, currently trying to get them working on jvm backend
15:07 dalek rakudo-star-daily: a898b92 | coke++ | log/ (5 files):
15:07 dalek rakudo-star-daily: today (automated commit)
15:07 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/a898b9206a
15:08 timotimo that makes me happy :)
15:08 [Coke] \o/ lots of deprecation warnings gone.
15:08 timotimo if you have simple questions about jvm bytecode gen, i may be able to help you out a bit
15:08 [Coke] looks like DBIsh is the only one left.
15:09 [Coke] er, DBIish
15:09 FROGGS ahh, now I understand this "called at" list...
15:10 [Coke] FROGGS: you fixed eval in the code, but it's all over the test suite, also.
15:10 FROGGS [Coke]: yeah... I will PR that later if no one beats me to it
15:11 [Coke] FROGGS++ # awesome
15:11 [Coke] 3 more RTs to close out my quest.
15:11 [Coke] gameification++
15:13 timotimo \o/
15:18 colomon This is his quest, to close those RTs; no matter how hopeless...
15:19 [Coke] colomon: turns out half of them just needed to be closed. easy peasy.
15:19 [Coke] Someone else should try to close 10! ;)
15:21 timotimo you could suggest that as a stencil
15:24 zakharyas joined #perl6
15:25 [Coke] only people in this channel are going to do it. :P
15:28 timotimo people on this channel are going to benefit from gamification, still.
15:32 [Coke] I can't get to the perl realm. clicking on realms takes me to the a news feed rather than the realm choices.
15:33 [Coke] ah. wrong button
15:33 [Coke] timotimo: "hey timo, make that a stencil, will you"
15:33 [Coke] (you're on teh list of people to ask)
15:38 timotimo er, i am?
15:38 timotimo oops :)
15:39 [Coke] you're a player.
15:39 [Coke] http://questhub.io/realm/perl/​quest/512211cce05a54a53a000029 - an ovid perl 6 quest
15:39 timotimo you need to ask the "realm keepers" on the left
15:39 timotimo masak is one of them, for example
15:40 masak I am? what does that mean? :)
15:41 masak some kind of admin?
15:41 timotimo you can create stencils, for example :)
15:42 * masak admires his new superpower
15:42 masak creating... STENCILS... out of thin air.
15:42 masak train &
15:43 tadzik Carl the Conjurer
15:43 tadzik or Conjuror
15:43 ajr joined #perl6
15:45 PerlJam how do people become a "realm keeper"?  Maybe Coke should apply :)
15:46 timotimo they ask berekuk, i guess
15:47 jnthn arnsholt: I typically dump the backtrace in dieInternal or so..
15:47 [Coke] PerlJam: you want to be an RT bugadmin? :P
15:57 timotimo r: my @data = 1,␤2,␤,␤,␤5,␤; say @data.perl;
15:57 camelia rakudo-jvm 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/o9tS_vheTp␤Preceding context expects a term, but found infix , instead␤at /tmp/o9tS_vheTp:3␤------> [32m,[33m⏏[31m<EOL>[0m␤»
15:57 camelia ..rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rgalVHz09r␤Preceding context expects a term, but found infix , instead␤at /tmp/rgalVHz09r:3␤------> [32m,[33m⏏[31m<EOL>[0m␤»
15:57 timotimo r: my @data = 1,␤2,␤5,␤; say @data.perl;
15:57 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Array.new(1, 2, 5)␤»
15:57 timotimo mhm mhm
16:01 FROGGS Perl 5 accepts things like "my %hash = (1, 2, 3,=>4)", I implemented that yesterday in v5
16:02 FROGGS I just made it collapse /[ \s* ',' | \s* '=>']/ to a single ',' or '=>'
16:03 FROGGS m| ']/' | ']/+' |
16:03 timotimo hehe
16:03 timotimo i was just curious how far trailing comma in perl6 is taken
16:03 Psyche^ joined #perl6
16:05 timotimo hm. list comprehensions in perl6 ...
16:05 timotimo there's something sort of like it, but i don't recall seeing a nice compact description of it
16:06 timotimo how does nesting work, how does filtering work, how does mapping inside it work
16:06 tadzik I never got the idea of list comprehensions. I always see them as a poor excuse for map()
16:07 timotimo r: my @input = <hi there how are you>; my @output = $_.uc if $_.chars %% 2 for @input; say @output;
16:07 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«HI␤»
16:07 timotimo r: my @input = <hi there how are you today my good friend>; my @output = $_.uc if $_.chars %% 2 for @input; say @output;
16:07 tadzik em, poor ersatz
16:07 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«FRIEND␤»
16:07 timotimo r: my @input = <hi there how are you today my good friend>; my @output = ($_.uc if $_.chars %% 2 for @input); say @output;
16:07 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«HI MY GOOD FRIEND␤»
16:07 timotimo fair enough
16:07 timotimo i may even blug about this?
16:10 grondilu timotimo: consider writing .foo instead of $_.foo
16:12 skids even that use of for loop is no longer lazy, correct?
16:16 arnsholt jnthn: Oh, that'll work yeah. Cheers!
16:16 tadzik arnsholt!
16:16 arnsholt That's me =)
16:16 tadzik I need help with NativeCall, it's acting silly
16:17 tadzik https://gist.github.com/tadzik/8408820
16:17 tadzik it says "cannot load library", while it's clearly there
16:17 tadzik https://gist.github.com/tadzik/8409006 that's the code, which works for timotimo alright, but it fails on both my laptop and my work machine
16:18 arnsholt Both of you on Linux?
16:19 rurban1 joined #perl6
16:19 tadzik yeah
16:20 arnsholt sdlwrapper.so, is that a lib you've written, or thirdparty?
16:20 tadzik I've written
16:20 tadzik it's in the second gist
16:20 arnsholt Oh, right
16:20 tadzik running 'test.pl' compiles sdlwrapper.c into sdlwrapper.so, in the same way that zavolaj's testsuite does
16:21 arnsholt Oh, right. I see it now
16:23 arnsholt Just a sec. I have to install SDL-dev first
16:24 tadzik okayo
16:24 arnsholt Good news is I get the same error as you
16:24 tadzik great! :)
16:24 arnsholt Bad news is I have to make dinner before I can dig into this =)
16:24 tadzik no hurry :)
16:24 arnsholt I have hacking time tonight though, so with luck I'll be able to figure it out
16:25 tadzik thanks!
16:34 treehug88 joined #perl6
16:36 bjz joined #perl6
16:37 timotimo hm, i remember something about TheDamian having some time to spend on perl6, did i miss something?
16:47 spider-mario joined #perl6
16:55 FROGGS java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: 40
16:55 FROGGS clearly, I am not a JVM expert when it comes to write ops
16:55 kaleem joined #perl6
16:56 FROGGS tadzik: that sdlwrapper.so is not linked against libSDL
16:58 arnsholt Oh, good point!
16:59 masak timotimo: when was this?
17:01 arnsholt tadzik: What FROGGS said
17:02 arnsholt I wrote a small test script that tries to load the lib, and it fails. dlerror(3) returns: "sdlwrapper.so: undefined symbol: SDL_SetVideoMode"
17:06 arnsholt tadzik: Add -lSDL all the way at the end of $l_line and it works on my machine
17:10 FROGGS arnsholt: confirmed
17:11 timotimo masak, some timelast year
17:11 arnsholt Which means that the real question is WTF made it work on timotimo's machine =)
17:12 stevan_ joined #perl6
17:13 arnsholt tadzik: Oh, and once it runs it complains about the Bool return types
17:14 timotimo yup
17:14 timotimo fwiw i added an SDL_delay for native call but after i removed that it continued working
17:15 locsmif joined #perl6
17:19 rurban1 joined #perl6
17:29 [Sno] joined #perl6
17:38 berekuk joined #perl6
17:42 FROGGS joined #perl6
17:42 tadzik arnsholt: oh, hrm
17:42 tadzik I thought I added it there
17:42 tadzik yeah, it's there https://gist.github.com/tad​zik/8409006#file-test-pl-L9
17:42 panchiniak joined #perl6
17:43 tadzik but right, gcc likes it to be in certain order :/
17:43 ajr joined #perl6
17:45 arnsholt Yup
17:47 tadzik thanks, that helped :)
17:48 tadzik it's almost capable of one say() 60 times per second
17:48 arnsholt =D
17:49 arnsholt There's a Zavolaj-bug on it being slow. If you find out why it's so slow, please add to that bug =)
17:49 tadzik yeah, 50 $i++-ses a second
17:49 tadzik so much for 60 fps graphical games
17:50 tadzik arnsholt: okay, I will :)
17:55 arnsholt tadzik: Actually, once you get something semi-profilable, try to give it a whack with callgrind
17:58 tadzik arnsholt: oh wow
17:59 tadzik arnsholt: majority of time seems to be spent in find_method, that method is Nativecall's Posticircumfix:<()>
17:59 raiph joined #perl6
18:01 arnsholt Oh
18:01 tadzik http://feather.perl6.nl/~tjs/profile.dat, maybe I read it wrong
18:02 arnsholt I have NO idea how to read that thing
18:02 tadzik or: it's called from postcircumfix<()>
18:02 arnsholt But gimme a sec to install kcachegrind and we should be able to make sense of it all =)
18:02 tadzik did you mean: qcachegrind :)
18:03 tadzik kcachegrind wanted to install about 150 MB of dependencies, qcachegrind is 1.4 MB :P
18:03 arnsholt =D
18:04 arnsholt I already had kcachegrind, it turns out
18:04 kivutar joined #perl6
18:04 arnsholt But yeah, 92% in postcircumfix:<( )>
18:04 tadzik and that's Self, not Inclusive
18:05 arnsholt And almost 65 in map_return_type
18:06 arnsholt 60% in infix:<===>???
18:06 tadzik called from?
18:07 arnsholt map_return_type
18:07 tadzik hrm
18:10 arnsholt In you copy of NativeCall.pm6, what happens if you change all the === to ~~ on lines 95 and 96?
18:10 tadzik yeah, I'm experimenting with it now
18:12 tadzik it's equally slow
18:13 arnsholt Bah
18:13 tadzik then ACCEPTS is high on the list
18:13 berekuk joined #perl6
18:13 tadzik what if we reorder those?
18:13 tadzik int32 is probably way more common than anything else
18:14 tadzik or int
18:14 arnsholt Worth a try
18:15 tadzik nope
18:15 tadzik how about nqp::istype(), or the likes of it?
18:15 tadzik this is probably as low-level as we can get
18:15 arnsholt Yeah, that sounds like a much better plan
18:16 tadzik and it has more benefits
18:16 tadzik both int32 and int give True for nqp::istype($a, Int)
18:16 tadzik so only one check, instead of 4
18:16 arnsholt Good idea =)
18:17 rurban1 joined #perl6
18:18 tadzik well, it's still as slow as it was, but the profiling output is different :P
18:19 arnsholt =)
18:19 FROGGS tadzik: btw, maybe we could resurrect this then? it was intended to go on perlgamedev.org: http://gamoscope.com/
18:19 tadzik FROGGS: sure :)
18:25 tadzik arnsholt: that's weird
18:25 arnsholt What is?
18:25 tadzik qcachegrind says that "total ops cost" went from 1 200 000 to 545 000
18:25 FROGGS tadzik: if there is any interest to put something in the PerlGameDev organization on github, let me know
18:26 tadzik which sounds like a totally awesome thing
18:26 tadzik but it's exactly as slow
18:26 tadzik FROGGS: working on it :)
18:27 arnsholt All ops probably aren't equal
18:27 arnsholt But it does sound weird
18:27 tadzik I can't profiling
18:29 tadzik well, postcircumfix() in NativeCall takes 78.37 Incl instead of 90.32
18:29 arnsholt That's good
18:29 tadzik but Self jumped from 3.62 to 8.09
18:29 tadzik That's baad
18:30 tadzik or maybe I misunderstand something
18:31 tadzik http://i.imgur.com/0ZQmOUB.png helpful screenshot
18:31 arnsholt Probably just a consequence of map_return_type taking less time
18:31 tadzik left is master, right is patched
18:32 xinming joined #perl6
18:32 arnsholt I think it's a win
18:32 tadzik oh, btw
18:32 arnsholt Remember, self is time-in-self/total-time
18:32 tadzik method postcircumfix:<( )> does nqp::nativecall(nqp::decont(​map_return_type($r.returns))
18:32 hoelzro jjj
18:32 tadzik I think that map_return_type can be cached/memoized/whatever
18:32 arnsholt And making map_return_type cheaper means total-time goes down, but time-in-self is unchanged
18:33 tadzik the returns won't just change in the middle of the program
18:33 arnsholt Yeah, that'll probably make sense
18:33 tadzik we shouldn't need to call it all the time
18:33 dalek roast: ff029b4 | coke++ | S16-filehandles/io_in_for_loops.t:
18:33 dalek roast: unskip passing moar tests
18:33 dalek roast: review: https://github.com/perl6/roast/commit/ff029b4eaf
18:34 arnsholt I'm also thinking map_return_type doesn't have to be a multi
18:34 tadzik yay, it made things slower
18:35 tadzik what the frak
18:35 tadzik oh hell
18:35 tadzik I'm dumb as hell
18:36 tadzik of course it won't go faster, it's frame limited to 60 fps
18:36 tadzik http://static2.wikia.nocookie.net/__​cb20130417063927/epicrapbattlesofhis​tory/images/f/f4/Picard-facepalm.jpg
18:37 FROGGS is postcircumfix:<( )> called twice as often as map_return_type because of the call to its proto?
18:38 tadzik it's called half the times
18:38 tadzik the answer is: yes, but the other way around :)
18:38 arnsholt tadzik: Hooray for finding the problem, anyways =)
18:39 FROGGS p: say(nqp::isint(42))
18:39 camelia rakudo-parrot 4f66ce: OUTPUT«0␤»
18:39 FROGGS p: say(nqp::isint(int8))
18:39 camelia rakudo-parrot 4f66ce: OUTPUT«1␤»
18:39 FROGGS p: say(nqp::isnum(int8))
18:39 camelia rakudo-parrot 4f66ce: OUTPUT«0␤»
18:39 FROGGS p: say(nqp::isnum(num8))
18:39 camelia rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/BfYvWdpfcU␤Undeclared routine:␤    num8 used at line 1␤␤»
18:39 FROGGS p: say(nqp::isnum(num32))
18:39 camelia rakudo-parrot 4f66ce: OUTPUT«1␤»
18:39 FROGGS p: say(nqp::isnum(num64))
18:39 arnsholt Ooooooh, that looks like a very useful op...
18:40 camelia rakudo-parrot 4f66ce: OUTPUT«1␤»
18:40 FROGGS :o)
18:40 tadzik ok
18:40 tadzik it seems to be about 10x faster
18:40 arnsholt tadzik: That'll boil down the ors in map_return_type to one of each
18:40 arnsholt Heh, I'd call that a win
18:40 FROGGS 10x is very nice for this little bit of work
18:40 tadzik it can do 50000 calls to game_is_running in 1.6 seconds, instead of 12.4
18:41 tadzik and game_is_running is basically return 1
18:41 tadzik let's see if it still passes tests and whatnot...
18:41 arnsholt Do that
18:42 tadzik so basically my measurements were flawed from the start
18:42 tadzik I shouldn't have come to the conclusion that it's slow
18:42 tadzik but it still ended up well :D
18:42 rurban1 joined #perl6
18:42 arnsholt Doesn't look like I have the privs to give you a commitbit to Zavolaj, but if it passes the tests send me the patch and I'll apply it
18:43 arnsholt There are probably some stupid things going on in the C code as well, but given this it looks like the Perl code is a good place to start
18:43 tadzik all tests pass
18:43 arnsholt \o/
18:44 masak time to write more tests! :)
18:45 jeffreykegler joined #perl6
18:45 skids hehe.
18:46 arnsholt Oh, and for anyone following at home: This really shows the value of profiling. I had no clue one of the biggest offenders was *there*
18:46 arnsholt I was rather suspecting the C code to do something stupid
18:46 tadzik I'm now testing it on strlen() to make sure that my stupid library is not clouding my judgement :)
18:46 arnsholt (Especially since jnthn wrote most of the Perl code =)
18:46 arnsholt Yeah, probably a good idea
18:47 tadzik 50000 calls to strlen(""): 14.11 seconds on master, 0.86 with patches
18:47 tadzik r: 0.86 / 14.11
18:47 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: ( no output )
18:47 tadzik r: say 0.86 / 14.11
18:47 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«0.060950␤»
18:47 tadzik that looks good enough to me
18:47 FROGGS tadzik: is that including isint / isnum?
18:48 tadzik FROGGS: istype, yes. But after all, it should have zero impact on the result
18:48 tadzik it's called once, and used to be called 50000 times :)
18:48 FROGGS ahh, k
18:48 tadzik so it hardly matters what it does :P
18:48 tadzik but I can't resist to micro-optimize it anyway
18:49 FROGGS damn, I don't know how to java :o(
18:49 arnsholt Wow. Almost 20x speedup
18:49 arnsholt tadzik++ =)
18:50 tadzik I have to say, that gave me quite a motivational boost to work on things again :)
18:51 dalek zavolaj/reduce-overhead: 9e5af01 | tadzik++ | lib/NativeCall.pm6:
18:51 dalek zavolaj/reduce-overhead: Drastically reduce nativecalling overhead
18:51 dalek zavolaj/reduce-overhead: review: https://github.com/jnthn/zavolaj/commit/9e5af01803
18:51 tadzik look, I have a commit bit :)
18:52 tadzik I'll reply to that slowness ticket
18:53 arnsholt Spiffy!
18:54 FROGGS marvelous!
18:54 arnsholt I love it when this happens
18:55 tadzik http://cdn.memegenerator.net​/instances/400x/38222529.jpg
18:55 arnsholt A bit of collaboration, and an hour later the problem is solved \o/
18:55 tadzik yeah :)
18:56 FROGGS tadzik: btw, "return" is slow, slower than, say, nqp::isint($type) && Int || nqp::isnum($type) && Num || $type
18:56 tadzik FROGGS: oh?
18:56 FROGGS because you throw an exception there, rather than chain these opse
18:56 FROGGS -e
18:56 tadzik oh :)
18:57 tadzik well, at this point I think I'd rather have it readable
18:57 FROGGS just wanted to mention it :o)
18:57 tadzik sure :)
18:57 tadzik useful for future reference
18:57 FROGGS I think it is worth stripping the return of the last statement in most cases
18:57 tadzik true
18:58 tadzik haha
18:58 tadzik when I put "return" before nqp::nativecall in the new version, it jumps to 1.23 seconds
18:58 tadzik so yeah, it's quite a thing :o
18:58 ajr joined #perl6
18:58 colomon tadzik++ arnsholt++
18:58 tadzik 150% slower
18:59 tadzik I now feel like removing return from _everywhere_ :P
18:59 FROGGS *g*
18:59 arnsholt Oh, yeah
18:59 tadzik I wonder if we can teach that to the optimizer
18:59 arnsholt return does the whole "throw control exception" thing, whereas falling off the end of the block doesn't
18:59 FROGGS teach that the timotimo you mean :P
19:00 tadzik precisely :P
19:00 arnsholt tadzik: Try removing the returns from map_return_type and replacing it with a ternary?
19:00 FROGGS and I think an if/else might be preferable over an "return bla if blub; more code..."
19:01 tadzik arnsholt: no visible change
19:01 tadzik but it's only called once
19:01 denisboyun joined #perl6
19:01 FROGGS now since it is cached :o)
19:02 tadzik yeah
19:02 tadzik when I un-cached it, it takes 1.82 seconds
19:02 tadzik compared to 14.32
19:02 tadzik which makes me thing that caching is mostly unnecessary now that we have the other thing :D
19:03 tadzik nqp::istype($type, Int) ?? Int !! nqp::istype($type, Num) ?? Num !! $type;
19:04 arnsholt Should work
19:04 FROGGS sure
19:04 tadzik seems to
19:05 arnsholt nqp::isint and ::isnum are probably even faster than istype
19:06 FROGGS p: say nqp::isint(42)
19:06 camelia rakudo-parrot 4f66ce: OUTPUT«0␤»
19:06 tadzik yeah, that
19:06 FROGGS that is a problem though
19:06 tadzik just checked it too :)
19:07 jnthn j: say nqp::isint 42
19:07 preflex jnthn: you have 2 new messages. '/msg preflex messages' to read them.
19:07 camelia rakudo-jvm 4f66ce: OUTPUT«1␤»
19:07 tadzik also, ternary is about 5% faster than if-elsif-else
19:07 FROGGS yeah, why not drop support for parrot :P
19:08 FROGGS >.<
19:08 tadzik :>
19:09 FROGGS that was a joke btw, I almost hear ppl write rants about parrot getting dropped
19:09 tadzik I think that once Moar gets NativeCall, it'll be superior in every possible way
19:09 PerlJam FROGGS: what people?  ;)
19:10 FROGGS PerlJam: ohh, I dunno, ppl :o)
19:10 FROGGS tadzik: that is our dream and hope, yes
19:10 dalek zavolaj/reduce-overhead: bafb1d0 | tadzik++ | lib/NativeCall.pm6:
19:10 dalek zavolaj/reduce-overhead: Micro-optimize map_return_type even further :)
19:10 dalek zavolaj/reduce-overhead: review: https://github.com/jnthn/zavolaj/commit/bafb1d0ff2
19:11 FROGGS tadzik: and it should be reachable because even I can hack on Moar, where it is very hard for me to get into parrot
19:15 tadzik FROGGS: maybe I should try it too :)
19:15 tadzik I think I'll go get a beer or ten now, though :P
19:18 FROGGS tadzik: have fun!
19:18 tadzik thanks :)
19:25 treehug88 joined #perl6
19:34 bluescreen10 joined #perl6
19:40 hoelzro where's the repo for the v5 project?
19:40 FROGGS hoelzro: https://github.com/rakudo-p5/v5
19:41 hoelzro thanks FROGGS
19:41 hoelzro want to see how the improvements to the P6 detector fare against it =)
19:41 FROGGS go ahead :o)
19:41 kivutar joined #perl6
19:49 lue joined #perl6
20:02 arnsholt hoelzro: I can't help but think statstical models would be good for that kind of thing
20:02 hoelzro they probably would
20:03 hoelzro pygments uses a manual heuristic system
20:03 hoelzro GitHub's linguist, OTOH...
20:03 hoelzro uses a classifier
20:03 hoelzro (I'm working on linguist atm)
20:03 arnsholt Neat. What kind of classifier, OOC?
20:03 * hoelzro shrugs
20:03 hoelzro I haven't read the impl
20:03 arnsholt 'sok
20:04 arnsholt I can look it up later
20:04 fhelmberger joined #perl6
20:04 beastd joined #perl6
20:04 lee__ I thought github wrapped pygments?
20:05 hoelzro they do
20:05 hoelzro but they don't use pygments' language identification system
20:05 lee__ ah, gotcha
20:06 mberends joined #perl6
20:34 treehug88 joined #perl6
20:42 pmichaud joined #perl6
20:50 zby_home_ joined #perl6
20:51 btyler joined #perl6
20:51 stevan_ joined #perl6
20:53 ivan`` joined #perl6
21:01 kivutar joined #perl6
21:04 berekuk joined #perl6
21:05 itz anyone near London, UK and interested in a perl 6 hackday msg me
21:05 stevan_ joined #perl6
21:10 ribasushi overheard in #london.pm
21:10 ribasushi <ranguard> itz: is there a 30 second summary of Perl 6 status anywhere?
21:10 ribasushi bigwigs ^^
21:10 ribasushi :)
21:13 pmichaud ribasushi: maybe http://perl6.org/compilers/features  ?
21:14 TimToady new MoarVM has very nearly caught up with JVM implementation of rakudo
21:14 TimToady at 98%
21:14 masak 30 seconds? oh geez. "We're putting a lot of work on the JVM, and Moar is shaping up nicely. Stand by for speed/stability improvements."
21:14 FROGGS yes about 98% test coverage :o)
21:15 jeffreykegler left #perl6
21:16 ribasushi I will quote the 3 of you ;)
21:16 arnsholt hoelzro: I looked up the Linguist classifier, and it looks like it's Naive Bayes from the comments at least
21:16 hoelzro interesting
21:16 hoelzro good to know!
21:17 dayangkun joined #perl6
21:17 arnsholt With my background not quite what I'd have done, but given what they're doing probably quite good
21:21 fhelmberger joined #perl6
21:22 PerlJam ribasushi: I'd say that PErl 6 development is punctuated by more and frequent "Yay!" events than in the past.  And fewer "Aigh!" events.  :)
21:23 masak I'd still recommend a low profile for the most part, though.
21:23 masak underpromise and overdeliver.
21:23 ribasushi nod nod
21:23 ribasushi masak: I wasn't looking for "marketing material"
21:23 ribasushi more like "where is it at" overview for folks to look at
21:24 ribasushi pmichaud's link is more or less that
21:27 PerlJam Hmm.  Should we update features to be rakudo-backend aware?
21:29 * [Coke] sighs, as his ticket work is negated by new tickets!
21:29 masak PerlJam: most likely, yes.
21:29 * [Coke] blames masak, the ur-ticketor.
21:29 masak [Coke]: new tickets are good! remember, tickets are love.
21:30 masak the only ones who don't like new tickets are ostiches who prefer sand.
21:30 masak ostriches*
21:30 masak oh, and those with a tendency to shoot messengers. they also don't like new tickets.
21:31 [Coke] yes, yes, it's all good if you look at the tickets as individual things of joy rather than a list of X elements whose # is increasing at regular intervals.
21:31 [Coke] I'd rather have a ticket for a bug than a bug without a ticket.
21:31 [Coke] just let me be annoyed for 5s, ok? ;)
21:32 masak your 5s are up!
21:33 [Coke] DAMM- yay, thanks.
21:33 [Coke] r: sub foo { my $s; for 1..3 { $s += $_ } } ; say foo()
21:33 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«6 6 6␤»
21:33 [Coke] (#77334)
21:33 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77334
21:33 masak I now realize that I've internalized this thinking that it almost takes effort to reconstruct "it's obvious" into "I'd rather have a reported error than an unreported one".
21:34 ribasushi masak: nice world you live in
21:34 ribasushi folks these days like to close issues if they sit long enough because "we don't have the resource to fix it anyway"
21:35 ribasushi fuckers.
21:35 [Coke] r: grammar G { regex foo { } }; say "alive" ; RT #78404
21:35 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=78404
21:35 camelia rakudo-jvm 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null regex not allowed␤at /tmp/hdgrwlkAZv:1␤------> [32mgrammar G { regex foo { [33m⏏[31m} }; say "alive" ; RT #78404[0m␤Undeclared name:␤    RT used at line 1␤␤␤»
21:35 camelia ..rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null regex not allowed␤at /tmp/ucxkXZy_Y7:1␤------> [32mgrammar G { regex foo { [33m⏏[31m} }; say "alive" ; RT #78404[0m␤Undeclared name:␤    RT used at line 1␤␤␤»
21:35 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=78404
21:35 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=78404
21:35 [Coke] ooh, sweet.
21:36 [Coke] that was from 2010.
21:36 masak ribasushi: um. wat.
21:36 [Coke] ribasushi: yes, I get that a lot.
21:36 [Coke] "clearly no one wants it, or we'd have fixed it"
21:36 masak ribasushi: it may be horribly avant-garde, but in the #perl6 queue we close tickets when they pass a test.
21:37 [Coke] cfeclipse project did that. migrated issue queue to github, abandoned old trac. "if you want it fixed, you'll open a new ticket."
21:37 ribasushi masak: I kid you not, rampant among the "modern-perl" clique
21:37 masak :(
21:37 [Coke] LHF: go write a test for this: https://rt.perl.org/Ticket/Display.html?id=78404
21:39 masak I just discovered that in Perl 5 you can take a reference to a sub that isn't declared.
21:39 masak it only blows up when you call it.
21:39 [Coke] r: sub a($a, $b, $c) { say "boo!" }; my &b = &a.assuming(1); say &a.arity; say &b.arity; #RT #77744
21:39 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77744
21:39 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«3␤0␤»
21:39 [Coke] stillborked.
21:40 [Coke] r: role A { role B {} }; A::B.new; say "alive" # RT #100468
21:40 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=100468
21:40 camelia rakudo-parrot 4f66ce: OUTPUT«Could not find symbol '&B'␤  in method <anon> at gen/parrot/CORE.setting:12135␤  in any  at gen/parrot/Metamodel.nqp:2691␤  in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤  in any find_method at gen/parrot/Metamodel.nqp:946␤  in a…»
21:40 camelia ..rakudo-jvm 4f66ce: OUTPUT«Could not find symbol '&B'␤  in any find_method_fallback at gen/jvm/Metamodel.nqp:2607␤  in any find_method at gen/jvm/Metamodel.nqp:945␤  in any  at gen/jvm/BOOTSTRAP.nqp:1658␤␤»
21:40 [Coke] r: class A { role B {} }; A::B.new; say "alive" # RT #100468
21:40 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=100468
21:40 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«alive␤»
21:42 masak by the way, on 2014-10-17, we're all gonna have a big party, OK?
21:42 FROGGS one day after my b-day? sure :o)
21:42 ribasushi masak: what's cooking?
21:43 masak FROGGS: I task you with remembering.
21:43 FROGGS I'll get us cake
21:43 masak ribasushi: Perl 5 will turn 20 on that day.
21:43 ribasushi ah right
21:43 masak not Perl. Perl *5*.
21:43 FROGGS man, this ol' piece of software :o)
21:43 masak aye.
21:43 ribasushi I celebrated its 18th birthday, when I finally could express my love within the realm of the law ;)
21:44 * masak .oO( TMI )
21:44 FROGGS yeah
21:46 ribasushi :D
21:46 [Coke] ... ew.
21:46 [Coke] Not cool, bro. Not cool.
21:47 ribasushi hey, I did it in public and I did it in style: http://code.activestate.com/​lists/perl5-porters/186203/
21:48 ribasushi ah nice memories, a year+ later still makes my blood boil when I reread ;)
21:49 masak ribasushi: I'm only four paragraphs in, but I'm already ribasushi++ -ing you :)
21:52 ribasushi masak: thanks, sadly besides "making waves" this email did not achieve anything
21:52 ribasushi I think I even said so somewhere in the thread
21:54 ribasushi (or maybe it prevented totally raw uncooked signatures from going into core at the time, so maybe yay me)
21:55 masak in general terms, it's *extremely* hard to convince a large system to become smaller in the Saint-Exupéry sense.
21:57 PerlJam "What we need is smaller government!"  ;)
21:57 ribasushi masak: right, don't make me write the same email on perl6.porters in 10 years! ;)
21:59 rjbs ribasushi: Sorry, I said pretty clearly in my reply that sigs as they were were in no danger of going into core. ;)
21:59 PerlJam heh
22:00 ribasushi rjbs: yes, I also do not equate you to p5.porters ;)
22:00 ribasushi rjbs++ # rare glimpse of sanity on the p5p landscape
22:01 PerlJam ribasushi: and that's the problem: "rare glimpse"
22:01 ribasushi this.
22:01 PerlJam And I think rjbs' bus number is really really really really close to 1  ;)
22:02 ribasushi rjbs: you should teach our kids how to run #onionsketch, bus number and all ;)
22:02 rjbs Don't worry, I've been building a bus immunity.
22:02 ribasushi argh! *your
22:02 rjbs through constant exposure over the last 8 years
22:02 fhelmberger joined #perl6
22:03 PerlJam .oO( rjbs and riba have kids together?!? ;)
22:04 rjbs pumpking: http://www.flickr.com/photos/rjbs/8091231934/
22:04 * [Coke] pictures rjbs as the dread pirate roberts.
22:04 rjbs pumpkinglet: http://www.flickr.com/photos​/51035772155@N01/8127944961
22:08 berekuk joined #perl6
22:18 masak if rjbs and riba have kids together, that definitely explains the emotional tone of that email. :P
22:18 masak "keep the core small!" indeed.
22:22 ribasushi KEEP YOUR CORE TO YOURSELF
22:23 [Coke] apple core. Who's your friend?
22:25 * perigrin points to ribasushi
22:25 perigrin "him"
22:25 berekuk joined #perl6
22:27 * [Coke] beans ribasushi.
22:31 timotimo tadzik++ arnsholt++ # making zavolaj faster
22:32 timotimo i started a quest on questhub for the return optimization btw
22:33 raiph joined #perl6
22:39 japhb My brain is blanking: What's the syntax for setting a private attribute within a custom new (so self is the type object, as the instance hasn't been finished yet)?
22:40 timotimo you need to pass it to self.bless
22:41 japhb timotimo: What exact syntax?  I'm not making bless properly happy.
22:41 timotimo either name_in_instance => $value_you_want
22:41 timotimo or :$name_in_instance_and_here
22:41 japhb Ah, so :$!var will fail.
22:41 timotimo yes indeed
22:42 japhb I think :$name only works for the public ones.
22:42 timotimo that will try to look up $!var in the instance
22:42 timotimo no, you're thinking of the wrong things
22:42 timotimo you just want to pass a pair to bless
22:42 timotimo you're not interacting with the instance you want to form yet
22:42 timotimo that only starts existing when you call bless
22:42 timotimo up until then, a custom new is no different from any other method
22:42 japhb r: class Foo { has $!bar; sub new($bar) { my $self = self.bless(:$bar) } }; say Foo.new("BAR").DUMP;
22:42 camelia rakudo-jvm 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/66Ar7pueCy␤'self' used where no object is available␤at /tmp/66Ar7pueCy:1␤------> [32m{ has $!bar; sub new($bar) { my $self = [33m⏏[31mself.bless(:$bar) } }; say Foo.new("BAR"[0m␤    exp…»
22:42 camelia ..rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/vQZrSAfnmh␤'self' used where no object is available␤at /tmp/vQZrSAfnmh:1␤------> [32m{ has $!bar; sub new($bar) { my $self = [33m⏏[31mself.bless(:$bar) } }; say Foo.new("BAR"[0m␤    …»
22:43 japhb r: class Foo { has $!bar; method new($bar) { my $self = self.bless(:$bar) } }; say Foo.new("BAR").DUMP;
22:43 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo<1>(:$!bar(Any))␤»
22:43 japhb Yeah, so that doesn't work.
22:43 japhb r: class Foo { has $!bar; method new($bar) { my $self = self.bless(bar => $bar) } }; say Foo.new("BAR").DUMP;
22:43 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo<1>(:$!bar(Any))␤»
22:43 japhb As does that (thankfully, they *should* be equivalent).
22:44 japhb So what am I doing wrong there?
22:45 timotimo i'm being spammed by people around me
22:45 timotimo my $self = self.bless() doesn't seem necessary
22:45 timotimo it's just important to return the value of self.bless at the end
22:45 japhb (And FWIW, I don't see anything wrong with making self.bless(:$!bar) Just Work.  After all, it works that way for BUILD, which *also* is working with an incomplete instance.)
22:46 timotimo you're still in the wrong :)
22:46 timotimo new works *without* an instance
22:46 timotimo like, completely no instance at all whatsoever
22:46 japhb Oh, in my real code, I have some other initialization to do (to whit, launching a thread to manage the channel(s) this object owns).
22:46 timotimo BUILD has an incomplete instance, so you can use private variables o nself
22:46 timotimo gimme a second i've got communicative overload
22:47 timotimo r: class Foo { has $!bar; method new($bar) { self.bless(:$bar) }; say Foo.new("123");
22:47 camelia rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7rDuzUnQCi␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/7rDuzUnQCi:1␤------> [32mself.bless(:$bar) }; say Foo.new("123");[33m⏏[31m<EOL>[0m␤    expecting any …»
22:47 camelia ..rakudo-jvm 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/JncvF8qlAG␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/JncvF8qlAG:1␤------> [32mself.bless(:$bar) }; say Foo.new("123");[33m⏏[31m<EOL>[0m␤    expecting any of:…»
22:47 timotimo r: class Foo { has $!bar; method new($bar) { self.bless(:$bar) } }; say Foo.new("123");
22:47 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo.new()␤»
22:47 timotimo r: class Foo { has $.bar; method new($bar) { self.bless(:$bar) } }; say Foo.new("123");
22:47 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo.new(bar => "123")␤»
22:47 timotimo oh wait
22:47 japhb You'll have to .DUMP to see the private variable.
22:48 timotimo if you want to set private variables, you need a custom BUILD to set them
22:48 japhb s/variable/attribute/
22:48 japhb OK, so now I've got chicken and egg.
22:48 timotimo because privates are not part of the public interface, so the constructor shouldn't know about them
22:48 timotimo no, i don't think so
22:48 japhb No, the constructor shouldn't accept them as *arguments*.  It will have to know about them internally.
22:48 timotimo r: class Foo { has $!bar; method new($bar) { self.bless(:$bar) }; submethod BUILD(:$bar) { $!bar = $bar } }; say Foo.new("123").DUMP;
22:48 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo<1>(:$!bar("123"))␤»
22:48 timotimo that's how you do it
22:49 timotimo sorry for taking so long to remember that
22:49 japhb That's ... SO WRONG.
22:49 japhb Not you.  The massive pain to write that trivial concept.
22:49 timotimo if it doesn't come into the constructor, you can probably have only the BUILD
22:51 raydiak r: class Foo { has $!bar; submethod BUILD(:$!bar) { * }; }; say Foo.new(bar => "123").DUMP;
22:51 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo<1>(:$!bar("123"))␤»
22:52 japhb Right, but: I need to do this:
22:52 japhb    method new(Cool $path is copy) {
22:52 japhb        $path      .= path;
22:52 japhb        my $handle  = $path.open(:w);
22:52 japhb        my $channel = Channel.new;
22:52 japhb        my $self    = self.bless(:$path, :$!handle, :$!channel);
22:53 japhb         ... Launch threads ...
22:53 japhb        $self;
22:53 japhb    }
22:53 japhb $.path is a public attribute, $!handle and $!channel are private.
22:53 timotimo yeah, that'll either need a custom BUILD or setters for those attributes
22:54 japhb >.<
22:55 timotimo :$!handle expands directly to handle => $!handle
22:55 timotimo which is not helpful
22:56 japhb timotimo: I know, I was just getting to the point of trying anything that *might* have syntactic relief.  Because what I want to do is conceptually simple.  I refuse to believe it's a horrible pain to do it.
22:57 timotimo see how raydiak did it with the :$!bar inside the signature and supplying only * as the implementation
22:57 japhb Or if it is, I've a bone to pick with a certain Mountain View resident.  ;-)
22:58 raydiak that's what I was trying to point out...the :$!bar in a BUILD sig does the private attr setting implicity
22:58 japhb OK, so how do I combine that with the real work I have to do to build it
22:58 japhb Yes, I know that.
22:58 timotimo you pass :$handle, :$channel to self.bless and write submethod BUILD(:$!path, :$!handle, :$!channel) { * }
22:59 timotimo well, and you pass :$path, too
22:59 timotimo you could also be mean and nonportable and nqp::setattr($self, MyClassName, '$!handle', $handle)
23:00 japhb Finally, something working.
23:00 japhb That was ouchie.
23:01 timotimo i apologize :(
23:02 japhb The * does not appear necessary.
23:02 timotimo right
23:03 timotimo it's mostly an attitudinal there
23:03 timotimo "beh, whatevs"
23:08 japhb W00t!  Progress!
23:09 japhb Four threads working together to do an HTTP GET through a connected socket, logging socket traffic to a separate file, all pieces communicating over channels./
23:10 timotimo \o/
23:12 japhb Why does IO::Socket.recv only pull 512 bytes at a time?  Why not say 64k, so as to at least pull an IP datagram all in one shot?
23:14 japhb Oh, and sorry for any grumpiness, guys.  I guess I get cranky whenever something seems more painful than what I used to do in Perl 5.  ;-)
23:14 BenGoldberg joined #perl6
23:15 timotimo is that for parrot?
23:15 timotimo oh, of course not
23:15 timotimo it would be on the jvm, seeing as you're doing concurrent stuff
23:15 btyler the magic "t" word :)
23:16 btyler although I was never familiar with parrot's threads, so I suppose it shouldn't be assumed right off
23:18 Some-body_ joined #perl6
23:19 timotimo we just don't have concurrent stuff atop parrot
23:20 japhb Rakudo and Parrot haven't really seen eye to eye where threads are concerned.
23:20 japhb But it works on JVM, and (will soon) on Moar as well.
23:21 timotimo yup
23:22 raydiak I know the topic already moved on, but I don't like the extra mess of initializing private attrs from a constructor, either. kinda wish there was something like "has $!foo is init" or eqv which would do the same as adding :$!foo to BUILD
23:22 raydiak (and an inverse of that, which prohibits initializing the attribute, whether public or private)
23:23 timotimo japhb: you do know that you can (ideally) pass a read size to recv as the first argument?
23:23 timotimo well, yeah, you can have has $!foobar = $.barfoo i think?
23:24 timotimo r: class Foo { has $.bar; has $!fasel = $.bar * 2; }; Foo.new(:bar(123)).DUMP.say
23:24 camelia rakudo-jvm 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GOAHfZM0Ms␤Virtual call $.bar may not be used on partially constructed objects␤at /tmp/GOAHfZM0Ms:1␤------> [32mass Foo { has $.bar; has $!fasel = $.bar[33m⏏[31m * 2; }; Foo.new(:bar(123))…»
23:24 camelia ..rakudo-parrot 4f66ce: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/VU7qDXrdHW␤Virtual call $.bar may not be used on partially constructed objects␤at /tmp/VU7qDXrdHW:1␤------> [32mass Foo { has $.bar; has $!fasel = $.bar[33m⏏[31m * 2; }; Foo.new(:bar(12…»
23:24 timotimo nope.
23:24 timotimo sorry :(
23:24 raydiak r: class Foo { has $.bar; has $!fasel = $!bar * 2; }; Foo.new(:bar(123)).DUMP.say
23:24 camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Foo<1>(␤    :bar(▶123),␤    :$!fasel(246)␤)␤»
23:24 raydiak but it's ugly
23:25 raydiak and doesn't clearly indicate my purpose
23:25 raydiak and I can't use the name I really want in both places, can I?
23:25 rurban1 joined #perl6
23:29 japhb timotimo: The !parrot section of method recv just does this:
23:29 japhb        if $!buffer.elems < $chars {
23:29 japhb            my $r := nqp::readfh($!PIO, nqp::decont(buf8.new), 512);
23:29 japhb            $!buffer ~= $r;
23:29 japhb        }
23:29 kaare_ joined #perl6
23:29 japhb Note the hardcoded 512 -- and lack of any loop.
23:30 japhb I understand the lack of loop in general, that makes sense for .recv.
23:30 timotimo d'oh
23:30 japhb I mean, hardcoding at 512 doesn't seem to make sense unless the intent was to loop.
23:30 timotimo you're right
23:31 timotimo still better than on parrot where you can try to readline from a socket and maybe get a full line or not, but either way you don't have a line terminator at the end
23:31 timotimo so you cannot distinguish between "read a full line" and "read until the buffer was full and returned what was seen so far"
23:31 japhb Yeah, IO::Socket is kinda crazy with stuff like that.
23:32 japhb Last time I really looked at the source I remember being rather >.< about the assumption that utf-8 code groups would not span multiple socket reads.
23:32 japhb But I haven't reread that section recently.
23:34 btyler anyone else had any luck getting r-m built on OSX? I got further today than I ever have: all the way through building nqp-m and partially into r-m, but died working on container.c: https://gist.github.com/kanat​ohodets/7ace7f6ecd474452ed02
23:35 rurban1 joined #perl6
23:37 btyler latest revs for MoarVM, nqp, and rakudo moar-support. happy to be remote hands if there's anything I could do to help fix up the OSX build
23:38 rurban2 joined #perl6
23:39 timotimo are there any ifdefs in the container.h or .c that would cause these functions to not be built?
23:48 jeffreykegler joined #perl6
23:54 btyler timotimo: no ifdefs in the relevant moarvm source (src/6model/container.*). afk for 30 min, will continue poking then if anyone has ideas

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo