Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-03-31

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:02 colomon joined #perl6
00:03 timotimo may be on tuesday or shortly thereafter
00:03 timotimo r: class Timer { has &.cb; method do_it { &.cb() } }; my $t = Timer.new(:cb({ say "hi"; })); $t.do_it();
00:03 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: ( no output )
00:03 timotimo i am confuse
00:04 timotimo isn't this supposed to work?
00:04 timotimo r: my &foo = { say "hi"; }; &foo()
00:04 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«hi␤»
00:05 timotimo ooooh duh
00:09 AW3i joined #perl6
00:11 lue r: say LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat.perl; # I'm not sure how to make this a recursive flattening :/
00:11 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).list␤»
00:17 lue r: say LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).tree(*.Parcel, *).flat.perl; # if I grok .tree correctly
00:17 camelia rakudo-jvm ee7dbc: OUTPUT«Cannot call 'tree'; none of these signatures match:␤:(List:U: *%_)␤:(List:D: *%_)␤:(List:D: Cool $count, *%_)␤:(List:D: &c, *%_)␤  in any  at gen/jvm/BOOTSTRAP.nqp:1212␤  in any  at gen/jvm/BOOTSTRAP.nqp:1202␤  in method tree at gen/jvm/CORE.s…»
00:17 camelia ..rakudo-moar ee7dbc: OUTPUT«Cannot call 'tree'; none of these signatures match:␤:(List:U: *%_)␤:(List:D: *%_)␤:(List:D: Cool $count, *%_)␤:(List:D: &c, *%_)␤  in method tree at src/gen/m-CORE.setting:7809␤  in block  at /tmp/tmpfile:1␤␤»
00:17 camelia ..rakudo-parrot ee7dbc: OUTPUT«Cannot call 'tree'; none of these signatures match:␤:(List:U: *%_)␤:(List:D: *%_)␤:(List:D: Cool $count, *%_)␤:(List:D: &c, *%_)␤  in any  at gen/parrot/BOOTSTRAP.nqp:1219␤  in any  at gen/parrot/BOOTSTRAP.nqp:1210␤  in method tree at gen/p…»
00:17 timotimo huh
00:17 timotimo no, i think .tree takes a number as argument?
00:17 timotimo r: .say for LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat;
00:17 lue I base that off this part of S02:        $p.tree(*.Array,*)     # Turn all subparcels into item recursively
00:17 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«a b c == de␤z b .l == h;␤»
00:17 timotimo r: .say for @(LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat);
00:17 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«a b c == de␤z b .l == h;␤»
00:18 lue timotimo: apparently .flat only works on Parcels, so that's what I'm trying to handle with .tree, but it appears that not all of tree is implemented :(
00:18 timotimo oh, huh.
00:19 TimToady .tree is kinda doing what .lol is supposed to do, and .lol isn't
00:19 timotimo r: my @foo = LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat; say @foo.perl;
00:19 camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«Array.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"])␤»
00:19 timotimo i'm going home
00:20 lue I wonder if I can get away with flattening the pieces as the array is being generated...
00:22 lue Flattening within the generator gets me to LoL.new(["a", "b", "c", "==", "de"], ["z", "b", ".l", "==", "h;"]) , but trying to call .flat on that similarly doesn't help :/
00:23 lue Oh, wait, I actually want to keep those two subarrays distinct. Nevermind then, problem solved :)
00:31 kbaker joined #perl6
00:38 araujo joined #perl6
00:40 hoverboard joined #perl6
00:50 dalek joined #perl6
00:56 ssutch joined #perl6
01:24 ilbot3 joined #perl6
01:24 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!
01:24 lue It'd be nice if rakudo didn't blow up, I'm only printing the value of the division.
01:24 lue n: say 1/0;
01:24 camelia niecza v24-109-g48a8de3: OUTPUT«Inf␤»
01:24 TimToady IEEE would likely say that that *must* be NaN
01:26 timotimo r: say (1 / 0).WHAT
01:26 camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«(Rat)␤»
01:26 timotimo r: print 1 / 0
01:26 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
01:26 camelia ..rakudo-parrot 0035fa: OUTPUT«Type check failed for return value; expected 'Int' but got 'Failure'␤  in method floor at gen/parrot/CORE.setting:10043␤  in method Str at gen/parrot/CORE.setting:10060␤  in method Str at gen/parrot/CORE.setting:1038␤  in method print at gen/parr…»
01:26 camelia ..rakudo-jvm 0035fa: OUTPUT«Type check failed for return value; expected 'Int' but got 'Failure'␤  in method floor at gen/jvm/CORE.setting:10021␤  in method Str at gen/jvm/CORE.setting:10040␤  in method Str at gen/jvm/CORE.setting:1035␤  in method print at gen/jvm/CORE.setting…»
01:26 TimToady reduces lazily
01:27 TimToady though since rats can degrade to nums, arguably that should also return NaN
01:27 xenoterracide joined #perl6
01:28 lue I'd love to see what IEEE 754 says on the matter, but it's apparently one of those "not really" standards :/
01:28 * lue checks if IETF has an RFC on it
01:33 lue https://en.wikipedia.org/wiki/Division_by_zero#In_computer_arithmetic  <-- niecza++ appears to be correct here
01:35 lue according to IEEE in any case; the more mathematically sound result would be NaN (or some other representation of an undefined result)
01:37 lustlife joined #perl6
01:38 TimToady m: say (1e0 / 0e0).WHAT
01:38 camelia rakudo-moar 0035fa: OUTPUT«(Failure)␤»
01:39 TimToady I think rakudo is trying to preserve the location of the error, which NaN doesn't do
01:40 lue ah, that does tend to be useful for tracking bugs :)
01:40 TimToady but by S03:764 it should at least be something that pretends to be NaN
01:40 synopsebot Link: http://perlcabal.org/syn/S03.html#line_764
01:41 TimToady m: say (1e0 / 0e0) + 42
01:41 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
01:41 TimToady m: say (1e0 / 0e0) «+» 42
01:41 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
01:42 TimToady arguably that at least should be a real NaN, since we don't want to blow up parallel computations due to div by 0
01:44 lue yeah, at least for floating point (if not for the other numeric types too)
01:44 TimToady and storing a fake NaN into a Num location should probably just make a normal NaN
01:44 lue .oO(We should all use the real projective line and stop worrying about division by zero.)
01:44 klapperl_ joined #perl6
01:46 rurban1 joined #perl6
01:47 BenGoldberg Perhaps a NaN class which is a subclass of Num?
01:48 TimToady it's more like a subset type
01:48 BenGoldberg Hmm... or a subclass of Failure, while 'do'ing the Numeric role
01:48 TimToady or an enum of Num
01:48 BenGoldberg r: say NaN
01:48 camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«NaN␤»
01:48 TimToady r: say NaN ~~ Num
01:48 camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«True␤»
01:48 TimToady scared me
01:48 TimToady :)
01:49 TimToady but arguably Nan shouldn't match Num :)
01:49 FROGGS joined #perl6
01:49 * lue imagines an Ofun::NaN that causes functions to immediately return a NaN when any given parameter is NaN
01:50 BenGoldberg IIRC, On some machines, there exists both a quite NaN and a signaling NaN.  Maybe Perl 6 should also make such a distinction?
01:50 TimToady maybe that's the distinction we're trying for with scalar vs parallel computations
01:51 * TimToady professes not to be an expert on IEEE fp
01:52 TimToady presumably a signaling NaN only signals if you try to use it
01:54 BenGoldberg Of course, deciding which type of NaN should be produced could be tricky.  If this were perl5, I'd suggest a pragma which would (at compile time) set something in $^H or %^H, then floating point math at runtime would check (caller(1))[9 or 10, depending] to decide whether to signal or not.
01:54 BenGoldberg s/signal or not/make a quite or signaling NaN/
01:54 BenGoldberg s/quite/quiet/ # stupid fingers
01:54 lue "Signaling NaNs afford representations for uninitialized variables and arithmetic-like enhancements (such as complex-affine infinities or extremely wide range) that are not in the scope of this standard."
01:54 lue "Quiet NaNs should, by means left to the implementer’s discretion, afford retrospective diagnostic information inherited from invalid or unavailable data and results."
01:55 TimToady hah
01:55 Sqirrel joined #perl6
01:55 TimToady that sounds like trying to track the identities of individual electrons
01:55 TimToady unless NaN is a category of values
01:56 lue From a quick skimming, that seems like the general definitions of each kind of NaN.
01:56 geekosaur NaN is a weird thing, and might best be described as a category. yes
01:56 TimToady an illegal bit pattern with reserveed parts that can carray a value
01:56 TimToady *carry
01:57 BenGoldberg If a double is bigger than a pointer, and there are enough bits available, one might concievably store into it a pointer to the address of the operation which produced the NaN
01:57 ssutch joined #perl6
01:57 TimToady or a pointer to the Failure with as much info as you like
01:58 lue "When encoded, all NaNs have a sign bit and a pattern of bits necessary to identify the encoding as a NaN and which determines its kind (sNaN vs. qNaN).", if you were curious :)
01:58 TimToady with fewer bits it could be an offset into a table of recent failures
01:59 geekosaur well, except that the cpu's fp hardware may have meanings for some of them
01:59 BenGoldberg A table of recent failures makes more sence, since how would one free the Failure pointed ot?
01:59 TimToady I wonder how many architectures just say NaN is this bit pattern, deal with it
02:00 woosley joined #perl6
02:00 TimToady we have spin-up NaN, and spin-down NaN, and that's all we have :)
02:01 BenGoldberg Most of em probably one generate one bit pattern as qNaN, and a second one as sNaN... but they'll probably recognize anything with the first few bits set properly.
02:01 lue .oO(On our FPU, qNaN is a number with bit pattern "qNaN", and sNaN the bit pattern "sNaN". These numbers must be negative.)
02:07 perigrin TimToady: no Garlic NaN?
02:08 * perigrin is saddend.
02:11 * TimToady is allergic to nan in south Asia, but not where nan means "south" :)
02:12 TimToady my favorite pun is to go into an Indian restaurant and say "Nan desu ka?"
02:25 benabik joined #perl6
02:26 xragnar_ joined #perl6
02:27 TimToady m: BEGIN True and (require Test; import Test); ok True, "ok is ok"
02:27 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GkQY3wLkIrâ�¤Could not find module Test to import symbols fromâ�¤at /tmp/GkQY3wLkIr:1â�¤------> [32mEGIN True and (require Test; import Test[33mâ��[31m); ok True, "ok is ok"[0mâ�¤    expecting a…»
02:27 TimToady hmm
02:28 TimToady FROGGS: something like that ^^
02:29 TimToady m: BEGIN True and (use Test); ok True, "ok is ok"
02:29 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
02:29 TimToady heh
02:29 TimToady m: BEGIN False and (use Test); ok True, "ok is ok"
02:29 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
02:29 TimToady oopsie :)
02:29 TimToady probably correct, need a require to be conditional
02:29 rurban1 joined #perl6
02:30 TimToady m: BEGIN True and (require Test); Test::ok True, "ok is ok"
02:30 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Could not find symbol '&ok'␤»
02:30 TimToady m: BEGIN True and (require Test <&ok>); ok True, "ok is ok"
02:30 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Lexical with name '&ok' does not exist in this frame␤»
02:31 TimToady m: require Test <&ok>; ok True, "ok is ok"
02:31 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
02:31 TimToady hmm
02:34 BenGoldberg Does 'use' in perl6 typically create lexical subs in the caller's context?  If so, that's very cool :)
02:35 TimToady there's no extra lexical context there
02:35 TimToady since the BEGIN has no braces
02:35 BenGoldberg How does require work?
02:36 TimToady it's sort of like thunks, that are parasitic on the existing lexical scope rather than creating a new one
02:36 TimToady require is runtime
02:36 TimToady but has an optional argument for installing symbols at compile time
02:36 TimToady m: require Test <&ok>; ok True, "ok is ok"
02:36 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
02:36 TimToady why this one worked
02:37 TimToady m: require Test; ok True, "ok is ok"
02:37 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/aQtQgwWSA_â�¤Undeclared routine:â�¤    ok used at line 1. Did you mean 'on'?â�¤â�¤Â»
02:37 BenGoldberg So if you pass arguments to require, it magically changes from runtime to compile time?
02:38 TimToady the compiler knows to recognize the arguments to require
02:38 TimToady it just makes the 'need' part of require lazy
02:38 TimToady so it doesn't happen till runtime
02:40 BenGoldberg So it's a bit like perl5's autouse module, or something...
02:40 TimToady well, not quite
02:40 TimToady but we'd like to be able to autouse stuff eventually
02:40 TimToady particularly for things in the setting that aren't necessarily going to be used in every program
02:41 TimToady just install the names with triggers, and load the semantics when we first see the name
02:41 BenGoldberg Well, obviously perl6's require doesn't delay loading of, say, Test, until &ok is called, but it predeclares &ok, and automatically attaches it to &Test::ok as soon as Test gets loaded at runtime.
02:42 TimToady yes, it's a step in the right direction, if you want lazy loading
02:44 BenGoldberg m: if( rand < Inf ) { require Test <&ok> }; ok True, "ok is ok";
02:44 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m�Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens�at /tmp/bT1Cubd80a:1�------> [32mif[33m�[31m( rand < Inf ) { require Test <&ok> }; o[0m�Unexpected block in infix position (…»
02:45 BenGoldberg m: if ( rand < Inf ) { require Test <&ok> }; ok True, "ok is ok";
02:45 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/WXH7Ba3LMZâ�¤Undeclared routine:â�¤    ok used at line 1. Did you mean 'on'?â�¤â�¤Â»
02:45 BenGoldberg m: if ( rand < Inf ) { require Test <&ok>; ok True, "ok is ok" }
02:45 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
02:45 BenGoldberg The name is installed lexically... very cool.
02:48 TimToady timotimo: it's not at all clear that 'is rw' actually is going to be slow down a loop; better measure fist
02:53 TimToady measure fist first
02:54 TimToady one fist is about 10° if I recall
02:58 ssutch joined #perl6
02:59 TimToady maybe there's enough bits in NaN to encode file and line#
03:02 lue TimToady: doesn't that S03 reference from earlier state that NaN and Inf in Perl 6 aren't exactly the same as IEEE's anyway?
03:02 lue (so NaN could be an object with file and lineno attrs.)
03:03 TimToady probably written at a time when it was assumed Int and such also support NaN
03:03 TimToady which hasn't happened yet, if it ever will
03:03 TimToady r: sub term:<time> { 42 + OUTER::term:<time> }; say time
03:04 camelia rakudo-parrot 0035fa: OUTPUT«use of uninitialized value of type Any in numeric context  in sub term:<time> at /tmp/tmpfile:1␤␤42␤»
03:04 camelia ..rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«use of uninitialized value of type Any in numeric context␤42␤»
03:04 TimToady r: sub term:<time> { 42 + OUTER::{'&term:<time>'}() }; say time
03:05 camelia rakudo-jvm 0035fa: OUTPUT«java.lang.RuntimeException: java.lang.StackOverflowError␤␤»
03:05 camelia ..rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)»
03:05 JimmyZ \o/ bug...
03:05 TimToady r: sub term:<time> { 42 + &OUTER::term:<time>() }; say time
03:06 camelia rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)»
03:06 camelia ..rakudo-jvm 0035fa: OUTPUT«java.lang.StackOverflowError␤␤»
03:06 TimToady yeah, some kinda bug
03:08 JimmyZ r:  { sub term:<time> { 42 + &OUTER::term:<time>() }; say time }
03:08 camelia rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)»
03:08 camelia ..rakudo-jvm 0035fa: OUTPUT«java.lang.StackOverflowError␤␤»
03:09 TimToady r: sub term:<time> { 42 + &SETTING::term:<time>() }; say time
03:09 camelia rakudo-jvm 0035fa: OUTPUT«1396235386␤»
03:09 camelia ..rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:09 camelia ..rakudo-parrot 0035fa: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in any  at gen/parrot/BOOTSTRAP.nqp:1685␤  in any  at gen/parrot/BOOTSTRAP.nqp:1679␤  in any  at gen/parrot/BOOTSTRAP.nqp:1674␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfi…»
03:09 TimToady o_O
03:09 lue IIRC rakudo doesn't always like the $PACKAGE::var form
03:09 lue (though I've yet to look for a pattern to it)
03:09 TimToady n: sub term:<time> { 42 + &SETTING::term:<time>() }; say time
03:10 camelia niecza v24-109-g48a8de3: OUTPUT«1396235443.7795949␤»
03:10 TimToady niecza++
03:10 TimToady n: sub term:<time> { 42 + &OUTER::term:<time>() }; say time
03:10 camelia niecza v24-109-g48a8de3: OUTPUT«(timeout)»
03:10 TimToady hmm
03:10 TimToady niecza-- :)
03:10 TimToady oh wait
03:11 TimToady that's correct
03:11 TimToady niecza++
03:11 TimToady TimToady--
03:11 TimToady n: sub term:<time> { 42 + &OUTER::OUTER::term:<time>() }; say time
03:11 camelia niecza v24-109-g48a8de3: OUTPUT«1396235527.458894␤»
03:11 TimToady r: sub term:<time> { 42 + &OUTER::OUTER::term:<time>() }; say time
03:11 camelia rakudo-jvm 0035fa: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in any  at gen/jvm/BOOTSTRAP.nqp:1673␤  in any  at gen/jvm/BOOTSTRAP.nqp:1668␤  in any  at gen/jvm/BOOTSTRAP.nqp:1663␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:11 camelia ..rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:11 camelia ..rakudo-parrot 0035fa: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in any  at gen/parrot/BOOTSTRAP.nqp:1685␤  in any  at gen/parrot/BOOTSTRAP.nqp:1679␤  in any  at gen/parrot/BOOTSTRAP.nqp:1674␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfi…»
03:11 TimToady that's, not so correct
03:12 JimmyZ why OUTER::OUTER ...
03:12 lue r: sub term:<time> { 42 + SETTING::{'&term:<time>'}() }; say time
03:12 camelia rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:12 camelia ..rakudo-parrot 0035fa: OUTPUT«No such method 'Any' for invocant of type 'Parcel'␤  in any  at gen/parrot/BOOTSTRAP.nqp:1685␤  in any  at gen/parrot/BOOTSTRAP.nqp:1679␤  in any  at gen/parrot/BOOTSTRAP.nqp:1674␤  in sub term:<time> at /tmp/tmpfile:1␤  in block  at /tmp/tmpfi…»
03:12 camelia ..rakudo-jvm 0035fa: OUTPUT«1396235602␤»
03:13 lue The JVM gets it right for &PKG::var and PKG::<&var>, but the other backends don't. That's interesting.
03:17 arnsholtAtHome joined #perl6
03:19 TimToady lue: re octals, see S02:3523
03:19 synopsebot Link: http://perlcabal.org/syn/S02.html#line_3523
03:20 lue dang it, the stupid Twigils duplication bug messes up the synopsebot link :/
03:22 lue TimToady: yeah, I'm just wondering if blocking the inclusion of 7 characters after a use of \0 is worthwhile (then again, it's 7 out of 0x10_FFFF chars, so it's not that bad. But then those 7 chars are ASCII, which is far more used than the rest of Unicode...)
03:23 TimToady the point is to keep C, C++, Perl 5, Java, etc. programmers from shooting themselves in the pinky toe
03:24 lue something for the eventual "I don't know Perl 5" switch to allow me to do, then :)
03:24 TimToady and then you're write non-portable code, eh? :P
03:24 TimToady *you'll
03:25 lue nah, it just needs a  no perl5-knowledge  at the top of the file :)
03:25 lue ("switch" in the general sense, instead of the commandline thingy sense)
03:25 * TimToady always misinterprets intentionally in the most aggravating way, in case you hadn't noticed :)
03:26 lue took me a minute to figure out your misinterpretation this time :)
03:27 TimToady it was admittedly subtle, but I did, in fact, think of your interpreation before I responded :)
03:27 lue .oO( perl6 -U__NO_PERL_5__ ... )
03:27 TimToady *pret
03:27 lue er, -D rather :P
03:28 TimToady .oO(no MONKEY_ANCESTRY)
03:29 TimToady no MONKEY'S-UNCLE
03:29 lue I imagine S23 will include a  use MONKEY_SECURITY  for when you want to live dangerously, unconditionally. (Assuming that kind of a careless act would ever be supported)
03:30 TimToady MONKEY_BUSINESS, surely
03:30 TimToady MONKEY_SEE_MONKEY_DO to allow cargo culting
03:30 TimToady MONKEY_AROUND
03:31 TimToady MONKEY_SHINE
03:31 TimToady more -Ofun than a BARREL_OF_MONKEYS
03:32 lue use 🐵_TYPING
03:34 TimToady but anyway, my point is it's not just P5 programmers that will make the \0777 mistake
03:36 lue yeah. I wonder who's smart idea it was to use a singular leading decimal digit to stop decimal interpretation anyhow.
03:36 TimToady "We can't fix that! We already have five users!"
03:38 lue A favorite historical (and nowadays useless/unhelpful) oddity has got to be C/C++'s digraphs and trigraphs.
03:38 TimToady which is why sometimes I still come down like a ton of bricks and fix something in the design of Perl 6 even though it breaks stuff
03:38 lue TimToady: Unicode could learn a thing or two from you, wrt to UTF-16 and the resulting 0x10_FFFF limit :)
03:40 TimToady yes, well, they'd've done it differently if they knew how popular UTF-8 was going to turn out to be
03:42 lue I still think UTF-16 should be remade into a 16-bit version of UTF-8, but I suppose I'd have better luck making ß.uc == ẞ
03:42 TimToady also, standards bodies think they can invent a NewThink language in which it is impossible to think bad thoughts
03:44 TimToady gotta go switch hotels now...
03:44 TimToady afk &
03:44 lue bye for now, TimToady o/
03:59 ssutch joined #perl6
04:04 pdcawley joined #perl6
04:06 kaare_ joined #perl6
04:09 araujo joined #perl6
04:09 araujo joined #perl6
04:31 lustlife1 joined #perl6
04:34 kaare__ joined #perl6
04:46 rurban1 joined #perl6
04:52 lue ooh, I just noticed RESTRICTED.setting isn't using a typed exception for restricted stuff. (A string-based die, instead of something like X::RESTRICTED)
05:00 ssutch joined #perl6
05:28 kaare__ joined #perl6
05:43 xiaomiao http://bpaste.net/show/195812/ nqp failing with parrot-6.2.0, works with 6.1.0
05:44 FROGGS xiaomiao: rurban++ does a lot of changes to parrot, and pull requested changes to nqp that need to be applied when we switch to a newer version
05:45 FROGGS xiaomiao: so please stick to 6.1.0 for nqp/rakudo
05:45 xiaomiao FROGGS: right, that's a little bit annoying (but not a big problem
05:45 xiaomiao FROGGS: would be even more awesome if nqp/rakudo would abort with "known-bad" versions, but I can live with the current state
05:46 FROGGS xiaomiao: true, but the mechanism is that nqp requires at least the specified version, and that usually works out
05:47 xiaomiao yes
05:47 xiaomiao little bit surprising because usually it's just all perfectly working
05:50 JimmyZ 中午好
05:50 FROGGS the rule of thumb is: if you are not a parrot/moarvm/whatever hacker, stick to the version in the PARROT_REVISION/MOAR_REVISION file
05:50 FROGGS everything else is not guaranteed to work but cause of changes that need adjusting
05:51 lue nowadays I don't update Parrot until nqp complains :)
05:51 FROGGS lue: me too
05:52 FROGGS well okay, unless I test PR's
05:52 FROGGS PRs*
05:52 * JimmyZ only use moarvm :)
05:52 lue Something tells me I fail at Perl 6 threads at the moment:  https://gist.github.com/lue/9886068
05:54 xiaomiao I just try to keep everything up to date
05:54 lue In case you can't tell, I want to set up a pipeline where input to it is processed parallelly, instead of serially.
05:54 xiaomiao would be silly to not package new versions ;)
05:56 lue I'd be interested in seeing what improvements (if any) I can bring to syngen by multithreading various operations. (process many synopses at once, instead of waiting for one to go through the whole process, then another, then another...)
06:00 ssutch joined #perl6
06:06 lue g'night, #perl6 o/
06:07 FROGGS gnight lue
06:09 mattp_ joined #perl6
06:26 logie joined #perl6
06:36 FROGGS joined #perl6
06:36 FROGGS m: BEGIN True and (require Test; import Test); ok True, "ok is ok"
06:36 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Diy1W9trDeâ�¤Could not find module Test to import symbols fromâ�¤at /tmp/Diy1W9trDe:1â�¤------> [32mEGIN True and (require Test; import Test[33mâ��[31m); ok True, "ok is ok"[0mâ�¤    expecting a…»
06:37 FROGGS I will fix that after fiddling with star
06:42 d0nk joined #perl6
06:43 dmol joined #perl6
06:57 dayangkun joined #perl6
06:58 aborazmeh joined #perl6
07:01 ssutch joined #perl6
07:05 simula67 Does this look reasonable ? https://github.com/perl6/roast/pull/38
07:14 darutoko joined #perl6
07:14 TimToady m: BEGIN True and (require Test); import Test; ok True, "ok is ok"
07:14 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
07:14 TimToady FROGGS: I think import is also compile time
07:15 TimToady so it happens before require if it isn't separated by a BEGIN level
07:16 FROGGS ahh, true
07:17 FROGGS I stumbled at that a year ago or so
07:17 TimToady simula67: unfortuantely, the gfc appears to not let github.global.ssl.fastly.net through...
07:17 FROGGS m: BEGIN True and (require Test <&ok>); ok True, "ok is ok"
07:17 camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Lexical with name '&ok' does not exist in this frame␤»
07:17 TimToady that's arguably a bug
07:17 FROGGS m: require Test <&ok>; ok True, "ok is ok"
07:17 camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
07:18 FROGGS the latter is okay if you just export a handful subs or an object/type
07:18 FROGGS hmmmm
07:19 FROGGS star: require JSON::Tiny <JSON::Tiny>; say JSON::Tiny
07:19 camelia star 2013-09: OUTPUT«Trying to import from 'JSON::Tiny', but the following symbols are missing: JSON::Tiny␤  in sub REQUIRE_IMPORT at src/gen/CORE.setting:16228␤  in block  at /tmp/j5uZm_CaOW:1␤␤»
07:20 FROGGS TimToady: am I supposed to be able to import a type?
07:21 TimToady that would seem to be an important capability
07:22 FROGGS .tell jnthn was the closure-o blorst fix supposed to fix the "p6captureouters target must be a CodeRef"?
07:22 yoleaux FROGGS: I'll pass your message to jnthn.
07:22 TimToady star: require JSON::Tiny; say JSON::Tiny
07:22 camelia star 2013-09: OUTPUT«Could not find symbol '&Tiny'␤  in method <anon> at src/gen/CORE.setting:12026␤  in any  at src/gen/Metamodel.nqp:2671␤  in any find_method_fallback at src/gen/Metamodel.nqp:2659␤  in any find_method at src/gen/Metamodel.nqp:946␤  in block  at /tmp/lnZ…»
07:22 TimToady I think you're supposed to get that symbol for free anyway
07:22 FROGGS TimToady: yes, this would help us with two modules that contain pir
07:23 FROGGS because I did not use `require STRING`, aye
07:23 FROGGS m: require JSON::Tiny; say JSON::Tiny
07:23 camelia rakudo-moar 0035fa: OUTPUT«Could not find JSON::Tiny in any of: /home/p6eval/rakudo-inst-1/languages/perl6/site/lib, /home/p6eval/rakudo-inst-1/languages/perl6/vendor/lib, /home/p6eval/rakudo-inst-1/languages/perl6/lib, /home/p6eval/.perl6/2014.03.01-48-g0035fad/lib␤  in any load_…»
07:23 TimToady well, in a pinch you can write a routine to return a type
07:23 FROGGS m: require Test; say Test
07:23 camelia rakudo-moar 0035fa: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7rDLUz72_dâ�¤Undeclared name:â�¤    Test used at line 1â�¤â�¤Â»
07:24 FROGGS yeah, everything of these workarounds are better than evaling heredocs :o)
07:25 FROGGS bah, my english sucks :o(
07:26 TimToady S11:367 and following implies that should define the symbol
07:26 synopsebot Link: http://perlcabal.org/syn/S11.html#line_367
07:26 FROGGS yes, I remember
07:27 FROGGS also it has to be this way or aliasing would not be possible
07:27 lizmat good *, #perl6!
07:27 FROGGS morning lizmat!
07:28 * FROGGS puts a garlic necklace on
07:32 lizmat FROGGS: garlic NaN is much tastier  :-)
07:34 FROGGS lizmat: the point is that I wanted to become much less tastier :P
07:34 FROGGS but yeah, NaN++
07:36 * lizmat found out yesterday that the Banca Transylvania isn't actually a blood bank
07:36 arnsholt o/
07:37 FROGGS moin arnsholt
07:43 arnsholtAtHome joined #perl6
07:43 simula67 TimToady: gfc == Great Firewall of China ?
07:44 dalek rakudo/nom: 5a1c937 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
07:44 dalek rakudo/nom: Update Changelog for features/fixes so far
07:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a1c937324
07:44 Rotwang joined #perl6
07:45 cognominal joined #perl6
07:50 dalek nqp: a2bb2db | (Arne Skjærholt)++ | src/HLL/Compiler.nqp:
07:50 dalek nqp: Tweak how we handle --stagestats.
07:50 dalek nqp:
07:50 dalek nqp: Now, the stage name is printed *before* the stage starts, and time spent doing
07:50 dalek nqp: it once it's done. Useful for those who can never remember the order of the
07:50 dalek nqp: stages.
07:50 dalek nqp: review: https://github.com/perl6/nqp/commit/a2bb2db504
07:52 FROGGS ahh, nice
08:02 ssutch joined #perl6
08:06 fhelmberger joined #perl6
08:19 lizmat r: say (foo => "bar").perl
08:19 camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«"foo" => "bar"␤»
08:20 * lizmat wonders why .perl on a Pair quotes the lefthand side
08:20 lizmat would:
08:20 lizmat foo => "bar"
08:20 lizmat be more .perl ish ?
08:22 lizmat or even:
08:22 lizmat :foo<bar>
08:22 lizmat in this case?
08:24 jnthn morning o/
08:24 yoleaux 07:22Z <FROGGS> jnthn: was the closure-o blorst fix supposed to fix the "p6captureouters target must be a CodeRef"?
08:24 FROGGS morning jnthn
08:24 jnthn lizmat: If it's meant to round-trip, then depending on context the unquoted version may not actually produce a Pair.
08:25 jnthn FROGGS: No, it was to fix the "No method Mu" thingy in the scheduler.
08:26 lizmat jnthn: but the :foo<bar> version would, no?
08:28 kshannon joined #perl6
08:28 FROGGS ahh, kthx
08:28 jnthn lizmat: No, func(:foo<bar>) also serves as a named arg
08:28 lizmat ack, you're right
08:30 fhelmberger joined #perl6
08:30 jnthn lizmat: Did you get a working sleep sort locally?
08:31 lizmat no, seems I have trouble getting Moar up to HEAD and then using it in a standard --gen-nqp --gen-moar setup
08:33 denisboyun joined #perl6
08:33 jnthn Well, yeah, --gen-moar will try to generate the revision specified in MOAR_REVISIOn
08:33 dakkar joined #perl6
08:33 jnthn --gen-moar=master # or so
08:34 nwc10 back to work, and my computer clearly hates me
08:34 nwc10 we *started* with the network connection not wokring
08:34 nwc10 (bodged that by routing via my laptop and the office wifi, as there are no spare ports, and the phone won't do it for some reason)
08:35 nwc10 but then after the second software update of the day, the X server has decided that the monitor is only capable of 19bah x 1200
08:35 FROGGS jnthn: updated to HEAD/HEAD/HEAD: https://gist.github.com/FROGGS/0ea5537eb675588baaa2
08:35 nwc10 it's feeling like https://xkcd.com/349/
08:39 jnthn nwc10: Monday!
08:40 nwc10 aye
08:41 nwc10 (currently) the coffee machine still works
08:41 nwc10 (I assume that the second coffee machine also still works, but I did not test it)
08:41 nwc10 coffee machines not on UPS [yet :-)]
08:42 sqirrel_ joined #perl6
08:44 jnthn FROGGS++ # clean Parrot star!
08:47 salv0 joined #perl6
08:48 * nwc10 is wondering if the X server is no longer able to probe the monitor to ask it "who are you? what can you go up to?"
08:50 sivoais joined #perl6
08:50 lizmat jnthn: thanks for the --gen-moar=master trick: can confirm sleep sort test works now
08:50 lizmat let me know when it's part of the general version, so I can unfudge the test
08:51 jnthn lizmat: You can make it so just by bumping revisions ;)
08:52 SamuraiJack_ joined #perl6
08:53 nebuchadnezzar joined #perl6
08:55 ribasushi joined #perl6
08:55 lizmat jnthn: updating nqp/tools/build/MOAR_REVISION, right ?
08:55 jnthn FROGGS: Have any of the fixes needed to get clean on r-p been in Rakudo or NQP? Or were they just in module space?
08:55 jnthn lizmat: Yes, with output to git describe --tags in Moar
08:56 FROGGS jnthn: modules only
08:56 jnthn FROGGS: OK.
08:58 jnthn FROGGS: Cutting a tristar release for this month is looking a bit painful. We'd need point releases of Rakudo and NQP with appropriate patches cherry-pick'd in.
08:58 FROGGS jnthn: true
08:58 FROGGS it is even unlikely doable until tomorrow evening/midnight
08:59 FROGGS to get jvm clean, I mean
08:59 jnthn Yeah, quite.
08:59 woolfy1 joined #perl6
08:59 dalek nqp: 08e997a | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION:
08:59 dalek nqp: Bump MOAR_REVISION to get sleep sort fixes in
08:59 dalek nqp: review: https://github.com/perl6/nqp/commit/08e997a9fe
08:59 yakudza joined #perl6
08:59 jnthn Trouble is, this prep work kinda needed to have started a week or two before it did.
09:00 jnthn While I'm grateful to FROGGS++ and timotimo++ for jumping in and doing a bunch of work on tristar, it's kinda come a bit later than it was needed.
09:03 ssutch joined #perl6
09:03 xinming_ joined #perl6
09:04 FROGGS jnthn: yeah, I keep working on it so the next release will be possible
09:05 FROGGS btw, that is an image of my talk at the gpw last week :P  http://i.imgur.com/UUB7cJO.jpg
09:06 jnthn FROGGS: Yes, I think we could cut a Parrot one this month
09:07 jnthn FROGGS: And then make sure that the Star tests on all 3 are clean *by Rakudo's release date*.
09:07 jnthn FROGGS: So we can actually cut a tristar right after.
09:07 jnthn FROGGS: ooh, are the whole slides online somewhere? :)
09:08 FROGGS jnthn: can you handle .odp? http://froggs.de/perl6/v321.odp
09:08 FROGGS and http://froggs.de/perl6/use-v5.odp
09:09 FROGGS there is not much text on it anyway :o)
09:09 FOAD joined #perl6
09:11 jnthn FROGGS: yes, I can :)
09:11 FROGGS k :o)
09:25 pecastro joined #perl6
09:25 FROGGS damn, that URI "java.lang.IndexOutOfBoundsException" bug is a precomp one :/
09:26 FROGGS err, "java.lang.NullPointerException", really
09:27 xiaomiao NPE in a language without pointers, it still amuses me so much
09:29 FROGGS it is again about an exported our-sub that accesses a lexical
09:34 jnthn Java. The language where they call them references until they go wrong, and then they're pointers :P
09:34 jnthn FROGGS: huh, I fixed that one :/
09:35 jnthn FROGGS: I thought I did anyway.
09:36 FROGGS I thought so too
09:37 xinming_ joined #perl6
09:40 lizmat jnthn: apparently the bump in MOAR_REVISION was not enough  :-(
09:40 lizmat $ perl6 -e '(^10).pick(*).map: { start { sleep $_; .say } }'
09:40 lizmat Segmentation fault: 11
09:40 FROGGS m: (^10).pick(*).map: { start { sleep $_; .say } }
09:40 camelia rakudo-moar 5a1c93: OUTPUT«(signal SEGV)0␤Unhandled exception: Missing hll slurpy hash type␤Unhandled exception: Missing hll slurpy array type␤Unhandled exception: Missing hll slurpy array type␤   at <unknown>:1  (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setti…»
09:41 FROGGS lizmat: did you bump the nqp rev in rakudo?
09:41 lizmat no, but git describe gave me the same as already in NQP_REVISION
09:42 FROGGS then pull, and do the git describe again
09:42 FROGGS your commit was 08e997a, and that should be in there
09:42 FROGGS coffee &
09:42 lizmat ack, see it now , duh
09:43 dalek rakudo/nom: b777559 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
09:43 dalek rakudo/nom: Bump NQP_REVISION to get sleep sort fixes in
09:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b777559fd1
09:49 dalek roast: 2f754e1 | (Elizabeth Mattijsen)++ | S17-concurrency/promise.t:
09:49 dalek roast: Unfudge sleep sort test
09:49 dalek roast: review: https://github.com/perl6/roast/commit/2f754e1dd8
09:49 jnthn lizmat: So, all happy now? :)
09:49 lizmat almost: the test now passes, but the simpler one line version still segfaults  :-(
09:50 jnthn lizmat: Oh...what's your one-line version?
09:50 lizmat $ perl6 -e '(^10).pick(*).map: { start { sleep $_; .say } }'
09:50 lizmat 0
09:50 lizmat Segmentation fault: 11
09:50 jnthn My one-line version was mine
09:50 lizmat I guess it is a problem because of the .say inside the thread ?
09:50 jnthn No, I suspect it blows up at exit, which still isn't handled too well.
09:51 jnthn If you gdb it we can confirm that
09:51 jnthn The problem is that you start a bunch of things off, but don't await anywhere.
09:51 jnthn We don't wait for outstanding tasks to complete before exit.
09:51 jnthn There needs to be an explicit "await"
09:52 jnthn Or .result, or whatever.
09:52 lizmat indeed: $ perl6 -e 'await (^10).pick(*).map: { start { sleep $_; .say } }' works just fine
09:52 jnthn I know that exit time is dodgy as heck at the moment, so I imagine it blows up trying to tear down the VM while things still want to run.
09:53 lizmat I guess we need an implicit await on any unkept Promises ?
09:53 jnthn No.
09:53 jnthn I'd rather not go that way, anyway.
09:54 jnthn In fact, I think it's really important this simple example does *not* work if you don't await.
09:54 jnthn Because people will then quickly learn, "oh, I should always check things worked out"
09:54 jnthn Or at least they get a chance to.
09:54 FROGGS backtrace: https://gist.github.com/FROGGS/d4c3a1443430b6fc90cd
09:54 lizmat well, maybe not segfault, but year, I get your drift  :-)
09:54 jnthn It's not just about making sure stuff gets done. It's about handling asynchronous failure.
09:54 lizmat *yeah
09:55 jnthn That is, if you don't await them somewhere, you lose the exception.
09:55 FROGGS ohh, that is not a dabug build :/
09:55 FROGGS debug*
09:55 jnthn We could of course do something about promises that silently fail...
09:55 jnthn But it's really tricky.
09:56 jnthn You can't just say "well, if there's no 'then'", because then it's a race.
09:56 lizmat yup
09:57 FROGGS backtrace on a debug build: https://gist.github.com/FROGGS/d4c3a1443430b6fc90cd
09:58 jnthn FROGGS: Thanks. I'll get the main thread just ripped the rug out from under a running one.
09:58 jnthn *bet
09:59 jnthn (like, freed all its objects)
09:59 FROGGS jnthn: can I check something with that thingy in gdb to confirm that?
10:00 jnthn FROGGS: Well, you can check where the main thread is at...
10:00 jnthn If you can get a bt on that
10:03 cognominal I have the perl6 interactive shell that loops on printing the prompt. What gives?
10:03 ssutch joined #perl6
10:04 jnthn cognominal: What versions of stuff, exactly? There was an old bug that did that which was - afaik - fixed...
10:04 cognominal I compiled yesterday from the latest git
10:04 jnthn Hmm
10:04 cognominal using moarvm
10:04 * jnthn wonders if somehow the linenoise submodule is behind...
10:04 jnthn Shouldn't be, though..
10:05 cognominal strange because I think I have seen a patch from about that in the #perl6 log
10:05 jnthn Right.
10:05 jnthn What platform?
10:09 cognominal mac
10:11 cognominal yesterday, I have seen there is some code for pir for linenoise that was apparently missing from the moar side. But I did not understand how things fitted together so I may be wrong.
10:11 cognominal s/pir/parrot/
10:13 jnthn lizmat: You're on Mac also iirc? Does the repl on r-m work for you?
10:13 * lizmat check
10:14 lizmat $ perl6
10:14 lizmat > say "foo";
10:14 lizmat ^C
10:14 lizmat seems not
10:15 cognominal not the problem I describe though.
10:15 FROGGS >/usr/bin/SciTE -grep ~~~~ "*" "num_user_threads"
10:15 FROGGS /home/froggs/dev/star/work-m/rakudo-star-2014.03/MoarVM/src/moar.c:27:    instance->num_user_threads    = 0;
10:15 FROGGS /home/froggs/dev/star/work-m/rakudo-star-2014.03/MoarVM/src/core/instance.h:91:    MVMuint16 num_user_threads;
10:15 FROGGS /home/froggs/dev/star/work-m/rakudo-star-2014.03/MoarVM/src/gc/orchestrate.c:432:    while (tc->instance->num_user_threads) {
10:15 xinming_ joined #perl6
10:15 jnthn No...
10:15 FROGGS jnthn: there is nothing that increases the num_user_threads?
10:15 denisboyun joined #perl6
10:15 * lizmat doesn't use a REPL like ever
10:15 jnthn FROGGS: Uh...maybe not :)
10:16 jnthn FROGGS: So *that's* why it doesn't hang at exit.
10:16 jnthn :)
10:17 jnthn I suspect it should be a num_foreground_threads though.
10:17 jnthn Since those are the ones we want to wait for.
10:21 xinming_ joined #perl6
10:24 cognominal ho, I was running in an emacs window running a shell. It is a very degenerate terminal. When I run in a more normal terminal,  I don't have the problem
10:25 cognominal I am curious what assumption makes it to break under emacs
10:25 cognominal lizmat, do you use the shell in emacs?
10:26 * lizmat is a vim user on OS X
10:27 lizmat I don't need another operating system :-)
10:27 lizmat using standard Terminal
10:29 FROGGS jnthn / lizmat: now that I increase the thread counter, I see output (like ten numbers), but then it hangs
10:29 cognominal yea, I agree, I am trying to stop my addiction to emacs but I always go back to it. :(
10:29 jnthn FROGGS: Right.
10:29 jnthn FROGGS: Thing is, we go to a lot of effort at exit time to clear up "properly"
10:30 jnthn FROGGS: Thing is, the OS can do that way faster.
10:30 jnthn FROGGS: What I *want* is a flag to Configure --cleanup-at-exit or so, that you can use if you really want a Moar that tries the cleanup.
10:31 jnthn FROGGS: But otherwise it'll just exit(0)
10:31 xinming_ joined #perl6
10:31 jnthn FROGGS: We still should wait for non-app-lifetime threads at exit, mind.
10:31 jnthn FROGGS: If you can put the flag in and get something into config.h, that's a great start in that direction
10:32 jnthn FROGGS: I bet we can get faster spectests thanks to the faster exit too.
10:32 kurahaupo joined #perl6
10:32 FROGGS ahh wait, only increasing that counter is not enough, I have to decrease it also *g*
10:32 FROGGS I will look at a proper implementation after lunch
10:33 jnthn FROGGS: Yeah but I think we don't want a threads counter, but a foreground threads counter.
10:33 FROGGS yeah, I understand that
10:33 jnthn OK, nice :)
10:33 jnthn (Thread pool ones are background threads, to be clear. Or "app lifetime" as we've called them.)
10:41 * lizmat is looking forward to even faster spectests
10:47 rindolf joined #perl6
10:57 xinming_ joined #perl6
11:01 lizmat given this code:
11:01 lizmat for ^10 { sleep rand; .print }
11:02 lizmat wouldn't the "race" prefix:
11:02 lizmat race for ^10 { sleep rand; .print }
11:02 lizmat not just simply transmogrify that to:
11:02 lizmat await do for ^10 { start { sleep rand; .print } }
11:02 lizmat ??
11:03 lizmat aka: put an "await do" in front, and put a start {} around the body of the loop ?
11:03 lizmat (at the AST level of course)
11:04 colomon joined #perl6
11:04 ssutch joined #perl6
11:06 jnthn lizmat: No, it's a form of hyper
11:07 jnthn lizmat: And it'll want implementing differently, given it's a data-parallel operation
11:07 jnthn lizmat: Which menas it'll want to divide the data space in a more effective way that task-per-item, which gets really costly if you've thousands of items.
11:07 jnthn lizmat: Also "await" is less than awesome 'cus you block until you have all the results, whereas you tend to want to give them back as soon as availble.
11:13 xinming_ joined #perl6
11:14 lizmat ah, duh, race / hyper should return a lazy list  :-)
11:16 jnthn lizmat: Well, it's eager, but it's an iterator still so yeah, it can be consumed as it produces.
11:16 jnthn lizmat: Pm has figured out how to re-organize lists to deal with this stuff.
11:17 jnthn lizmat: And now we actually have concurrency support in two backends it can actually be done properly. :)
11:17 lizmat yeah!
11:17 lizmat looking forward to it!  :-)
11:18 jnthn Me too! ;)
11:18 jnthn Hunger trikes...
11:18 jnthn uh, strikes..
11:18 * jnthn lols at the mental image of hungry trikes...
11:18 jnthn shop &
11:20 xinming_ joined #perl6
11:20 * masak .oO( CHAAAAAAINS )
11:40 zakharyas joined #perl6
11:46 telex joined #perl6
11:57 kivutar joined #perl6
12:05 ssutch joined #perl6
12:08 fhelmberger joined #perl6
12:09 colomon joined #perl6
12:10 colomon Auth::PAM::Simple, MIME::Base64, and Math::ThreeD are currently failing their prerequisites?  Time::Duration just failing.
12:11 FROGGS can't believe it wrt MIME::Base64
12:14 treehug88 joined #perl6
12:15 prevost joined #perl6
12:18 treehug88 joined #perl6
12:18 FROGGS colomon: MIME::Base64 has no dependencies
12:19 colomon hmm, yes, the exact failure point is a bit wonky in emmentaler.  Let me see...
12:20 FROGGS colomon: what is new im M::B64 is that it does some magic with a Build.pm which gets parrot specific code in place for parrot, or falls back to a pure perl version
12:20 colomon did you do that?
12:20 FROGGS no
12:20 colomon well, somebody++
12:21 colomon been saying something needed to be done there… :)
12:21 FROGGS I was just involved in the discussion
12:21 colomon Anyway, it just went fine when I tried it by hand in pandabrew
12:22 colomon so I dunno why it is failing in emmentaler.  but it has for the last two days.
12:22 FROGGS see https://github.com/perl6/Perl6-MIME-Base64/commits/master
12:22 FROGGS Build.pm changes are exactly two days old
12:22 FROGGS hoe does emmentaler install stuff?
12:23 colomon using panda… hmmm...
12:23 FROGGS hmmm, weird
12:24 colomon it calls into panda
12:24 colomon $panda.resolve, I think
12:24 colomon https://github.com/tadzik/emmentaler/blob/master/smoker
12:26 colomon maybe emmentaler doesn't properly support modules overriding Build.pm or something?
12:27 SamuraiJack_ joined #perl6
12:30 dayangkun joined #perl6
12:32 xinming_ joined #perl6
12:35 JimmyZ joined #perl6
12:37 FROGGS I dunno
12:37 FROGGS nothing obvious there that would explain it
12:37 fhelmberger joined #perl6
12:38 prevost joined #perl6
12:43 xinming_ joined #perl6
12:44 colomon joined #perl6
12:49 xenoterracide joined #perl6
13:02 xinming_ joined #perl6
13:06 ssutch joined #perl6
13:09 dalek rakudo-star-daily: d6c4eb9 | coke++ | log/ (5 files):
13:09 dalek rakudo-star-daily: today (automated commit)
13:09 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/d6c4eb9ae5
13:09 dalek rakudo-star-daily: 59e1ed4 | coke++ | log/ (5 files):
13:09 dalek rakudo-star-daily: today (automated commit)
13:09 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/59e1ed4b16
13:11 [Coke] weird. no commits in the other repo since friday. :(
13:11 FROGGS :/
13:12 [Coke] it's running now, last commit was friday, no unpushed commits.
13:12 [Coke] I'll double check it after the run today to make sure something goes out.
13:14 [Coke] wonder if i should change it so it auto commits. (right now it needs me to enter a password for the keys before it can push)
13:15 FROGGS +1 for autocommit :o)
13:17 masak TheDamian's email about 'where' matching in signatures is intriguing.
13:17 masak has someone made a rakudo branch yet trying out that change?
13:18 FROGGS I've not seen commits in that direction... and I wonder how much impact this change would have
13:18 FROGGS I guess not too much will break
13:19 jnthn Well, what is missed in the email is the reason that they are inferred today.
13:19 jnthn multi fac(Int $x) { $x * fac($x - 1) }
13:19 jnthn multi fac(0) { 1 }
13:19 masak moritz: feels like an eval line is missing to camelia in https://rt.perl.org/Ticket/Display.html?id=121518
13:19 jnthn That will break with what Damian is suggesting.
13:19 masak jnthn: indeed.
13:19 FROGGS ohh, in that case panda will break
13:19 masak :/
13:20 FROGGS it has something like: multi method stage('Compiling', ...)
13:20 jnthn (It breaks 'cus we'll take the type as Any on the second candidate and multi-dispatch is primarily on types, and then on constraints as a fallback)
13:20 jnthn (And Int is more specific than Any)
13:21 mtk joined #perl6
13:22 * jnthn should reply to the Damian post noting this.
13:26 masak aye.
13:27 jnthn As trade-offs go, Damian is probably on the right side of usefulness.
13:27 jnthn His DWIM just gets us a new WAT. :)
13:28 jnthn (Much as the current DWIM gets other WATs...)
13:28 cognominal WAT?
13:29 rindolf joined #perl6
13:29 FROGGS DWIM!
13:30 masak WIT? DWAM!
13:32 FROGGS WDID? BAMM!
13:35 kbaker joined #perl6
13:38 isBEKaml joined #perl6
13:43 arnsholt jnthn: Is there anything I'm missing in NQP #145? (Beyond the fact that there's a fair chunk of code that'll have to be changed)
13:44 arnsholt It seems like a leftover from ye olden days
13:45 jnthn " (we have to keep using the old way in the NQP code because of the stage0 compiler)"
13:45 jnthn Not sure that's entirely true any more.
13:45 jnthn s/any more//
13:45 jnthn Since stage0 will have its own HLL::Grammar etc.
13:45 arnsholt Oh. Troo dat
13:45 jnthn So I think the bootstrap probably doesn't come into it at all :)
13:45 jnthn Which is nice.:)
13:46 arnsholt That's a very good point!
13:46 jnthn API wise, I'd look to how STD has it.
13:46 jnthn But yeah, it's a hash-y hting.
13:46 jnthn *thing
13:46 arnsholt I'll do that
13:47 arnsholt Or else, just keep the API more or less as-is, but with a slurpy named argument rather than a string that's processed into a hash
13:47 bluescreen10 joined #perl6
13:48 btyler joined #perl6
13:48 bluescreen100 joined #perl6
13:57 mtk joined #perl6
13:59 jnap joined #perl6
14:01 rurban1 joined #perl6
14:02 btyler joined #perl6
14:06 FROGGS jnthn: the NPE in URI does not seem to be related to accessing a lexical, it even explodes when I just put a "say 1; 443" in the sub's body
14:06 ssutch joined #perl6
14:06 FROGGS when I strip the say it works
14:07 xinming_ joined #perl6
14:07 jnthn FROGGS: say is a lexical
14:07 FROGGS >:<
14:07 jnthn Try nqp::say('foo') and you're see
14:07 FROGGS err >.<
14:07 jnthn ll
14:08 thou joined #perl6
14:09 FROGGS jnthn: nqp::say works :/
14:09 jnthn So it's lexical after all
14:09 FROGGS yeah
14:11 [Coke] moritz: VM should be multi-select now.
14:12 FROGGS ohh, that was quick
14:13 woolfy1 left #perl6
14:15 guru joined #perl6
14:16 lizmat off for some presenting&
14:37 FROGGS[mobile] joined #perl6
14:38 FROGGS[mobile] jnthn: I am going home now and will stare more at URI, but I have no Cluj how to debug this...
14:39 jnthn FROGGS[mobile]: Well, if we can't find a real fix we can just put in a Cluj...
14:39 FROGGS[mobile] *g*
14:48 lustlife joined #perl6
14:51 zakharyas joined #perl6
14:51 FROGGS joined #perl6
15:00 timotimo i seem to be missing a font from froggs slides
15:02 FROGGS timotimo: I've uploaded the files as .pdf too, perhaps the font is embedded in these
15:02 FROGGS timotimo: and there seems to be a bug in libreoffice that swallows the unicode chars in presentation mode
15:02 FROGGS (only the shadow is correct)
15:07 ssutch joined #perl6
15:10 timotimo yikes.
15:11 [Coke] anyone know if the PM support team hangs out on IRC anywher?
15:15 FROGGS [Coke]: what is that?
15:15 masak FROGGS: url?
15:15 timotimo FROGGS: the background image seems very distracting to me, fwiw
15:16 timotimo but since it's only a few words per slide, that's fine i guess
15:16 FROGGS http://froggs.de/perl6/v321.odp - http://froggs.de/perl6/use-v5.odp
15:16 timotimo sadly that also makes the slides less than helpful to read on their own :P
15:16 FROGGS http://froggs.de/perl6/v321.pdf - http://froggs.de/perl6/use-v5.pdf
15:16 FROGGS *g*
15:16 timotimo where did you get these pretty pictures, btw?
15:16 FROGGS I know
15:16 FROGGS there is a memegenerator
15:16 FROGGS ahh wait
15:17 FROGGS you mean the background?
15:17 timotimo yes
15:17 FROGGS hold on
15:18 FROGGS http://jugga-lizzle.deviantart.com/art/Rainbow-Concepts-III-51825680
15:20 masak FROGGS:++ # slides
15:20 FROGGS thanks!
15:20 masak FROGGS: on the second one, slides 27 and 28 appear to be identical.
15:20 FROGGS masak: it is all your fault :o)
15:20 retupmoca panda on rakudo-moar HEAD (+nqp/moar HEAD) seems to be hanging once bootstrapped
15:20 FROGGS :o(
15:21 FROGGS masak: the color of "use v5" hanges
15:21 FROGGS changes*
15:21 masak oh!
15:21 retupmoca almost feels like it's hanging when trying to download projects.json, but I'm not sure
15:21 retupmoca wget gets projects.json fine
15:21 timotimo the color changes are very mild
15:22 FROGGS timotimo: I know, and I think I won't do that again, sine it is even worse using a beamer
15:24 timotimo mhm
15:24 timotimo "projector" is the proper english term :)
15:25 FROGGS ahh, okay :o)
15:28 arnsholtAtHome joined #perl6
15:28 arnsholtAtHome o/
15:28 FROGGS o/
15:29 arnsholtAtHome jnthn: We still don't have any syntax for hash literals in NQP, do we?
15:29 [Coke] FROGGS: PM == perl mongers
15:29 btyler when iterating over a simple list (my @abc = ('a' .. 'z'), for example), what's the best way to have both the list item and its index available in the for loop block? is it something like for @abc Z 0 .. @abc -> $letter, $index { } ?
15:29 FROGGS [Coke]: ahh, hmmm, no idea, sorry :/
15:29 TimToady a "beamer" isa BMW in the US
15:30 FROGGS TimToady: here too in some areas
15:30 cognominal FROGGS, a multicolor background may not the best idea
15:30 perlpilot btyler: for @abc.kv -> $i, $v { ... }
15:30 FROGGS btyler: for ('a' .. 'z').kv -> $i, $v { say "$i $v" }
15:30 cognominal * may not be
15:30 btyler ah ha, awesome, thanks. perlpilot++, FROGGS++
15:31 btyler I was going through rosetta code and perl6 maven thinking "there must be an easier way than zipping"
15:31 jnthn arnsholtAtHome: No, just nqp::hash(...), which isn't really syntax... :)
15:31 retupmoca re: panda: it does indeed hang when attempting to get projects.json, rolling back to moarvm fe0962fcb89b3b66deb3170da0faa2f9f13ce4ea fixes it
15:31 FROGGS cognominal: that was no problem, because the background was dark enough and so the contrast
15:31 retupmoca moarvm 1261936ddb75e91c78a91d830dad3a575d17ffe3 looks like the bad commit
15:32 cognominal FROGGS, happy to hear that
15:32 retupmoca jnthn: possibly a deadlock or something?
15:32 jnthn retupmoca: I'm guessing it tries to double-acquire a mutex by accident.
15:32 jnthn retupmoca: Well, the patch says "first pass at.." for a reason
15:33 FROGGS cognominal: but yeah, it is not really needed/useful because it is either disturbing or you can't see the background
15:33 retupmoca oh indeed, I'm not expecting HEAD/HEAD/HEAD to work properly in general
15:33 jnthn retupmoca: It was hastily written late at night to unbust something lizmat++ wanted for her talk today :)
15:33 jnthn retupmoca: I did spectest it, and it failed to show problesm there.
15:33 jnthn retupmoca: Do the socket tests look good for you on HEAD/HEAD/HEAD?
15:34 retupmoca jnthn: how do I run one spectest file?
15:34 jnthn perl6-m -Ilib t/spec/S32-blah/blah.t
15:34 jnthn Or .rakudo.moar instead of .t if it's a fudged one
15:35 arnsholtAtHome jnthn: Oh, right. But that one takes arbitrary numbers of arguments, which is close enough for me! =)
15:36 arnsholtAtHome I just wanted to avoid my %hash; %hash<foo> := "bar"; etc, etc, etc
15:36 jnthn ah, yes
15:37 timotimo oh, a recent commit ended in "junction autothreading still seems broken. i hope timotimo fixes it"
15:38 timotimo do we have some code that shows the problem? i'm not sure what's wrong with that
15:38 retupmoca jnthn: IO-Socket-INET.t has 11 fails for me: https://gist.github.com/retupmoca/9895132
15:39 jnthn retupmoca: OK, I'll have to do it on my linux VM, then.
15:39 jnthn retupmoca: On Windows mutexes are reentrant for free. pthread ones ain't.
15:39 jnthn So my Windows spectest wasn't good enough to catch all bugs I guess.
15:40 btyler playing with promises on moar, jnthn++, this is super fun
15:40 spider-mario joined #perl6
15:40 btyler they were super fun on perl6-j too, just more of a case of delayed gratification :)
15:41 retupmoca jnthn: gotcha. And yes, jnthn++ for threads and bughunting
15:43 jnthn I suspect I should actually pull the locking out of syncstream entirely...and have it in the io.c functions. And have the release stack for if exceptions happen...
15:45 perlpilot I just(re)built rakudo and from the REPL, it seems to just hang on the first statement.
15:45 jnthn :/
15:45 perlpilot Is that a known-but-sono-to-be-fixed thing?
15:46 jnthn liblinenoise is seriously on the chopping block at this rate.
15:46 btyler perlpilot: OSX 10.9, same here
15:46 JimmyZ o_O
15:46 btyler assuming we mean perl6-m
15:46 perlpilot oh, yes, it's just perl-m
15:46 perlpilot er, perl6-m
15:47 jnthn If somebody writes us a probe for readline so we can automatically detect its availability, then I'll be happy to toss linenoise.
15:47 Ulti im building atm on OSX 10.9.2
15:47 jnthn It's better to have a REPL with no readline support than a busted one.
15:47 benabik joined #perl6
15:47 perlpilot (I'm on ubuntu 12.04 fwiw)
15:48 JimmyZ jnthn: you mean libreadline?
15:48 jnthn JimmyZ: Yes. The one that most things used that tends to actually work ;)
15:48 jnthn We already ahve a configure option for it.
15:49 jnthn It just has to be set manually at present.
15:49 JimmyZ yeah
15:49 treehug88 joined #perl6
15:50 Ulti yeah mine hangs too :/ so readline might be to blame?
15:50 jnthn This is the nth time we've had some problem linenoise related. I've kinda had enough of it.
15:50 btyler the infinispew was fairly amusing :)
15:50 btyler "you want a prompt? have some prompts! all the prompts!"
15:51 * Ulti tries from a file
15:51 jnthn Oh, I wonder if the hang this time is related to the mutex thing instead of linenoise though...
15:51 jnthn In which case, it's not linenoise's fault after all...
15:51 jnthn ...this time. :)
15:51 Ulti yeah from a file its all good
15:51 jnthn OK.
15:52 jnthn I'll have a look at the locking stuff in a bit.
15:52 * timotimo tries to run from a file
15:52 jnthn timotimo: IT'S CATCHING UP WITH YOU! RUN FASTER!
15:53 timotimo actually, it seems like the file isn't running at all
15:53 timotimo huh. interesting.
15:53 timotimo where's the presentation lizmat is doing right now? in Cluj?
15:55 * JimmyZ would like to improve linenoise, we will have something like Jline with nativecall :)
15:56 timotimo right, cluj
15:56 kaare_ joined #perl6
15:56 timotimo and TimToady is touring china to do lots of presentations on Perl 6, too? :)
15:57 vendethiel preaching people
15:59 timotimo preaching perl?
16:00 [Coke] retupmoca: jnthn's command to run the file won't fudge it if it needs fudging.
16:01 [Coke] t/fudgeandrun path/to/file.t works, as does "make path/to/file.t" - those both fudge as needed (to run for a specific backend, pass --backend to fudgeandrun
16:02 retupmoca [Coke]: Ah, much nicer. I just did make spectest to get everything fudged, then did ^C to run the one I wanted
16:02 FROGGS retupmoca: I do exactly that too :o)
16:07 REPLeffect joined #perl6
16:07 hoverboard joined #perl6
16:08 ssutch joined #perl6
16:10 timotimo FROGGS: you said you'll have something cool to show off WRT S11
16:10 timotimo is there something i can link to for today's p6weekly?
16:12 jnthn Ooh, p6weekly :)
16:13 FROGGS_ joined #perl6
16:13 timotimo i kind of think the current version of the weekly is falling short of what actually happened
16:14 jnthn timotimo: I guess you already got the moar-conc merge in there?
16:14 FROGGS timotimo: hmmm, the only cool thing would be that panda will connect to CPAN, but we are not there yet
16:14 timotimo http://p6weekly.wordpress.com/?p=102&amp;shareadraft=533994608e4cf
16:14 timotimo jnthn: yup
16:15 guru joined #perl6
16:16 jnthn timotimo: Could be worth making clear the textfiled thing at the JVM level is a representation of the bytecode, not the source code.
16:16 timotimo ah, yes good point
16:16 jnthn timotimo: And the reason for it was to use a JVM library to generate bytecode.
16:17 jnthn Also could say what merging moar-conc gives: promises, channels, supplies, threads...
16:17 timotimo will do
16:19 jnthn also, grammar-o in the final thing
16:19 jnthn "he'll something"
16:19 timotimo ah yes, that whole section is incomplete
16:19 timotimo (only one bullet point? that's not good style)
16:20 timotimo FROGGS: is the cpanda stuff something i should point up in the "upcoming" section of the post?
16:20 timotimo or would you rather i wait another week?
16:20 pmurias joined #perl6
16:21 moritz masak: (re eval line missing in RT #121518) fixed, thanks
16:21 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121518
16:25 moritz http://moritz.faui2k3.org/images/ida-1.jpg # our second daughter, Ida, was born today
16:25 arnsholtAtHome Congrats!
16:25 timotimo congrats \o/
16:25 moritz thanks
16:27 vendethiel congrats :)!
16:29 jnthn moritz: Awww! Congrats! :)
16:29 moritz thanks
16:30 perlpilot moritz: Congrats!
16:32 arnsholtAtHome Whoa. <O()> refactor works on the first try, apparently \o/
16:32 simula67 congrats moritz
16:32 moritz arnsholtAtHome: that's suspicious :-)
16:33 arnsholtAtHome I know!
16:33 arnsholtAtHome Still, it's a mostly-deleting-things refactor, so I might actually have gotten it right on the first try ^_^
16:33 moritz arnsholtAtHome: expect subtle misparses when multiple right-associative operators with the same precedence have an adverb, or something
16:34 arnsholtAtHome Still, we'll see what happens when I apply the matching changes to Rakudo
16:35 arnsholtAtHome Pretty happy with 70 insertions and 152 deletions though
16:36 moritz .oO( but don't expect to get paid for -82 lines of code! )
16:36 denisboyun joined #perl6
16:36 jnthn I'm sure we can afford to pay for -82 lines of code exactly what the going rate for +82 lines of code is around here :P
16:37 arnsholtAtHome =D
16:38 dmol joined #perl6
16:38 cognominal congrats, moritz
16:40 timotimo arnsholtAtHome: what's your intuition, will this give performance improvements?
16:40 timotimo less memory usage?
16:41 jnthn Less string operations/parsing surely.
16:42 timotimo at startup time, compile time or run time?
16:42 jnthn compile time
16:44 jnap1 joined #perl6
16:46 arnsholtAtHome Slightly less compile time, maybe
16:47 arnsholtAtHome Mostly it's just unneeded complexity, I think
16:47 jnthn Aye
16:48 jnthn I won't miss the hack parser :)
16:56 arnsholtAtHome Me neither. I suspect it dates back to PGE
17:02 cognominal it does
17:03 timotimo published
17:04 treehug8_ joined #perl6
17:05 timotimo i've already had 61 visitors and 85 views on the blog today even though i hadn't published the weekly post yet
17:05 timotimo interesting
17:08 zby_home_ joined #perl6
17:09 ssutch joined #perl6
17:16 [Coke] moritz++ # congrats!
17:20 vendethiel timotimo, so, you fixed that SDL bug :D ?
17:21 xinming_ joined #perl6
17:21 jnthn Dinner time, then Perl 6 time :)
17:21 denis_boyun__ joined #perl6
17:27 FROGGS timotimo: I'd wait
17:27 FROGGS moritz: \o/
17:29 kurahaupo joined #perl6
17:31 SamuraiJack_ joined #perl6
17:33 fhelmberger joined #perl6
17:38 rindolf joined #perl6
17:40 Psyche^ joined #perl6
17:46 sftp_ joined #perl6
17:50 kurahaupo joined #perl6
17:54 denis_boyun_ joined #perl6
17:54 kbaker joined #perl6
17:54 zby_home_ joined #perl6
17:55 BenGoldberg joined #perl6
17:56 FROGGS r: my \bits = 8*56; sub little-endian($w, $n, *@v) { (@v X+> ($w X* ^$n)) X% (2 ** $w) }; say little-endian(32, 2, bits);
17:56 camelia rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«448 0␤»
17:56 camelia ..rakudo-moar b77755: OUTPUT«448 448␤»
17:58 FROGGS nr: say (8*56) +> 32
17:58 camelia rakudo-moar b77755, niecza v24-109-g48a8de3: OUTPUT«448␤»
17:58 camelia ..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤»
17:58 FROGGS ??
17:58 FROGGS now that is interesting
18:01 elijah left #perl6
18:02 retupmoca r: say (8*56) +> 31
18:02 camelia rakudo-parrot b77755, rakudo-jvm b77755, rakudo-moar b77755: OUTPUT«0␤»
18:04 FROGGS nr: say 448 +> 33
18:04 camelia rakudo-moar b77755, niecza v24-109-g48a8de3: OUTPUT«224␤»
18:04 camelia ..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤»
18:05 retupmoca r: my $x = 8*56; my int $y = 8*56; say $x +> 32; say $y +> 32;
18:05 FROGGS I see
18:05 camelia rakudo-moar b77755: OUTPUT«448␤0␤»
18:05 camelia ..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤0␤»
18:05 pecastro joined #perl6
18:10 ssutch joined #perl6
18:11 colomon joined #perl6
18:12 timotimo FROGGS: too late! =o
18:12 FROGGS for what?
18:13 timotimo i've published the post and it says you'll have something with panda + cpan + pause some time soon
18:13 FROGGS too late, like in sleeping until 3 p.m.? :P
18:13 FROGGS ahh, yeah, that's cool :o)
18:13 timotimo
18:14 kurahaupo joined #perl6
18:14 FROGGS timotimo: btw, the gpw was mostly boring
18:15 FROGGS especially when you are not familiar with Perl 5 (or interested in its use/development)
18:15 timotimo oh
18:16 timotimo i thought you were about to say "especially when you were not around"
18:16 nwc10 aha, this explains why FROGGS was mostly in a laptop, or dealing with the FROGGSlets
18:16 iolympian1 joined #perl6
18:17 FROGGS nwc10: one reason was that I had a bad headache on wednesday or thursday and the sound system had this feedback problem
18:18 FROGGS there was a talk about static languages I wanted to attend but I missed it because I talked to somebody :/
18:18 timotimo i'm hoping for good recordings some time soon
18:18 guru joined #perl6
18:18 FROGGS the talks of saywerx++ and ovid++ where very entertaining though
18:19 FROGGS and the lightning talks are always good
18:19 FROGGS timotimo: I hope so too
18:19 FROGGS ahh, mst++'s talk was very nice also
18:19 timotimo i'm kind of spoiled by the CCC events i've attended so far
18:20 timotimo a friend of mine is part of the video team and they've got a quite nice setup with a Flight Case that contains a desktop, laptop, camera and network equipment so that you can basically plug them all together and have instant event recording
18:20 timotimo and streaming
18:23 timotimo additionally, there's usually a person on site to monitor the stream and recording for any audio issues that may arise
18:25 FROGGS in hannover was a guy that looked like he knows what he is doing, so I really think the quality is okay and they will be up soon
18:27 moritz was GPW a single track?
18:28 FROGGS yes
18:29 moritz that makes recording kinda easier
18:35 jnap joined #perl6
18:38 BenGoldberg joined #perl6
18:38 * jnthn back from noms
18:39 arnsholtAtHome o/
18:39 arnsholtAtHome Making Rakudo work with refactored O is non-trivial
18:40 jnthn Now that we have a clean p-*, is anybody up for taking this release? I'd put my name down 'cus I expected it'd be the first tristar one and wanted to make sure it happened. But now it'll be off master...it doesn't have to be me, and if I don't have to do it I can do other stuff... :)
18:40 FROGGS yeah, I can imagine
18:40 FROGGS arnsholt++ # stage printing is way nicer now :o)
18:41 FROGGS jnthn: I can do that
18:41 jnthn stage printing?
18:41 FROGGS I had some sort of practice the last days...
18:41 FROGGS jnthn: it prints "Parse:   "
18:41 jnthn FROGGS++
18:41 FROGGS and after a while the numbers
18:42 jnthn Oh!
18:42 jnthn nice!
18:42 moritz won't that mess it up even more for concurrent builds? :-)
18:42 jnthn ///o\
18:42 * moritz can always find a grain of disagreement
18:42 jnthn Not you don't!
18:43 FROGGS I love moar soo much! it takes ages for perl6-p to compile the modules in star, and it even takes longer for perl6-j
18:43 arnsholtAtHome moritz: No, it'll simply be clearer that the stagestats shouldn't be looked at too much when you're doing a parallel build =)
18:44 BenGoldberg joined #perl6
18:44 FROGGS yay, Digest::MD5 now works on moar :o)
18:51 * moritz ponders doing the star release, but realizes he's too tired
18:51 FROGGS I just need someone that uploads the release thingy
18:52 FROGGS but when I do that today, it will already be midnight
18:53 cognominal nbc?
18:54 cognominal what is the nbc state?
18:54 cognominal * stage
18:54 FROGGS do you mean mbc?
18:55 cognominal yes, oops, time to rest
18:55 BenGoldberg joined #perl6
18:55 moritz moar bytecode
18:55 cognominal no wonder I can't ack it
18:55 FROGGS that is when it write down the file as .moarvm, which is --target=mbc
18:57 cognominal how come mast stage is just after pare state when ranked in decreasing time. What can be so costly?
18:58 cognominal moarvm++
18:58 moritz cognominal: it operates on the AST, which is pretty big
18:58 FROGGS it is about translating the ast to the moarvm specific ast
18:59 FROGGS it takes a while to iterate over a tree structure that is several megabytes in size
19:00 FROGGS (and there happens more than iterating of course)
19:01 cognominal but ast generation is not even mesurable on my laptop, so I would expect mast stage time would be negligible as wel
19:01 benabik IIRC, stage ast is a misnomer, as most of the AST generation actually happens during the parse.
19:01 FROGGS the ast generation time is included in the parse stage
19:01 cognominal ha, that's why!
19:02 cognominal make sense now
19:02 benabik I think stages AST is just `$match.ast`
19:04 timotimo that's correct
19:04 timotimo we could add a random sleep to it if you like
19:04 * jnthn doesn't like :P
19:04 moritz m: use 5.014;
19:04 camelia rakudo-moar b77755: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/TctdPx_ATMâ�¤Undeclared routine:â�¤    use used at line 1â�¤â�¤Â»
19:04 moritz that's... less than awesome
19:05 benabik m: use v5.014;
19:05 camelia rakudo-moar b77755: ( no output )
19:05 benabik That is also LTA in a different way…
19:05 treehug88 joined #perl6
19:05 FROGGS benabik: install v5 :o)
19:05 ssutch joined #perl6
19:05 moritz benabik: yes, but not unexpected
19:05 benabik FROGGS: Apparently I don’t have to.  ;-)
19:06 FROGGS *g*
19:12 [Coke] OH.
19:12 denis_boyun joined #perl6
19:12 [Coke] There's a hanging java test.
19:12 [Coke] S17-concurrency/channel.t..........................
19:15 jnthn Moar HEAD should now fix the sockets test regression and REPL hang on non-Windows. Confirmation welcome. :)
19:16 [Coke] jnthn: any word on the channel.t hang on jvm? (this is, of course, the one backend that I am not running through ulimit, because reasons.)
19:16 * moritz builds all the backendses
19:16 [Coke] s/word/thought/
19:17 jnthn [Coke]: Yeah, japhb said a hang showed up for him too in something he'd built using channels.
19:18 jnthn [Coke]: Don't know the root cause yet, but I suspect it was one of the changes made going from Java interop to nqp:: ops as part of the portable concurrency work.
19:18 jnthn [Coke]: Will investigate in a moment.
19:18 jnthn Just wanted to fix the I/O thing first. :)
19:19 [Coke] ok. that's likely the source of the issues over no roast runs completing this weekend. (combined with the lack of ulimiter for that backend.)
19:19 [Coke] no worries.
19:20 jnthn Got a latest JVM build going now.
19:20 [Coke] I killed the run for today.
19:20 [Coke] will add a ulimit and restart shortly.
19:20 [Coke] ... and killed the saturday & sunday runs, too. whoops. :)
19:21 jnthn Use all the CPUs!
19:22 [Coke] hurm. because jvm ran last, I can probably salvage all the other runs for the weekend.
19:22 btyler rebuilding everything to check out the REPL fix
19:23 jnthn btyler: moar should be enough
19:23 jnthn btyler: Just point it at the same install location as you already had it.
19:23 [Coke] ... bah. no, they got confused because they were running simultaneously. adios.
19:24 iolympian1 left #perl6
19:25 pecastro joined #perl6
19:25 rurban1 joined #perl6
19:25 btyler jnthn: already about halfway through my hacky little 'pull and update moar/nqp/rakudo for -m and -j' script. noted for next time though
19:26 retupmoca jnthn: I had to rebuild nqp/rakudo - I got a segfault if I just did moarvm
19:26 retupmoca jnthn: spectest is passing now though
19:27 jnthn retupmoca: hm, curious
19:27 jnthn retupmoca: Oh, I changed a struct or two.
19:27 jnthn [Coke]: Yeah, I've got it hanging here
19:28 kurahaupo joined #perl6
19:29 lue joined #perl6
19:29 jnthn Seems test 11 or 12 hang it.
19:29 lue hello world o/
19:29 FROGGS hi lue
19:29 timotimo hellue
19:30 retupmoca jnthn: and now panda works again! \o/
19:30 PerlJam joined #perl6
19:31 jnthn retupmoca: \o/
19:32 [Coke] huh. looks like both rakudo.parrot and rakudo.jvm are not ulimited (but I left it in for moar? weird.)
19:32 ssutch anyone seen this trying to make in the rakudo directory after --gen-moar --backends=moar "make: write error"
19:33 [Coke] I'm at dayjob. anyone wants to submit a pull request for coke/perl6-roast-data that ulimits rakudo.jvm and rakudo.parrot, ++them (otherwise I'll do it tonight)
19:33 [Coke] ssutch: I get that on OS X all the time.
19:33 [Coke] ssutch: never on linux.
19:33 benabik I see it building nqp.  Just re-running make seems to work.  I’ve never bothered to try to fix it.
19:33 benabik (on OS X)\
19:33 btyler jnthn: REPL on perl6-m seems to be in order now, OSX 10.9.2
19:34 ssutch yeah it fails in making nqp
19:34 timotimo oh hey ssutch
19:34 timotimo nice to see you again :)
19:34 btyler ssutch: I get that all the time. you can 'make install' again and it'll complete successfully, or ignore it, it doesn't seem to break anything
19:34 ssutch ok cool
19:34 ssutch this is the log for reference https://gist.github.com/samuraisam/3e159740c4ab00c73558
19:35 timotimo Segmentation fault (core dumped)
19:35 timotimo make: *** [CORE.setting.pbc] Error 139
19:35 timotimo :(
19:35 jnthn timotimo: make clean
19:35 timotimo can do
19:35 timotimo will p-clean be enough?
19:35 jnthn oh wait
19:35 jnthn Parrot?
19:35 timotimo i think?
19:35 jnthn I thought you'd just pulled latest Moar...
19:36 jnthn OK, then no idea.
19:36 jnap joined #perl6
19:36 timotimo i did
19:36 timotimo i perl Configure.pl'd, fwiw
19:36 timotimo that should cause the same effect as a make clean would, no?
19:37 colomon joined #perl6
19:37 btyler nice, latest moar fixes the hang that prevented panda rebootstrap from finishing
19:37 araujo joined #perl6
19:38 timotimo jnthn: re-running make install seems to get around the problem this time
19:41 dalek nqp: cf3bdf1 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
19:41 dalek nqp: Fix app-lifetime thread regression on JVM backend.
19:41 dalek nqp:
19:41 dalek nqp: The thread pool scheduler wants its threads to be background ones, but
19:41 dalek nqp: they were not marked as such. This caused hangs at process end.
19:41 dalek nqp: review: https://github.com/perl6/nqp/commit/cf3bdf1ddb
19:42 jnthn [Coke], japhb: ^^ should fix the hangs the two of you reported :)
19:42 denis_boyun joined #perl6
19:43 FROGGS jnthn: btw, I stopped earlier hacking on the moar threads because I didn't see how to distinguish background from foreground threads
19:43 [Coke] jnthn++
19:44 FROGGS $ ./perl6 -e 'say $*EXECUTABLE'
19:44 FROGGS IO::Path</home/froggs/dev/star/work-m/rakudo-star-2014.03/perl6-m>
19:44 FROGGS moritz: you might like that
19:44 btyler can postfix 'for' loops have block-scoped variables? like 'say "$letter is letter number $index") for ('a' .. 'z').kv -> $index, $letter;' ? rakudo doesn't seem to like that
19:45 btyler er, excuse the extra paren after $index
19:46 moritz FROGGS++
19:47 FROGGS btyler: no, because the thing starting with "->" is a pointy block
19:47 [Coke] can't postfix that, I don't think. works fine in a block, though.
19:47 FROGGS like a sub with a signature
19:47 FROGGS you cannot omit its block
19:48 FROGGS moritz: I think I am going to commit it, even if it is not specced yet
19:48 colomon joined #perl6
19:49 btyler hm, ok. so how do I get at the variables generated by .kv in a postfix for? $_ works for single values (ie say "hi $letter" for ('a' .. 'z');)
19:49 btyler er * "hi letter $_"
19:50 ssutch_ joined #perl6
19:52 jnthn m: { say "$^a and $^b" } for 1..10;
19:52 camelia rakudo-moar b77755: OUTPUT«1 and 2␤3 and 4␤5 and 6␤7 and 8␤9 and 10␤»
19:52 btyler ah, got it. wrapping it in a block and using $^a/$^b does the trick. less readable, but nice for quickly expressing an idea
19:52 jnthn ah, you found it just as I wrote it :)
19:53 btyler heh, yep :) thanks
19:55 molaf joined #perl6
19:55 FROGGS m: ->$a, $b { say "$a and $b" } for 1..10;
19:55 camelia rakudo-moar b77755: OUTPUT«1 and 2␤3 and 4␤5 and 6␤7 and 8␤9 and 10␤»
19:55 FROGGS m: -> $a, $b { say "$a and $b" } for 1..10;
19:55 camelia rakudo-moar b77755: OUTPUT«1 and 2␤3 and 4␤5 and 6␤7 and 8␤9 and 10␤»
19:55 FROGGS m: sub ($a, $b) { say "$a and $b" } for 1..10;
19:55 camelia rakudo-moar b77755: ( no output )
19:55 FROGGS m: do sub ($a, $b) { say "$a and $b" } for 1..10;
19:55 camelia rakudo-moar b77755: ( no output )
19:55 FROGGS ohh, yeah, well
19:55 FROGGS :o)
19:56 FROGGS m: sub ($a, $b) { say "$a and $b" }() for 1..10;
19:56 camelia rakudo-moar b77755: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤  in sub  at /tmp/yGpwzPG1L9:1␤  in block  at /tmp/yGpwzPG1L9:1␤␤»
19:56 FROGGS w/e :P
19:56 jnthn By that point you might as well have map 1..10, sub ...'d it :P
19:57 FROGGS the pointy in front of the for is nie though
19:57 FROGGS nice*
19:57 jnthn *nod*
19:57 jnap joined #perl6
19:57 btyler neat neat neat :) FROGGS++, jnthn++
19:58 [Coke] I find the pointy on the front evil!
19:58 FROGGS O.o
19:58 FROGGS I like pointies in every position :o)
19:58 [Coke] m: -> $a { "eek" }
19:58 camelia rakudo-moar b77755: ( no output )
19:58 denis_boyun joined #perl6
19:59 [Coke] m: ->{}
19:59 camelia rakudo-moar b77755: ( no output )
20:01 jnap1 joined #perl6
20:01 rurban1 joined #perl6
20:05 lue Looking at S32::Str, I'm not quite sure how .wordcase is necessary (instead of a normal .subst, which the documentation helpfully provides for what .wordcase does)
20:08 BenGoldberg m: -> $a, $b { say "$a and $b" } for 1..11;
20:08 camelia rakudo-moar b77755: OUTPUT«1 and 2␤3 and 4␤5 and 6␤7 and 8␤9 and 10␤Not enough positional parameters passed; got 1 but expected 2␤  in block  at /tmp/14ODZeJPaE:1␤␤»
20:11 denis_boyun joined #perl6
20:12 timotimo i'm still not quite understanding where the $(PREFIX) comes from that NativeCall seems to be plopping into its test suite
20:13 jnthn timotimo: MoarVM's configure output, I think.
20:13 jnthn timotimo: could always s/// it away if it's making trouble
20:13 timotimo okay, and now i'm not sure how to properly fix it :)
20:13 timotimo fortunately, on my shell it evaluates to "" and a message on stderr
20:15 jnthn Oh, for where to fix it, see t/CompileTestLib.pm or so
20:15 jnthn bbi10
20:15 timotimo oh
20:15 timotimo well, in that case that would be acceptable
20:19 kbaker joined #perl6
20:20 FROGGS yeah, I tried to fix that one too but gave up
20:21 * timotimo is doing some inconsequential stuff instead
20:22 denis_boyun__ joined #perl6
20:23 timotimo somehow panda install . infiniloops
20:24 timotimo panda install ./panda, too
20:24 timotimo (the first one was running panda install inside panda/)
20:25 timotimo huh
20:26 timotimo when i strace it, it ends prematurely
20:26 moritz measurement collapses wave functions
20:27 timotimo yeah >_>
20:27 moritz and sometimes infinite loops :-)
20:28 timotimo oh
20:28 timotimo it did work
20:28 timotimo it just took crazy long
20:29 dalek rakudo/nom: e9b185c | (Tobias Leich)++ | src/core/terms.pm:
20:29 dalek rakudo/nom: add $*EXECUTABLE, an absolute IO::Path to the perl6 runner
20:29 dalek rakudo/nom:
20:29 dalek rakudo/nom: $*EXECUTABLE_NAME is nice, but when it just contains "perl6-m" then you
20:29 dalek rakudo/nom: cannot spawn a shell with it when "perl6-m" is not in PATH.
20:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e9b185c7be
20:34 timotimo that's interesting
20:34 timotimo i just, on a whim, ran perf record -- panda list
20:34 timotimo MVM_frame_dec_ref gets the third spot in the list of time spent
20:36 timotimo 23% time spent in MVM_interp_run, which i suppose is okay?
20:38 jnthn Yes, that's the main interpreter runloop.
20:39 timotimo that's what i figured, ay
20:39 timotimo aye
20:39 lue correct me if I'm wrong, but after reading/skimming the pack tutorial for Perl 5, it seems to me that pack/unpack would really only be useful in Perl 6 for interchange with lower-level systems, and not all the stuff doable with grammars etc.
20:41 timotimo that seems about accurate, i suppose?
20:41 FROGGS I'd say so
20:42 timotimo i'm not sure how to interpret this output, the cmp instruction of MVM_frame_dec_ref has a high number next to it
20:42 FROGGS unpacking is about getting from a text/buf to a structure, but you have a plan beforehand and you don't have that when you parse something
20:42 lue I mean, perlpacktut shows how utterly unmaintainable the regex version of a table processor is, but I imagine grammars make it sooo much easier :)
20:42 effbiai joined #perl6
20:43 timotimo table processor?
20:43 lue well, processing a table with fixed-width columns.
20:43 timotimo oh
20:43 timotimo well, fair enough
20:43 lue http://perldoc.perl.org/perlpacktut.html#Packing-Text
20:43 timotimo you should check out the pod table stuff :P
20:45 denisboyun joined #perl6
20:45 lue I'm just going through S32::Str, because it's due for an S15-influenced rewrite, and it's kinda surprising to see how old and crufty it really is (once you read more than summaries of what each function does, that is :P)
20:46 timotimo oh
20:49 timotimo does panda --verbose list work well for anyone here? :)
20:51 lue looks good from here. (Unless there was a very recent panda update changing it, then I don't know)
20:51 timotimo okay
20:51 timotimo yeah, i just saw how i broke it :)
20:52 lue I assume StrPos and StrLen are still a part of Perl 6, just a very NYI one?
20:53 timotimo not 100% sure
20:53 timotimo i *think* they would be?
20:53 PerlJam What would the alternative be?  :)
20:54 timotimo integers!
20:54 PerlJam great!  What would they mean? ;)
20:54 lue Yeah, just re-read S02's take on the matter, and being able to track independent of abstraction level sounds useful. However, the different NFs are now their own types, and encodings are usually the realm of Bufs, so...
20:55 timotimo mhm
20:56 lue Something more informative than a bare integer sounds good to me; it's just hard to see where that's needed, because apparently no-one's needed StrPos and StrLen for all these years :)
20:57 timotimo mhh
20:57 timotimo people have not been using Perl 6 terribly much during that time, though :P
20:58 timotimo not enough dogfooding going on :P
20:58 PerlJam also, people may have been avoiding instances where they would use StrPos/StrLen because they aren't implemented
20:58 lue ech, "If a StrPos or StrLen is forced into a numeric context, it will assume the units of the current Unicode abstraction level." doesn't make sense anymore.
20:59 lue (conclusion: propagating S15 throughout the rest of the synopses is quite an important thing for me to be doing right now ☺)
20:59 timotimo
21:00 vendethiel .u All
21:00 yoleaux U+0613 ARABIC SIGN RADI ALLAHOU ANHU [Mn] (◌ؓ)
21:00 yoleaux U+2200 FOR ALL [Sm] (∀)
21:00 yoleaux U+224C ALL EQUAL TO [Sm] (≌)
21:02 rurban1 joined #perl6
21:02 lue Unless there's a way to make the idea of "lazy string" work with S15, I think I should get rid of the Cat type in the process.
21:03 timotimo hmm
21:04 timotimo no easy way to get at the logotype without having intimate knowledge of github
21:06 BenGoldberg p6: say chr 0xd800
21:07 camelia niecza v24-109-g48a8de3: OUTPUT«\x{D800}␤»
21:07 camelia ..rakudo-moar b77755: OUTPUT«Error encoding UTF-8 string near grapheme position 0 with codepoint 55296␤  in method print at src/gen/m-CORE.setting:13585␤  in method print at src/gen/m-CORE.setting:13583␤  in sub say at src/gen/m-CORE.setting:13384␤  in block  at /tmp/tmpfile:1…»
21:07 camelia ..rakudo-parrot b77755: OUTPUT«Invalid character for UTF-8 encoding␤␤  in block  at /tmp/tmpfile:1␤␤»
21:07 camelia ..rakudo-jvm b77755: OUTPUT«java.nio.charset.MalformedInputException: Input length = 1␤  in method print at gen/jvm/CORE.setting:13528␤  in method print at gen/jvm/CORE.setting:13526␤  in sub say at gen/jvm/CORE.setting:13327␤  in block  at /tmp/tmpfile:1␤␤»
21:07 denis_boyun joined #perl6
21:08 * BenGoldberg hopes that that will, at some point in the future, produce a consistent exception on all VMs
21:09 jnap joined #perl6
21:11 timotimo huh.
21:11 timotimo Unhandled exception: Method 'Stringy' not found for invocant of class 'NQPMu'
21:11 timotimo at <unknown>:1  (/home/timo/perl6/rakudo/../install/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)
21:12 timotimo this is me trying to install Imlib2
21:16 retupmoca timotimo: the Build.pm in that package is wrong. Possibly panda used it a little differently when it was written
21:16 kivutar joined #perl6
21:17 raiph joined #perl6
21:17 timotimo mhm
21:17 timotimo are you able to fix that and PR it?
21:18 retupmoca later tonight I might be able to look at it
21:18 retupmoca I think the $*VM<config><...> things have changed as well
21:18 retupmoca or are different for moarvm at least
21:19 FROGGS they are different on each backend, yes
21:19 retupmoca I tried using this Build.pm as a template for something else I did, and ended up giving up and writing one from scratch
21:19 timotimo i'm unhappy about how annoying it is to compile native stuff to use with NativeCall
21:20 timotimo time to build Yet Another Build System
21:20 FROGGS no!
21:21 kivutar joined #perl6
21:22 BenGoldberg YABS?
21:22 timotimo not overly fond of the idea at all
21:23 [Coke] dammit, what's wrong with make? ;)
21:23 retupmoca what if we just taught Build.pm how to call make?
21:23 [Coke] (seriously, though, make is ubiquitous and horrible and we can make it do what we want.)
21:24 BenGoldberg The issue probably isn't make it self, obviously, but whatever is creating the makefile for it
21:24 pmurias isn't generating Makefiles horrible?
21:25 BenGoldberg It depends on the generator, I suppose
21:27 lue make is awesome if you use something like cmake :P
21:28 * lue &
21:31 denisboyun joined #perl6
21:31 timotimo oh wow
21:32 timotimo the performance difference between %foo<a b c> = (1, 2, 3); and %foo<a> = 1; %foo<b> = 2; %foo<c> = 3; is huge
21:33 jnthn timotimo: So, is it the slicing or the assignment?
21:33 timotimo good question
21:33 timotimo but it's 4 seconds vs 75 seconds
21:34 * timotimo tries more different codes
21:34 timotimo the slicing alone makes a difference of 10x, too
21:36 timotimo the difference of just assigning $a = 1; $b = 2; $c = 3; vs assigning ($a, $b, $c) = (1, 2, 3); is big, too
21:36 denis_boyun joined #perl6
21:37 timotimo 31s for 409600 times the tuple assignment, 1s for the same amount of times three simple assignments
21:39 timotimo oh wow.
21:39 timotimo my @l = (1, 2, 3); $a = @l[0]; ... is 77s for the same amount of assignments
21:39 timotimo so that's not a likely optimization :P
21:40 BenGoldberg I would expect the tuple to be a little slower than the simple assignments, but not that much slower.
21:42 BenGoldberg How slow is simply doing 'my @l = (1, 2, 3)' (for the same amount of assignments) without doing '$a = @l[0]...'?
21:43 BenGoldberg And, if you've got @l initialized outside of the timing loop, how slow is doing '$a = @l[0]; $b = @l[1]; $c = @l[2]' ?
21:43 timotimo takes 30 seconds
21:43 BenGoldberg Also, '($a, $b, $c) = @l'
21:43 timotimo the for loop without anything in it takes 0.9 seconds
21:44 timotimo with the definition of @l outside the for loop it takes ...
21:44 timotimo 17 seconds instead
21:44 timotimo having ($a, $b, $c) = @l inside the for and the definition outside gives me ...
21:45 timotimo 37 seconds
21:45 denisboyun joined #perl6
21:45 timotimo so doing (...) = @foo assignment is a bit slower than using @l[0], @l[1] and @l[2]
21:47 timotimo i wonder if this is a case where the signature binder lowering could theoretically work?
21:48 jnthn That's not processed through the binder
21:48 timotimo hm, the ($a, $b, $c) doesn't end up as a WVal, it becomes a callstatic &infix:<,>
21:48 timotimo but that's probably not a big part of the problem
21:52 FROGGS damn, have to rebuild star again because I picked rakudo-2014.03 and not 2014.03.01 -.-
21:52 timotimo so the method STORE, it gets called on the result of p6parcel for p6argvmarray
21:54 timotimo it seem slike p6argvmarray seems to expect arguments, but when it gets none, it still does some kind of loop
21:54 timotimo so maybe i'll be able to optimize p6argvmarray()
21:59 timotimo no noticable change in performance for this particular test case, though
22:00 kivutar joined #perl6
22:01 timotimo well, the numbers are marginally lower, but it's probably all measurement noise
22:03 rurban1 joined #perl6
22:05 timotimo not seeing anything obviously optimizable in method STORE of Parcel, which is what I believe is doing the assignment work here
22:06 timotimo the only thing i can think of is to do some detection at compile-time and dispatch to a dumber STORE method variant if possible and we know we'll be getting a parcel there.
22:07 timotimo well, rather than creating a new method, it could just as well generate code in-line
22:10 FROGGS jnthn: tomorrow morning I'll see if r-p* went out well, and then I'll push, tag and provide a tarball one can upload
22:10 FROGGS gnight #perl6
22:10 timotimo gnite FROGGS
22:12 jnthn FROGGS++
22:12 jnthn 'night
22:16 timotimo jnthn: would you think the necessary amount of analysis would be worth it for tuple assignment?
22:17 jnthn timotimo: I think trying to do something in Optimizer for it is probably the wrong way to go...
22:18 timotimo could very well be.
22:22 timotimo should i stop barking up this tree then? :)
22:24 jnthn Well, it needs addressing, but it's one of the bits of info that probably should feed into Pm's list related work...once he has tuits.
22:24 timotimo ah
22:24 timotimo that sounds good
22:26 timotimo i wonder if i'll even recognize the language after that ;)
22:26 LLamaRider joined #perl6
22:27 jnthn The language, yes. The list guts maybe less so ;)
22:28 colomon joined #perl6
22:34 raiph joined #perl6
22:51 rurban1 joined #perl6
22:54 jnthn Time for some rest
22:54 jnthn 'night, #perl6
22:54 timotimo gnite jnthn
23:10 timotimo if someone ends up fixing imlib2, mrhdias also has a binding to gd that could probably use the same Build.pm treatment
23:27 pdcawley joined #perl6
23:28 lue Hrm. With separate types for NFC, NFD, etc., and various encoding schemes not a part of strings at all, I really can't say if C<StrPos> and C<StrLen> are useful anymore.
23:29 lue (Since C<StrPos> and C<StrLen> are explicitly not markers, i.e. they don't track changes to the string, doing something like $nfc-str.NFD would ruin any C<StrPos>es and C<StrLen>s you had.)
23:29 iolympian joined #perl6
23:31 lue So, as far as I can see, StrPos and StrLen hold greater semantic meaning than a plain number ("position in string" or "length of substring" vs. "number"), but I don't see much use beyond that.
23:33 lue (The closest thing I can think of to these two that gets use is Instant and Duration; though they aren't tied to specific DateTime objects, like StrPos and StrLen are effectively tied to a particular string object)
23:34 iolympian left #perl6
23:39 lue Yeah, I don't see how the two types can carry the ideal of "view into a string, regardless of abstraction level" when the type system has separated all those out now. They'd really just be for the semantics, though we manage without things like ListPos or ParcelLen.
23:46 woolfy joined #perl6
23:48 * lue experimentally drops StrPos and StrLen from his rewrite of S32::Str(ingy)
23:55 lizmat joined #perl6
23:57 TimToady that's probably fine; those are pre-NFG concepts
23:58 jnap joined #perl6
23:58 lue Really? They predate NFG? That's surprising.

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

Perl 6 | Reference Documentation | Rakudo