»ö« 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.
TimToady doesn't even see where <.foo()> is parsed, offhand 00:00
must be coming from deeper down
jnthn Inherited from QRegex::P6Regex::Grammar iirc 00:01
TimToady if we just change that to parse EXPR instead of variable, will it magically do the right thing with <&foo('stuff')> ? 00:02
the other is obviously a different bug
that is, the :var variant
Quom TimToady: Doubt it :(
TimToady: I was looking at the code yesterday
jnthn Is it a parsing bug, or is it that the re-write done with we have a lexical rule messes things up?
Quom In... Cursor.pm? 00:03
But maybe I'm completely wrong
TimToady the <&foo()> is a parsing bug, the <foo()> is a rewrite problem, likely
rurban I get the same t/nativecall/01-basic.t problem with 32bit cygwin also
I'll look at it tomorrow
Quom rurban++ again :)
TimToady <&foo('bar')> attempts to parse with the MAIN variable rule, which of course can't understand the postfix 00:04
the <foo('bar')> actually makes the call, but fails to pass the arguments
rurban I like my new smokers: perl514.cpanel.net:8010/one_line_per_build
jnthn TimToady: Only in the lexical case, though? 00:06
TimToady presumably 00:07
I think we rely on passing args sometimes in the method case 00:08
lue r: grammar G { token TOP { <multiple(2.3)> }; token multiple($by) { (\-? <digit>+ [\. <digit>+]?) <?{ (+$0 / $by).narrow ~~ Int }> } }; G.parse("4.6").say; # jnthn: works here
camelia rakudo-parrot 522629, rakudo-jvm 522629, rakudo-moar 522629: OUTPUT«「4.6」␤ multiple => 「4.6」␤ 0 => 「4.6」␤ digit => 「4」␤ digit => 「6」␤␤»
jnthn Well, yeah, and the Rakudo grammar does it plenty too :)
lue jnthn: that's why I was initially confused as to why the my token version failed :) "but Grammar.nqp can do it!" 00:11
jnthn Urgh
INTERPOLATE doesn't know what to do with args. Worse, it uses args to convey stuff it needs to know to delegate correctly.
I suspect we shouldn't be using that here, though. 00:12
> my token foo($bar = "oops") { foo {say $bar} }; say "foo" ~~ /<foo("baz")>/ 00:16
baz
TimToady \o/
jnthn Guess I should spectest :)
TimToady me is testing a parsing patch for <&foo()>
jnthn is kinda ready for sleep :)
lue I have a grammar fix that's about ready to be committed and pushed too :D 00:17
jnthn Got all day tomorrow for Perl 6 things. Planning to work on Moar nativecall and maybe some Star prep bits.
Mouq jnthn: Yeah, sorry I wasn't very specific earlier with why it wouldn't Just Work 00:18
jnthn: I was doing stuffs
jnthn np 00:19
I'm not especially fast tonight either :)
TimToady one can force <&foo()> to parse by changing it to use EXPR at a= precedence, but the semantics are wrong, since it wants it to return the function pointer to call
when it thinks of it as a variable 00:20
so that will also take a deeper solution
dalek kudo/nom: 20193f6 | jnthn++ | src/ (2 files):
Fix arg passing of <foo(...)> where foo is lexical
00:22
jnthn Could use a test, but I'm heading off for the night :) 00:23
'night o/
lue jnthn o/ 00:24
TimToady o/
Quom has most of a GIF decoder written. Why? Dunno, why not? 02:08
dalek kudo/nom: 656089e | lue++ | src/Perl6/Grammar.nqp:
More descriptive failure for missing block

This brings Rakudo in line with STD on this matter, and fixes long-standing RT bug #66776.
02:09
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=66776
Quom lue++ 02:11
Quom m: my $x = Nil; $x //= 1; say $x 02:40
camelia rakudo-moar 20193f: OUTPUT«1␤»
Quom m: my $x := Nil; $x //= 1; say $x
camelia rakudo-moar 20193f: OUTPUT«Nil␤»
Quom n: my $x := Nil; $x //= 1; say $x
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/bD_8rvcImF line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ at /home/p6e…»
lue holy déjà vu! :D rt.perl.org/Ticket/Display.html?id=77152 02:49
rurban1 That's now my public buildbot url: perl514.cpanel.net/build/one_line_per_build 03:15
rurban1 rakudo fails with parrot=master because nqp is hardcoded to a failing version. nqp=master works fine 03:16
Quom rurban1: git describe > tools/build/PARROT_REVISION or some such in the nqp repo 03:18
err jk
git describe in the parrot repo 03:19
Quom and then it goes into tools/build/PARROT_REVISION 03:19
Quom is super unhelpful tonight 03:21
lue Looking at UTS#18, RL1.3: union would be <rule + rule>, set difference would be <rule - rule>, but I can quite figure out set intersection, except perhaps [<rule> & <rule>] 03:59
Quom lue: "Terms may also be combined using & for set intersection, | for set union, and ^ for symmetric set difference" 04:00
lue Quom: within <> rules?
ooh, we actually have symmetric set difference? Cool!
Quom lue: Mmhm. Very NYI though 04:01
std: /<+ :HexDigit & :Upper >/
camelia std 09dda5b: OUTPUT«ok 00:01 123m␤»
Quom m: /<+ :HexDigit & :Upper >/
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/n4x0yRgf7J␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/n4x0yRgf7J:1␤------> /<+ :HexDigit ⏏& :Upper >/␤ expecting any of:␤ …»
Quom n: /<+ :HexDigit & :Upper >/
camelia ( no output )
Quom std: /<+ (:HexDigit & :Upper) + [q] >/ 04:02
camelia std 09dda5b: OUTPUT«ok 00:01 124m␤»
Quom m: /<+ (:HexDigit & :Upper) + [q] >/
camelia rakudo-moar 656089: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/owzrtsaIgX:1␤------> /<+ ⏏(:HexDigit & :Upper) + [q] >/␤Unrecognized regex metacharacter + (must be quoted to match l…»
lue I'm assuming + is almost, but not quite, like | 04:03
Quom lue: So riddle me this, what's the difference between "." and "<.>" in a regex?
lue According to S05, one grapheme. So i.e., /<.>/ == /./ == /:nfg ./ == /:nfc <.>/ == /:nfd <.>/ == ... 04:04
(<rule + rule> probably is handled slightly differently than <rule | rule>, to be clear about that statement of mine) 04:05
almost forgot, <.> is also equivalent to <G/./> :P 04:07
Quom std: /:HexDigit:Upper/ 04:08
camelia std 09dda5b: OUTPUT«===SORRY!===␤Unrecognized regex modifier :HexDigit at /tmp/0YqZRwBeD8 line 1:␤------> /:HexDigit⏏:Upper/␤Unrecognized regex modifier :Upper at /tmp/0YqZRwBeD8 line 1:␤------> /:HexDigit:Upper⏏/…»
Quom std: /<:HexDigit:Upper>/ 04:09
camelia std 09dda5b: OUTPUT«===SORRY!===␤Unable to parse metachar at /tmp/_Cuno0zRTF line 1:␤------> /⏏<:HexDigit:Upper>/␤Couldn't find final '>'; gave up at /tmp/_Cuno0zRTF line 1:␤------> /<:HexDigit⏏:Upper>/␤ expect…»
Quom m: /<:HexDigit:Upper>/
camelia ( no output )
Quom Yeah
>_>
m: /<:HexDigit|:Upper>/
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/zvKHyeOtcm␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/zvKHyeOtcm:1␤------> /<:HexDigit⏏|:Upper>/␤ expecting any of:␤ …»
Quom m: /<:HexDigit | :Upper>/
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/vGwm5DOYk_␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/vGwm5DOYk_:1␤------> /<:HexDigit ⏏| :Upper>/␤ expecting any of:␤ …»
lue std: /<:HexDigit | :Upper>/
camelia std 09dda5b: OUTPUT«ok 00:01 123m␤»
Quom Rakudo cheats hardcore
the rule for that assertion is about as sophisticated as /[<[+-]>['['<bla>']' | ':'<bla>]]+/ 04:11
lue Ooh, I wonder how many people would object if I spec'd unicode set ops for those subrules, ∪ (union), ∩ (intersection), and ⊖ (symmetric difference) :) 04:15
Quom Compare: github.com/perl6/nqp/blob/master/s...r.nqp#L345 and github.com/perl6/std/blob/master/STD.pm6#L5220
lue oh, and ∖ for set difference of course 04:16
Quom: yeah, I'd say nqp's version could use some work :) 04:17
Quom lue: Some people may look at you funny, but I don't think anyone would redact those set changes 04:18
s/set/spec/
Unless they do, of course
lue Quom: either of set and spec works there though :)
That's why I haven't already made the changes, I'd rather other people knew ahead of time. 04:19
( by the way, P6 only has (-) for set difference, not the non-Texas ∖ version. I imagine "looks too much like backslash" may be the answer ☹) 04:20
Quom lue: Waaat? 04:21
lue Last I checked, anyway
Quom m: say set(1,2,3,42) ∖ set(2,3) # pretty sure otherwise...
camelia rakudo-moar 656089: OUTPUT«set(1, 42)␤»
Quom n: say set(1,2,3,42) ∖ set(2,3)
camelia niecza v24-109-g48a8de3: OUTPUT«set(1, 42)␤»
Quom std: say set(1,2,3,42) ∖ set(2,3)
camelia std 09dda5b: OUTPUT«===SORRY!===␤Confused at /tmp/vfk9Ow5J65 line 1:␤------> say set(1,2,3,42) ⏏∖ set(2,3)␤ expecting any of:␤ feed_separator␤ infix or meta-infix␤ infixed function␤ statement modifier loop␤Parse failed␤FA…»
lue oh! That's cool :)
Quom std: say set(1,2,3,42) ∪ set(2,3) 04:22
camelia std 09dda5b: OUTPUT«===SORRY!===␤Confused at /tmp/tqY6sQyPdw line 1:␤------> say set(1,2,3,42) ⏏∪ set(2,3)␤ expecting any of:␤ feed_separator␤ infix or meta-infix␤ infixed function␤ statement modifier loop␤Parse failed␤FA…»
Quom Silly STD
lue m: say set(1,2,3,42) ⊖ set(2,3) # betcha perl6 doesn't have THIS!
camelia rakudo-moar 656089: OUTPUT«set(1, 42)␤»
lue well then
Quom lue: :)
lue m: say set(1,2,3,42) (^) set(2,3)
camelia rakudo-moar 656089: OUTPUT«set(1, 42)␤»
Quom lue: github.com/rakudo/rakudo/blob/nom/...erators.pm 04:23
Or doc.perl6.org/type/Set + doc.perl6.org/type/Bag
I should really do the operator documentation for Bag there :/ 04:24
lue [in retrospect, having the grapheme (de-)exploders use a leading alphabetic character may not be the best of choices. Though I can't think of a proper ASCII(ish) leading symbol]
Quom lue: What's wrong with just scoped :nfkd? 04:25
etc
lue Ask TimToady :) I think the idea is to explicitly check just one grapheme, instead of potentially many. 04:26
r: constant term:<<"\x2205">> = set();
camelia rakudo-jvm 656089: OUTPUT«(timeout)» 04:27
( no output )
Quom r: constant term:["\x2205"] = set(); 04:31
camelia rakudo-moar 656089: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤»
..rakudo-parrot 656089, rakudo-jvm 656089: OUTPUT«===SORRY!===␤No such method 'ast' for invocant of type 'NQPMu'␤»
Quom Dang :(
r: my $x = s; constant term:<<"$x">> = set(); say s 04:32
camelia rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter = (must be quoted to match literally)␤at /tmp/tmpfile:1␤------> my $x = s; constant term:<<"$x">> ⏏= set(); say s␤Couldn't find terminator ;␤a…»
..rakudo-parrot 656089: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀…»
Quom r: my $x = s; constant term:<<$x>> = set(); say s
camelia rakudo-parrot 656089: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀…»
..rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter = (must be quoted to match literally)␤at /tmp/tmpfile:1␤------> my $x = s; constant term:<<$x>> ⏏= set(); say s␤Couldn't find terminator ;␤at …»
Quom Oh
I'm dumb
r: my $x = "s"; constant term:<<"$x">> = set(); say s
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Colon pair value '"$x"' too complex to use in name␤at /tmp/tmpfile:1␤------> my $x = "s"; constant term:<<"$x">>⏏ = set(); say…»
Quom At least it's a nice error :) 04:33
lue Hrm, looks like to get \n to work properly, I'd have to modify VM-specific stuff in NQP. I think I found where the change needs to happen, just no clue how :/ 04:54
(for those curious, the full list \n needs to support in P6 is <[\xA..\xD]> | \xD\xA | \x85 | \x2028 | \x2029 ) 04:56
FROGGS .tell lue The current understanding is that this field is either set by pause/cpan or by panda when installing from github 08:29
yoleaux FROGGS: I'll pass your message to lue.
FROGGS p6: my %a; %a<foo> = <a b c>; %a<foo>.=uniq; say %a<foo> 08:55
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089, niecza v24-109-g48a8de3: OUTPUT«a b c␤»
FROGGS \o/
jnthn morning, #perl6 09:35
JimmyZ morning, jnthn 09:36
parrot.org is down? 09:37
FROGGS morning 09:39
JimmyZ: seems like 09:40
brrt morning all 09:50
what
such fuuu
ehm... 09:51
parrot's channel was irc.parrot.org right
ehm
irc.perl.org #parrot
FROGGS right 09:53
brrt well, thats empty, too 09:55
masak quick, someone get rurban to assert that Parrot is still alive and well! 10:06
brrt warning: sarcasm detection is ambigous 10:09
ambiguous
masak sorry, I should take care not to kick a sleeping Parrot. 10:10
brrt … poor parrot :-(
anyway
moving on
:-)
jnthn m: for lines { .say } 10:24
camelia rakudo-moar 656089: OUTPUT«===SORRY!===␤Function 'lines' needs parens to avoid taking the block␤at /tmp/fHufTTh2cc:1␤------> for lines { .say }⏏<EOL>␤Missing block (apparently taken by 'lines')␤at /tmp/fHufTTh2cc:1␤------> for …»
jnthn nice :)
lue++
Woodi morning and have a nice spring :) 10:41
FROGGS hi Woodi 10:42
FROGGS m: my %foo = a => 1, b => 2; say %foo{ (%foo (&) %foo).keys }.kv # how do I get the keys back? 11:12
camelia rakudo-moar 656089: OUTPUT«0 1 1 2␤»
FROGGS ohh, adverbs ftw!
m: my %foo = a => 1, b => 2; say %foo{ (%foo (&) %foo).keys }:kv
camelia rakudo-moar 656089: OUTPUT«a 1 b 2␤»
FROGGS m: my %foo = a => 1, b => 2; say %foo{ (%foo (&) %foo).keys }:kv.perl 11:13
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/ksH6fcJB5T␤Two terms in a row␤at /tmp/ksH6fcJB5T:1␤------> > 2; say %foo{ (%foo (&) %foo).keys }:kv⏏.perl␤ expecting any of:␤ pair value␤ infix stop…»
FROGGS m: my %foo = a => 1, b => 2; say (%foo{ (%foo (&) %foo).keys }:kv).perl
camelia rakudo-moar 656089: OUTPUT«(("a", 1), ("b", 2))␤»
colomon m: role A { method a() { say self.WHAT; }; }; class B does A { }; B.new.a 11:40
camelia rakudo-moar 656089: OUTPUT«(B)␤»
colomon m: role A { method a() { say "{ self.WHAT }"; }; }; class B does A { }; B.new.a
camelia rakudo-moar 656089: OUTPUT«use of uninitialized value of type B in string context␤␤»
colomon :/
FROGGS m: role A { method a() { say "{ self.WHAT() }"; }; }; class B does A { }; B.new.a 11:41
camelia rakudo-moar 656089: OUTPUT«use of uninitialized value of type B in string context␤␤»
FROGGS well, that is correct
m: role A { method a() { say "{ self.WHAT.^name }"; }; }; class B does A { }; B.new.a 11:42
camelia rakudo-moar 656089: OUTPUT«B␤»
jnthn colomon: .Str vs .gist 11:43
colomon jnthn++ # that fixed my code 11:44
colomon is sure he has made that mistake before... 11:50
mscha perl6: say i**2; 12:13
camelia niecza v24-109-g48a8de3: OUTPUT«-1+1.2246063538223773E-16i␤»
..rakudo-parrot 656089, rakudo-moar 656089: OUTPUT«-1+1.22464679914735e-16i␤»
..rakudo-jvm 656089: OUTPUT«-1+1.2246467991473532E-16i␤»
mscha perl6: say i*i; 12:14
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089, niecza v24-109-g48a8de3: OUTPUT«-1+0i␤»
dalek kudo-star-daily: 3afb94d | coke++ | log/ (5 files):
today (automated commit)
12:21
masak perl6: say 0.5 + 0.5 12:44
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089, niecza v24-109-g48a8de3: OUTPUT«1␤»
masak perl6: say (0.5 + 0.5).^name
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089, niecza v24-109-g48a8de3: OUTPUT«Rat␤»
jnthn perl6: say (0.5 + 0.5).narrow.^name
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method narrow in type Rat␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤…»
..rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«Int␤»
masak oh, .narrow
r: say (i*i).narrow.^name
dalek volaj: 4f32216 | jnthn++ | lib/NativeCall.pm6:
Guess .dll on Windows when no data.

If you ignore the link error and use a DLL from another platform's build, this gets things working on JVM on Windows.
volaj: ea7f1fb | jnthn++ | lib/NativeCall.pm6:
Updates to CArray to convey type to REPR compose.

This will be needed for Moar to be able to handle CArray. Can maybe get some further cleanups here in the future once everyone switches over to the compose protocol. Didn't try on Parrot yet, but no JVM regression on CArray tests with this patch.
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«Int␤»
masak Rakudo++
jnthn Suddenly dalek :)
dalek ecs: 8fdda4d | (Elizabeth Mattijsen)++ | S11-modules.pod:
Rename META.info -> META6.json

Andreas Koenig pointed out that .info is being used for quite some other things on the Open Source world. So we (FROGGS + lizmat) decided to change the name in such a way, that it is more in line with the world and still an easy way to distinguish a Perl 6 distribution from other distributions.
13:06
ecs: 9acccd1 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Merge branch 'master' of github.com/perl6/specs
[Coke] where is the GSOC channel? irssi seems to think it's dead, and isn't telling me the name of the channel it used to be. 13:16
masak so... .IO.l tells me if something is a symlink -- but how do I answer the question "what does it link to?" -- either using Perl 5/6 itself, or with a Unix command. 13:21
...?
moritz perldoc -f readlink 13:22
p5 13:23
in unix, 'ls -l' tells you where it goes, and 'chase' recursively follows symlinks
masak hm, I don't seem to have `chase` installed. 13:23
what I'm writing is a Perl 6 program, so I guess I'll just invoke Perl 5 from it for now. 13:24
moritz++
moritz mlenz@mlenz-workstation:~/p6/rakudo$ git grep readlink
src/core/IO.pm: # NYI: requires readlink()
masak heh. 13:25
FROGGS [Coke]: #soc-help on irc.perl.org 13:35
dalek ecs: 1ebc34a | (Elizabeth Mattijsen)++ | S11-modules.pod:
Use "perl" to indicate necessary Perl version
masak what's the way to die without a stacktrace in Perl 6 again?
[Coke] 13:36
FROGGS m: die "huh" 13:36
camelia rakudo-moar 656089: OUTPUT«huh␤ in block at /tmp/47ffYxdZ6v:1␤␤»
FROGGS m: fail "huh"
camelia rakudo-moar 656089: OUTPUT«Unhandled exception: huh␤ at src/gen/m-CORE.setting:11018 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:129)␤ from src/gen/m-CORE.setting:12444 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:…»
[Coke] ah. -all- my irc.perl.org connections were dead. 13:37
FROGGS masak: perhaps just say() and exit 1 :o)
jnthn note and exit 1, I guess
masak bah 13:47
stacktraces, whether you want it or not.
masak they're absolutely useless when the script is a small Unix-like tool with no call stack at all. 13:47
jnthn I just told you how to do a mesage and exit without one. 13:47
*message
masak right. 13:48
jnthn If you're going to do it in a bunch of places, factor it out into a sub.
masak in other words, Perl 6's &die is not up to the task.
jnthn If you're doing it a lot and have a good name for said sub, suggest it for inclusion i core.
masak &die-without-the-bloody-stacktrace :)
jnthn Right, it's for throwing an exception, which means the situation is *exceptional*. 13:49
masak looks up synonyms of 'die'
"conk" :P
jnthn hehe
masak "expire" is pretty good, because it looks a bit like "exit". 13:50
jnthn Bit overloaded with things like cache expiration though...
perish :)
masak "stop" 13:51
no, that doesn't convey "with a message" well enough...
"halt" could work.
jnthn yeah
jnthn terminate is a bit long 13:52
choke :)
masak a bit graphic, pehaps. 13:53
jnthn Yeah, true :) 13:53
lizmat actually, in one of my custom test modules 13:55
I've used "urgh" as the name of a sub to quit testing immediately without any stack / reports
"urgh" being the sound the bad guy makes when he bites the dust in a comic 13:56
flussenc1 "exeunt" would be close to exit, while having strong textual connotations... 13:57
lizmat dwfa as in die without further ado 13:59
lizmat r: my $a = <a b b c>; say $a.uniq.perl; say uniq($a).perl # still not sure whether this inconsistency is correct 14:06
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«("a", "b", "c").list␤(("a", "b", "b", "c"),).list␤»
jnthn lizmat: Yes, that one is
colomon lizmat: do you think it makes sense to call uniq on a list of lists?
jnthn lizmat: A method call is always on the contents of a scalar, whatever it may be. 14:08
lizmat ok, that makes sense
masak kinda likes "urgh" 14:12
dylanwh has used bork() in similar contexts.
dalek ecs: 2168510 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add lemma's for PAUSE and CPAN
14:20
mscha Why not simply: exit "something went wrong" 14:23
or if you want a different value: exit "something went very wrong", 2 14:24
moritz has .stop been proposed already? 14:24
masak TimToady: S09 suggestion: rename :map to :project 14:25
mscha: I kinda like that -- but I'd want it as `exit 2, :message("something went very wrong");`
[Coke] (die with a message) ABEND 14:26
lizmat notices that TimToady's uniq/squish changes cause regressions in uniq.t/squish.t 14:59
FROGGS++ seems to think it may be a problem in gather take 15:00
wlll, actually it appears to be a subtle difference between .take and take($_)
masak r: $_ = (1, 2, 3); .say for gather .take 15:04
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«1␤2␤3␤»
masak r: $_ = (1, 2, 3); .say for gather take($_)
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«1 2 3␤»
masak yep.
same as we talked about before with $a.uniq vs uniq($a), I think. 15:05
FROGGS masak: yes, maybe it takes a while until it sinks in :o)
dalek kudo/nom: 01f1ca4 | (Elizabeth Mattijsen)++ | src/core/List.pm:
Fix test failures on uniq.t/squish.t

Calling .take flattens, whereas take($_) doesn't. So when taking a hash with a single key/value pair, only the pair was taken in the .take case. This broke the tests.
15:20
ast: 76bf067 | (Elizabeth Mattijsen)++ | S32-list/uniq.t:
Remove reference to discussion on p6l
ast: c241c7d | (Elizabeth Mattijsen)++ | S32-list/ (2 files):
Add tests for #121434, can now be closed
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121434 15:21
colomon m: my @a := 1, -> $x { $x + 2, $x + 2 } … * ; say @a[^10] 15:30
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/8ROSl8Qn4B␤Two terms in a row␤at /tmp/8ROSl8Qn4B:1␤------> my @a := 1, -> $x { $x + 2, $x + 2 } ⏏… * ; say @a[^10]␤ expecting any of:␤ postfix␤ st…»
dalek kudo/nom: 4a3a406 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Changelog entry for .=uniq/squish fix
15:31
colomon m: my @a := 1, -> $x { $x + 2 } … * ; say @a[^10] 15:32
camelia rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/bHTAEEDjL9␤Two terms in a row␤at /tmp/bHTAEEDjL9:1␤------> my @a := 1, -> $x { $x + 2 } ⏏… * ; say @a[^10]␤ expecting any of:␤ postfix␤ statement …»
colomon ack, bad Colloquy, bad. 15:33
colomon m: gist.github.com/colomon/9550146 15:35
camelia rakudo-moar 656089: OUTPUT«(timeout)»
colomon whoops
m: gist.github.com/colomon/9550146
camelia rakudo-moar 656089: OUTPUT«0.5 0.75 0.5625 0.703125 0.585938 0.683594 0.598145 0.672913 0.605621 0.666183␤»
colomon m: gist.github.com/colomon/9550146 15:37
camelia rakudo-moar 656089: OUTPUT«0.633506773205973␤»
colomon m: gist.github.com/colomon/9550146 15:39
camelia rakudo-moar 656089: OUTPUT«3.15703017645517␤»
colomon there we go 15:39
m: gist.github.com/colomon/9550146
camelia rakudo-moar 656089: OUTPUT«3.1493784731686␤»
colomon m: gist.github.com/colomon/9550146 15:40
camelia rakudo-moar 656089: OUTPUT«3.14472328668891␤»
colomon m: gist.github.com/colomon/9550146 15:41
camelia rakudo-moar 656089: OUTPUT«3.14316070553226␤» 15:41
masak [\*] @b Z/ 15:42
looks like a very confused \o/ :)
TimToady doesn't look like it converges very fast... 15:44
colomon TimToady: you can say that again
but it's a cool equation, easily implemented, at any rate.
TimToady 1,2,2,4,4,4,4,... is a cool sequence 15:45
colomon (note that this one is 2, 2, 4, 4, 6, 6, 8, 8 … ) 15:45
TimToady though I'd guess people would expect the next number to be 8 rather than 6
TimToady m: my @a := 1, -> $x { $x + 2, $x + 2 } ... *; say @a[^20] 15:46
camelia rakudo-moar 656089: OUTPUT«1 3 3 5 5 7 7 9 9 11 11 13 13 15 15 17 17 19 19 21 21 23 23 25 25 27 27 29 29 31 31 33 33 35 35 37 37 39 39␤»
colomon right
TimToady why doesn't that double the number of entries each time? 15:47
colomon TimToady
ack
masak TimToady: because the block only takes one parameter?
colomon TimToady: sequence op takes the last thing on the sequence
doesn't matter how many you add
masak TimToady: you're thinking of some different semantics :P 15:48
japhb__ I have an array of strings. I want to check for certain special strings, do something in response to finding them, and remove them from the array. Array order is not critical -- it's effectively a set in disguise -- and array identity is not important (I can create a new array if needed). What's the most idiomatic and terse way to do this? In Perl 5, I would do "my %hash = map {($_ => 1)} @array; thing_a() if delete $hash{key_a}; thing_b() if delete $hash{ke
TimToady goes for a second cup of coffee to see if that doubles his previous output 15:49
colomon just hopes TimToady doesn't come back and re-spec the sequence op 15:50
TimToady nope, I figgered it out while I was pouring the second cup of coffee 15:51
colomon japhb__: @array.grep({ if Test($_) { something($_); False; } else { True; }) 15:51
japhb__: though sideeffects in grep make me kind of queasy 15:52
colomon japhb__: my @special = @array.grep({ Test($_) }); @special.map({ something($_) }); @array = (@array (-) @special).lis 15:53
errr, .list
Mouq @array.map: {when "key_a" { thing_a }; when "key_b" { thing_b } }
colomon has been using (-) a good bit in his $work code 15:54
japhb__ Mouq: Deleting the special values from the array is a key part of the question. :-) 15:59
japhb__ Colomon's first answer is interesting, despite his queasiness at suggesting it. :-) 16:00
colomon japhb__: and my second answer doesn't work -- it's effectively also calling uniq on the array
Mouq japhb__: Just use a Set and :delete?
colomon Mouq: that too is like calling uniq on the array 16:01
of course, if it really is a set in meaning anyway...
Mouq my $set = set @array; thing_a if $set<key_a>:delete; etc
japhb__ colomon: Yeah, the values were already uniq at the start (it's a list of active capability flags, effectively) 16:02
Mouq: Hmmm, I'd forgotten that :delete works on sets. 16:03
colomon wonders if that has been tested 16:04
TimToady sets are immutable
might work on a SetHash
japhb__ m: my @array = <a b c>; my $set = set @array; say "saw a" if $set<a>:delete; say "saw q" if $set<q>:delete; @array = $set.list; say @array;
camelia rakudo-moar 656089: OUTPUT«Cannot call 'delete_key' on an immutable 'Set'␤ in block at src/gen/m-CORE.setting:1932␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2554␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2541␤ in block at /tmp/aKpwHgkY4t:1␤␤»
lizmat r: (<a b c>.Set)<a>:delete 16:05
camelia rakudo-parrot 656089: OUTPUT«Cannot call 'delete_key' on an immutable 'Set'␤ in block at gen/parrot/CORE.setting:1936␤ in sub postcircumfix:<{ }> at gen/parrot/CORE.setting:2558␤ in sub postcircumfix:<{ }> at gen/parrot/CORE.setting:2545␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 656089: OUTPUT«Cannot call 'delete_key' on an immutable 'Set'␤ in block at gen/jvm/CORE.setting:1932␤ in sub postcircumfix:<{ }> at gen/jvm/CORE.setting:2554␤ in sub postcircumfix:<{ }> at gen/jvm/CORE.setting:2541␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 656089: OUTPUT«Cannot call 'delete_key' on an immutable 'Set'␤ in block at src/gen/m-CORE.setting:1932␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2554␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2541␤ in block at /tmp/tmpfile:1␤␤»
japhb__ TimToady: What's the idiom for making a SetHash from an array?
colomon .SetHash
colomon hopes he has it right today
lizmat r: <a b c>.SetHash.perl.say 16:06
camelia rakudo-parrot 656089, rakudo-moar 656089: OUTPUT«SetHash.new("a","b","c")␤»
..rakudo-jvm 656089: OUTPUT«SetHash.new("b","a","c")␤»
japhb__ m: my @array = <a b c>; my $set = @array.SetHash; say "saw a" if $set<a>:delete; say "saw q" if $set<q>:delete; @array = $set.list; say @array;
camelia rakudo-moar 656089: OUTPUT«saw a␤b c␤»
japhb__ Oooh, that will work nicely.
TimToady usually you're building up a SetHash one value at a time, so $sethash{$key}++ is the normal thing :)
colomon $sethash{$key}-- works too? 16:07
lizmat yes
TimToady specced to
colomon afk # "Now now now READ!" -- a certain five year old, over and over again
TimToady and lizmat++ put a lot of work into making it work
lizmat r: my $s= <a b c>.SetHash; $s<a>--; say $a.perl
japhb__ TimToady: Nah, my array is actually the result of a parser (match objects thrown away by that point, the parser is a separate module).
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> s= <a b c>.SetHash; $s<a>--; say $a.perl⏏<EOL>␤ expecting any…»
lizmat r: my $s= <a b c>.SetHash; $s<a>--; say $s.perl
camelia rakudo-parrot 656089, rakudo-jvm 656089, rakudo-moar 656089: OUTPUT«SetHash.new("b","c")␤»
lizmat r: my $s= <a b c>.SetHash; $s<a>++; say $s.perl 16:08
camelia rakudo-parrot 656089, rakudo-moar 656089: OUTPUT«SetHash.new("a","b","c")␤»
..rakudo-jvm 656089: OUTPUT«SetHash.new("b","a","c")␤»
lizmat r: my $s= <a b c>.BagHash; $s<a>++; say $s.perl
camelia rakudo-jvm 656089: OUTPUT«("b"=>1,"a"=>2,"c"=>1).BagHash␤»
..rakudo-parrot 656089, rakudo-moar 656089: OUTPUT«("a"=>2,"b"=>1,"c"=>1).BagHash␤»
dalek ecs: 7b30bf2 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Make CPAN/Github more generic "autorities"
16:11
lizmat oops, *authorities
Mouq m: my @array = gather for <a b c> {when "a" {say "saw a"};when "q" {say "saw q"}}; say @array 16:12
camelia rakudo-moar 656089: OUTPUT«saw a␤␤»
Mouq m: my @array = gather for <a b c> {when "a" {say "saw a"};when "q" {say "saw q"};default{.take}}; say @array
camelia rakudo-moar 656089: OUTPUT«saw a␤b c␤»
lizmat while working again on S11/S22, I'm coming to the conclusion that "auth" (such as cpan:JRANDOM) 16:31
is really a combination of "authority" and "userid" 16:32
and that "author" would be an optional (possibly real name) of the author / last maintainer
to add to this, I think we need to split off the content delivery part from the authority 16:33
CPAN in Perl 5 is an example of being an authority *and* a content delivery
what we're doing now at the QA hackathon, is starting to use CPAN as a content delivery system, but not yet as an authority 16:34
the current Perl6 ecosystem / panda, is an example of an authority only
the content delivery there is done by github
TimToady we mainly have to be careful to preserve the concept of "identity", so we never accidentally install two different things thinking they're the same thing
but github hashes mostly solve that 16:35
lizmat so the combination of the auth cpan:JRANDOM and ver 1.0 would be an identity ? 16:36
TimToady well, and the module name
lizmat of course, yes
TimToady that's assuming cpan never allows v1.0 to be redefined
but maybe we should be pushing cpan toward cryptochecksums
lizmat techincally, PAUSE only checks the names of tarballs 16:37
you can only upload a tarball with the same name once
PAUSE already does checksums (SHA1, SHA256 and MD5) 16:38
lizmat in my view, an authority is responsible for selecting the content for a given distribution request 16:39
specifically, if there is *no* auth and/or no version, it should give the content that is best for the requestor 16:40
whatever the authority decides is best
in the Perl 5 CPAN case, this is from the module list
TimToady that is something different from auth, so should probably have a different name 16:41
lizmat for Perl 6 I was thinking we need to generalize that into functionality that an authority (CPAN / ecosystem / some company's own authority) would mean
TimToady it's something that decides what a wildcard auth meatns
*means
lizmat indeed
TimToady auth as a concept has nothing to do with retrieval, only who says what that name/version mean exactly 16:42
mixing that up with retrieval seems like a confusion to me
yes, it's a kind of authority, but I'd rather give it a different name to avoid confusion 16:43
lizmat ecosystem ?
TimToady well, it's a decider of wildcards, like a path searcher, or some such 16:44
it's a recommender, an oracle, a travel agent
lizmat hmmm... I see this process as non-automatic, essentially community driven 16:45
TimToady it's an editorial function, yes
it's like an editor picking which authors you get to read
lizmat use Novel; 16:46
indeed
however, this is not during runtime, this is to pick for installation
once it is installed, we already have all bases covered (I think)
TimToady it's like a book's identity is its author, its name, its revision 16:47
that's the S11 meaning of auth
TimToady just that some authors are, like, companies or groups 16:47
lizmat indeed, but if somebody says: "give me a good book on Foo", which one will one get ?
TimToady but we should keep the publishing/bookselling as a separate concept
TimToady just don't want to usurp "auth" for that somebody instead of the original author 16:48
[Coke] "what's up?" explosm.net/comics/3493/ ISTR this might relate to masak. 16:49
lizmat what we need, is some community driven / accepted way of handling incomplete identity requests
similar to Perl5's module list
TimToady oh, btw, lizmat++ for fixing the .take thing
lizmat yw :-)
dalek p/rotwang/parallel-make-gh152: 6ad73ae | (Bartłomiej Palmowski)++ | / (3 files):
Fix parallel make GH #152

just not on netbsd
Analysis and Patch by Rotwang: 1) Inside nqp's main makefile three libraries have the same make recursive jump. Which means that more than one make instance (separate processes) will try to build the same objects.
2) dyncall makefiles fail due to:
  lists.gnu.org/archive/html/bug-make...00019.html
16:50
lizmat FROGGS++ found the fix, really
arnsholt jnthn: FYI, I've started a branch to skip the stringification step of JAST to bytecode compilation
TimToady but sure, especially when an author goes silent and a different author's fork becomes the new standard
arnsholt I think it should be mostly a matter of putting in the elbow-grease (knock on wood) 16:50
TimToady you need such editorial control not just at the community level, but at the company level as well, maybe more so than community control even 16:51
since companies tend to be more risk adverse than the community
lizmat I was using community in a loose sense here
TimToady okay, just wanted to make sure the concept stays multi-level :) 16:52
lizmat the way I see it, is that the first part of the auth
is something that indicates what I just called "authority"
but maybe "ecosystem" is better
TimToady it's a false indication, I think 16:52
lizmat in the sense that we can have multiple ecosystems 16:52
from which to install distributions
TimToady the editorial function really has very little to do with the original naming authority 16:53
lizmat true
but we need something here to really have things starting to work
TimToady think about how URLs work; editorial work is almost always done with other people's URLs, not one's own
jnthn arnsholt: Awesome. Did you see my "why things don't quite work on Windows for perl6-j NativeCall" from yesterday?
TimToady so trying to read more into the URL than original authorship would be mistake 16:54
same with the "cpan:" or the "github" prefix, it should only be identity, not editorial
lizmat so you would only see CPAN and github as content delivery systems 16:55
or any place where to get distributions
TimToady and how would you pick between those if the editor has to be one or the other?
lizmat and just have a single editor ?
skids
.oO(other environments use "publisher")
16:56
TimToady would just prefer that the editor not be given a name that would confuse it with "auth"
which is more of a URL concept
lizmat when you're installing a module, you most likely already have selected the content delivery system to install from
TimToady sure, but there are maybe two different things called 'cpan' here. or maybe the auth should be 'pause:' instead of 'cpan:' 16:57
lizmat indeed, the content delivery part, and the part that tells you which distribution to download for "Foo" (any author/any version) 16:58
arnsholt jnthn: No, I didn't 17:00
arnsholt scrollbacks 17:01
lizmat QA hackathon midway standup time&
TimToady has to go watch the new Miyazaki movie now :) 17:04
arnsholt jnthn: Cheers, those are exactly the kinds of thing I expected might happen 17:06
lizmat TimToady: recommendation manager (as a term instead of authority) 17:10
colomon TimToady++ 17:15
rurban TimToady: I cried at this movie. Very good
colomon is several Miyazaki movies behind at this point.
dalek ecs: 14ba243 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Spec "production" flag in META6.json
17:32
lizmat QA hackathon dinner& 17:34
arnsholt jnthn: Bah. There's no ldout in Perl's %Config 17:50
Maybe it's in ExtUtils somewhere
timotimo o/ 18:12
lue hello world o/ 18:28
yoleaux 08:29Z <FROGGS> lue: The current understanding is that this field is either set by pause/cpan or by panda when installing from github
lue FROGGS: I've just come to the conclusion that I should wait for all the hackathon-related dust to settle, and to read the resultant changes, before really complaining about anything. :) 18:29
[I suppose I was just surprised that a critical part of identifying any given module was suddenly changed in how it's set] 18:30
FROGGS lue: yes you are right, it is likely to change again because we are just in the transition from speccing to implementing it 18:31
dalek volaj: ef713c4 | jnthn++ | t/06-struct.c:
Tweak 06-struct.c to cope with MSVC.

Treats long as 32-bit even on a 64-bit box.
18:39
volaj: be4edd4 | jnthn++ | t/06-struct.t:
Fix assignment/binding confusion.
volaj: b970480 | jnthn++ | t/06-struct.t:
Correct test message.
volaj: 2454ace | jnthn++ | t/07-writebarrier.t:
Another container avoidance in binding.
timotimo i still need to find some place to stay for the GPW in 2 weeks
nwc10 OK, so I have a nice fresh perl6-m 18:58
how do I gest zavolaj?
nwc10 test 19:02
moritz nwc10: since it has no dependencies, cloning the zavolaj repo and building it is probably faster than using panda 19:14
nwc10 it's not clear how to "build" it
but I sort of answered the question on #moarvm
raiph m: for $*IN {.say} 19:17
camelia rakudo-moar 4a3a40: OUTPUT«Failed to write bytes to filehandle: bad file descriptor␤ in method print at src/gen/m-CORE.setting:13550␤ in method print at src/gen/m-CORE.setting:13548␤ in method say at src/gen/m-CORE.setting:13562␤ in method say at src/gen/m-CORE.setting:1…»
raiph ww
m: lines 19:19
camelia rakudo-moar 4a3a40: OUTPUT«(signal SEGV)»
moritz for $*IN {.say} is like $*IN.say
raiph moritz: yeah, didn't mean that to be in public channel 19:20
r: lines
camelia ( no output ) 19:21
..rakudo-moar 4a3a40: OUTPUT«(signal SEGV)»
moritz that one, OTOH, shouldn't segv :-)
raiph p: for lines {.say} 19:22
camelia rakudo-parrot 4a3a40: OUTPUT«===SORRY!===␤Function 'lines' needs parens to avoid taking the block␤at /tmp/YGrlngaxqh:1␤------> for lines {.say}⏏<EOL>␤Missing block (apparently taken by 'lines')␤at /tmp/YGrlngaxqh:1␤------> for …»
raiph p: for .lines {.say} 19:23
camelia rakudo-parrot 4a3a40: OUTPUT«Cannot call 'lines'; none of these signatures match:␤:(Cool:D: *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in method lines at gen/parrot/CORE.setting:3581␤ in block at /tmp/Y6Fmu9jg9c:1␤␤»
raiph p: for lines() {.say}
camelia rakudo-parrot 4a3a40: OUTPUT«There were three men came out of the West␤Their fortunes for to try␤And these three men made a solemn vow␤John Barleycorn must die␤␤They've ploughed, they've sewn, they've harrowed him in␤Threw clouds upon his head␤And these three men made …»
raiph p: say for lines() %{$_}++
camelia rakudo-parrot 4a3a40: OUTPUT«No such method 'succ' for invocant of type 'Block'␤ in sub postfix:<++> at gen/parrot/CORE.setting:1791␤ in sub postfix:<++> at gen/parrot/CORE.setting:1790␤ in block at /tmp/bPExxr09VN:1␤␤»
raiph p: for lines() my %a{$_}++ and say %a 19:24
camelia rakudo-parrot 4a3a40: OUTPUT«===SORRY!=== Error while compiling /tmp/Nqb_O8K1zv␤Missing block␤at /tmp/Nqb_O8K1zv:1␤------> for lines() ⏏my %a{$_}++ and say %a␤ expecting any of:␤ postfix␤ infix stopper␤ inf…»
raiph p: for lines() { my %a{$_}++} and say %a
camelia rakudo-parrot 4a3a40: OUTPUT«===SORRY!=== Error while compiling /tmp/7WgtoBb1bm␤Invalid hash shape; type expected␤at /tmp/7WgtoBb1bm:1␤------> for lines() { my %a{$_}⏏++} and say %a␤ expecting any of:␤ postfix␤ stat…»
raiph p: my %a; for lines() { %a{$_}++}; say %a 19:25
camelia rakudo-parrot 4a3a40: OUTPUT«("There were three men came out of the West" => 1, "Their fortunes for to try" => 1, "And these three men made a solemn vow" => 2, "John Barleycorn must die" => 1, "" => 9, "They've ploughed, they've sewn, they've harrowed him in" => 1, "Threw clouds upo…»
raiph darn it, sorry for spam, ww again :(
colomon m: say lines().Bag 20:00
camelia rakudo-moar 4a3a40: OUTPUT«(signal SEGV)»
colomon p: say lines.Bag
camelia rakudo-parrot 4a3a40: OUTPUT«bag(There were three men came out of the West, Their fortunes for to try, And these three men made a solemn vow(2), John Barleycorn must die, (9), They've ploughed, they've sewn, they've harrowed him in, Threw clouds upon his head, John Barleycorn was de…»
colomon p: say lines.Bag.perl
camelia rakudo-parrot 4a3a40: OUTPUT«("There were three men came out of the West"=>1,"Their fortunes for to try"=>1,"And these three men made a solemn vow"=>2,"John Barleycorn must die"=>1,""=>9,"They've ploughed, they've sewn, they've harrowed him in"=>1,"Threw clouds upon his head"=>1,"Jo…»
retupmoca panda on moarvm won't bootstrap for me: ===SORRY!===\n!cursor_start_cur cannot restart a cursor 20:01
does anyone else see this, or did I break something locally?
lue retupmoca: does panda work with other backends? 20:07
jnthn It's first time I've seen that issue mentioned here 20:08
lue Just got it trying to use ufo on zavolaj too, affecting all backends :/ 20:16
Yeah, as I suspected, it seems to be my fault :( 20:17
jnthn: anything about {$*BORG<culprit> := $*BORG<culprit> // $<EXPR>.CURSOR.at(self.pos)} that makes you recoil in horror? :) 20:21
lue STD's version of the same is github.com/perl6/std/blob/master/STD.pm6#L1215 20:22
jnthn Hmm. I'm sure .at is what you're looking for there
What are you tyring to do?
Shift the cursor to that position?
.'!cursor_pos' may do it if so
lue At that point, I'm trying to set $*BORG<culprit> to a position that gets used in reporting when a block is missing. 20:23
jnthn ah, then at certainly sounds wrong. 20:24
lue (this is in xblock in the grammar, for context) 20:25
jnthn See if the method I suggested might do it
But I don't know what it returns
lue jnthn: I use .'!cursor_pos' in pblock to move the position for the error, so I'm certain that's wrong. 20:26
jnthn Oh, what's not what you wnat to do?
oh... 20:27
lue jnthn: I think I may just want $<EXPR>.CURSOR.pos
jnthn It looks like whatever_thingy.cusror(self.pos) will just make a cursor that is set to that position.
uh, the current position.
lue jnthn: I feel silly. I'm not actually using <culprit> :P 20:28
jnthn: STD uses <culprit> to accomplish an error message with two "this is the code that fails" things; I opted for making existing error functions do that for me, thus negating the need for culprit. 20:30
jnthn ok :)
Then, easy fix? 20:31
lue Yeah, just deleted all the stuff with <culprit>. Testing to see if it builds, and then try to run ufo. 20:31
cool, now I get a totally different error for ufo :) 20:35
dalek kudo/nom: a2db06e | lue++ | src/Perl6/Grammar.nqp:
Remove useless code from grammar.

Better yet, it was causing errors!
20:36
lue retupmoca: pull latest rakudo and try again, should work :)
lue afk
jnthn arnsholt: I think explicitly-manage will want a re-visit at some point in terms of its implementation details... 20:49
arnsholt jnthn: I want to remove it entirely, once I get a chance to refactor some bits, actually 21:04
It's a terrible, terrible hack
timotimo o/ 21:18
jnthn arnsholt: Yeah, tell me about it... And my way of making it sorta-work on Moar is an even worse hack.
arnsholt: As in, "every single call pays the price for the hack" 21:19
[Coke] that sounds... bad 21:20
jnthn Yeah. It needs to die. 21:21
We can worry about that once the test suite passes on Moar though.
dalek p: f71ff29 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Add decont for nativecallrefresh.
21:26
p: 5cafc1d | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Hack to make the cstr thing work out.

The plan is to make that go away, but for now we depend on it to get the NativeCall tests passing.
jnthn With latest Moar/NQP/Rakudo/NativeCall, on my box at least we now pass everything except the callback tests. 21:30
nwc10 NQP build midway
jnthn Trying out DBIish on Moar is greatly encouraged, if anybody has the tuits :)
arnsholt: What is the role of the callback cache, roughly? 21:32
jnthn is trying to work out what it's keyed on... 21:34
rurban1 mingw32 has perl 5.8.8. // fails there. (nqp Configure git-options) 21:38
nwc10 jnthn: presumably it's LHF to get the zavolaj tests to report the correct test numbers for the ok's
(ie resetting the Test.pm idea of current test after the C tests) 21:39
jnthn nwc10: Yes, if it causes issues.
nwc10 "it's not pretty" and 2 of us have mistaken it
jnthn++ # "works on my machine too"
01-07 all happy
jnthn yay
jnthn Now I just have callbacks left, then... :) 21:40
nwc10 beer and curry?
jnthn Well, already full of steak from dinner )) 21:41
But beer...now there's a good idea.
nwc10 I think you deserve it
jnthn picks out an imperial IPA 21:43
www.ratebeer.com/beer/omnipollo-neb...ar/184949/ :) 21:44
nwc10 works on "my" machine with ASAN
(that's all the way to zavolaj)
jnthn yay
arnsholt jnthn: From memory, it's keyed on the function. It's caching the stuff needed to pass a given function as a callback 22:24
jnthn arnsholt: Yeah, figured enough...I think. Working on porting it. 22:24
arnsholt jnthn: FWIW, my plan for killing CStr and friends requires a way of signalling to NativeCall whether the memory associated with a thing should be freed on GC or not 22:25
Then we can just unmarshal strings to a CArray[int8] corresponding to an encoding (via Buf, is my thinking) and signal freeing semantics on the array 22:26
timotimo the Yen character no longer means Z since when?
nwc10 r: printf "%x\n", 911352958828937218 22:28
camelia rakudo-parrot a2db06, rakudo-jvm a2db06: OUTPUT«ca5c6b000000002␤»
..rakudo-moar a2db06: OUTPUT«ca5c6b000000000␤»
nwc10 one of these is not like the others
jnthn nwc10: Dunno if that specific case is to blame, but we still have a few failing sprintf tests. 22:29
arnsholt nwc10: Any idea if there's a place in Perl's config stuff where I can get the linker's flag to specify output file? (-o on Unix, but crucially not on Windows) 22:30
Doesn't appear to be in Config.pm
nwc10 I don't know. Ask leont 22:31
but the answer might be "didn't exist in Config.pm, so got hard coded by platform"
but I think that leont will know
he's probably asleep in Lyon currently
arnsholt Yeah, might be. Thanks 22:32
lue timotimo: since putting it in Sc made more sense :)
arnsholt Looks like ExtUtils::CBuild knows, but doesn't look like it's part of the public API
nwc10 I should go to bed 22:33
arnsholt Me too =)
nwc10 in case the small alarm clock repeats her performance from this morning and is climbing on me before 7am
dalek p: ce3915e | rurban++ | tools/lib/NQP/Configure.pm:
[Configure] omit unneeded 5.10ism, needed for mingw (5.8.8 perl)

Fixes GH #165
22:35
jnthn nwc10: Sounds wise :)
nwc10: Sleep well
nwc10 thanks. you too
jnthn Eventually :) 22:36
rurban parrot has such a config flag 22:42
arnsholt Yeah, but it has it specified in its own config files, so it's not that easy to get to for the JVM backend
rurban cc_o_out it is
and ld_out also 22:43
jnthn Moar has one too, but if you're only buildin gthe JVM backend neither of those help much...
rurban hmm, Configure could pass that around
arnsholt Which is why I wanted to find it in Perl's stuff, for the JVM backend
jnthn *nod* 22:44
Well, to a first approximation MSVC is /Fo and everything else is -o :)
arnsholt True, true
jnthn
.oO( I pity the /Fo... )
arnsholt What's the value of $^O on Windows? 22:45
rurban well, since perl uses -o everywhere just not in win32, it should be easy
mswin32
MsWin32 exaclty 22:46
perldoc perlport
arnsholt Cool. Then it should be easy to specialcase for Windows
rurban Uuh, MSWin32
link has -out:, the rest /Fo afaik 22:47
Mouq lizmat, FROGGS: Since META.info/META6.json is going to be hooked to the spec, does that mean it itself should be versionable?
rurban see win32/Makefile
lue Mouq: perhaps the perl6 version parameter takes care of it? 22:48
Mouq lue: True enough, I just wanted to put it up for consideration 22:51
Mouq p6: my $x; say $x++, $x++ 23:08
camelia rakudo-parrot a2db06, rakudo-jvm a2db06, rakudo-moar a2db06, niecza v24-109-g48a8de3: OUTPUT«01␤»
Mouq p6: my $x; say {$x++}(), {$x++}()
camelia rakudo-parrot a2db06, rakudo-jvm a2db06, rakudo-moar a2db06, niecza v24-109-g48a8de3: OUTPUT«01␤» 23:09
dalek volaj: 20e50da | jnthn++ | t/08-callbacks.c:
Another Win32 hack/workaround.

Will solve these properly shortly.
23:45
dwarring r: gist.github.com/dwarring/9559508 23:56
camelia rakudo-parrot a2db06, rakudo-jvm a2db06, rakudo-moar a2db06: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ is used at line 12␤␤»
TimToady needs a 'use Test;' presumably 23:59