»ö« 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 == dez 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 == dez 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/GkQY3wLkIrCould not find module Test to import symbols fromat /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 parensat /tmp/bT1Cubd80a:1------> if⏏( rand < Inf ) { require Test <&ok> }; oUnexpected 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/WXH7Ba3LMZUndeclared 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:142» | 03:04 | |
..rakudo-jvm 0035fa, rakudo-moar 0035fa: OUTPUT«use of uninitialized value of type Any in numeric context42» | |||
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/Diy1W9trDeCould not find module Test to import symbols fromat /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_dUndeclared 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)0Unhandled exception: Missing hll slurpy hash typeUnhandled exception: Missing hll slurpy array typeUnhandled 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«4480» | ||
..rakudo-parrot b77755, rakudo-jvm b77755: OUTPUT«00» | |||
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_ATMUndeclared 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 23 and 45 and 67 and 89 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 23 and 45 and 67 and 89 and 10» | ||
FROGGS | m: -> $a, $b { say "$a and $b" } for 1..10; | ||
camelia | rakudo-moar b77755: OUTPUT«1 and 23 and 45 and 67 and 89 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 23 and 45 and 67 and 89 and 10Not 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
|