»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 ssutch left 00:02 colomon joined
timotimo may be on tuesday or shortly thereafter 00:03
r: class Timer { has &.cb; method do_it { &.cb() } }; my $t = Timer.new(:cb({ say "hi"; })); $t.do_it();
camelia ( no output )
timotimo i am confuse
isn't this supposed to work? 00:04
r: my &foo = { say "hi"; }; &foo()
camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«hi␤»
timotimo ooooh duh 00:05
00:09 AW3i joined
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␤»
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…»
..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␤␤»
..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…»
timotimo huh
no, i think .tree takes a number as argument?
r: .say for LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat;
lue I base that off this part of S02: $p.tree(*.Array,*) # Turn all subparcels into item recursively
camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«a b c == de␤z b .l == h;␤»
timotimo r: .say for @(LoL.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"]).flat);
camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«a b c == de␤z b .l == h;␤»
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.
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;
camelia rakudo-parrot ee7dbc, rakudo-jvm ee7dbc, rakudo-moar ee7dbc: OUTPUT«Array.new([["a", "b", "c"], "==", "de"], [["z", "b", ".l"], "==", "h;"])␤»
timotimo i'm going home
lue I wonder if I can get away with flattening the pieces as the array is being generated... 00:20
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:22
Oh, wait, I actually want to keep those two subarrays distinct. Nevermind then, problem solved :) 00:23
00:27 araujo left 00:31 kbaker joined 00:38 araujo joined 00:40 hoverboard joined 00:49 dalek left 00:50 dalek joined, ChanServ sets mode: +v dalek 00:56 ssutch joined 01:01 ssutch left 01:03 treehug88 joined 01:04 water joined 01:07 sftp joined, hummeleBop1 joined 01:08 Ben_Goldberg joined, robins joined 01:09 arnsholt_ joined, perlpilot joined, hoverboard left, water is now known as hoverboard 01:11 thilp_ joined 01:13 salv0 left, FROGGS left, robinsmidsrod left, BenGoldberg left, xenoterracide left, thilp left, PerlJam left, JimmyZ left, sjn left, arnsholt left 01:14 Ben_Goldberg is now known as BenGoldberg 01:15 sjn joined 01:16 JimmyZ joined 01:19 lue joined 01:21 FROGGS joined, slavik joined, salv0 joined
lue r: say 1/0; # isn't this supposed to be NaN or something? 01:22
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
..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 gist at gen/jvm/CORE.setting:…»
..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 gist at gen/parro…»
timotimo nah, it gives you a Failure object
r: say 1 / 0e0
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
..rakudo-jvm 0035fa: OUTPUT«Divide by zero␤ in method gist at gen/jvm/CORE.setting:12414␤ in method gist at gen/jvm/CORE.setting:1053␤ in sub say at gen/jvm/CORE.setting:13327␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 0035fa: OUTPUT«Divide by zero␤ in method gist at gen/parrot/CORE.setting:12435␤ in method gist at gen/parrot/CORE.setting:1056␤ in sub say at gen/parrot/CORE.setting:13369␤ in block at /tmp/tmpfile:1␤␤»
timotimo r: say 1e0 / 0e0
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
..rakudo-jvm 0035fa: OUTPUT«Divide by zero␤ in method gist at gen/jvm/CORE.setting:12414␤ in method gist at gen/jvm/CORE.setting:1053␤ in sub say at gen/jvm/CORE.setting:13327␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 0035fa: OUTPUT«Divide by zero␤ in method gist at gen/parrot/CORE.setting:12435␤ in method gist at gen/parrot/CORE.setting:1056␤ in sub say at gen/parrot/CORE.setting:13369␤ in block at /tmp/tmpfile:1␤␤»
TimToady that should probably be NaN 01:23
timotimo this doesn't seem to give you NaN either, though
01:24 ilbot3 joined
lue It'd be nice if rakudo didn't blow up, I'm only printing the value of the division. 01:24
n: say 1/0;
camelia niecza v24-109-g48a8de3: OUTPUT«Inf␤»
TimToady IEEE would likely say that that *must* be NaN
timotimo r: say (1 / 0).WHAT 01:26
camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«(Rat)␤»
timotimo r: print 1 / 0
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
..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…»
..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…»
TimToady reduces lazily
though since rats can degrade to nums, arguably that should also return NaN 01:27
01:27 xenoterracide joined
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
en.wikipedia.org/wiki/Division_by_...arithmetic <-- niecza++ appears to be correct here 01:33
according to IEEE in any case; the more mathematically sound result would be NaN (or some other representation of an undefined result) 01:35
01:35 FROGGS left 01:36 Sqirrel left 01:37 lustlife joined
TimToady m: say (1e0 / 0e0).WHAT 01:38
camelia rakudo-moar 0035fa: OUTPUT«(Failure)␤»
TimToady I think rakudo is trying to preserve the location of the error, which NaN doesn't do 01:39
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
synopsebot Link: perlcabal.org/syn/S03.html#line_764
TimToady m: say (1e0 / 0e0) + 42 01:41
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
TimToady m: say (1e0 / 0e0) «+» 42
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Divide by zero␤»
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:42
lue yeah, at least for floating point (if not for the other numeric types too) 01:43
TimToady and storing a fake NaN into a Num location should probably just make a normal NaN
lue
.oO(We should all use the real projective line and stop worrying about division by zero.)
01:44 klapperl_ joined 01:46 rurban1 joined 01:47 klapperl left
BenGoldberg Perhaps a NaN class which is a subclass of Num? 01:47
TimToady it's more like a subset type 01:48
BenGoldberg Hmm... or a subclass of Failure, while 'do'ing the Numeric role
TimToady or an enum of Num
BenGoldberg r: say NaN
TimToady r: say NaN ~~ Num
camelia rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«NaN␤»
rakudo-parrot 0035fa, rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«True␤»
TimToady scared me
:)
but arguably Nan shouldn't match Num :) 01:49
01:49 FROGGS joined
lue imagines an Ofun::NaN that causes functions to immediately return a NaN when any given parameter is NaN 01:49
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
TimToady professes not to be an expert on IEEE fp 01:51
01:51 rurban1 left
TimToady presumably a signaling NaN only signals if you try to use it 01:52
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
s/signal or not/make a quite or signaling NaN/
s/quite/quiet/ # stupid fingers
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."
"Quiet NaNs should, by means left to the implementer’s discretion, afford retrospective diagnostic information inherited from invalid or unavailable data and results."
TimToady hah 01:55
01:55 Sqirrel joined
TimToady that sounds like trying to track the identities of individual electrons 01:55
unless NaN is a category of values
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
TimToady an illegal bit pattern with reserveed parts that can carray a value
*carry
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
01:57 ssutch joined
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 :)
TimToady with fewer bits it could be an offset into a table of recent failures
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?
TimToady I wonder how many architectures just say NaN is this bit pattern, deal with it
02:00 woosley joined
TimToady we have spin-up NaN, and spin-down NaN, and that's all we have :) 02:00
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:02 ssutch left
perigrin TimToady: no Garlic NaN? 02:07
perigrin is saddend. 02:08
TimToady is allergic to nan in south Asia, but not where nan means "south" :) 02:11
my favorite pun is to go into an Indian restaurant and say "Nan desu ka?" 02:12
02:22 benabik left, colomon left 02:23 AW3i left 02:25 benabik joined 02:26 xragnar_ joined, xragnar is now known as Guest52124, Guest52124 left, xragnar_ is now known as xragnar
TimToady m: BEGIN True and (require Test; import Test); ok True, "ok is ok" 02:27
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!=== Error while compiling /tmp/GkQY3wLkIr␤Could not find module Test to import symbols from␤at /tmp/GkQY3wLkIr:1␤------> EGIN True and (require Test; import Test⏏); ok True, "ok is ok"␤ expecting a…»
TimToady hmm
FROGGS: something like that ^^ 02:28
m: BEGIN True and (use Test); ok True, "ok is ok" 02:29
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
TimToady heh
m: BEGIN False and (use Test); ok True, "ok is ok"
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
TimToady oopsie :)
probably correct, need a require to be conditional
02:29 rurban1 joined
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'␤»
TimToady m: BEGIN True and (require Test <&ok>); ok True, "ok is ok"
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Lexical with name '&ok' does not exist in this frame␤»
TimToady m: require Test <&ok>; ok True, "ok is ok" 02:31
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
TimToady hmm
BenGoldberg Does 'use' in perl6 typically create lexical subs in the caller's context? If so, that's very cool :) 02:34
TimToady there's no extra lexical context there 02:35
since the BEGIN has no braces
BenGoldberg How does require work?
TimToady it's sort of like thunks, that are parasitic on the existing lexical scope rather than creating a new one 02:36
require is runtime
but has an optional argument for installing symbols at compile time
m: require Test <&ok>; ok True, "ok is ok"
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
TimToady why this one worked
m: require Test; ok True, "ok is ok" 02:37
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!=== Error while compiling /tmp/aQtQgwWSA_␤Undeclared routine:␤ ok used at line 1. Did you mean 'on'?␤␤»
BenGoldberg So if you pass arguments to require, it magically changes from runtime to compile time?
TimToady the compiler knows to recognize the arguments to require 02:38
it just makes the 'need' part of require lazy
so it doesn't happen till runtime
BenGoldberg So it's a bit like perl5's autouse module, or something... 02:40
TimToady well, not quite
but we'd like to be able to autouse stuff eventually
particularly for things in the setting that aren't necessarily going to be used in every program
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.
TimToady yes, it's a step in the right direction, if you want lazy loading 02:42
BenGoldberg m: if( rand < Inf ) { require Test <&ok> }; ok True, "ok is ok"; 02:44
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Word 'if' interpreted as 'if()' function call; please use whitespace instead of parens␤at /tmp/bT1Cubd80a:1␤------> if⏏( rand < Inf ) { require Test <&ok> }; o␤Unexpected block in infix position (…»
BenGoldberg m: if ( rand < Inf ) { require Test <&ok> }; ok True, "ok is ok"; 02:45
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!=== Error while compiling /tmp/WXH7Ba3LMZ␤Undeclared routine:␤ ok used at line 1. Did you mean 'on'?␤␤»
BenGoldberg m: if ( rand < Inf ) { require Test <&ok>; ok True, "ok is ok" }
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
BenGoldberg The name is installed lexically... very cool.
TimToady timotimo: it's not at all clear that 'is rw' actually is going to be slow down a loop; better measure fist 02:48
02:49 robins is now known as robinsmidsrod
TimToady measure fist first 02:53
one fist is about 10° if I recall 02:54
02:57 kbaker left 02:58 ssutch joined
TimToady maybe there's enough bits in NaN to encode file and line# 02:59
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
(so NaN could be an object with file and lineno attrs.)
TimToady probably written at a time when it was assumed Int and such also support NaN 03:03
03:03 ssutch left
TimToady which hasn't happened yet, if it ever will 03:03
r: sub term:<time> { 42 + OUTER::term:<time> }; say time
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
..rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«use of uninitialized value of type Any in numeric context␤42␤»
TimToady r: sub term:<time> { 42 + OUTER::{'&term:<time>'}() }; say time
camelia rakudo-jvm 0035fa: OUTPUT«java.lang.RuntimeException: java.lang.StackOverflowError␤␤» 03:05
..rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)»
JimmyZ \o/ bug...
TimToady r: sub term:<time> { 42 + &OUTER::term:<time>() }; say time
camelia rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)» 03:06
..rakudo-jvm 0035fa: OUTPUT«java.lang.StackOverflowError␤␤»
TimToady yeah, some kinda bug
JimmyZ r: { sub term:<time> { 42 + &OUTER::term:<time>() }; say time } 03:08
camelia rakudo-parrot 0035fa, rakudo-moar 0035fa: OUTPUT«(timeout)»
..rakudo-jvm 0035fa: OUTPUT«java.lang.StackOverflowError␤␤»
TimToady r: sub term:<time> { 42 + &SETTING::term:<time>() }; say time 03:09
camelia rakudo-jvm 0035fa: OUTPUT«1396235386␤»
..rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤ in sub term:<time> at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..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…»
TimToady o_O
lue IIRC rakudo doesn't always like the $PACKAGE::var form
(though I've yet to look for a pattern to it)
TimToady n: sub term:<time> { 42 + &SETTING::term:<time>() }; say time
camelia niecza v24-109-g48a8de3: OUTPUT«1396235443.7795949␤» 03:10
TimToady niecza++
n: sub term:<time> { 42 + &OUTER::term:<time>() }; say time
camelia niecza v24-109-g48a8de3: OUTPUT«(timeout)»
TimToady hmm
niecza-- :)
oh wait
that's correct 03:11
niecza++
TimToady--
n: sub term:<time> { 42 + &OUTER::OUTER::term:<time>() }; say time
camelia niecza v24-109-g48a8de3: OUTPUT«1396235527.458894␤»
TimToady r: sub term:<time> { 42 + &OUTER::OUTER::term:<time>() }; say time
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␤␤»
..rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤ in sub term:<time> at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..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…»
TimToady that's, not so correct
JimmyZ why OUTER::OUTER ... 03:12
lue r: sub term:<time> { 42 + SETTING::{'&term:<time>'}() }; say time
camelia rakudo-moar 0035fa: OUTPUT«Cannot find method 'Any'␤ in sub term:<time> at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..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…»
..rakudo-jvm 0035fa: OUTPUT«1396235602␤»
lue The JVM gets it right for &PKG::var and PKG::<&var>, but the other backends don't. That's interesting. 03:13
03:15 arnsholtAtHome left 03:17 arnsholtAtHome joined
TimToady lue: re octals, see S02:3523 03:19
synopsebot Link: perlcabal.org/syn/S02.html#line_3523
lue dang it, the stupid Twigils duplication bug messes up the synopsebot link :/ 03:20
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:22
TimToady the point is to keep C, C++, Perl 5, Java, etc. programmers from shooting themselves in the pinky toe 03:23
03:23 ruoso left
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
*you'll
lue nah, it just needs a no perl5-knowledge at the top of the file :) 03:25
("switch" in the general sense, instead of the commandline thingy sense)
TimToady always misinterprets intentionally in the most aggravating way, in case you hadn't noticed :)
lue took me a minute to figure out your misinterpretation this time :) 03:26
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__ ... )
TimToady *pret
lue er, -D rather :P
TimToady
.oO(no MONKEY_ANCESTRY)
03:28
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)
TimToady MONKEY_BUSINESS, surely 03:30
MONKEY_SEE_MONKEY_DO to allow cargo culting
MONKEY_AROUND
MONKEY_SHINE 03:31
more -Ofun than a BARREL_OF_MONKEYS
lue use 🐵_TYPING 03:32
TimToady but anyway, my point is it's not just P5 programmers that will make the \0777 mistake 03:34
lue yeah. I wonder who's smart idea it was to use a singular leading decimal digit to stop decimal interpretation anyhow. 03:36
03:36 rurban1 left
TimToady "We can't fix that! We already have five users!" 03:36
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
lue TimToady: Unicode could learn a thing or two from you, wrt to UTF-16 and the resulting 0x10_FFFF limit :)
TimToady yes, well, they'd've done it differently if they knew how popular UTF-8 was going to turn out to be 03:40
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
gotta go switch hotels now... 03:44
afk &
lue bye for now, TimToady o/
03:59 ssutch joined, araujo left 04:01 pdcawley left 04:03 ssutch left 04:04 pdcawley joined 04:06 kaare_ joined 04:09 araujo joined, araujo left, araujo joined 04:31 lustlife1 joined 04:33 thou left 04:34 kaare__ joined 04:39 kaare_ left, lustlife left 04:46 rurban1 joined 04:51 rurban1 left
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) 04:52
05:00 ssutch joined 05:02 kaare__ left 05:04 ssutch left 05:09 xenoterracide left 05:28 kaare__ joined 05:33 kaare__ is now known as kaare_ 05:35 BenGoldberg left
xiaomiao bpaste.net/show/195812/ nqp failing with parrot-6.2.0, works with 6.1.0 05:43
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:44
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
FROGGS: would be even more awesome if nqp/rakudo would abort with "known-bad" versions, but I can live with the current state
FROGGS xiaomiao: true, but the mechanism is that nqp requires at least the specified version, and that usually works out 05:46
xiaomiao yes 05:47
little bit surprising because usually it's just all perfectly working
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
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 :)
FROGGS lue: me too
well okay, unless I test PR's 05:52
PRs*
JimmyZ only use moarvm :)
lue Something tells me I fail at Perl 6 threads at the moment: gist.github.com/lue/9886068
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.
xiaomiao would be silly to not package new versions ;)
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...) 05:56
05:57 mattp_ left 05:59 hoverboard left 06:00 ssutch joined 06:05 ssutch left
lue g'night, #perl6 o/ 06:06
FROGGS gnight lue 06:07
06:07 FROGGS left, dayangkun left 06:08 lue left 06:09 mattp_ joined 06:21 treehug88 left 06:24 araujo left 06:26 logie joined 06:36 FROGGS joined
FROGGS m: BEGIN True and (require Test; import Test); ok True, "ok is ok" 06:36
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!=== Error while compiling /tmp/Diy1W9trDe␤Could not find module Test to import symbols from␤at /tmp/Diy1W9trDe:1␤------> EGIN True and (require Test; import Test⏏); ok True, "ok is ok"␤ expecting a…»
FROGGS I will fix that after fiddling with star 06:37
06:42 d0nk joined 06:43 dmol joined 06:44 donk left 06:57 dayangkun joined 06:58 arnsholtAtHome left, aborazmeh joined 07:00 JimmyZ left 07:01 ssutch joined
simula67 Does this look reasonable ? github.com/perl6/roast/pull/38 07:05
07:06 ssutch left 07:14 darutoko joined
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␤»
TimToady FROGGS: I think import is also compile time
so it happens before require if it isn't separated by a BEGIN level 07:15
FROGGS ahh, true 07:16
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...
FROGGS m: BEGIN True and (require Test <&ok>); ok True, "ok is ok"
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!===␤Lexical with name '&ok' does not exist in this frame␤»
TimToady that's arguably a bug
FROGGS m: require Test <&ok>; ok True, "ok is ok"
camelia rakudo-moar 0035fa: OUTPUT«ok 1 - ok is ok␤»
FROGGS the latter is okay if you just export a handful subs or an object/type 07:18
hmmmm
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␤␤»
FROGGS TimToady: am I supposed to be able to import a type? 07:20
TimToady that would seem to be an important capability 07:21
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.
TimToady star: require JSON::Tiny; say JSON::Tiny
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…»
TimToady I think you're supposed to get that symbol for free anyway
FROGGS TimToady: yes, this would help us with two modules that contain pir 07:23
because I did not use `require STRING`, aye
m: require JSON::Tiny; say JSON::Tiny
TimToady well, in a pinch you can write a routine to return a type
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_…»
FROGGS m: require Test; say Test
camelia rakudo-moar 0035fa: OUTPUT«===SORRY!=== Error while compiling /tmp/7rDLUz72_d␤Undeclared name:␤ Test used at line 1␤␤»
FROGGS yeah, everything of these workarounds are better than evaling heredocs :o) 07:24
bah, my english sucks :o( 07:25
TimToady S11:367 and following implies that should define the symbol 07:26
synopsebot Link: perlcabal.org/syn/S11.html#line_367
FROGGS yes, I remember
also it has to be this way or aliasing would not be possible 07:27
lizmat good *, #perl6!
FROGGS morning lizmat!
FROGGS puts a garlic necklace on 07:28
lizmat FROGGS: garlic NaN is much tastier :-) 07:32
FROGGS lizmat: the point is that I wanted to become much less tastier :P 07:34
but yeah, NaN++
lizmat found out yesterday that the Banca Transylvania isn't actually a blood bank 07:36
07:36 arnsholt_ is now known as arnsholt
arnsholt o/ 07:36
FROGGS moin arnsholt 07:37
07:43 arnsholtAtHome joined
simula67 TimToady: gfc == Great Firewall of China ? 07:43
dalek kudo/nom: 5a1c937 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Update Changelog for features/fixes so far
07:44
07:44 Rotwang joined 07:45 cognominal left, cognominal joined
dalek p: a2bb2db | (Arne Skjærholt)++ | src/HLL/Compiler.nqp:
Tweak how we handle --stagestats.

Now, the stage name is printed *before* the stage starts, and time spent doing it once it's done. Useful for those who can never remember the order of the stages.
07:50
07:51 arnsholtAtHome left
FROGGS ahh, nice 07:52
08:02 ssutch joined 08:03 pecastro left 08:06 fhelmberger joined, ssutch left
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
would:
foo => "bar"
be more .perl ish ?
or even: 08:22
:foo<bar>
in this case?
08:23 fhelmberger left
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"?
FROGGS morning jnthn
jnthn lizmat: If it's meant to round-trip, then depending on context the unquoted version may not actually produce a Pair. 08:25
FROGGS: No, it was to fix the "No method Mu" thingy in the scheduler.
lizmat jnthn: but the :foo<bar> version would, no? 08:26
08:28 kshannon joined
FROGGS ahh, kthx 08:28
jnthn lizmat: No, func(:foo<bar>) also serves as a named arg
lizmat ack, you're right
08:30 fhelmberger joined
jnthn lizmat: Did you get a working sleep sort locally? 08:30
lizmat no, seems I have trouble getting Moar up to HEAD and then using it in a standard --gen-nqp --gen-moar setup 08:31
08:33 denisboyun joined
jnthn Well, yeah, --gen-moar will try to generate the revision specified in MOAR_REVISIOn 08:33
08:33 dakkar joined
jnthn --gen-moar=master # or so 08:33
nwc10 back to work, and my computer clearly hates me 08:34
we *started* with the network connection not wokring
(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)
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: gist.github.com/FROGGS/0ea5537eb675588baaa2
nwc10 it's feeling like xkcd.com/349/
jnthn nwc10: Monday! 08:39
nwc10 aye 08:40
(currently) the coffee machine still works 08:41
(I assume that the second coffee machine also still works, but I did not test it)
coffee machines not on UPS [yet :-)]
08:42 sqirrel_ joined
jnthn FROGGS++ # clean Parrot star! 08:44
08:47 salv0 left, salv0 joined
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:49
08:50 sivoais joined
lizmat jnthn: thanks for the --gen-moar=master trick: can confirm sleep sort test works now 08:50
let me know when it's part of the general version, so I can unfudge the test
jnthn lizmat: You can make it so just by bumping revisions ;) 08:51
08:52 SamuraiJack_ joined 08:53 nebuchadnezzar left, nebuchadnezzar joined 08:55 ribasushi joined
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?
lizmat: Yes, with output to git describe --tags in Moar
08:55 yakudza left
FROGGS jnthn: modules only 08:56
jnthn FROGGS: OK. 08:57
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 woolfy left
FROGGS it is even unlikely doable until tomorrow evening/midnight 08:58
to get jvm clean, I mean 08:59
jnthn Yeah, quite.
08:59 woolfy1 joined
dalek p: 08e997a | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION to get sleep sort fixes in
08:59
08:59 yakudza joined
jnthn Trouble is, this prep work kinda needed to have started a week or two before it did. 08:59
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:00
09:01 sqirrel_ left 09:02 xinming__ left 09:03 ssutch joined, xinming_ joined
FROGGS jnthn: yeah, I keep working on it so the next release will be possible 09:04
btw, that is an image of my talk at the gpw last week :P i.imgur.com/UUB7cJO.jpg 09:05
jnthn FROGGS: Yes, I think we could cut a Parrot one this month 09:06
09:07 denisboyun left
jnthn FROGGS: And then make sure that the Star tests on all 3 are clean *by Rakudo's release date*. 09:07
FROGGS: So we can actually cut a tristar right after.
09:07 ssutch left
jnthn FROGGS: ooh, are the whole slides online somewhere? :) 09:07
FROGGS jnthn: can you handle .odp? froggs.de/perl6/v321.odp 09:08
and froggs.de/perl6/use-v5.odp
there is not much text on it anyway :o) 09:09
09:09 FOAD joined
jnthn FROGGS: yes, I can :) 09:11
FROGGS k :o)
09:25 pecastro joined
FROGGS damn, that URI "java.lang.IndexOutOfBoundsException" bug is a precomp one :/ 09:25
err, "java.lang.NullPointerException", really 09:26
xiaomiao NPE in a language without pointers, it still amuses me so much 09:27
FROGGS it is again about an exported our-sub that accesses a lexical 09:29
09:32 xinming_ left
jnthn Java. The language where they call them references until they go wrong, and then they're pointers :P 09:34
FROGGS: huh, I fixed that one :/ 09:35
FROGGS: I thought I did anyway.
FROGGS I thought so too 09:36
09:37 xinming_ joined 09:40 SamuraiJack_ left
lizmat jnthn: apparently the bump in MOAR_REVISION was not enough :-( 09:40
$ perl6 -e '(^10).pick(*).map: { start { sleep $_; .say } }'
Segmentation fault: 11
FROGGS m: (^10).pick(*).map: { start { sleep $_; .say } }
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…»
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
FROGGS then pull, and do the git describe again 09:42
your commit was 08e997a, and that should be in there
coffee &
lizmat ack, see it now , duh
dalek kudo/nom: b777559 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get sleep sort fixes in
09:43
ast: 2f754e1 | (Elizabeth Mattijsen)++ | S17-concurrency/promise.t:
Unfudge sleep sort test
09:49
jnthn lizmat: So, all happy now? :)
lizmat almost: the test now passes, but the simpler one line version still segfaults :-(
jnthn lizmat: Oh...what's your one-line version? 09:50
lizmat $ perl6 -e '(^10).pick(*).map: { start { sleep $_; .say } }'
0
Segmentation fault: 11
jnthn My one-line version was mine
lizmat I guess it is a problem because of the .say inside the thread ?
jnthn No, I suspect it blows up at exit, which still isn't handled too well.
If you gdb it we can confirm that 09:51
The problem is that you start a bunch of things off, but don't await anywhere.
We don't wait for outstanding tasks to complete before exit.
There needs to be an explicit "await"
Or .result, or whatever. 09:52
lizmat indeed: $ perl6 -e 'await (^10).pick(*).map: { start { sleep $_; .say } }' works just fine
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.
lizmat I guess we need an implicit await on any unkept Promises ? 09:53
jnthn No.
I'd rather not go that way, anyway.
In fact, I think it's really important this simple example does *not* work if you don't await. 09:54
Because people will then quickly learn, "oh, I should always check things worked out"
Or at least they get a chance to.
FROGGS backtrace: gist.github.com/FROGGS/d4c3a1443430b6fc90cd
lizmat well, maybe not segfault, but year, I get your drift :-)
jnthn It's not just about making sure stuff gets done. It's about handling asynchronous failure.
lizmat *yeah
jnthn That is, if you don't await them somewhere, you lose the exception. 09:55
FROGGS ohh, that is not a dabug build :/
debug*
jnthn We could of course do something about promises that silently fail...
But it's really tricky.
You can't just say "well, if there's no 'then'", because then it's a race. 09:56
lizmat yup
FROGGS backtrace on a debug build: gist.github.com/FROGGS/d4c3a1443430b6fc90cd 09:57
jnthn FROGGS: Thanks. I'll get the main thread just ripped the rug out from under a running one. 09:58
*bet
09:59 xinming_ left
jnthn (like, freed all its objects) 09:59
FROGGS jnthn: can I check something with that thingy in gdb to confirm that?
jnthn FROGGS: Well, you can check where the main thread is at... 10:00
If you can get a bt on that
cognominal I have the perl6 interactive shell that loops on printing the prompt. What gives? 10:03
10:03 ssutch joined
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
jnthn Hmm
cognominal using moarvm
jnthn wonders if somehow the linenoise submodule is behind...
Shouldn't be, though.. 10:05
cognominal strange because I think I have seen a patch from about that in the #perl6 log
jnthn Right.
What platform?
10:08 ssutch left
cognominal mac 10:09
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
s/pir/parrot/
jnthn lizmat: You're on Mac also iirc? Does the repl on r-m work for you? 10:13
lizmat check
$ perl6 10:14
> say "foo";
^C
seems not
cognominal not the problem I describe though. 10:15
FROGGS >/usr/bin/SciTE -grep ~~~~ "*" "num_user_threads"
/home/froggs/dev/star/work-m/rakudo-star-2014.03/MoarVM/src/moar.c:27: instance->num_user_threads = 0;
/home/froggs/dev/star/work-m/rakudo-star-2014.03/MoarVM/src/core/instance.h:91: MVMuint16 num_user_threads;
/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
jnthn No... 10:15
FROGGS jnthn: there is nothing that increases the num_user_threads?
10:15 denisboyun joined
lizmat doesn't use a REPL like ever 10:15
jnthn FROGGS: Uh...maybe not :)
FROGGS: So *that's* why it doesn't hang at exit. 10:16
:)
I suspect it should be a num_foreground_threads though. 10:17
Since those are the ones we want to wait for.
10:20 xinming_ left 10:21 xinming_ joined 10:22 aborazmeh left
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:24
I am curious what assumption makes it to break under emacs 10:25
lizmat, do you use the shell in emacs?
lizmat is a vim user on OS X 10:27
I don't need another operating system :-)
using standard Terminal
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. :(
jnthn FROGGS: Right.
10:29 xinming_ left
jnthn FROGGS: Thing is, we go to a lot of effort at exit time to clear up "properly" 10:30
FROGGS: Thing is, the OS can do that way faster.
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.
FROGGS: But otherwise it'll just exit(0) 10:31
10:31 xinming_ joined
jnthn FROGGS: We still should wait for non-app-lifetime threads at exit, mind. 10:31
FROGGS: If you can put the flag in and get something into config.h, that's a great start in that direction
FROGGS: I bet we can get faster spectests thanks to the faster exit too. 10:32
10:32 dayangkun left, kurahaupo joined
FROGGS ahh wait, only increasing that counter is not enough, I have to decrease it also *g* 10:32
I will look at a proper implementation after lunch
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
jnthn OK, nice :)
(Thread pool ones are background threads, to be clear. Or "app lifetime" as we've called them.)
lizmat is looking forward to even faster spectests 10:41
10:42 woosley left 10:47 rindolf joined 10:55 xinming_ left 10:57 xinming_ joined
lizmat given this code: 11:01
for ^10 { sleep rand; .print }
wouldn't the "race" prefix: 11:02
race for ^10 { sleep rand; .print }
11:02 xinming_ left
lizmat not just simply transmogrify that to: 11:02
await do for ^10 { start { sleep rand; .print } }
??
aka: put an "await do" in front, and put a start {} around the body of the loop ? 11:03
(at the AST level of course)
11:04 colomon joined, ssutch joined
jnthn lizmat: No, it's a form of hyper 11:06
lizmat: And it'll want implementing differently, given it's a data-parallel operation 11:07
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.
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:09 ssutch left 11:13 xinming_ joined
lizmat ah, duh, race / hyper should return a lazy list :-) 11:14
jnthn lizmat: Well, it's eager, but it's an iterator still so yeah, it can be consumed as it produces. 11:16
lizmat: Pm has figured out how to re-organize lists to deal with this stuff.
lizmat: And now we actually have concurrency support in two backends it can actually be done properly. :) 11:17
lizmat yeah!
looking forward to it! :-)
jnthn Me too! ;) 11:18
Hunger trikes...
uh, strikes..
jnthn lols at the mental image of hungry trikes...
shop &
11:19 xinming_ left 11:20 xinming_ joined
masak .oO( CHAAAAAAINS ) 11:20
11:40 zakharyas joined 11:44 telex left 11:46 telex joined 11:50 dmol left 11:57 kivutar joined 12:02 kurahaupo left 12:05 fhelmberger left, ssutch joined 12:08 fhelmberger joined 12:09 colomon left, colomon joined, benabik left, ssutch left
colomon Auth::PAM::Simple, MIME::Base64, and Math::ThreeD are currently failing their prerequisites? Time::Duration just failing. 12:10
FROGGS can't believe it wrt MIME::Base64 12:11
12:14 treehug88 joined 12:15 treehug88 left, prevost joined 12:18 treehug88 joined
FROGGS colomon: MIME::Base64 has no dependencies 12:18
colomon hmm, yes, the exact failure point is a bit wonky in emmentaler. Let me see... 12:19
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?
FROGGS no
colomon well, somebody++ 12:21
been saying something needed to be done there… :)
FROGGS I was just involved in the discussion
colomon Anyway, it just went fine when I tried it by hand in pandabrew
so I dunno why it is failing in emmentaler. but it has for the last two days. 12:22
FROGGS see github.com/perl6/Perl6-MIME-Base64...its/master
Build.pm changes are exactly two days old
hoe does emmentaler install stuff?
colomon using panda… hmmm... 12:23
FROGGS hmmm, weird
colomon it calls into panda 12:24
$panda.resolve, I think
github.com/tadzik/emmentaler/blob/master/smoker 12:25
12:25 zakharyas left 12:26 xinming_ left
colomon maybe emmentaler doesn't properly support modules overriding Build.pm or something? 12:26
12:27 SamuraiJack_ joined 12:30 prevost left, dayangkun joined 12:32 fhelmberger left, xinming_ joined 12:35 JimmyZ joined 12:36 colomon left
FROGGS I dunno 12:37
nothing obvious there that would explain it
12:37 xinming_ left, fhelmberger joined 12:38 prevost joined 12:43 xinming_ joined 12:44 colomon joined 12:45 rindolf left 12:49 xenoterracide joined 13:01 xinming_ left 13:02 xinming_ joined 13:06 ssutch joined
dalek kudo-star-daily: d6c4eb9 | coke++ | log/ (5 files):
today (automated commit)
13:09
kudo-star-daily: 59e1ed4 | coke++ | log/ (5 files):
today (automated commit)
13:10 ssutch left
[Coke] weird. no commits in the other repo since friday. :( 13:11
FROGGS :/
[Coke] it's running now, last commit was friday, no unpushed commits. 13:12
I'll double check it after the run today to make sure something goes out.
13:13 SamuraiJack_ left
[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:14
FROGGS +1 for autocommit :o) 13:15
masak TheDamian's email about 'where' matching in signatures is intriguing. 13:17
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
I guess not too much will break
jnthn Well, what is missed in the email is the reason that they are inferred today. 13:19
multi fac(Int $x) { $x * fac($x - 1) }
multi fac(0) { 1 }
masak moritz: feels like an eval line is missing to camelia in rt.perl.org/Ticket/Display.html?id=121518
jnthn That will break with what Damian is suggesting.
13:19 kaare_ left
masak jnthn: indeed. 13:19
FROGGS ohh, in that case panda will break
masak :/
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)
(And Int is more specific than Any)
13:21 mtk joined
jnthn should reply to the Damian post noting this. 13:22
13:23 dwarring left
masak aye. 13:26
jnthn As trade-offs go, Damian is probably on the right side of usefulness. 13:27
His DWIM just gets us a new WAT. :)
(Much as the current DWIM gets other WATs...) 13:28
cognominal WAT?
13:29 rindolf joined
FROGGS DWIM! 13:29
masak WIT? DWAM! 13:30
FROGGS WDID? BAMM! 13:32
13:35 kbaker joined, pecastro left 13:38 isBEKaml joined
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:43
It seems like a leftover from ye olden days 13:44
jnthn " (we have to keep using the old way in the NQP code because of the stage0 compiler)" 13:45
Not sure that's entirely true any more.
s/any more//
Since stage0 will have its own HLL::Grammar etc.
arnsholt Oh. Troo dat
jnthn So I think the bootstrap probably doesn't come into it at all :)
Which is nice.:) 13:46
arnsholt That's a very good point!
jnthn API wise, I'd look to how STD has it.
But yeah, it's a hash-y hting.
*thing
arnsholt I'll do that
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
13:47 bluescreen10 joined 13:48 btyler joined, bluescreen100 joined 13:50 btyler left 13:52 bluescreen10 left 13:54 mtk left 13:57 mtk joined 13:59 jnap joined 14:01 rurban1 joined 14:02 btyler joined 14:05 xinming_ left
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
14:06 ssutch joined
FROGGS when I strip the say it works 14:06
14:07 xinming_ joined
jnthn FROGGS: say is a lexical 14:07
FROGGS >:<
jnthn Try nqp::say('foo') and you're see
FROGGS err >.<
jnthn ll
14:08 thou joined
FROGGS jnthn: nqp::say works :/ 14:09
jnthn So it's lexical after all
FROGGS yeah
14:11 ssutch left
[Coke] moritz: VM should be multi-select now. 14:11
FROGGS ohh, that was quick 14:12
14:13 woolfy1 left 14:15 guru joined 14:16 guru is now known as Guest16131
lizmat off for some presenting& 14:16
14:16 lizmat left, Guest16131 is now known as ajr_ 14:21 isBEKaml left 14:28 prevost left 14:37 FROGGS[mobile] joined
FROGGS[mobile] jnthn: I am going home now and will stare more at URI, but I have no Cluj how to debug this... 14:38
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:41 FROGGS left 14:48 lustlife joined, lustlife1 left 14:51 zakharyas joined, FROGGS joined 14:52 FROGGS[mobile] left
timotimo i seem to be missing a font from froggs slides 15:00
FROGGS timotimo: I've uploaded the files as .pdf too, perhaps the font is embedded in these 15:02
timotimo: and there seems to be a bug in libreoffice that swallows the unicode chars in presentation mode
(only the shadow is correct)
15:07 ssutch joined
timotimo yikes. 15:10
[Coke] anyone know if the PM support team hangs out on IRC anywher? 15:11
15:12 ssutch left
FROGGS [Coke]: what is that? 15:15
masak FROGGS: url?
timotimo FROGGS: the background image seems very distracting to me, fwiw
but since it's only a few words per slide, that's fine i guess 15:16
FROGGS froggs.de/perl6/v321.odp - froggs.de/perl6/use-v5.odp
timotimo sadly that also makes the slides less than helpful to read on their own :P
FROGGS froggs.de/perl6/v321.pdf - froggs.de/perl6/use-v5.pdf
*g*
timotimo where did you get these pretty pictures, btw?
FROGGS I know
there is a memegenerator
ahh wait
you mean the background? 15:17
timotimo yes
FROGGS hold on
jugga-lizzle.deviantart.com/art/Rai...I-51825680 15:18
masak FROGGS:++ # slides 15:20
FROGGS thanks!
masak FROGGS: on the second one, slides 27 and 28 appear to be identical.
FROGGS masak: it is all your fault :o)
retupmoca panda on rakudo-moar HEAD (+nqp/moar HEAD) seems to be hanging once bootstrapped
15:20 denisboyun left
FROGGS :o( 15:21
masak: the color of "use v5" hanges
changes*
masak oh!
retupmoca almost feels like it's hanging when trying to download projects.json, but I'm not sure
wget gets projects.json fine
timotimo the color changes are very mild
FROGGS timotimo: I know, and I think I won't do that again, sine it is even worse using a beamer 15:22
15:24 treehug88 left
timotimo mhm 15:24
"projector" is the proper english term :)
FROGGS ahh, okay :o) 15:25
15:28 arnsholtAtHome joined
arnsholtAtHome o/ 15:28
FROGGS o/
arnsholtAtHome jnthn: We still don't have any syntax for hash literals in NQP, do we? 15:29
[Coke] FROGGS: PM == perl mongers
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 { } ?
FROGGS [Coke]: ahh, hmmm, no idea, sorry :/
TimToady a "beamer" isa BMW in the US
FROGGS TimToady: here too in some areas 15:30
cognominal FROGGS, a multicolor background may not the best idea
perlpilot btyler: for @abc.kv -> $i, $v { ... }
FROGGS btyler: for ('a' .. 'z').kv -> $i, $v { say "$i $v" }
cognominal * may not be
btyler ah ha, awesome, thanks. perlpilot++, FROGGS++
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... :)
retupmoca re: panda: it does indeed hang when attempting to get projects.json, rolling back to moarvm fe0962fcb89b3b66deb3170da0faa2f9f13ce4ea fixes it
FROGGS cognominal: that was no problem, because the background was dark enough and so the contrast
retupmoca moarvm 1261936ddb75e91c78a91d830dad3a575d17ffe3 looks like the bad commit
cognominal FROGGS, happy to hear that 15:32
retupmoca jnthn: possibly a deadlock or something?
jnthn retupmoca: I'm guessing it tries to double-acquire a mutex by accident.
retupmoca: Well, the patch says "first pass at.." for a reason
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
jnthn retupmoca: It was hastily written late at night to unbust something lizmat++ wanted for her talk today :)
retupmoca: I did spectest it, and it failed to show problesm there.
retupmoca: Do the socket tests look good for you on HEAD/HEAD/HEAD?
retupmoca jnthn: how do I run one spectest file? 15:34
jnthn perl6-m -Ilib t/spec/S32-blah/blah.t
Or .rakudo.moar instead of .t if it's a fudged one
arnsholtAtHome jnthn: Oh, right. But that one takes arbitrary numbers of arguments, which is close enough for me! =) 15:35
I just wanted to avoid my %hash; %hash<foo> := "bar"; etc, etc, etc 15:36
jnthn ah, yes
timotimo oh, a recent commit ended in "junction autothreading still seems broken. i hope timotimo fixes it" 15:37
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: gist.github.com/retupmoca/9895132
jnthn retupmoca: OK, I'll have to do it on my linux VM, then. 15:39
retupmoca: On Windows mutexes are reentrant for free. pthread ones ain't.
So my Windows spectest wasn't good enough to catch all bugs I guess.
btyler playing with promises on moar, jnthn++, this is super fun 15:40
15:40 spider-mario joined
btyler they were super fun on perl6-j too, just more of a case of delayed gratification :) 15:40
retupmoca jnthn: gotcha. And yes, jnthn++ for threads and bughunting 15:41
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:43
perlpilot I just(re)built rakudo and from the REPL, it seems to just hang on the first statement. 15:45
jnthn :/
perlpilot Is that a known-but-sono-to-be-fixed thing?
jnthn liblinenoise is seriously on the chopping block at this rate. 15:46
btyler perlpilot: OSX 10.9, same here
JimmyZ o_O
btyler assuming we mean perl6-m
perlpilot oh, yes, it's just perl-m
er, perl6-m
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
jnthn It's better to have a REPL with no readline support than a busted one.
15:47 benabik joined
perlpilot (I'm on ubuntu 12.04 fwiw) 15:47
15:47 Rotwang left
JimmyZ jnthn: you mean libreadline? 15:48
jnthn JimmyZ: Yes. The one that most things used that tends to actually work ;)
We already ahve a configure option for it.
It just has to be set manually at present. 15:49
JimmyZ yeah
15:49 treehug88 joined
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.
btyler the infinispew was fairly amusing :)
"you want a prompt? have some prompts! all the prompts!"
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...
In which case, it's not linenoise's fault after all...
...this time. :)
Ulti yeah from a file its all good
jnthn OK.
I'll have a look at the locking stuff in a bit. 15:52
timotimo tries to run from a file
jnthn timotimo: IT'S CATCHING UP WITH YOU! RUN FASTER!
timotimo actually, it seems like the file isn't running at all 15:53
huh. interesting.
where's the presentation lizmat is doing right now? in Cluj?
JimmyZ would like to improve linenoise, we will have something like Jline with nativecall :) 15:55
timotimo right, cluj 15:56
15:56 kaare_ joined
timotimo and TimToady is touring china to do lots of presentations on Perl 6, too? :) 15:56
vendethiel preaching people 15:57
timotimo preaching perl? 15:59
[Coke] retupmoca: jnthn's command to run the file won't fudge it if it needs fudging. 16:00
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:01
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:03 zakharyas left, kbaker left 16:07 REPLeffect joined, hoverboard joined 16:08 ssutch joined
timotimo FROGGS: you said you'll have something cool to show off WRT S11 16:10
is there something i can link to for today's p6weekly?
16:12 rindolf left
jnthn Ooh, p6weekly :) 16:12
16:13 ssutch left, FROGGS_ joined, FROGGS left
timotimo i kind of think the current version of the weekly is falling short of what actually happened 16:13
16:13 FROGGS_ is now known as FROGGS
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
timotimo p6weekly.wordpress.com/?p=102&s...994608e4cf
16:14 ajr_ left
timotimo jnthn: yup 16:14
16:15 guru joined, guru is now known as Guest70034 16:16 Guest70034 is now known as ajr_
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
jnthn timotimo: And the reason for it was to use a JVM library to generate bytecode.
Also could say what merging moar-conc gives: promises, channels, supplies, threads... 16:17
timotimo will do
jnthn also, grammar-o in the final thing 16:19
"he'll something"
timotimo ah yes, that whole section is incomplete
(only one bullet point? that's not good style)
FROGGS: is the cpanda stuff something i should point up in the "upcoming" section of the post? 16:20
or would you rather i wait another week?
16:20 pmurias joined
moritz masak: (re eval line missing in RT #121518) fixed, thanks 16:21
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121518
moritz moritz.faui2k3.org/images/ida-1.jpg # our second daughter, Ida, was born today 16:25
arnsholtAtHome Congrats!
timotimo congrats \o/
moritz thanks
vendethiel congrats :)! 16:27
16:28 fhelmberger left
jnthn moritz: Awww! Congrats! :) 16:29
moritz thanks
perlpilot moritz: Congrats! 16:30
arnsholtAtHome Whoa. <O()> refactor works on the first try, apparently \o/ 16:32
simula67 congrats moritz
moritz arnsholtAtHome: that's suspicious :-)
arnsholtAtHome I know! 16:33
Still, it's a mostly-deleting-things refactor, so I might actually have gotten it right on the first try ^_^
moritz arnsholtAtHome: expect subtle misparses when multiple right-associative operators with the same precedence have an adverb, or something
arnsholtAtHome Still, we'll see what happens when I apply the matching changes to Rakudo 16:34
Pretty happy with 70 insertions and 152 deletions though 16:35
moritz
.oO( but don't expect to get paid for -82 lines of code! )
16:36
16:36 denisboyun joined
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:36
arnsholtAtHome =D 16:37
16:38 dmol joined
cognominal congrats, moritz 16:38
timotimo arnsholtAtHome: what's your intuition, will this give performance improvements? 16:40
less memory usage?
jnthn Less string operations/parsing surely. 16:41
timotimo at startup time, compile time or run time? 16:42
jnthn compile time
16:44 jnap1 joined 16:46 jnap left
arnsholtAtHome Slightly less compile time, maybe 16:46
Mostly it's just unneeded complexity, I think 16:47
jnthn Aye
I won't miss the hack parser :) 16:48
arnsholtAtHome Me neither. I suspect it dates back to PGE 16:56
cognominal it does 17:02
timotimo published 17:03
17:04 treehug8_ joined
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
interesting
17:07 treehug88 left 17:08 zby_home_ joined, zby_home_ left 17:09 ssutch joined 17:11 dakkar left 17:13 ssutch left
[Coke] moritz++ # congrats! 17:16
17:19 xinming_ left
vendethiel timotimo, so, you fixed that SDL bug :D ? 17:21
17:21 xinming_ joined
jnthn Dinner time, then Perl 6 time :) 17:21
17:21 denis_boyun__ joined 17:23 denisboyun left
FROGGS timotimo: I'd wait 17:27
moritz: \o/
17:29 kurahaupo joined 17:31 SamuraiJack_ joined 17:33 fhelmberger joined 17:34 jnap1 left 17:35 ajr_ left 17:38 rindolf joined 17:40 Psyche^ joined 17:45 Psyche^_ left 17:46 sftp_ joined 17:47 sftp left 17:49 kurahaupo left 17:50 kurahaupo joined 17:53 denis_boyun__ left 17:54 denis_boyun_ joined, kbaker joined, zby_home_ joined 17:55 BenGoldberg joined
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␤»
..rakudo-moar b77755: OUTPUT«448 448␤»
17:57 SamuraiJack_ left
FROGGS nr: say (8*56) +> 32 17:58
camelia rakudo-moar b77755, niecza v24-109-g48a8de3: OUTPUT«448␤»
..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤»
FROGGS ??
now that is interesting 17:59
18:01 elijah left
retupmoca r: say (8*56) +> 31 18:02
camelia rakudo-parrot b77755, rakudo-jvm b77755, rakudo-moar b77755: OUTPUT«0␤»
FROGGS nr: say 448 +> 33 18:04
camelia rakudo-moar b77755, niecza v24-109-g48a8de3: OUTPUT«224␤»
..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤»
retupmoca r: my $x = 8*56; my int $y = 8*56; say $x +> 32; say $y +> 32; 18:05
FROGGS I see
camelia rakudo-moar b77755: OUTPUT«448␤0␤»
..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«0␤0␤»
18:05 pecastro joined 18:08 kurahaupo left 18:09 colomon left 18:10 ssutch joined 18:11 colomon joined
timotimo FROGGS: too late! =o 18:12
FROGGS for what?
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
ahh, yeah, that's cool :o)
timotimo
18:14 kurahaupo joined
FROGGS timotimo: btw, the gpw was mostly boring 18:14
18:14 ssutch left
FROGGS especially when you are not familiar with Perl 5 (or interested in its use/development) 18:15
timotimo oh
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
FROGGS nwc10: one reason was that I had a bad headache on wednesday or thursday and the sound system had this feedback problem 18:17
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
FROGGS the talks of saywerx++ and ovid++ where very entertaining though 18:18
18:19 guru is now known as Guest19294
FROGGS and the lightning talks are always good 18:19
18:19 Guest19294 is now known as ajr_
FROGGS timotimo: I hope so too 18:19
ahh, mst++'s talk was very nice also
timotimo i'm kind of spoiled by the CCC events i've attended so far
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
and streaming
additionally, there's usually a person on site to monitor the stream and recording for any audio issues that may arise 18:24
18:24 rurban1 left
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:25
moritz was GPW a single track? 18:27
FROGGS yes 18:28
moritz that makes recording kinda easier 18:29
18:31 fhelmberger left 18:35 jnap joined 18:38 BenGoldberg left, BenGoldberg joined
jnthn back from noms 18:38
arnsholtAtHome o/ 18:39
Making Rakudo work with refactored O is non-trivial
18:39 jnap left
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
arnsholt++ # stage printing is way nicer now :o)
jnthn: I can do that 18:41
jnthn stage printing?
FROGGS I had some sort of practice the last days...
jnthn: it prints "Parse: "
jnthn FROGGS++
FROGGS and after a while the numbers 18:42
jnthn Oh!
nice!
moritz won't that mess it up even more for concurrent builds? :-)
jnthn ///o\
moritz can always find a grain of disagreement
jnthn Not you don't!
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
18:44 BenGoldberg left, BenGoldberg joined
FROGGS yay, Digest::MD5 now works on moar :o) 18:44
moritz ponders doing the star release, but realizes he's too tired 18:51
FROGGS I just need someone that uploads the release thingy
but when I do that today, it will already be midnight 18:52
cognominal nbc? 18:53
what is the nbc state? 18:54
* stage
FROGGS do you mean mbc?
18:55 BenGoldberg left
cognominal yes, oops, time to rest 18:55
18:55 BenGoldberg joined
moritz moar bytecode 18:55
cognominal no wonder I can't ack it
FROGGS that is when it write down the file as .moarvm, which is --target=mbc
18:57 kbaker left
cognominal how come mast stage is just after pare state when ranked in decreasing time. What can be so costly? 18:57
moarvm++ 18:58
moritz cognominal: it operates on the AST, which is pretty big
FROGGS it is about translating the ast to the moarvm specific ast
it takes a while to iterate over a tree structure that is several megabytes in size 18:59
(and there happens more than iterating of course) 19:00
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.
FROGGS the ast generation time is included in the parse stage
cognominal ha, that's why!
make sense now 19:02
benabik I think stages AST is just `$match.ast`
19:02 treehug8_ left
timotimo that's correct 19:04
we could add a random sleep to it if you like
jnthn doesn't like :P
moritz m: use 5.014;
camelia rakudo-moar b77755: OUTPUT«===SORRY!=== Error while compiling /tmp/TctdPx_ATM␤Undeclared routine:␤ use used at line 1␤␤»
moritz that's... less than awesome 19:05
benabik m: use v5.014;
camelia ( no output )
benabik That is also LTA in a different way…
19:05 treehug88 joined
FROGGS benabik: install v5 :o) 19:05
19:05 ssutch joined
moritz benabik: yes, but not unexpected 19:05
benabik FROGGS: Apparently I don’t have to. ;-)
FROGGS *g* 19:06
19:09 colomon left
[Coke] OH. 19:12
19:12 denis_boyun joined
[Coke] There's a hanging java test. 19:12
S17-concurrency/channel.t..........................
19:13 denis_boyun_ left, darutoko left
jnthn Moar HEAD should now fix the sockets test regression and REPL hang on non-Windows. Confirmation welcome. :) 19:15
[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
[Coke] s/word/thought/
jnthn [Coke]: Yeah, japhb said a hang showed up for him too in something he'd built using channels. 19:17
[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
[Coke]: Will investigate in a moment.
Just wanted to fix the I/O thing first. :)
[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
no worries.
jnthn Got a latest JVM build going now. 19:20
[Coke] I killed the run for today.
will add a ulimit and restart shortly.
... and killed the saturday & sunday runs, too. whoops. :)
jnthn Use all the CPUs! 19:21
[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
jnthn btyler: moar should be enough 19:23
btyler: Just point it at the same install location as you already had it.
19:23 kurahaupo left, pecastro left
[Coke] ... bah. no, they got confused because they were running simultaneously. adios. 19:23
19:24 iolympian1 left 19:25 pecastro joined, rurban1 joined
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:25
retupmoca jnthn: I had to rebuild nqp/rakudo - I got a segfault if I just did moarvm 19:26
jnthn: spectest is passing now though
jnthn retupmoca: hm, curious 19:27
retupmoca: Oh, I changed a struct or two.
[Coke]: Yeah, I've got it hanging here
19:28 kurahaupo joined 19:29 lue joined
jnthn Seems test 11 or 12 hang it. 19:29
lue hello world o/
FROGGS hi lue
timotimo hellue
19:29 rurban1 left
retupmoca jnthn: and now panda works again! \o/ 19:30
19:30 perlpilot left, PerlJam joined
jnthn retupmoca: \o/ 19:31
[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"
[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
ssutch: I get that on OS X all the time.
ssutch: never on linux.
benabik I see it building nqp. Just re-running make seems to work. I’ve never bothered to try to fix it.
(on OS X)\
btyler jnthn: REPL on perl6-m seems to be in order now, OSX 10.9.2
ssutch yeah it fails in making nqp 19:34
timotimo oh hey ssutch
nice to see you again :)
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
ssutch ok cool
this is the log for reference gist.github.com/samuraisam/3e159740c4ab00c73558 19:35
timotimo Segmentation fault (core dumped)
make: *** [CORE.setting.pbc] Error 139
:(
jnthn timotimo: make clean
timotimo can do
will p-clean be enough?
jnthn oh wait
Parrot?
timotimo i think?
jnthn I thought you'd just pulled latest Moar...
OK, then no idea. 19:36
19:36 jnap joined
timotimo i did 19:36
i perl Configure.pl'd, fwiw
that should cause the same effect as a make clean would, no?
19:36 Sqirrel left 19:37 colomon joined
btyler nice, latest moar fixes the hang that prevented panda rebootstrap from finishing 19:38
19:38 araujo joined
timotimo jnthn: re-running make install seems to get around the problem this time 19:38
19:40 jnap left
dalek p: cf3bdf1 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix app-lifetime thread regression on JVM backend.

The thread pool scheduler wants its threads to be background ones, but they were not marked as such. This caused hangs at process end.
19:41
19:42 denis_boyun left
jnthn [Coke], japhb: ^^ should fix the hangs the two of you reported :) 19:42
19:42 denis_boyun joined
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++
FROGGS $ ./perl6 -e 'say $*EXECUTABLE' 19:44
IO::Path</home/froggs/dev/star/work-m/rakudo-star-2014.03/perl6-m>
moritz: you might like that
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
er, excuse the extra paren after $index 19:45
moritz FROGGS++ 19:46
19:46 colomon left
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.
FROGGS like a sub with a signature
you cannot omit its block
moritz: I think I am going to commit it, even if it is not specced yet 19:48
19:48 colomon joined
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
er * "hi letter $_"
19:50 ssutch_ joined, ssutch left
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␤»
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
jnthn ah, you found it just as I wrote it :)
btyler heh, yep :) thanks 19:53
19:55 molaf joined
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␤»
FROGGS m: -> $a, $b { say "$a and $b" } for 1..10;
camelia rakudo-moar b77755: OUTPUT«1 and 2␤3 and 4␤5 and 6␤7 and 8␤9 and 10␤»
FROGGS m: sub ($a, $b) { say "$a and $b" } for 1..10;
camelia ( no output )
FROGGS m: do sub ($a, $b) { say "$a and $b" } for 1..10;
camelia ( no output )
FROGGS ohh, yeah, well
:o)
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␤␤»
FROGGS w/e :P
19:56 denis_boyun left
jnthn By that point you might as well have map 1..10, sub ...'d it :P 19:56
FROGGS the pointy in front of the for is nie though 19:57
nice*
jnthn *nod*
19:57 jnap joined, molaf left
btyler neat neat neat :) FROGGS++, jnthn++ 19:57
[Coke] I find the pointy on the front evil! 19:58
FROGGS O.o
I like pointies in every position :o)
[Coke] m: -> $a { "eek" }
camelia ( no output )
19:58 denis_boyun joined
[Coke] m: ->{} 19:59
camelia ( no output )
20:01 jnap1 joined, rurban1 joined, jnap left
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:05
20:05 rurban1 left
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:09 denis_boyun left 20:11 denis_boyun joined
timotimo i'm still not quite understanding where the $(PREFIX) comes from that NativeCall seems to be plopping into its test suite 20:12
jnthn timotimo: MoarVM's configure output, I think. 20:13
timotimo: could always s/// it away if it's making trouble
timotimo okay, and now i'm not sure how to properly fix it :)
fortunately, on my shell it evaluates to "" and a message on stderr 20:14
jnthn Oh, for where to fix it, see t/CompileTestLib.pm or so 20:15
bbi10
timotimo oh
well, in that case that would be acceptable
20:19 kbaker joined
FROGGS yeah, I tried to fix that one too but gave up 20:20
timotimo is doing some inconsequential stuff instead 20:21
20:22 denis_boyun__ joined, denis_boyun left
timotimo somehow panda install . infiniloops 20:23
panda install ./panda, too 20:24
(the first one was running panda install inside panda/)
huh 20:25
when i strace it, it ends prematurely 20:26
20:26 kurahaupo left
moritz measurement collapses wave functions 20:26
20:26 benabik left
timotimo yeah >_> 20:27
moritz and sometimes infinite loops :-)
timotimo oh 20:28
it did work
it just took crazy long
dalek kudo/nom: e9b185c | (Tobias Leich)++ | src/core/terms.pm:
add $*EXECUTABLE, an absolute IO::Path to the perl6 runner

  $*EXECUTABLE_NAME is nice, but when it just contains "perl6-m" then you
cannot spawn a shell with it when "perl6-m" is not in PATH.
20:29
20:31 spider-mario left
timotimo that's interesting 20:34
i just, on a whim, ran perf record -- panda list
MVM_frame_dec_ref gets the third spot in the list of time spent
23% time spent in MVM_interp_run, which i suppose is okay? 20:36
20:37 effbiai left
jnthn Yes, that's the main interpreter runloop. 20:39
timotimo that's what i figured, ay
aye
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.
timotimo that seems about accurate, i suppose? 20:41
FROGGS I'd say so
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
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 denis_boyun__ left, effbiai joined
timotimo table processor? 20:43
lue well, processing a table with fixed-width columns.
timotimo oh
well, fair enough
lue perldoc.perl.org/perlpacktut.html#Packing-Text
timotimo you should check out the pod table stuff :P
20:45 denisboyun joined
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:45
timotimo oh 20:46
does panda --verbose list work well for anyone here? :) 20:49
lue looks good from here. (Unless there was a very recent panda update changing it, then I don't know) 20:51
timotimo okay
yeah, i just saw how i broke it :)
20:51 zby_home_ left
lue I assume StrPos and StrLen are still a part of Perl 6, just a very NYI one? 20:52
timotimo not 100% sure 20:53
i *think* they would be?
PerlJam What would the alternative be? :)
timotimo integers! 20:54
PerlJam great! What would they mean? ;)
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 rindolf left
timotimo mhm 20:55
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:56
timotimo mhh 20:57
people have not been using Perl 6 terribly much during that time, though :P 20:58
not enough dogfooding going on :P
20:58 kaare_ left
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.
(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
yoleaux U+0613 ARABIC SIGN RADI ALLAHOU ANHU [Mn] (◌ؓ)
U+2200 FOR ALL [Sm] (∀)
U+224C ALL EQUAL TO [Sm] (≌)
21:02 rurban1 joined
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:02
timotimo hmm 21:04
no easy way to get at the logotype without having intimate knowledge of github
21:05 gtodd left, jnap1 left 21:06 rurban1 left
BenGoldberg p6: say chr 0xd800 21:06
camelia niecza v24-109-g48a8de3: OUTPUT«\x{D800}␤» 21:07
..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…»
..rakudo-parrot b77755: OUTPUT«Invalid character for UTF-8 encoding␤␤ in block at /tmp/tmpfile:1␤␤»
..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
BenGoldberg hopes that that will, at some point in the future, produce a consistent exception on all VMs 21:08
21:08 denisboyun left 21:09 jnap joined 21:10 kivutar left
timotimo huh. 21:11
Unhandled exception: Method 'Stringy' not found for invocant of class 'NQPMu'
at <unknown>:1 (/home/timo/perl6/rakudo/../install/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)
this is me trying to install Imlib2 21:12
retupmoca timotimo: the Build.pm in that package is wrong. Possibly panda used it a little differently when it was written 21:16
21:16 kivutar joined 21:17 raiph joined
timotimo mhm 21:17
are you able to fix that and PR it?
retupmoca later tonight I might be able to look at it 21:18
I think the $*VM<config><...> things have changed as well
21:18 kivutar left
retupmoca or are different for moarvm at least 21:18
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
timotimo i'm unhappy about how annoying it is to compile native stuff to use with NativeCall
time to build Yet Another Build System 21:20
FROGGS no!
21:21 kivutar joined
BenGoldberg YABS? 21:22
21:22 bluescreen100 left
timotimo not overly fond of the idea at all 21:22
[Coke] dammit, what's wrong with make? ;) 21:23
retupmoca what if we just taught Build.pm how to call make?
[Coke] (seriously, though, make is ubiquitous and horrible and we can make it do what we want.)
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?
BenGoldberg It depends on the generator, I suppose 21:25
lue make is awesome if you use something like cmake :P 21:27
lue & 21:28
21:31 denisboyun joined
timotimo oh wow 21:31
the performance difference between %foo<a b c> = (1, 2, 3); and %foo<a> = 1; %foo<b> = 2; %foo<c> = 3; is huge 21:32
21:32 denis_boyun left
jnthn timotimo: So, is it the slicing or the assignment? 21:33
timotimo good question
but it's 4 seconds vs 75 seconds
timotimo tries more different codes 21:34
the slicing alone makes a difference of 10x, too
the difference of just assigning $a = 1; $b = 2; $c = 3; vs assigning ($a, $b, $c) = (1, 2, 3); is big, too 21:36
21:36 denis_boyun joined
timotimo 31s for 409600 times the tuple assignment, 1s for the same amount of times three simple assignments 21:37
21:37 denisboyun left
timotimo oh wow. 21:39
my @l = (1, 2, 3); $a = @l[0]; ... is 77s for the same amount of assignments
so that's not a likely optimization :P
BenGoldberg I would expect the tuple to be a little slower than the simple assignments, but not that much slower. 21:40
How slow is simply doing 'my @l = (1, 2, 3)' (for the same amount of assignments) without doing '$a = @l[0]...'? 21:42
21:43 denis_boyun left
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
BenGoldberg Also, '($a, $b, $c) = @l'
timotimo the for loop without anything in it takes 0.9 seconds
with the definition of @l outside the for loop it takes ... 21:44
17 seconds instead
having ($a, $b, $c) = @l inside the for and the definition outside gives me ...
37 seconds 21:45
21:45 denisboyun joined
timotimo so doing (...) = @foo assignment is a bit slower than using @l[0], @l[1] and @l[2] 21:45
21:46 kivutar left
timotimo i wonder if this is a case where the signature binder lowering could theoretically work? 21:47
21:47 dmol left
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:<,>
but that's probably not a big part of the problem
21:50 denisboyun left
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:53 kbaker left
timotimo it seem slike p6argvmarray seems to expect arguments, but when it gets none, it still does some kind of loop 21:54
so maybe i'll be able to optimize p6argvmarray()
no noticable change in performance for this particular test case, though 21:59
22:00 kivutar joined
timotimo well, the numbers are marginally lower, but it's probably all measurement noise 22:01
22:03 rurban1 joined 22:04 lustlife left
timotimo not seeing anything obviously optimizable in method STORE of Parcel, which is what I believe is doing the assignment work here 22:05
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:06
well, rather than creating a new method, it could just as well generate code in-line 22:07
22:09 rurban1 left
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
gnight #perl6
timotimo gnite FROGGS
jnthn FROGGS++ 22:12
'night
timotimo jnthn: would you think the necessary amount of analysis would be worth it for tuple assignment? 22:16
22:17 raiph left
jnthn timotimo: I think trying to do something in Optimizer for it is probably the wrong way to go... 22:17
22:18 pmurias left
timotimo could very well be. 22:18
should i stop barking up this tree then? :) 22:22
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
that sounds good
i wonder if i'll even recognize the language after that ;) 22:26
22:26 LLamaRider joined
jnthn The language, yes. The list guts maybe less so ;) 22:27
22:28 colomon left, colomon joined 22:34 raiph joined 22:51 rurban1 joined 22:54 treehug88 left
jnthn Time for some rest 22:54
'night, #perl6
timotimo gnite jnthn
23:00 kivutar left
timotimo if someone ends up fixing imlib2, mrhdias also has a binding to gd that could probably use the same Build.pm treatment 23:10
23:24 pdcawley left 23:27 pdcawley joined
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:28
(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
23:29 iolympian joined
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:31
(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:33
23:34 iolympian left
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:39
23:46 woolfy joined
lue experimentally drops StrPos and StrLen from his rewrite of S32::Str(ingy) 23:48
23:49 jnap left 23:55 lizmat joined
TimToady that's probably fine; those are pre-NFG concepts 23:57
23:58 jnap joined
lue Really? They predate NFG? That's surprising. 23:58
23:58 ajr_ left