»ö« 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.
00:04 leprevost left 00:08 Timbus joined 00:17 leprevost joined 00:23 rjbs joined 00:27 pecastro left 00:34 jaldhar_ left
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 :-)
00:36 Chillance left 00:37 fgomez joined
gtodd wonders if there's a perl5i compiler bot along with p5eval, rakudo, niecza 00:38
00:39 kbenson1 left
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.
00:40 kbenson joined 00:41 eternaleye joined, eternaleye left, eternaleye joined 00:43 lizmat joined 00:44 jaldhar_ joined 00:45 autumn joined 00:46 [bjoern] left
diakopter gtodd: oh, I presume perl5i uses autobox... 00:47
00:51 kbenson left 00:52 kbenson joined 00:53 snarkyboojum joined 00:58 dayangkun joined 00:59 betterworld joined 01:05 anuby joined 01:23 FROGGS joined 01:24 kbenson left 01:28 eternaleye left 01:31 eternaleye joined 01:41 cognominal joined 01:46 berekuk joined 01:48 berekuk left 02:05 kurahaupo left, kurahaupo joined 02:07 ingy joined 02:19 dayangkun left
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
02:24 japhb_ left 02:26 dayangkun joined 02:29 lustlife joined 03:02 japhb left, japhb joined 03:03 senaxfz joined 03:21 senaxfz left 03:29 preflex_ joined, preflex_ is now known as preflex 03:45 japhb_ joined 03:58 leprevost left 04:09 cognominal left 04:25 Psyche^ joined 04:28 Psyche^ is now known as Patterner
diakopter .tell moritz I *love* the collapsed join/part msgs; nice! 04:45
yoleaux diakopter: I'll pass your message to moritz.
05:09 ingy left 05:10 genehack joined 05:13 SamuraiJack joined, kshannon joined 05:15 ingy joined 05:17 ruoso joined 06:07 kaleem joined 06:43 FROGGS left 06:48 domidumont joined 06:55 domidumont left 06:56 domidumont joined, FROGGS joined 07:07 frdmn joined
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
07:17 kurahaupo left 07:39 cibs joined 07:41 pencilk joined
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!
07:44 dmol joined 07:45 daxim joined 07:51 berekuk joined
lizmat so what is the right way of running a single spectest test-file? 07:58
07:58 fhelmberger joined
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
08:01 pencilk left
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
08:11 sqirrel joined
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
08:13 berekuk left 08:15 berekuk joined
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
08:30 pecastro joined
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
08:40 pecastro_ joined
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?
08:46 dakkar joined 08:47 hlin_ joined, odoacre_ joined, cognominal joined 08:48 araujo_ joined, odoacre_ is now known as odoacre 08:49 pecastro left, araujo left
tadzik python is easier, there are more python programers, so using python is cheaper for them 08:50
08:51 sqirrel left 09:06 domidumont left 09:11 AMENDEES_ joined 09:25 berekuk left
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
09:33 domidumont joined 09:35 domidumont left, domidumont joined 09:38 dmol left 09:40 domidumont left 09:41 domidumont joined
nwc10 but which Python? 09:44
moritz python 5.7 of course -- the best of 2.7 and 3.0 combined! 09:45
09:45 cognominal left 09:49 woosley left 09:50 xinming left 09:52 xinming joined
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
10:03 pecastro_ is now known as pecastro 10:08 domidumont left 10:15 domidumont joined 10:16 anuby left, rindolf joined 10:19 cognominal joined 10:26 rindolf left, rindolf joined
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
10:41 rindolf left 10:42 rindolf joined, AMENDEES_ left
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
10:49 rindolf left 10:50 rindolf joined 10:52 kresike joined, denisboyun joined
kresike hello all you happy perl6 people 10:52
10:57 robinsmidsrod joined 11:01 rindolf left
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.
11:11 robinsmidsrod left 11:14 robinsmidsrod joined 11:15 robinsmidsrod left 11:19 rindolf joined, robinsmidsrod joined 11:25 jokar joined, jokar left 11:27 Targen left 11:28 rindolf left 11:29 rindolf joined 11:34 domidumont left 11:35 domidumont joined, domidumont left 11:36 domidumont joined, domidumont left 11:37 domidumont joined 11:43 rindolf left, rindolf joined
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␤»
11:54 sqirrel joined
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␤»
11:57 rindolf left 11:58 rindolf joined
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
12:08 d4l3k_ joined 12:09 genehack_ joined, SamuraiJack_ joined 12:11 integral_ joined, integral_ left, integral_ joined, Ulti joined, ruoso_ joined 12:12 x2 joined, fgomez_ joined, rindolf left, xinming_ joined 12:13 rindolf joined 12:16 xinming left, odoacre left, ruoso left, SamuraiJack left, genehack left, fgomez left, Ulti_ left, vaelxon left, d4l3k_ is now known as dalek
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.
12:20 odoacre joined 12:23 rindolf left 12:24 rindolf joined 12:32 rindolf left 12:33 rindolf joined
[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.
12:41 denisboyun___ joined
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!
12:43 integral joined, integral left, integral joined
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
12:46 rindolf left
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
12:47 rindolf joined
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]++!
12:47 integral_ left, denisboyun left
[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.
12:48 woosley1 joined
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
12:57 kst joined
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 :)
12:59 SamuraiJack_ left 13:00 kaleem left, rindolf left
arnsholt Plenty of time! =) 13:00
lizmat jnthn: who knows what will happen in the mean time!
13:00 rindolf joined
[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
13:08 _daniel-s__ joined 13:09 PacoAir joined 13:11 daxim left 13:12 daxim joined
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
13:15 rindolf left
FROGGS hi pmichaud 13:15
13:15 rindolf joined
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.
13:19 Targen joined
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
13:20 leprevost joined
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...
13:24 kaleem joined
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. :)
13:27 rindolf left 13:28 rindolf joined
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
13:36 mtk joined
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.
13:37 dmol joined
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
13:41 rindolf left
pmichaud also, can %h{@keys}:kv($kv) be written as %h{@keys}:$kv ? (just curious) 13:41
13:41 rindolf joined
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.
13:47 sqirrel left
pmichaud I finally decided I couldn't block on it anymore if we were going to get anywhere. 13:47
13:48 dmol left 13:49 btyler joined
moritz std: my %h; %h<a b>:p:delete 13:50
camelia std b33d8e0: OUTPUT«ok 00:00 43m␤»
13:50 rindolf left
pmichaud okay, I have to get to my other tasks... bbl 13:50
13:50 rindolf joined
lizmat pmichaud++ 13:50
14:03 rindolf left, rindolf joined 14:06 woosley1 left
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.
14:08 xilo left 14:17 rindolf left, rindolf joined
FROGGS .oO( nqp::p6shush / nqp::p6pift ? ) 14:17
lizmat represses a Dr. Seuss reference 14:19
14:24 donaldh joined
lizmat fwiw, I had to code the :delete candidate as ":$delete! where so $delete" 14:24
14:24 dmol joined, fhelmberger_ joined
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:<~>
14:26 snarkyboojum_ joined
kudo/nom: 0d3c9b0 | moritz++ | src/core/Stringy.pm:
potentially constant-fold more stringy operators
14:27 FROGGS_ joined
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
14:31 sivoais_ joined
arnsholt It'd depend on how good the rest of the constant-folding is, I suppose 14:31
14:32 rindolf left
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
14:32 rindolf joined
lizmat moritz++ 14:33
moritz I actually thought constant-folding &defined wouldn't easily work, because &defined is, well, defined so early 14:34
14:34 baest_ joined
moritz so it might not be easy to apply traits 14:34
14:34 Kelder joined, [particle]1 joined 14:35 fhelmberger left, FROGGS left, snarkyboojum left
arnsholt Ah, right. That I have no idea about 14:37
FROGGS_ std: use v5; $/ = \3; my %stuff = (1..4); say @stuff{1, 3}
14:37 Tene_ joined, Tene_ left, Tene_ joined, avarab joined, avarab left, avarab joined, gfldex_ joined, Maddingu1 joined, mangala_ joined, mj41 joined, cxreg2 joined, FROGGS_ is now known as FROGGS, anocelot_ joined, clkao_ joined, sciurius_ joined, dmol left, masak_ joined 14:38 ehouse_ joined
FROGGS std: hello? 14:38
14:38 jercos_ joined
lizmat seems like a netsplit pb to me 14:40
14:40 GlitchMr joined, sivoais_ left
FROGGS must be, yeah 14:40
14:40 sivoais joined
lizmat hmmm… so I've written some spectests, how do I push those (from my cloned repo?) 14:43
14:43 BooK joined
FROGGS git remote add ... ? 14:43
14:43 xilo joined, woolfy joined 14:44 rindolf left, PZt joined 14:45 rindolf joined 14:46 Maddingu1 is now known as Maddingue 14:47 baest_ is now known as baest
lizmat but git remote add upstream git://github.com/rakudo/rakudo.git would be the wrong repo, no? 14:48
14:49 rking1 joined
lizmat as t/spec doesn't live there 14:49
14:49 frdmn left, sivoais left
lizmat perl6/roast.git I assume 14:49
14:49 sivoais joined
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
14:55 rindolf left 14:56 rindolf joined 14:57 sivoais left
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
14:58 camelia joined
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
14:59 ChanServ sets mode: +v camelia
camelia std b33d8e0: OUTPUT«ok 00:01 54m␤» 14:59
14:59 kaare__ joined
arnsholt lizmat: Maybe your remote is set up to talk to the GitHub HTTPS part? 15:00
15:00 sivoais joined
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
15:05 rindolf left 15:06 rindolf joined
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
15:07 jercos_ is now known as jecos 15:08 jecos is now known as jercos 15:11 rindolf left, kbenson joined, sjn joined, rindolf joined 15:15 kbenson1 joined, alester_ joined 15:16 _jaldhar_ joined 15:17 anocelot joined, preflex_ joined, skids_ joined 15:18 leprevost left, jercos_ joined, japhb__ joined 15:19 itz_ joined 15:23 rindolf left, kbenson left, jercos left, anocelot_ left, japhb_ left, preflex left, dayangkun left, jaldhar_ left, hugme left, sorear left, skids left, itz left, alester left, preflex_ is now known as preflex, rindolf joined, alester_ is now known as alester 15:24 kresike left 15:25 sorear joined
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
15:27 hugme joined, ChanServ sets mode: +v hugme
FROGGS r: say ::("&infix:<==>")(1, 1) 15:28
camelia rakudo 0d3c9b: OUTPUT«True␤»
FROGGS okay
15:30 dayangkun joined 15:34 rindolf left 15:35 rindolf joined 15:37 denisboyun___ left 15:42 frdmn joined
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.
15:45 ggoebel joined, rindolf left
dalek kudo/nom: b41219e | moritz++ | src/core/Mu.pm:
potentially constant-fold &defined
15:47
15:49 dmol joined, domidumont left 15:51 jercos_ is now known as jercos
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
16:02 frdmn left, frdmn joined, rindolf joined 16:03 FROGGS[mobile] joined
[Coke] lizmat: objecthash.t - pugs says: TODO passed: 26-28 16:05
lizmat++ for thinking to pre-fudge for pugs 16:06
16:07 FROGGS left, thou joined 16:08 rindolf left, rindolf joined 16:09 frdmn|afk joined 16:10 dmol left
lizmat [Coke] you're welcome :-) 16:12
16:13 frdmn left
tadzik FROGGS[mobile]: I think shift() should also look in @ARGV when it's not inside a sub 16:13
16:17 rindolf left, rindolf joined 16:26 rindolf left
lizmat n: my %h= <a b c> Z 1..3; say %h 16:26
16:27 rindolf joined
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
16:28 domidumont joined 16:34 kaleem left, rindolf left 16:35 rindolf joined 16:37 FROGGS joined
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?
16:44 rindolf left
colomon lizmat: I'm not sure it's intended to work that way. 16:45
16:45 rindolf joined
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␤»
16:50 fhelmberger_ left 16:54 grondilu joined
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.
16:57 rindolf left
TimToady sorry, misread 16:57
lizmat yes, and that's specced
16:58 rindolf joined
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
17:08 dakkar left
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
17:14 atrodo joined
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
17:15 betterworld left
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
17:21 _ilbot joined
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
17:29 Chillance joined
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))␤»
17:31 daxim left
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
17:42 masak_ is now known as masak
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
17:48 _jaldhar_ left
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
17:50 moritz joined
TimToady we had many of those errors in early pugs code too 17:51
17:51 dmol joined
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
17:57 SamuraiJack_ joined
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
18:01 SamuraiJack_ left, Tene_ is now known as Tene 18:02 SamuraiJack joined
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
18:03 dmol left
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
18:07 sftp joined
masak .oO( ∪∩icode ) 18:08
colomon feels like he's going insane. 18:09
masak hugs colomon 18:11
18:11 frdmn|afk is now known as frdmn
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
18:13 leprevost joined 18:14 kaare_ joined
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
18:16 kaare__ left
masak colomon: but so far it has seemed quite sane to me. 18:16
18:16 sjohnson joined
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
18:35 nyuszika7h joined
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
18:39 denisboyun joined 18:41 gtodd left
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
18:48 betterworld joined
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
18:50 frdmn left
TimToady but in this case it seems good to distinguish coercion from composition 18:51
18:51 frdmn joined
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
18:58 berekuk joined
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
19:21 dmol joined
moritz time will tell. 19:21
19:22 nyuszika7h left 19:23 autark joined
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
19:27 dmol left 19:28 cooper joined 19:30 nyuszika7h joined
masak I should totally blog about that one at some point. 19:30
19:33 gfldex_ is now known as gfldex
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
19:42 telex joined, _ilbot left, moritz left 19:43 _ilbot joined
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
19:45 moritz joined
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.
19:50 autark` joined, autark left
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
19:55 FROGGS[mobile] left
[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…
19:58 frdmn_ joined, frdmn left
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␤»
19:59 frdmn_ is now known as frdmn
masak TimToady++ 19:59
19:59 rindolf left
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?
20:02 gdey joined
[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
20:10 SamuraiJack left
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
20:15 DreamingInCode1 joined
Util [Coke]: yes, he did, and I did not see my note about it before asking. Thanks! 20:15
20:17 ajr joined 20:18 ajr is now known as Guest59475 20:19 Guest59475 is now known as ajr_
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 :)
20:30 domidumont left
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"?
20:36 gdey left
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
20:43 kaare_ left 20:44 donaldh_ joined 20:45 donaldh_ left
[Coke] FROGGS: you probably have enough room to build one parrot now, anyway. 20:45
20:46 donaldh left, donaldh joined
FROGGS [Coke]: yeah, currently trying... [Coke]++ 20:46
20:52 denisboyun left
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
20:54 thou left
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
21:03 araujo_ left, araujo joined, araujo left, araujo joined
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
21:05 pmurias joined
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++
21:16 bruges joined
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␤»
21:25 avarab is now known as avar 21:27 kurahaupo joined
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()
21:32 kurahaupo left 21:33 mtk left 21:36 mtk joined, thou joined 21:38 ajr_ left 21:41 PacoAir left
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 :-)
21:46 kurahaupo joined
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
21:49 alester left
[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
21:55 perlpilot joined
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
22:04 lustlife left
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
22:07 perlpilot left
raiph am i right in understanding that jnthn++ has "hello world" working for rakudo on jvm? 22:08
22:08 fgomez_ left
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.
22:21 xilo left
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?)
22:27 fgomez joined, prammer_ left 22:28 prammer_ joined
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
:)
22:45 fgomez left 22:53 xilo joined
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&
23:01 pmurias left
masak 'night, lizmat 23:01
jnthn o/ lizmat
masak dream about successful EXPORTs.
23:01 Chillance left 23:03 sjohnson left, sjohnson joined
[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
23:16 gdey joined
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.)
23:26 thou left
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
23:34 DreamingInCode1 left, DreamingInCode joined
sorear jnthn++ 23:35
23:35 DreamingInCode left 23:36 DreamingInCode joined
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
23:42 donaldh left
[Coke] jnthn++ 23:51