»ö« 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 moritz on 3 May 2013.
gtodd p5eval: use autobox ; 00:36
p5eval gtodd: ERROR: Can't locate autobox.pm in @INC (@INC contains: /lib) at (eval 7) line 1.BEGIN failed--compilation aborted at (eval 7) line 1.
gtodd :-)
gtodd wonders if there's a perl5i compiler bot along with p5eval, rakudo, niecza 00:38
diakopter p5eval: use perl5i::2; 00:40
p5eval diakopter: ERROR: Can't locate perl5i/2.pm in @INC (@INC contains: /lib) at (eval 7) line 1.BEGIN failed--compilation aborted at (eval 7) line 1.
diakopter gtodd: oh, I presume perl5i uses autobox... 00:47
dalek rl6-bench: 75540d3 | (Geoffrey Broadwell)++ | timeall:
Properly handle best_times() and subtract_times() for scalable tests in timeall
02:22
rl6-bench: 796439f | (Geoffrey Broadwell)++ | analyze:
Refactor options processing in analyze
rl6-bench: d58e086 | (Geoffrey Broadwell)++ | analyze:
Factor analyze_timings_files() out of analyze MAIN()
rl6-bench: e21737c | (Geoffrey Broadwell)++ | analyze:
Begin fixing analyze to handle new scaled timings files from timeall: handled ungrouped compiler info
diakopter .tell moritz I *love* the collapsed join/part msgs; nice! 04:45
yoleaux diakopter: I'll pass your message to moritz.
moritz good morning 07:16
yoleaux 04:45Z <diakopter> moritz: I *love* the collapsed join/part msgs; nice!
moritz too
sorear good morning moritz.
FROGGS morning 07:17
lizmat morning #perl6! 07:42
FROGGS morning lizmat 07:43
lizmat 1 spectest failure after my :delete :exists fixes, checking now
dalek : 15fab88 | (Tobias Leich)++ | lib/Perl5/ (2 files):
dispatch prefix:<local> to prefix:<temp>
07:44
sorear morning lizmat!
lizmat so what is the right way of running a single spectest test-file? 07:58
tadzik ./perl6 t/spec/test/file? 07:58
nwc10 I thought ./perl6 -Ilib path/to/it 07:59
tadzik or prove -e perl6 (...)
but fudge it first
lizmat you mean, run the .rakudo version?
tadzik yeah
lizmat the thing is, if I run this inside the spectest, I get this: 08:00
t/spec/S03-feeds/basic.rakudo ............................. All 19 subtests passed
(less 5 skipped subtests: 14 okay)
if I run it separately, I get: # Looks like you planned 19 tests, but ran 21
# FUDGED!
FROGGS make sometests TESTFILES=t/spec/... 08:01
moritz so, it complains about a wrong test plan, or that it ran too many tets 08:01
FROGGS this will fudge too, and then I usually run the .rakudo test directly, to get some output
lizmat Parse errors: Bad plan. You planned 19 tests but ran 21. 08:02
FROGGS++ that generates the test summary report
and indeed… 2 errors
seems it is getting too many "ok 15 - # SKIP double-ended feeds" now 08:03
hmmm...
it says that is both ok, and failed? gist.github.com/lizmat/5574406 08:05
moritz where does it say it's ok? 08:06
all subtests passing is not sufficient for a test file passing 08:07
you also need to satisfy the test plan, and exit with a return code of 0
dalek : 630b49f | (Tobias Leich)++ | STATUS.md:
status update
08:08
lizmat aha… ok
lizmat in the section marked "#?rakudo skip 'double-ended feeds'" I only see 2 times is(), yet it generates 4 "ok N - # SKIP double-ended feeds" 08:12
is that expected? 08:13
moritz lizmat: there are two sections that are skipped with 'double-ended feeds', and each contains two tests 08:16
lizmat grrr… duh
so the plan just seems to be wrong
moritz $ ack '\b(is|ok|lives_ok|dies_ok)\b' S03-feeds/basic.t|wc -l 08:17
24
that's what my manual counting also produces 08:18
@data ==> grep {/<[aeiouy]>/} ==> is($(*), $(@out), 'basic test for $(*)');
I'm pretty sure fudged won't recognize lines like these as tests
lizmat grrr: Parse errors: Bad plan. You planned 24 tests but ran 21. 08:20
ok, will look at this after fitness, afk for a few hours
dalek ast: bb94740 | moritz++ | S03-feeds/basic.t:
fix test plan, rakudo fudging

also move a block to the end of the file, because providing a #?DOES seems to confuse fudge for the subsequent blocks
08:23
moritz lizmat: fixed it for you, that one was a bit tricky
lizmat ok, cool, running spectest while doing fitness :-) 08:24
moritz++
dalek : 9ef59dc | (Tobias Leich)++ | README.md:
added installation instruction and updated description
moritz perlweekly.com/archive/94.html I wonder if "punpking" is a typo, a pun, or both :-) 08:36
shachaf Perhaps it's all three! 08:39
moritz this is starting to be become recursively recursive
labster reads 08:42
Whoa, how did I explain why companies switch to Python?
moritz no 08:44
because they have trouble finding good perl programmers?
tadzik python is easier, there are more python programers, so using python is cheaper for them 08:50
moritz terralang.org/ seems interesting 09:29
the front page is a bit weak
but it seems to be designed for code generation 09:30
nwc10 but which Python? 09:44
moritz python 5.7 of course -- the best of 2.7 and 3.0 combined! 09:45
dalek p/rak-jvm-support: cdbb9d1 | jnthn++ | src/vm/jvm/ (2 files):
Avoid an apparent invokedynamic bug.

Seems that optional args to the resolver can somehow get "lost" in a sufficiently large class file. Weird.
09:58
p/rak-jvm-support: 5eac9c8 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java:
Correct an error.
hoelzro why is it that there hasn't been a * release since February? is it because the next one will be with a JVM Rakudo? 09:59
dalek kudo/jvm-support: 35d1f37 | jnthn++ | src/Perl6/World.nqp:
A couple of portability tweaks to module loading.
kudo/jvm-support: a3a2574 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Implement optional parameter binding.
nwc10 hoelzro: I believe that it's been mentioned on the list (shock, horror!)
jnthn hoelzro: No, it's 'cus the relesae candidates so far have had failing module tests, iirc.
hoelzro looks
oh, I see
nwc10 because there isn't (yet) a continuious integration process to spot this earlier. 10:00
jnthn *nod*
nwc10 or however it's spelled
hoelzro alright 10:01
seems reasonable
lizmat is there a way to have multiple MMD candidates share the same code block? 10:27
jnthn no
lizmat too bad :-)
I guess this is really an optimisation issue, to be handled by the optimiser? 10:28
jnthn Well, depends what you're optimizing for. 10:29
lizmat in this case memory, I would think?
jnthn If it can look at the arguments it's getting to each one and do some inlining specific to each of them, you could potentially come out ahead on speed.
So, it's probably a trade-off. 10:30
(The optimizer already potentially can do that kind of inlining, fwiw.)
(Though it can't do dupe code elimination yet.) 10:31
lizmat well, if the code gets serialized, it would mean smaller bytecode files, so faster startup :-)
moritz fwiw we once had a syntax sub f (signature 1) | (signature 2) { ... }
lizmat I guess that becomes less of an issue with SSD's
moritz that allowed two multi candidates to share the same code
lizmat I think it would be an optimizer thing: developers may not see that the code is the same many times 10:33
otoh, it would mean less maintenance (and less chance of fixing one place where it needed to be fixed in two) 10:34
anyways, just making sure I'm not forgetting obvious things to do
jnthn: would "multi method at_key(Any:U \SELF: $key) is rw {" not also be a candidate for adding a "Mu" type to $key ? 10:35
jnthn lizmat: Hmm...I guess that's the auto-viv one...
lizmat: I suppose yes. 10:36
lizmat will do and test
Juerd lizmat: Serialised code for faster startup? Not just with SSDs, but with even with a network filesystem that doesn't sound like a useful optimization. Anything will do at least 10 MB/s now. That's a shitload of code. If you have more than that, the startup overhead is probably the least of your worries. 10:42
s/S/Smaller s/
lizmat: Also, caching will take care of the 2nd and consequent runs. 10:43
I've seen servers with crashed RAID arrays that continued to serve websites perfectly because everything was in cache :) 10:44
kresike hello all you happy perl6 people 10:52
colomon \o 11:03
dalek p/rak-jvm-support: 0de5175 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
Initial bits of SC repossession support.

This doesn't serialize/deserialize the repossessions, but at least should mean we start to detect and record them.
11:06
p/rak-jvm-support: a0f9501 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationWriter.java:
Serialize repossessions table.
FROGGS r: my $a = "abc"; say $a ~~ s/b// 11:44
camelia rakudo 2a04f2: OUTPUT«True␤»
FROGGS r: my $a = "abc"; say $a ~~ s/c$// 11:47
camelia rakudo 2a04f2: OUTPUT«True␤»
FROGGS r: my $RS = 'c'; sub my_chomp(*@s is rw) { for @s -> $s is rw { say "s: $s"; if $s ~~ s/$RS$// { say $RS } } }; my $a = "abc"; my_chomp($a); say "a: $a" 11:54
camelia rakudo 2a04f2: OUTPUT«s: abc␤a: ab␤»
FROGGS r: sub my_chomp(*@s is rw) { for @s -> $s is rw { say "s: $s"; if $s ~~ s/c// { say "did it!" } } }; my $a = "abc"; my_chomp($a); say "a: $a" 11:56
camelia rakudo 2a04f2: OUTPUT«s: abc␤a: ab␤»
FROGGS RAKUDOBUG
r: sub my_chomp(*@s is rw) { for @s -> $s is rw { say "s: $s"; say $s ~~ s/c// } }; my $a = "abc"; my_chomp($a); say "a: $a"
camelia rakudo 2a04f2: OUTPUT«s: abc␤False␤a: ab␤»
FROGGS r: my $a = "abc"; for $a -> $s is rw { say $s ~~ s/b// }; say $a 11:58
camelia rakudo 2a04f2: OUTPUT«False␤ac␤»
FROGGS a bit shorter 11:59
colomon n: my $a = "abc"; for $a -> $s is rw { say $s ~~ s/b// }; say $a 12:00
camelia niecza v24-50-gba63d9a: OUTPUT«True␤ac␤»
FROGGS nr: my $a = "abc"; for $a -> $s is rw { say $s ~~ /b/; say $/ }; 12:02
camelia rakudo 2a04f2, niecza v24-50-gba63d9a: OUTPUT«「b」␤␤「b」␤␤»
FROGGS nr: my $a = "abc"; for $a -> $s is rw { say $s ~~ s/b//; say $/ };
camelia niecza v24-50-gba63d9a: OUTPUT«True␤「b」␤␤»
..rakudo 2a04f2: OUTPUT«False␤(Any)␤»
FROGGS substitution only
dalek p/rak-jvm-support: 2416ad0 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationReader.java:
Basic repossession handling on deserialize.
12:17
p/rak-jvm-support: a7f1e8b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationWriter.java:
Fix buffer resize fail.
p/rak-jvm-support: bf18546 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/NFA.java:
Quieten NFA serialize NYI.
[Coke] should add a star continuous build, eh? 12:34
FROGGS r: multi sub test { say CALLER::<$_> }; $_ = "hello"; ::("&test")() 12:36
camelia rakudo 2a04f2: OUTPUT«(Any)␤»
FROGGS r: multi sub test { say CALLER::<$_> }; $_ = "hello"; test() 12:37
camelia rakudo 2a04f2: OUTPUT«hello␤»
FROGGS jnthn: do you have a hint what is going wrong there?
FROGGS fears that jnthn is saying "you can't do it that way"
jnthn I can guess, at lesat. 12:40
FROGGS \o/
jnthn CALLER:: looks a frame out.
When you call a multi then you are actually calling a proto which then does the multi-dispatch.
jnthn Really doing that gets costly, though, so a bunch of the time we inline that proto. 12:41
An indirect call through ::(...) thwarts the optimizer, however. So you have to go via the proto.
So in that case there's 2 frames there, not one.
FROGGS I see
jnthn Maybe try DYNAMIC:: instead of CALLER:: 12:42
Or CALLER::DYNAMIC::<$_>
FROGGS r: multi sub test { say DYNAMIC::<$_> }; $_ = "hello"; test()
camelia rakudo 2a04f2: OUTPUT«(Any)␤»
FROGGS r: multi sub test { say CALLER::DYNAMIC::<$_> }; $_ = "hello"; test()
camelia rakudo 2a04f2: OUTPUT«hello␤»
FROGGS r: multi sub test { say CALLER::DYNAMIC::<$_> }; $_ = "hello"; ::("&test")()
camelia rakudo 2a04f2: OUTPUT«hello␤»
FROGGS r: multi sub test { say CALLER::DYNAMIC::<$_> }; $_ = "hello"; test() # took long
camelia rakudo 2a04f2: OUTPUT«hello␤»
FROGGS okay, just was a hickup 12:43
jnthn++ # thanks!
jnthn Hm, the setting currently loads as far as line 4445, where it ties to construct a Pair and then has a sad... 12:43
Well, with local patches.
Somebody may wish to look at constant folding the ~ operator, BTW. 12:44
Or why the current folder doesn't manage it.
FROGGS timotimo: a job for you! :P
but getting to line 4445 sounds pretty cool actually 12:45
[Coke] I don't know what the rollup summary would look like, but at this point, would a daily dump of the build output from a star build be sufficient? 12:46
jnthn Well, we don't run that much up to that point.
moritz jnthn: prefix ~ or infix ~ ?
jnthn [Coke]: Pushed to github each day like the roast ones would be awesome, then we can use diff
moritz: infix
jnthn moritz: I noticed 'cus one bit of the setting does a bunch of ~s (in class Str) and it calls infix:<~> for all of them. 12:47
moritz jnthn: iirc I had some bootstrappy issues with some few operators 12:47
jnthn currently has epic reams of debugging output.
[Coke] jnthn: ok. I can have a shell of that done during my lunch break, and finalize it tonight.
jnthn [Coke]++!
[Coke] jnthn: do we want the *whole* build output? just the test output? 12:47
jnthn oh...it explodes when making a Pair 'cus I didn't implement named arg binding. It even tells me that :)
[Coke] (split into files?)
jnthn [Coke]: The test output sounds like the useful bit, though if the build fails that is also useful.... 12:48
moritz jnthn: iirc multiple ~ in one expression are compiled to a listop call; so if one of them isn't known at compile time, nothing is constant folded
[Coke] "thanks jnthn from several days ago!"
jnthn moritz: Hm. But all these ones are.
jnthn moritz: Maybe it's 'cus it's in the setting or maybe 'cus of the list assoc. 12:48
jnthn wants to focus on setting loading for now ;)
moritz oh, it's not marked as 'is pure' 12:49
so I'll try to mark it as that, and then look if the setting still compiles :-)
jnthn moritz++ 12:50
dalek p/rak-jvm-support: b546d47 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
Add missing get_storage_spec in P6opaque.
p/rak-jvm-support: 34dd073 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Missing deconts in istype.
p/rak-jvm-support: b4d48e2 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Revise smart_stringify a bit.
p/rak-jvm-support: bb9f52a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
inf/neginf/nan/isnanorinf ops.
moritz stage optimize finished 12:51
that's a good sign
fwiw ilbot6 on postgresql has been happily logging for a day now 12:52
arnsholt \o/ 12:54
[Coke] sees "Quieten" go by in the logs, and misreads it as "Quoten"
arnsholt moritz: Have you tracked memory usage?
[Coke] assumes that a daily build of star should just use the versions of nqp/parrot in the repo. 12:55
(... or maybe master, but I doubt it) 12:56
moritz arnsholt: it's at 695MB :/
arnsholt: don't know what it started with
FROGGS moritz: so you can still burn it on cd! \o/ 12:57
arnsholt Yeah. I suspect a long-running Zavolaj process will leak memory steadily
It's an unfortunate limitation of the conservative internals we have ATM
moritz arnsholt++ # making me look at htop found that I had an unnecessary memcached running on my workstation
arnsholt ^_^ 12:58
jnthn sees his face in a conf brochure and realizes he really had better figure out what to talk about there :)
arnsholt =D
jnthn oh, but it's in November. I've got a bit :)
arnsholt Plenty of time! =) 13:00
lizmat jnthn: who knows what will happen in the mean time!
[Coke] decided he's not going to YAPC::NA this year, folks. I'll trying to be online during the hackathons, though. 13:05
moritz then at leastn I'm not the only one missing from the party :-) 13:06
[Coke] *try to be
pmichaud is sad Coke++ won't be at yapc::na. 13:13
good morning, #perl6
lizmat morning pmichaud! 13:14
jnthn o/ pmichaud 13:15
FROGGS hi pmichaud 13:15
FROGGS [Coke]: ó.ò 13:16
[Coke] If only I could somehow use perl in my Java-only work environment...
then maybe I could justify the expense :)
FROGGS moritz: we still need to find a new date for our mini hackathon :o)
pmichaud [Coke]: you need to come to the conference to learn about Perl 6 on the JVM. :)
jnthn pmichaud: "might it be better to simply change the existing candidates to be :$delete where ?$delete"
pmichaud: It would not because the multi-dispatcher can deal with the "required named arg is missing" path rather cheaply. 13:17
lizmat jnthn: this is about my pull request?
pmichaud jnthn: I'm talking about the case where the named are is present but false. 13:18
*named arg
jnthn pmichaud: Yes, but you removed the !
pmichaud: Was that deliberate?
pmichaud yes.
I'm removing the candidate.
[Coke] hurm. "make modules-tests" in star doesn't actually error out when there are errors.
pmichaud I'm removing the !candidate
I'm leaving the existing candidate but making it :$delete where ?$delete"
so that it's only called if :delete exists and is true.
otherwise, it should fall back to the case of ... oh, wait. 13:19
jnthn Yes but then you force a bind check and invocation of the where block.
pmichaud aren't we doing that in the "where 0" case anyway? 13:19
lizmat I was going for making the special case special 13:20
and the normal case easier, hence no where for the other case
lizmat was that a bad idea? 13:20
jnthn If the multi-dispatcher sees :$delete! then it can quickly look and see if we've any matching named arg, and then just disregard the candidate.
pmichaud lizmat: to me, the special case is :delete :-)
jnthn: I understand that part.
jnthn If you make it :$delete then it's an optional named so the fast-path won't work. 13:21
pmichaud okay, I meant :$delete! where ?$delete then
I was thinking of the wrong !
(I was thinking :$delete where !$delete)
Yes, there should be a ! after :$delete
pmichaud adds to ticket.
jnthn phew :)
dalek : c0120c2 | (Tobias Leich)++ | / (2 files):
let chomped do what it is meant for
13:22
pmichaud lizmat: I tend to think of :!delete or :delete(0) as being the default case (normally we aren't deleting), with :delete being the special case.
thus :!delete or :delete(0) should do exactly the same thing as when :delete isn't present at all. 13:23
lizmat the thing is that I found out the hard way, you can't do a "where True"
pmichaud right, thus ?$delete
lizmat ah, good point
ok, so lose the where 0 candidate, and make the other "$delete! where $delete 13:24
pmichaud well, not yet :)
lizmat that makes sense to me...
lizmat ah… :-( 13:24
pmichaud there's a problem with my fallback approach in that if the other candidates don't have a named :$delete arg they'll never match (when we convert postcircumfix to be a sub instead of a method)
unless we add *%_ to all of the candidates. 13:25
(well, all of the fallback ones)
jnthn: opinion on ^^^^
[Coke] github.com/rakudo/star/issues/21 - there's some low hanging p5 fruit. 13:27
jnthn We could add a *% without hosing the inline, I *think*.
[Coke] anyone wants to help get a star release out the door, there's your chance. :)
pmichaud [Coke]++ oooh, nice. 13:28
btw, I'm looking for my p6 tuit level to spike dramatically upward in a week. 13:29
[Coke] \o
pmichaud (it will be essentially zero after today, though)
lizmat: okay, I'd say go with the fallback approach for now.
as in, lose the where 0 candidate, and make the existing ones :$delete! where ?$delete 13:30
lizmat ok, will do that
this also fixes my question of sharing code blocks between candidates, btw, at least in this case 13:31
FROGGS (in a week)++ 13:32
lizmat pmichaud: hmmm… actually, that won't work :-( 13:34
pmichaud adds an "easy" label to star issue #21
lizmat: won't work because...?
(what did I overlook? ;-)
lizmat for exists: then the fall back will not revert the meaning SELF.exists 13:35
so maybe just have one candidate, and handle the value inside the candidate
would that make more sense then?
dalek kudo/jvm-support: 71263c6 | jnthn++ | src/core/Stash.pm:
Thinko spotted while debugging.
kudo/jvm-support: 63e5222 | jnthn++ | src/ (2 files):
Set up boxing to Perl 6 types.
kudo/jvm-support: f7ac11d | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
Implement named (non-slurpy) binding.
kudo/jvm-support: 89aec58 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Implement nqp::p6listitems.
lizmat was under the impression that having more candidates would allow more work to be done at compile time 13:36
pmichaud ah, yes... exists changes meaning here. for :exists I'm fine with either separate candidates or a single candidate that handles it 13:36
lizmat and being able to select candidates for :delete, :exists and :!exists at dompile time
*compile
pmichaud while they're methods we can't do much in the way of compile-time evaluation, but when they become subs we will be able to. 13:37
at the moment it might be a slighly premature optimization to try to figure out the best way to go there, though.
lizmat ok, fair enough, I guess I assumed we were further along then we are in that respect 13:38
the exists candidate now becomes: SELF.exists($key) ?^ $exists
!(SELF.exists($key) ?^ $exists) 13:39
actually
moritz erm
lizmat ?
moritz shouldn't it more like $exists ? SELF.exists($key) : SELF.at_key($key) ?
wait, I guess I should backlog first
moritz goes into hiding again
lizmat no, $!exists is now specced to return true if it doesn't exist 13:40
:-)
:!exists rather
moritz (too many bangs (for the buck) confuse everybody, right? :-)
PerlJam just got here and is already confused :) 13:41
good $localtime all
pmichaud also, can %h{@keys}:kv($kv) be written as %h{@keys}:$kv ? (just curious) 13:41
pmichaud std: my %h; say %h{@keys}:$kv 13:41
camelia std b33d8e0: OUTPUT«===SORRY!===␤Variable @keys is not predeclared at /tmp/3RjxgEQE0W line 1:␤------> my %h; say %h{⏏@keys}:$kv␤Variable $kv is not predeclared at /tmp/3RjxgEQE0W line 1:␤------> my %h; say %h{@keys}:⏏$kv␤Check fa…
lizmat r: my %h; say %h<a>:!exists # should become true 13:42
camelia rakudo 2a04f2: OUTPUT«False␤»
pmichaud std: my %h; my @keys; my $kv; say %h{@keys}:$kv
jnthn std: my %h; my @keys; my $kv; say %h{@keys}:$kv
camelia std b33d8e0: OUTPUT«ok 00:00 44m␤»
jnthn r: my %h; my @keys; my $kv; say %h{@keys}:$kv
camelia rakudo 2a04f2: OUTPUT«␤»
jnthn yay, we parse it already too :)
lizmat pmichaud: another good point...
jnthn Darn, that adverb parsing was hard work to get right...
:)
pmichaud I'm fine with :kv($kv)... I was just curious if :$kv would work there or not. Go with whatever is easiest to read.
I suspect that trying to figure out adverb parsing cost me about four months in 2005. 13:43
I finally made progress when I decided to not figure it out.
lizmat actual, those :kv fixes were collateral "damage" 13:44
in preparation on fixing :p / :k / :kv / :v
once we have clarity on that
pmichaud yeah, I wonder if :p(0) should be the same as "not present" also. 13:45
so that it can just be the :$p! where $?p thingy
lizmat also, I do think there is a point with having :delete:p
it would easy slicing out pairs from one hash to another 13:46
or is there another idiom for that already?
pmichaud don't know of one... and that one seems "natural"
jnthn pmichaud: Ouch. It didn't take me that long, though I put it off for at least that long. ;)
pmichaud: I had STD to steal from, at least. IN 2005 you didn't so...argh. 13:47
pmichaud right
jnthn The way it works is, um, special.
pmichaud I finally decided I couldn't block on it anymore if we were going to get anywhere. 13:47
moritz std: my %h; %h<a b>:p:delete 13:50
camelia std b33d8e0: OUTPUT«ok 00:00 43m␤»
pmichaud okay, I have to get to my other tasks... bbl 13:50
lizmat pmichaud++ 13:50
dalek kudo/jvm-support: bf28293 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Implement nqp::p6arrfindtypes.
14:07
kudo/jvm-support: b7c3801 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Implement nqp::p6shiftpush.
FROGGS .oO( nqp::p6shush / nqp::p6pift ? ) 14:17
lizmat represses a Dr. Seuss reference 14:19
lizmat fwiw, I had to code the :delete candidate as ":$delete! where so $delete" 14:24
lizmat without the "so", that candidate would also be selected with :delete(0) 14:25
tadzik doesn't that make ! redundant?
lizmat the where? or the so?
moritz no
tadzik ah, no, ok
lizmat not sure whether that is a problem in the selection logic or the smartmatching 14:26
dalek kudo/nom: a9f3c63 | moritz++ | src/core/Stringy.pm:
constant-fold infix:<~>
kudo/nom: 0d3c9b0 | moritz++ | src/core/Stringy.pm:
potentially constant-fold more stringy operators
moritz git grep 'proto sub' | grep -v 'is pure' # potential gold mine for 'is pure' annotations 14:27
moritz wonders if &defined can be made to constant-fold 14:29
lizmat I'm not sure you would have many real life situations where that would work 14:30
moritz neither
arnsholt It'd depend on how good the rest of the constant-folding is, I suppose 14:31
lizmat so, I have a test that blows up: want to mark it as todo, but even with that, it will make the script die and this fail that file 14:32
moritz #?rakudo skip 'oh noes, it dies'
arnsholt But yeah, in most cases the programmer probably knows if it'll always be undef
lizmat moritz++ 14:33
moritz I actually thought constant-folding &defined wouldn't easily work, because &defined is, well, defined so early 14:34
moritz so it might not be easy to apply traits 14:34
arnsholt Ah, right. That I have no idea about 14:37
FROGGS_ std: use v5; $/ = \3; my %stuff = (1..4); say @stuff{1, 3}
FROGGS std: hello? 14:38
lizmat seems like a netsplit pb to me 14:40
FROGGS must be, yeah 14:40
lizmat hmmm… so I've written some spectests, how do I push those (from my cloned repo?) 14:43
FROGGS git remote add ... ? 14:43
lizmat but git remote add upstream git://github.com/rakudo/rakudo.git would be the wrong repo, no? 14:48
lizmat as t/spec doesn't live there 14:49
lizmat perl6/roast.git I assume 14:49
PerlJam lizmat: yes. 14:49
FROGGS right 14:50
lizmat so should I clone perl6/roast and submit a pull request? 14:53
jnthn You should already have a commit bit for that, I think. 14:54
lizmat it appears so 14:55
FROGGS lizmat: you can work with pull requests but it might be handier if you just add perl6/roast as a remote and push directly to it 14:58
FROGGS camelia: \o/ 14:58
std: use v5; $/ = \3; my %stuff = (1..4); say @stuff{1, 3}
lizmat trying to do so, have some kind of permission issue
camelia std b33d8e0: OUTPUT«ok 00:01 54m␤» 14:59
arnsholt lizmat: Maybe your remote is set up to talk to the GitHub HTTPS part? 15:00
arnsholt If you started out with a RO checkout you may have to twiddle that 15:00
lizmat twiddling :-)
dalek ast: 5c7b4be | (Elizabeth Mattijsen)++ | S09-hashes/objecthash.t:
Tests for %h{Mu} support

One test is dying badly still. No idea to fix that. Marked as "skip"
15:01
lizmat success! 15:02
arnsholt++
FROGGS lizmat++ # successfully twiddled :o)
'oh noes, it dies' *g*
dalek : 02ca4a1 | (Tobias Leich)++ | lib/Perl5/Terms.pm:
fixed slurp' paragraph mode, and added todo about slurp mode
15:05
: 7ba8e2c | (Tobias Leich)++ | / (3 files):
make qw() return an array instead of a string
FROGGS r: say (304 * 100 / 40185) ~'% v5 spectests pass' 15:06
camelia rakudo 2a04f2: OUTPUT«0.756501% v5 spectests pass␤»
tadzik \o/
FROGGS meh, should be the other way around
(some day)
ohh, and not to forget the bunch of test file which dont have a parseable plan :/ 15:07
FROGGS r: say &infix:<==>(1, 2) 15:26
camelia rakudo 0d3c9b: OUTPUT«False␤»
FROGGS r: say &infix:<==>(1, 1)
camelia rakudo 0d3c9b: OUTPUT«True␤»
FROGGS r: say &infix:{"=="}(1, 1)
camelia rakudo 0d3c9b: OUTPUT«===SORRY!===␤You can't adverb that␤at /tmp/i_ErpzjVDp:1␤------> say &infix:{"=="}⏏(1, 1)␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement modifier loop␤ horizontal w…
FROGGS hmmm 15:27
FROGGS r: say ::("&infix:<==>")(1, 1) 15:28
camelia rakudo 0d3c9b: OUTPUT«True␤»
FROGGS okay
dalek p/rak-jvm-support: b051ece | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (3 files):
Cloning of container lexicals (state to come).
15:43
p/rak-jvm-support: f8886f7 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
Make auto-viv'd attributes stick around.
dalek kudo/nom: b41219e | moritz++ | src/core/Mu.pm:
potentially constant-fold &defined
15:47
cognominal what is 'is pure'? It's not specced. Does it mean sub without side effects? 15:54
tadzik yeah
it's not a spec thing, it's Rakudo-specific, a hint to the optimizer 15:55
(or so I think)
cognominal it would be nice to have it as a spec (perhaps as a fun keyword instead of sub). I like code as documentation. 15:57
dalek : 914696f | (Tobias Leich)++ | t/test.pl:
fixed cmp_ok
15:59
: 7f9a3b6 | (Tobias Leich)++ | t/test.pl:
indentation
: d9849d7 | (Tobias Leich)++ | / (2 files):
make shift() use @_ when no arg is supplied
FROGGS r: say (357 * 100 / 40185) ~'% v5 spectests pass'
camelia rakudo 0d3c9b: OUTPUT«0.888391% v5 spectests pass␤»
FROGGS almost one percent *g* 16:00
dalek kudo/jvm-support: 08f65ec | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Named slurpy binding.
kudo/jvm-support: 3a27ac5 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Implement nqp::p6bindattrinvres.
moritz note that rakudo's notion of 'is pure' doesn't quite fit the normal one
in rakudo's world, a function marked as 'is pure' is still allowed to die or warn
FROGGS one percent in two months, that is like 198 months to go?
moritz (otherwise most string and numeric operators wouldn't be constant-foldable, because they nearly all coerce, and coercion can warn) 16:01
[Coke] lizmat: objecthash.t - pugs says: TODO passed: 26-28 16:05
lizmat++ for thinking to pre-fudge for pugs 16:06
lizmat [Coke] you're welcome :-) 16:12
tadzik FROGGS[mobile]: I think shift() should also look in @ARGV when it's not inside a sub 16:13
lizmat n: my %h= <a b c> Z 1..3; say %h 16:26
camelia niecza v24-50-gba63d9a: OUTPUT«{"a" => 1, "b" => 2, "c" => 3}␤» 16:27
lizmat pugs: my %h= <a b c> Z 1..3; say %h
camelia pugs: OUTPUT«*** Odd number of elements found where hash expected: VList [VStr "a",VStr "b",VStr "c"]␤ at /tmp/WFU7R9RETK line 1, column 1-22␤»
lizmat now understands crummy setup in hash test
lizmat n: my @a= <a b c>; say @a[1]:delete; say @a 16:39
camelia niecza v24-50-gba63d9a: OUTPUT«Unhandled exception: Excess arguments to KERNEL Array.postcircumfix:<[ ]>, unused named delete␤ at <unknown> line 0 (KERNEL Array.postcircumfix:<[ ]> @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 179 (postcircumfix:<[ ]> @ 5) ␤ at /tmp/pF0PmBHJv2 …
lizmat r: my @a= <a b c>; say @a[1]:delete; say @a # rakudo is silent again, but doesn't delete 16:40
camelia rakudo b41219: OUTPUT«b␤a b c␤»
lizmat S32/Containers:666 reads "his adverb may be applied to any subscripting operation. The operation returns the elements normally, but reads them out destructively." 16:42
I assume that is a case of NYI in rakudo?
colomon lizmat: I'm not sure it's intended to work that way. 16:45
lizmat "destructively" 16:45
I guess that doesn't make it clear whether the result would be "a,"c" or "a",Any,"c", right?
colomon lizmat: you're absolutely right. I had no idea.
no one has implemented that one yet, unless Pugs did it. 16:46
colomon looked at the spec after his first response. 16:47
lizmat S32/Containers:653 states that the element should be set to a "non-existent" state
I assume the resulting list would then need to be: "a",Mu,"c"
colomon lizmat: sounds right to me. unless maybe it's Any instead of Mu 16:49
lizmat rn: my @a; @a[1]=1; .say for @a 16:50
camelia rakudo b41219, niecza v24-50-gba63d9a: OUTPUT«(Any)␤1␤»
TimToady :delete should always remove the key from a hash; the other semantics are available with something like @a<b> := Any 16:55
lizmat so setting deleted array elements to Any should be enough?
TimToady enough for what? 16:56
lizmat to "read them out destructively"
TimToady no, I just said the opposite of that...
lizmat binding them to Any 16:57
colomon TimToady: she
'
TimToady: she's talking about array, not hash
TimToady "remove the key" is not the same as binding Any
ah,
well, yes, you can't remove the key of an array :)
colomon unless it's the tail of the array.
TimToady sorry, misread 16:57
lizmat yes, and that's specced
TimToady but if the array type supports sparsity, then :exists should go to false 16:58
lizmat r: my @a= <a b c>; say @a[1]:delete; say @a # expected a Any c
camelia rakudo b41219: OUTPUT«b␤a b c␤»
TimToady whether that's handled by poking a NULL into the pointer is an implementation detail (that's what P5 does)
I'd expect a Any C there 16:59
lizmat ok, then I will have a go at writing that as well, as I'm writing the spec tests for it now anyway 17:00
TimToady (where Any is the default default, of course, when we get to the point where we can set other defaults)
lizmat r: my @a; @a[1]=1; .say for @a # sort of expected Mu 1 17:01
camelia rakudo b41219: OUTPUT«(Any)␤1␤»
colomon TimToady: BTW, I still haven't been able to figure out how to make Nil and Empty do the right thing in Niecza, but at least you should be able to use Empty in the actions now if you'd like
TimToady colomon++ 17:02
if we said that :exists returns false when the entry is the default value, then := self.default could work for "I'm not here", I guess 17:06
since it's the default, the implementation could feel free to deallocate any memory used in that case
lizmat r: say Array.default # seems we need to implement "default" for that then 17:07
camelia rakudo b41219: OUTPUT«No such method 'default' for invocant of type 'Array'␤ in block at /tmp/W5tBD8W36n:1␤␤»
TimToady I wouldn't carry those semantics over to hashes, though, unless they're KeyHashes, since hashes can distinguish a key pointing to Any from a missing key
TimToady KeyHashes are supposed to be defined in terms of defaults in any case 17:08
lizmat well, it would be the value return when trying to access a key that;s not in the hash
returned
TimToady so, for instance, a Set defaults to False 17:09
so the Set only needs to track the values that are true
and a mutable KeySet lets you delete things by say $keyset<foo> = False
*saying 17:10
likewise $keybag<marbles> = 0 would throw all the marbles out of the bag and delete the marbles key
lizmat r: say Set.default # expecting False then 17:11
camelia rakudo b41219: OUTPUT«No such method 'default' for invocant of type 'Set'␤ in block at /tmp/MSaUOPYCph:1␤␤»
dalek rl6-bench: 7fb98e8 | (Geoffrey Broadwell)++ | TODO:
Add a few more Rakudo performance-affecting commit TODOs
rl6-bench: 71e806d | (Geoffrey Broadwell)++ | analyze:
More scaled time work in analyze: compare work rates across all compilers and scales for each test
rl6-bench: da8fda3 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Convert most existing microbenchmarks to be auto-scaled, with a first guess at an appropriate starting scale for each
lizmat r: say Bag.default # expecting 0 then
TimToady lizmat: correct
camelia rakudo b41219: OUTPUT«No such method 'default' for invocant of type 'Bag'␤ in block at /tmp/y432ebdvaR:1␤␤»
TimToady defaults are completely NYI though 17:12
and probably not sufficiently specced...
well, the behavior of defaults is specced for KeyHashes, but we haven't set up a trait to set the default 17:13
having a default other than Any might be a mixin/composition 17:14
lizmat indeed: for now in the tests for :delete on arrays, I will assume Any 17:14
TimToady if everything has a default default of Any, that might just be inherited from one of Mu/Any/Cool
colomon are Set.default and Bag.default always False and 0, respectively?
TimToady yes
TimToady so those could just have a hardwired default method 17:15
most standard types would not need to store an actual Any/False/0 in the object 17:16
colomon lizmat: you want to add the tests to roast? ;)
lizmat yes, working on that now
colomon niecza> say Set.default; say Bag.default; 17:17
False
0
TimToady I suppose we'll need a trait that can set it on a declaration though
lizmat colomon: you mean for Set.default and Bag.default ?
colomon lizmat: yes
TimToady my @array is default(42) or some such
dalek kudo/jvm-support: 4e29b8b | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Implement positional slurpy params.
kudo/jvm-support: a4ef060 | jnthn++ | src/core/Mu.pm:
Fix BUILDALL to work on JVM.
kudo/jvm-support: e4b2d65 | jnthn++ | src/core/IO.pm:
A tiny bit of IO portability stuff.
kudo/jvm-support: f889024 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Implement nqp::p6definite.
lizmat Well, maybe later… I'm working on getting :delete on Array tested 17:18
dalek ecza: 009f999 | (Solomon Foster)++ | lib/CORE.setting:
Add default method for Set, KeySet, Bag, and KeyBag.
lizmat what to do with a faulty test? 17:19
eval_dies_ok '$a :delete', "Can't :delete a scalar";
is successful, but for the wrong reason "You can't adverb that"
colomon lizmat: don't worry about it, I'm adding them now myself.
lizmat: (I mean the Set tests) 17:20
lizmat eval_dies_ok '$a :foo', "Can't :delete a scalar"; would also succeed
colomon: ok
TimToady
.oO(What do you do with a drunken test earlie in the morning?)
17:21
colomon finds p6 work intoxicating, because it's frequently so easy to make noticeable progress. Or maybe that's the whisky talking.
lizmat I'll remove the test in a separate commit
colomon TimToady: don't get me started on shanties... 17:21
[Coke] sergot: are you actively running something on feather or is that a background job? 17:22
dalek ast: 95ecaba | (Solomon Foster)++ | S02-types/ (4 files):
Add tests for Set, Bag, etc. default method.
17:24
[Coke] ... and it's gone.
dalek ast: 6d719f1 | (Elizabeth Mattijsen)++ | S32-hash/delete_adverb.t:
More or less complete tests for :delete adverb on hashes

Lot's of cases not tested before.
17:26
ast: 99587bb | (Elizabeth Mattijsen)++ | S32-hash/delete_adverb.t:
Removed bogus Scalar :delete test

This wasn't testing :delete at all, just the failure of adverbing a scalar
lizmat pugs: my %h=a=>1; say %h{*}:delete 17:30
camelia pugs: OUTPUT«pugs: Named argument found where no matched parameter expected: (delete,Val (VBool True))␤»
lizmat pugs: my %h=a=>1; say %h<a>:delete 17:31
camelia pugs: OUTPUT«pugs: Named argument found where no matched parameter expected: (delete,Val (VBool True))␤»
dalek ast: 82b2f2d | (Elizabeth Mattijsen)++ | S32-hash/delete_adverb.t:
Some pugs fudging, as pugs apparently doesn't know adverbs
17:33
lizmat afk for 2 hours or so
colomon r: my $a = set<a b c>; say $a.default 17:34
camelia rakudo b41219: OUTPUT«No such method 'default' for invocant of type 'Parcel'␤ in block at /tmp/FPAXhg2R3W:1␤␤»
colomon er?
n: my $a = set<a b c>; say $a.default
camelia niecza v24-50-gba63d9a: OUTPUT«Unhandled exception: Unable to resolve method default in type Parcel␤ at /tmp/4Oi6XOiUCb line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4327 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4328 (module-CORE @ 582) ␤ at /…
colomon rn: my $a = set<a b c>; say $a.WHAT
camelia rakudo b41219, niecza v24-50-gba63d9a: OUTPUT«(Parcel)␤»
colomon is apparently very dense this morning. 17:35
dalek kudo/nom: 1708566 | (Solomon Foster)++ | src/core/ (2 files):
Add default method for Set, KeySet, Bag, and KeyBag.
17:42
masak_ oh hai, oh hai, dear #perl6
TimToady std: my $a = set<a b c>; say $a.WHAT 17:46
camelia std b33d8e0: OUTPUT«ok 00:00 43m␤»
TimToady I guess that isn't one that carps about having no args
since set() is just ∅ 17:47
TimToady but set<a b c> is going to be a common mistake 17:48
colomon rn: my $a = set(<a b c>); say $a.WHAT
camelia rakudo b41219, niecza v24-50-gba63d9a: OUTPUT«(Set)␤»
colomon rn: my $a = set <a b c>; say $a.WHAT
camelia rakudo b41219, niecza v24-50-gba63d9a: OUTPUT«(Set)␤»
colomon yeesh
colomon is always delighted to have TimToady explain how colomon is being dense. :) 17:49
masak labster++ # blog.brentlaabs.com/2013/05/porting...erl-6.html
TimToady maybe I could add 'set' and 'bag' to the category of functions that require an argument, since set() defeats that warning
masak "Now that I've written this, I've realized that my own project is a microcosm of the Perl 6 saga. Making a better codebase takes a lot of time, but it ultimately seems worth the effort." -- labster++ 17:50
TimToady std: say<a b c>
camelia std b33d8e0: OUTPUT«===SORRY!===␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/e8wl57bRHS line 1:␤------> say⏏<a b c>␤Check failed␤FAILED 00:00 41m␤»
TimToady like that
masak TimToady: +1
PerlJam TimToady: +1
TimToady we had many of those errors in early pugs code too 17:51
PerlJam I just know that it took me a little bit to figure out what colomon was doing wrong. Anything that minimizes the "Huh?" factor is a good thing. :) 17:54
colomon rn: say [(|)] set <a b c>, set <a b d>, set <a d g> 17:57
camelia niecza v24-50-gba63d9a: OUTPUT«Unhandled exception: No value for parameter '$b' in 'infix:<(|)>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<(|)> @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2658 (reduceop @ 12) ␤ at /tmp/Grdwz9eGgL line 1 (mainline @ 6) ␤ at /hom…
..rakudo b41219: OUTPUT«Too many positional parameters passed; got 5 but expected 2␤ in sub infix:<(|)> at src/gen/CORE.setting:13075␤ in sub at src/gen/CORE.setting:13910␤ in block at /tmp/8vS6PdbMHl:1␤␤»
masak lizmat: re irclog.perlgeek.de/perl6/2013-05-14#i_7064076 -- I unspec'd multiple signatures per routine body a year and a half ago. rationale here: github.com/perl6/specs/commit/9950...a69fc9e4a5
PerlJam r: sub foo(::T where *.does(R)) { ... } 17:58
camelia rakudo b41219: OUTPUT«===SORRY!===␤Cannot do non-typename cases of type_constraint yet␤at /tmp/djU_uHnr55:1␤------> sub foo(::T where *.does(R)⏏) { ... }␤ expecting any of:␤ argument list␤ postfix␤»
masak lizmat: in real Perl 6 code I would delegate all the different candidates to a common helper sub, and hide the helper sub as appropriate. 17:59
PerlJam std: sub foo(::T where *.does(R)) { ... }
camelia std b33d8e0: OUTPUT«===SORRY!===␤Undeclared name:␤ 'R' used at line 1␤Check failed␤FAILED 00:00 45m␤»
TimToady colomon: note that set is a listop, so each set is counting the following sets as sub-arguments
PerlJam std: role R {}; sub foo(::T where *.does(R)) { ... }
camelia std b33d8e0: OUTPUT«ok 00:00 45m␤»
colomon TimToady: wondered about that. but it should work either way...
TimToady not if we make sets of sets work right 18:00
PerlJam: why not just 'where R' ?
PerlJam Just didn't think of it that way.
colomon TimToady: that's not allowed by the current spec, is it?
TimToady I believe current spec doesn't allow sets to flatten in list context 18:01
and the constructor should not be flattening sets either
colomon TimToady: I take it back, current spec does not address this at all, at least not in S32
colomon TimToady: it's nothing to do with flattening. set function absorbs the keys or values of collections, including Sets 18:02
TimToady see line S32/Containers:1112
TimToady but it's also the case that the constructors should be treating the incoming elements as items 18:03
colomon TimToady: I assume you mean "Sets and Bags do not flatten into list context." ? 18:04
TimToady in general, items should stay items
they show up as $@keys, not @keys, basically
colomon that's very much not how it is implemented
masak .oO( what happens in Vega$ stays in Vega$ )
colomon rn: say set(<a b c>, <d e f>) 18:05
camelia rakudo b41219, niecza v24-51-g009f999: OUTPUT«set(a, b, c, d, e, f)␤»
TimToady yes, I know, since I was one of the people who originally thought the dwimming was cute, until it wasn't
masak colomon: but those are parcels, not sets and bags.
TimToady yes, parcels can flatten in list context by default
colomon rn: my $a = set <a b c>; my $b = set <d e f>; say set($a, $b)
camelia rakudo b41219, niecza v24-51-g009f999: OUTPUT«set(a, b, c, d, e, f)␤» 18:06
masak colomon: known, RT'd, deplored.
TimToady likewise, if you really want to incorporate one set in another, the you can use (|) or set <a b c>, $otherset.keys
colomon rn: my @a = <a b c>; my @b = <d e f>; say set(@a, @b)
camelia rakudo b41219, niecza v24-51-g009f999: OUTPUT«set(a, b, c, d, e, f)␤»
TimToady or ∪ if we ever arrive in the 21st century... 18:07
masak .oO( ∪∩icode ) 18:08
colomon feels like he's going insane. 18:09
masak hugs colomon 18:11
colomon if someone cares to explain what the rules for set / bag construction are actually meant to be (preferably in spec), I'll try to get around to fixing roast and both compilers.... 18:12
TimToady we've been talking about how to write sets of sets for some months now, but I will see if I can enhance the specs in that regard
colomon and the production code I've written which relies on the current behavior... 18:13
rjbs the spec will metasetize
masak colomon: let me try and summarize the situation. @ or % sigil? flatten. $ sigil? don't flatten. <> or () lists? flatten. [] array? don't flatten. a set or a bag, constructed in-place with 'set' or 'bag'? don't flatten. 18:15
TimToady: hope I got that right.
colomon masak: I have no idea how to write code to support that
masak colomon: well, if it turns out to be *impossible* to implement, we must do something about that. 18:16
masak colomon: but so far it has seemed quite sane to me. 18:16
masak colomon: basically, some things act as flattenable lists, and others act as items. sets and bags act as items. 18:16
colomon masak: how do you write a slurpy sub which can distinguish whether its arguments were $ or @/%? 18:17
masak hm. 18:18
rn: say $_ ~~ Positional for Set, Bag; say $_ ~~ Associative for Set, Bag 18:20
camelia rakudo 170856, niecza v24-51-g009f999: OUTPUT«False␤False␤True␤True␤»
masak colomon: I'm not at the point where I'm saying "oh gosh, you're right, this is impossible" yet -- but I do see the problem. lemme think some more. 18:23
rn: sub foo(*@x) { say @x.elems }; my @y = 1, 2, 3; foo(@y); foo @y 18:25
camelia rakudo 170856, niecza v24-51-g009f999: OUTPUT«3␤3␤»
jnthn That's the **@foo vs *@foo distiction in part, no?
colomon masak: also, those rules seem to ignore (possibly intentionally) the current rules for handling associative / pairs (use keys only) 18:26
jnthn: I thought **@foo was how you sent a variable number of lists? 18:27
jnthn colomon: It means "don't flatten any of the incoming things"
nqp: say(nqp::replace('abc', 'x', 0, 0)) 18:28
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::replace('abc', 'x', 0, 0)"): Error while compiling op replace (source text: "nqp::replace('abc', 'x', 0, 0)"): No registered operation handler for 'replace'␤current instr.: '' pc 48591 (src/stage…
jnthn oh..
nqp: say(pir::replace__Sssii('abc', 'x', 0, 0))
camelia nqp: OUTPUT«error:imcc:The opcode 'replace_s_sc_sc_ic_ic' (replace<5>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 39␤»
jnthn nqp: say(pir::replace__Sssii('abc', 0, 0, 'x')) 18:29
camelia nqp: OUTPUT«error:imcc:The opcode 'replace_s_sc_s_ic_i' (replace<5>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 161304349␤»
jnthn nqp: say(pir::replace__Ssiis('abc', 0, 0, 'x')) # sigh
camelia nqp: OUTPUT«xabc␤»
jnthn nqp: say(pir::replace__Ssiis('abc', 0, 1, 'x')) # sigh
camelia nqp: OUTPUT«xbc␤»
jnthn nqp: say(pir::replace__Ssiis('abc', 1, 1, 'x')) # sigh
camelia nqp: OUTPUT«axc␤»
jnthn ah...
dalek ecs: 221b79f | larry++ | S32-setting-library/Containers.pod:
sets and bags are object based, use === semantics
18:31
dalek ecs: 0380487 | larry++ | S32-setting-library/Containers.pod:
more set/bag list clarifications

We're not trying to override explicit @ or .keys here, merely the implicit policy for a default of item in list context.
Also, set/bag constructors are simply slurpies, and shouldn't care at all what was passed as the objects in those slurpies. Generally one should be using "union" to combine sets or bags anyway, not relying on implicit constructor semantics to do that.
18:39
colomon TimToady: can you add explicit .Set .Bag etc conversion functions to the spec as well? This change makes them much more important.... 18:43
dalek ecs: 1e7aec4 | larry++ | S32-setting-library/Containers.pod:
say how to turn pairs/hashes into sets/bags
18:46
TimToady uh, just did 18:47
well, mentioned them, anyway...
as the new way to deal with pairs or hashes that want to become sets/bags
colomon TimToady: I was thinking Set.Bag and combinations like that, but it's good to have them on Hash, too. 18:49
though perhaps a bit vague.
TimToady I usually just assume there are appropriate coercers where they make sense :) 18:50
TimToady but in this case it seems good to distinguish coercion from composition 18:51
TimToady "this already looks kinda like a bag, so make it moreso" 18:51
colomon it's important because the established way of doing it was via constructor, and you just eliminated that. :) 18:52
TimToady which is what we both realized simultaneously :)
colomon the relevant spectests are now badly broken. I should probably do some paying $work now, but will take a look at cleaning it up soon. 18:54
TimToady though in the case of Set => Bag, a constructor works just as well as long as you say @set rather than $set
thanks!
colomon also at fixing set operators so they work right in reduce metaop 18:55
because that just got more important as well.
(indeed, ABC will have issues if I don't fix that the same time I change the constructors.)
TimToady I realized several months ago when we had an RC task that wanted sets of sets that we were about to laughed out of the stadium by mathematicians if we didn't fix this... 18:56
TimToady wonders what kind of stadum mathematicians come in... 18:57
*dium
colomon bah, didn't we learn our lesson 100+ years ago? Sets of sets are dangerous things.
very large football stadiums, in my case. ;)
TimToady but...we want P6 to be dangerous...
masak it's not sets of sets that are dangerous. ZFC is full of them (and *nothing else*). 18:58
PerlJam now pictures that TimToady quote showing up on twitter out of context.
masak it's non-wellfoundedness we should look out for.
TimToady it's sets defined in terms of themselves that are the problem
TimToady We want Perl 6 to be the safest dangerous language, and the most dangerous safe language. 18:59
colomon hopes masak and TimToady don't spend the rest of the day trying to figure out how to implement a set that contains itself....
TimToady r: my @a = <a b c>; @a[3] := @a; say @a 19:00
camelia rakudo 170856: OUTPUT«(timeout)»
FROGGS hehe
masak r: my $s = set; multi sub infix:<(elem)>(Set $r, Set $l) { $r === $s && $l === $s ?? True !! nextsame }; say $s (elem) $s 19:02
camelia rakudo 170856: OUTPUT«True␤»
masak \o/
masak admires the horribleness of that 19:03
in fact,
r: my $s = set; multi sub infix:<(elem)>(Set $r, Set $l) { $r === $s && $l === $s || nextsame }; say $s (elem) $s
colomon somebody else can be responsible for coming up with set of sets tests for roast....
camelia rakudo 170856: OUTPUT«True␤»
colomon shouldn't we be working on number theory today, considering all the interesting announcements? 19:06
moritz like the prove for the weak Goldback hypothesis? 19:07
sorear wait, what?
colomon sorear: odd nums > 5 are the sum of 3 primes, that one 19:08
it's not confirmed yet, but there's supposed to be a 130 page proof. 19:09
also, there are an infinite number of pairs of primes within 70,000,000 of each other. 19:10
moritz plus.google.com/u/0/11413483434647...qpSYNZFbzC
colomon two separate proofs
moritz arxiv.org/abs/1305.2897 is the paper for the Goldbach one
masak it's a good day to be prime.
colomon plus.google.com/u/0/11413483434647...ESxA9bL5um talks about the other result 19:11
dalek d: e2a36d8 | larry++ | STD.pm6:
disallow set<a b c>

A (beneficial?) side effect is that you may no longer say 'set' to mean ∅. You must say 'set()' instead. Which is perhaps clearer...
moritz quick, let's do some RSA with expmod :-) 19:12
PerlJam wikipedia says odd nums > 7 for the goldbach conjecture: en.wikipedia.org/wiki/Goldbach's_weak_conjecture
(and, as we all know, wikipedia is infallible ;)
colomon PerlJam: 2 + 2 + 3 = 7
PerlJam 2 is not an odd number last time I checked :) 19:14
moritz 2 is the oddest prime :-)
masak PerlJam: that's not relevant.
TimToady 2 is the only prime that is not the sum of 3 primes if we allow 1 to be a prime :)
masak it's the sum that should be odd.
TimToady well, and 1
dalek rl6-bench: 53be1bb | (Geoffrey Broadwell)++ | analyze:
Calculate peak rates per perl in analyze compare_scaled_times()
19:15
rl6-bench: b3a904a | (Geoffrey Broadwell)++ | analyze:
More analyze changes for scaled times: fix enabled_perls() and start fixing summarize_results_text()
PerlJam masak: and we're back to what wikipedia says ... "Every odd number greater than 7 can be expressed as the sum of three odd primes."
colomon TimToady: I did find it interesting that weak Goldbach seems like it is more naturally stated if 1 is prime. :)
PerlJam: wikipedia is weird 19:16
PerlJam I don't know that that's Goldbach's weak conjecture or not, but it's certainly different than "every odd number greater than five is the sum of three primes"
masak PerlJam: well, if you require the primes to be odd, then you'd lose 7, yes.
PerlJam right.
moritz PerlJam: I guess there are several competing phrasings of that conjecture, all of which boil down to the same interesting question
masak besides that, it's not clear to me that the claims are equivalent.
moritz because it's easy to prove it for any arbitrary limit you set yourself 19:17
colomon PerlJam: check out the summary to arxiv.org/abs/1305.2897
sorear looks like this isn't the first purported proof of the WGC that's too long to quickly verify 19:20
and it probably won't be the last. sorry.
PerlJam sorear: all the hard problems are.
moritz though the good sign is that the same author previously published an accepted proof for a weaker formulation 19:21
moritz time will tell. 19:21
PerlJam Remember the hubub around the proof of Fermat's Last Theorem? Took a couple of years to work out if the proof was a proof. 19:24
masak my latest "wow" moment related to mathematics was learning (on Wikipedia) that the fundamental theorem of finitely generated abelian groups is directly related to the Chinese remainder theorem.
I have a special sweet spot for the latter, because of a program involving numbers modulo 3, 5, and 7 found in this book: www.amazon.com/BASIC-Computer-Games...894800523/ 19:26
masak I should totally blog about that one at some point. 19:30
PerlJam I have a book by the same author called "The Texas Instruments Home Computer Idea Book" I gather he was prolific in BASIC books :) 19:35
masak those BASIC games meant a lot to my early growth as a programmer. not because they were of excellent design, but because they were fun, and interesting to try to reverse-engineer. 19:41
and it's kind of rewarding when you reverse-engineer a number guessing game and find the Chinese remainder theorem. :P
FROGGS std: use v5; require v5.0.0 19:43
camelia std e2a36d8: OUTPUT«===SORRY!===␤Number contains two decimal points (missing 'v' for version number?) at /tmp/XMkktheIyn line 1:␤------> use v5; require v5.0.⏏0␤Parse failed␤FAILED 00:01 52m␤»
masak er. 19:44
confused STD is confused.
FROGGS ya, but we can help it out there :o) 19:45
dalek p/rak-jvm-support: 41e4fb0 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix nqp::div_In.
19:47
p/rak-jvm-support: fc571c1 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Implement nqp::replace op.
dalek d: 4dc2553 | (Tobias Leich)++ | STD_P5.pm6:
allow: require VERSION

Found in Perl5's testsuite in t/comp/require.t.
19:50
rl6-roast-data: 14f41d4 | coke++ | / (4 files):
today (automated commit)
19:54
[Coke] niecza has been dirty for 301 days. pugs has been clean for 1 day. rakudo has been dirty for 10 days. # yay, pugs is clean again. 19:56
FROGGS ó.ò
I wish I could reproduce that rakudobug
[Coke] Happy to test proposed fixes for rakudo on feather, since that's the only place it seems to be exploding on that test.
FROGGS: do you have an account on feather?
FROGGS ohh, I had once
hmmm 19:57
TimToady std: set<a b c>;
camelia std e2a36d8: OUTPUT«===SORRY!===␤The 'set' listop may not be called without arguments (please use () or whitespace to clarify) at /tmp/PADZ4qSrTX line 1:␤------> set⏏<a b c>;␤Potential difficulties:␤ Use of non-subscript <...> where postfix is expec…
TimToady std: set; 19:58
camelia std e2a36d8: OUTPUT«===SORRY!===␤The 'set' listop may not be called without arguments (please use () or whitespace to clarify) at /tmp/t3YsN5H42z line 1:␤------> set⏏;␤Check failed␤FAILED 00:00 41m␤»
TimToady std: set();
camelia std e2a36d8: OUTPUT«ok 00:00 41m␤»
masak TimToady++ 19:59
masak rn: set<a b c>; 20:00
camelia rakudo 170856, niecza v24-51-g009f999: ( no output )
masak submits rakudobug
rn: set;
camelia rakudo 170856, niecza v24-51-g009f999: ( no output )
FROGGS [Coke]: I've got a mail in my outbox about requesting an account on feather, but I cant remember if I already got one :/ 20:01
moritz: can you check that somehow?
[Coke] ~froggs exists. 20:04
let me see if I can reset your password. 20:05
FROGGS cool
[Coke] tries to figure out how to go to window 27 with an escape key in irssi. 20:08
moritz FROGGS, [Coke]: did the password reset work?
Tene "escape key"?
FROGGS moritz: it did 20:09
Tene [Coke]: /bind
[Coke] tene: ESC-7:/win 7::ESC-U:/win 17::ESC-??:/win 27 20:10
Tene [Coke]: yeah, just set it with /bind. You can run /bind with no arguments to get a list of current bindings for examples. 20:10
I have up to 33 bound, going down the keyboard through m 20:11
Util For the GSoC task "JavaScript backend for NQP (and Rakudo Perl 6)", benabik is listed as a possible mentor, but he is also listed on other tasks.
Any Rakudo people up for being mentor (or co-mentor or backup mentor) for that task? 20:12
[Coke] pmichaud had volunteered. I'm willing to if no one else does.
Tene [Coke]: Just make sure to /save when you've got it how you want. 20:13
Util [Coke]: yes, he did, and I did not see my note about it before asking. Thanks! 20:15
ajr_ I was just looking around the code for a place to maintain the record count $*IN.input_record_number() (rakudo/src/core/IO.pm ?) but then two thoughts occurred to me. 20:22
First, this looks like a method, not a variable name. 20:23
FROGGS moritz / [Coke]: I cant install parrot, it tells me the disk is full O.o
ajr_ Second, how to maintain the value, associated with the file - what happens if there are multiple files in/out? 20:24
PerlJam ajr_: aye, it's a method. Is that a problem? 20:25
ajr_ Well, the value has to be maintained somewhere. 20:26
masak ajr_: the method is just a way to return the value.
PerlJam ajr_: the value is kep in the object. 20:27
s/kep/kept/
masak I don't know the answer to the "multiple files in/out" question. the question feels insufficiently specified.
ajr_ The fact it's a method may make the question redundant, though how is the method associated with a particular file? 20:28
[Coke] FROGGS: whoops. I'll see how much of that I can deal with. 20:29
ajr_ There might be a case where you're reading two files, and want the record count for each one.
masak ajr_: it's associated with a filehandle, like $*IO
ajr_: if you've opened your own file, and stored the filehandle in a variable $fh, it'd be $fh.input_record_number() 20:30
ajr_: I'm confused at your confusion :)
PerlJam ajr_: are you thinking of p5's automagic $ARGV switching when reading the ARGV handle? 20:31
ajr_ So $*IN.input_record_number() would return the count for STDIN?
masak aye.
dalek rl6-bench: a90094c | (Geoffrey Broadwell)++ | analyze:
More improvements to summarize_results_text() in analyze
20:32
rl6-bench: 4a29ed0 | (Geoffrey Broadwell)++ | analyze:
More tweaks to headers in summarize_results_text() in analyze
PerlJam notes that the $ARGV equivalent is to be determined in S28
TimToady wonders if it would make more sense to send the line number with the line in question
ajr_ Is the same input method used for all files, including $IN*, or are there special ones? 20:34
PerlJam ajr_: "same input method"?
PerlJam TimToady: would that imply that the idiom for lines() would change? 20:37
ajr_ PerlJam: I'm trying to find the appropriate place to maintain a record count, which is presumably where the file is read?
PerlJam ajr_: the IO handle that's associated with the file seems like the right place to me.
ajr_: are you asking if there are other IO thingies that read files that aren't also IO::Handles? 20:38
dalek kudo/jvm-support: 2dc8c3a | jnthn++ | src/core/terms.pm:
Make %*ENV setup portable (hopefully).
20:39
kudo/jvm-support: 7a2efe3 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Ops.java:
Missing null check.
kudo/jvm-support: 9412ca4 | jnthn++ | src/core/ (3 files):
Mark out a few things that explode on JVM.

This gets the setting loadable, just about.
colomon \o/
ajr_ PearlJam: I think that's the question.
PerlJam ajr_: you could start with solving the problem for IO::Handle and then worry about other IO thingies if they happen to show up. 20:40
ajr_ OK, I'll look there. 20:41
[Coke] FROGGS: you probably have enough room to build one parrot now, anyway. 20:45
FROGGS [Coke]: yeah, currently trying... [Coke]++ 20:46
jnthn $ perl6 -e "say 'omg something works on le jvm'" 20:52
omg something works on le jvm
donaldh jnthn++
jnthn That's probably about all that works, but... :P
donaldh heh 20:53
jnthn Gee, this startup time will want a little work :)
[Coke] Anyone who is using perlbrew on feather - please remove your build directories. 20:54
FROGGS jnthn++ 20:54
[Coke] (azawawi is the one I found first, but that's pretty big)
dalek p/rak-jvm-support: 9d74404 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
Support nqp::isattrinit properly on P6opaque.
20:55
p/rak-jvm-support: 9db6da9 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java:
More informative errors.
[Coke] (I don't actually see an subcommand for perlbrew to do a cleanup. wonder if it's safe to just remove the build dir.) 20:57
FROGGS [Coke]: maybe it is blowing up because of the qemu vm 21:00
japhb__ What module in the Perl 5 world would create the closest equivalent of (simple variable) binding in Perl 6?
PerlJam someone could setup perlbrew system wide so that each version is only installed once ( that might mitigate the build dir size problem at least) 21:01
[Coke] FROGGS: are you seeing the failure now
sorear Data::Alias?
lizmat japhb_: Data::Alias provides an "alias" function
dalek kudo/jvm-support: 33bc338 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (3 files):
Add DEBUG_MODE flag for the reams of warnings.

Turn them off by default, so "say 'hello'" doesn't give thousands of lines of output.
21:04
kudo/jvm-support: 09ecb72 | jnthn++ | src/ (2 files):
Small tweaks to get 'hello world' working.
kudo/jvm-support: 5c82398 | jnthn++ | / (2 files):
Add CORE.setting to the build.
FROGGS [Coke]: not yet
pmurias Ulti: re mentors, pmichaud is mentioned in the 21:05
Ulti: "Possible Mentors" section
japhb__ lizmat, sorear, thank you. 21:06
[Coke] FROGGS: try the version in ~coke/sandbox/perl6pass/rakudo 21:11
FROGGS k, thanks
I'm not sure my rakudo there is picking up the right nqp 21:12
[Coke] the build in my dir is whatever is recommended by the the nom branch.
ajr_ The lines method in IO.pm maintains a line count ($count) which could be stored, but slurp doesn't. Is it reasonable to expect a line count for a slurped file? 21:13
FROGGS ajr_: if you slurp a file at once, what do you need a line count for?
[Coke] .tell au - so far, you have the biggest directory on feather and we're tight on space. Anything you can clean up?
yoleaux [Coke]: I'll pass your message to au.
sorear au doesn't irc often, you ought to send an email too 21:14
ajr_ FROGGS: The number of lines (records) in the file might be significant; what if that's what interests you? 21:15
[Coke] If someone who knows her email addy could do that, I'd appreciate it.
FROGGS [Coke]: okay, I get the coredump with my freshly built rakudo too
lizmat ajr_: lines method is specced as only being applicable to lines red with "get" (S32/IO:202)
read 21:16
[Coke] FROGGS++
ajr_ OK, then the answer for slurp is no, it's not reasonable. 21:16
FROGGS r: say "abc\ndef\n".lines() 21:17
camelia rakudo 170856: OUTPUT«abc def␤»
FROGGS r: say "abc\ndef\n".lines().elems
camelia rakudo 170856: OUTPUT«2␤»
ajr_ There's a method "ins" in S32 which looks as though it's meant to be what S28 has defined as input_record_number: 21:32
$. $NR $*IN.input_record_number()
$/ $RS $*IN.input_record_separator()
lizmat is there a reason why Array.elems is not a left value ? 21:44
or do I have to use .splice to set the length of an array ? 21:45
japhb lizmat, diakopter++ pointed out that I should mention to you: I'm head down on my benchmarking talk, trying to give you, tadzik, FROGGS, etc. as much time as possible to hash out ecosystem thoughts, before I write my ecosystem talk. diakopter helpfully pointed out that if I don't say it out loud, no one knows. ;-)
FROGGS japhb: k, good to know :o) 21:46
lizmat which ecosystem talk?
nobody tells me anything ever :-)
lizmat rn: my @a; @a.elems=3 21:46
FROGGS lizmat: interesting idea
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/Zu4pfdqp6Q line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4332 (module-CORE @ 582) ␤ at /home/p6eval/niecza/li…
..rakudo 170856: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/gsA4w0QamN:1␤␤»
lizmat $#array in perl 5 is also a left value, fwiw :-) 21:47
FROGGS hehe
it is somehow weird what I learn about perl 5 in this channel
lizmat he, you're reimplementing it, you should pick up *something* :-) 21:48
tadzik japhb: hash out?
japhb: I can find my old ecosystem talk slides if you want them 21:49
japhb: the talk sucked though
[Coke] ah. the big space hog is in /data/var/spool 21:49
PerlJam lizmat: you don't have to use splice, you can just set @array[$index] 21:50
lizmat ?? you mean at initialization?
japhb tadzik, hash out = brainstorm/discuss/figure out/design ... 21:51
[Coke] will continue the hunt when I get home.
japhb lizmat, looking for talk on yapc site, hold
PerlJam r: my @array; @array[57] = Nil; @array.elems
camelia rakudo 170856: ( no output )
PerlJam r: my @array; @array[57] = Nil; say @array.elems
camelia rakudo 170856: OUTPUT«58␤»
japhb lizmat: www.yapcna.org/yn2013/talk/4695
Description written by diakopter. ;-)
lizmat PerlJam: and now to make it smaller ? 21:52
PerlJam lizmat: do you want to limit the size of the array, or just extend it like you can in Perl 5?
lizmat I want to limit it
dalek rl6-bench: 594448e | (Geoffrey Broadwell)++ | analyze:
analyze: comment out unused line, improve HTML output
21:53
rl6-bench: 492eed3 | (Geoffrey Broadwell)++ | / (2 files):
Use Data::Alias to simulate binding on Perl 5; add to PREREQUISITES list in README
lizmat n: my @a= (1..10); @a[*]:delete; say @a 21:55
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Excess arguments to KERNEL Array.postcircumfix:<[ ]>, unused named delete␤ at <unknown> line 0 (KERNEL Array.postcircumfix:<[ ]> @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 179 (postcircumfix:<[ ]> @ 5) ␤ at /tmp/wvTQEKVp_w …
lizmat pugs: my @a= (1..10); @a[*]:delete; say @a 21:56
camelia pugs: OUTPUT«*** ␤ Unexpected ":delete"␤ expecting term postfix or operator␤ at /tmp/60aQ8LsoAm line 1, column 22␤»
PerlJam oh, then my @array[15]; # will limit the size of the array, but it's NYI (I think)
lizmat yes, but that's compile time, I want runtime :-)
perlpilot [Coke]: feather is pausing bizarrely for me. I guess this is related to the almost-full disk? 21:58
FROGGS perlpilot: maybe [Coke] is running a treesize? I experience pauses too 21:59
lizmat pugs: my %h=a=>1; say %h{*}:delete 22:01
camelia pugs: OUTPUT«pugs: Named argument found where no matched parameter expected: (delete,Val (VBool True))␤»
lizmat n: my %h=a=>1; say %h{*}:delete
camelia niecza v24-51-g009f999: OUTPUT«(Any)␤»
sorear o/ perlpilot 22:02
dalek ast: 574c899 | (Elizabeth Mattijsen)++ | S32-hash/delete_adverb.t:
Added Array:delete tests

Also made sure that fudging Niecza and Pugs is hopefully correct, so that syntax errors are "skip" rather than "todo"
22:04
raiph am i right in understanding that jnthn++ has "hello world" working for rakudo on jvm? 22:08
FROGGS raiph: yes, look like 22:08
lizmat thinks it was "omg something works on le jvm", and not "hello world" :-) 22:09
FROGGS pedantic :P
lizmat that's my *middle* name 22:10
raiph lizmat: ??? i'm asking if he's saying that 'say "hello world"' works on his local rakudo on jvm. 22:11
diakopter yes 22:12
it does
21:21 < jnthn> 23:33 < jnthn> $ perl6 -e "say 'omg something works on le jvm'" 22:13
21:21 < jnthn> 23:33 < jnthn> omg something works on le jvm
lizmat irclog.perlgeek.de/perl6/2013-05-14#i_7068276
diakopter ohhh
lol.
now I get it. :)
raiph ohh, i missed that. just saw the later commit msg, thanks lizmat 22:14
lizmat I wonder how bad it would be to have a separate "multi method postcircumfix:<[ ]>(\SELF: $pos where $pos < 0) is rw {" candidate to fail 22:17
and remove the "fail if $pos < 0" from all the other candidates in Any 22:18
jnthn lizmat: Suspect that way spoils the cache's day too. 22:19
lizmat I guess the optimiser isn't smart enough to skip that candidate altogether when $pos is an uint ? 22:20
jnthn It can't do anything when it's a method call, which it is at the moment.
In the future, they'll be multi subs, and it'll be able to analyse them more, but it's likely to handle the way it is now better. 22:21
Or at least do so sooner.
FROGGS just to confirm: I cant export/import a variable from a module right now, or can I?
jnthn FROGGS: Only constants.
lizmat and I don't think you can do enums either 22:21
FROGGS :/
I want to export %*ENV as %ENV to v5 22:22
lizmat not unless you make your own EXPORT sub
afaik
FROGGS doing that would be fine too, but it didnt work yesterday when I tried
jnthn You can do enums, it just doesn't export the elements. 22:23
As in, you have to longname 'em.
lizmat ah, yes, it exports the elements if you map $_ to "eval $_", if I remember correctly
FROGGS r: module A { sub EXPORT(|) { my %ex; %ex<%ENV> := %*ENV; %ex } }; import A; say %ENV 22:24
camelia rakudo 170856: OUTPUT«===SORRY!===␤Variable '%ENV' is not declared␤at /tmp/piquGLNSNU:1␤------> V> := %*ENV; %ex } }; import A; say %ENV⏏<EOL>␤ expecting any of:␤ postfix␤»
FROGGS should that work? (by spec?)
lizmat sub EXPORT should be in UNIT 22:28
(before the "module") 22:29
lizmat is just cargo-culting from code she made for the masakism workshop
donaldh jnthn: Trying to use HLL::Compiler.lineof but QAST::CompilerJAST is not an HLL::Compiler.
FROGGS okay, so it must be a separate file
donaldh jnthn: Can I get to the HLL::Compiler ? 22:30
lizmat possibly, not sure
jnthn UNIT implies separate file, yeah.
donaldh: I suspect so.
FROGGS ... because I cant import from a module I am in
k, will try that after $short-sleep 22:31
gnight all o/
jnthn donaldh: You may need a "use NQPHLL" or so.
'night, FROGGS
donaldh ah.
jnthn donaldh: Which may also want a Makefile update to add the dep.
donaldh jnthn: I tried a use HLL::Compiler which blew up :)
lizmat 'night FROGGS
FROGGS HAH!! it is working!! 22:32
I just had to move it before my "class Perl5::Terms;" declaration 22:33
lizmit++ # should be lizmit**100
\o/
donaldh jnthn++ use NQPHLL works 22:34
and Makefile dep appears to be there already. 22:36
jnthn oh : 22:38
:)
donaldh yay, part way there. I have line numbers for the starts of blocks. 22:53
jnthn \o/ 22:54
donaldh The stack goes from NQPHLL.nqp -> t/nqp/01-literal.t -> NQPCORE.setting
I know it _should_ do that, but it's still surreal. 22:55
jnthn :)
This will be a big help. :)
[Coke] do we have any qmail admins here? 22:57
masak jnthn++ # hello world 22:58
jnthn is almost done with a blog post :)
donaldh It, uh, isn't that friendly in the Eclipse debug view until you click on a line gist.github.com/donaldh/5580373
[Coke] jnthn++! 22:59
masak dang, now I gotta wait until jnthn posts his blog post until I can go to bed... :P 23:00
lizmat can't wait for jnthn's blog post, but can't keep her eyes open so goes to sleep&
masak 'night, lizmat 23:01
jnthn o/ lizmat
masak dream about successful EXPORTs.
[Coke] we want mail to be working on feather, yes? 23:13
I see undelivered git messages to audreyt from 2011, e.g. 23:14
lue Did I read that last rakudo/jvm-support commit from a while ago correctly? (Specifically, "I can use Rakudo on JVM... kinda")
[Coke] hello world works. 23:15
lue goes to upgrade his icedtea then 23:16
donaldh needs a faster computer 23:17
s/needs/wants/ 23:18
[Coke] .ask juerd - feather ran out of disk space today- looks like messages are piled up in /var/qmail from (ever) and need to be delivered. 23:19
yoleaux [Coke]: I'll pass your message to juerd.
[Coke] .ask juerd - I'm out of my depth and don't know anything about qmail. 23:20
yoleaux [Coke]: I'll pass your message to juerd.
[Coke] (now might be a good time to create a .forward file if you don't have one.)
masak 'night, #perl6 23:29
TimToady o/ 23:30
jnthn post: 6guts.wordpress.com/2013/05/15/raku...-answered/ 23:32
TimToady \o/ 23:34
sorear jnthn++ 23:35
donaldh jnthn: I've sent a pull request for source annotations on rak-jvm-support 23:41
jnthn donaldh: Thanks; I'll take a look tomorrow.
donaldh g'night o/ 23:42
jnthn Should rest now...need to make some vague attempt to get my body to sleep at normal-ish times given I gotta teach Thu/Fri...
'night
[Coke] jnthn++ 23:51