»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
[Coke] perl6 vs. java - please make sure "t/fudgeandrun" still works. 01:13
colomon [Coke]: what do you mean by that? 01:26
diakopter probably he meant "vis a vis" instead of "vs" 01:41
geekosaur or that change to $*EXECUTABLE_NAME ? 01:49
diakopter oh 02:15
yeah.
colomon Just pulled latest rakudo-jvm, and t/fudgeandrun still works 02:31
moritz \o 05:30
dwarring std: role R { has $.a }; class C { has $b does R } 06:03
camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
dwarring rn: role R { has $.a }; class C { has $b does R }
camelia niecza v24-90-gd827fa8: OUTPUT«===SORRY!===␤␤Trait does not available on variables at /tmp/urjTYAs13I line 1:␤------> R { has $.a }; class C { has $b does R ⏏}␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1…
..rakudo 7b26cb: OUTPUT«===SORRY!=== Error while compiling /tmp/WaiXy5NuX3␤Cannot call 'trait_mod:<does>'; none of these signatures match:␤:(Mu:U $doee, Mu:U $role)␤at /tmp/WaiXy5NuX3:1␤------> ␤»
dwarring I think that's nyi 06:04
TimToady you can say has R $b if you merely want a constraint
otherwise, I'm not sure what you want there 06:05
dwarring std: role R { has $.a }; class C { has R $b }
camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
dwarring rn: role R { has $.a }; class C { has R $b }
camelia rakudo 7b26cb, niecza v24-90-gd827fa8: ( no output )
dwarring ahh! 06:06
I'm trying to get b as a role on method a 06:20
end up with.. 06:21
rn: role R { has $.a }; class C { has $.b }; my $obj = C.new( :b(42 does R) ); say $obj.b.a
camelia rakudo 7b26cb: OUTPUT«(Any)␤» 06:22
..niecza v24-90-gd827fa8: OUTPUT«Unhandled exception: Cannot use 'does' operator with an immutable object␤ at /home/p6eval/niecza/lib/CORE.setting line 1531 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1464 (infix:<does> @ 8) ␤ at /tmp/C22sjtFvTV line 1 (mainline @ 6) ␤ at…
dwarring *attribute a 06:23
TimToady rn: role R { has $.a }; class C { has $.b }; my $obj = C.new( :b(42 but R) ); say $obj.b.a 06:23
camelia rakudo 7b26cb, niecza v24-90-gd827fa8: OUTPUT«(Any)␤»
TimToady rn: role R { has $.a = 'howdy' }; class C { has $.b }; my $obj = C.new( :b(42 but R) ); say $obj.b.a 06:24
camelia rakudo 7b26cb, niecza v24-90-gd827fa8: OUTPUT«howdy␤»
TimToady 'does' attempts to change in place, which you can't do to 42
'but' makes a copy and mixes into that
dwarring ok that makes sense 06:25
TimToady zzz & 06:41
FROGGS o/ 06:48
.tell masak this is the evil: parrot/src/io/io_private.h:120:#define PIO_BUFFER_MIN_SIZE 2048 /* Smallest size for a block buffer */ 06:53
yoleaux FROGGS: I'll pass your message to masak.
moritz masak++ # t3 reviews 07:16
FROGGS .tell maska hmmm, maybe not, but it has an effect ... 07:18
yoleaux FROGGS: I'll pass your message to maska.
dalek rlito: 8f1a1ea | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slices use the array API
08:09
jnthn morning, #perl6 08:38
yoleaux 02:23Z <JimmyZ> jnthn: I doubt the gc bug are from compose in P6opaque.c, compose update st->size dynamically .
02:31Z <JimmyZ> jnthn: which may be set wrongly, and cause the pointer offset wrongly
02:40Z <JimmyZ> jnthn: I see nqp/parrot have spec.align, and MoarVM doesn't, Does MoarVM need it?
lizmat good *, #perl6! 08:47
fwiw, I'm seeing spurious parallel spectest errors in S32-io/*.t 08:48
wouldn't be surprised if they're using identical filenames in their tests
and thus trample on each other's results
hoelzro what time are other workshop attendees flying in/out of Frankfurt? 08:50
hoelzro really should book his flight soon
lizmat I think it would be nice if we could have a pre-workshop event 08:51
dinner if you will
jnthn I land 16:20 on Fri, leave 12:30 on Mon.
lizmat so if you could get to Frankfurt late Fri afternoon, that would be great
woolfy and I will be driving to Frankfurt on Thu afternoon, so that we can have a look at the venue on Fri morning early 08:52
lizmat It's only a 3 hour drive from where we live 08:53
FROGGS jnthn: is it okay to commit a test to t/00-parrot/ that fails until a parrot pull request got applied? (so until after 2013-09-17) 08:54
FROGGS ohh, that is Friday the 13nth O.o 08:55
jnthn FROGGS: Why does it take Parrot that long to apply a pull request?! 08:55
lizmat r: say <a b c> ∪ <b c d> ∪ <c d e>; 08:56
camelia rakudo 7b26cb: OUTPUT«===SORRY!=== Error while compiling /tmp/q8Z0rfam1b␤Two terms in a row␤at /tmp/q8Z0rfam1b:1␤------> say <a b c> ⏏∪ <b c d> ∪ <c d e>;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ …
FROGGS jnthn: I'm just taking the worst case into account... and that is just acting right before parrot release time
jnthn FROGGS: ah
FROGGS: Anyway, I'd rather we don't have failing sanity tests...it suggests insanity...
lizmat r: sub infix:<<"\x222A">>(|p) { infix:<(|)>(|p) }; say <a b c> ∪ <b c d> ∪ <c d e>;
camelia rakudo 7b26cb: OUTPUT«set(a, b, c, d, e)␤»
FROGGS jnthn: so the test is here, locally :o)
jnthn FROGGS: Plus, is the effect of what you've fixed not visible from Perl 6 code?
FROGGS jnthn: masak's blog is affected 08:57
jnthn FROGGS: That is, does it not make sense to have it as a todo'd spectest?
lizmat so why do I still have to define the ∪ operator in the compunit to make it work?
donaldh good morning o/
yoleaux 29 Aug 2013 22:18Z <FROGGS> donaldh: does ./perl6 work on windows at all? github.com/perl6/roast/commit/c5c0a6879f
FROGGS jnthn: yeah, that might work too
donaldh FROGGS: oh, good q.
lizmat jnthn: any ideas about ∪ ?
jnthn lizmat: Maybe something differs in the name handling between setting compilation and afterwards...
donaldh FROGGS: It worked before the EXECUTABLE_NAME change, right? 08:58
jnthn r: say CORE::.keys
camelia rakudo 7b26cb: OUTPUT«&METAOP_REDUCE_RIGHT &METAOP_REDUCE_LIST &METAOP_REDUCE_CHAIN &METAOP_REDUCE_XOR &METAOP_HYPER &METAOP_HYPER_POSTFIX &METAOP_HYPER_PREFIX &METAOP_HYPER_CALL &hyper &term:<time> $=pod !CORE_MARKER &cwd &chdir &mkdir &rename &copy &symlink &link &chmod AST CallFrame …
jnthn r: say CORE::.keys.grep(/∪/)
camelia rakudo 7b26cb: OUTPUT«===SORRY!=== Error while compiling /tmp/dZV570wNAb␤Unrecognized regex metacharacter ∪ (must be quoted to match literally)␤at /tmp/dZV570wNAb:1␤------> say CORE::.keys.grep(/⏏∪/)␤ expecting any of:␤ method arguments␤ …
jnthn r: say CORE::.keys.grep(/'∪'/)
camelia rakudo 7b26cb: OUTPUT«&infix:<∪>␤»
jnthn lizmat: Oh...did you add them into the grammar? 08:59
FROGGS donaldh: I dunno what worked before and what not... it is just that there is no OS-switch when setting ./perl6
jnthn lizmat: All CORE.setting operators are also listed in Grammar.pm.
lizmat aha!
aha… ok
donaldh FROGGS: agreed. There wasn't when the executable name was java, i.e. the line above.
lizmat will look at that
meanwhile, setting precedence is also still not working for any op with < or > in it or \xhhhh 09:00
jnthn Well, "not working" doesn't tell me much...what's the error?
lizmat ok: let me put it this way: if I uncomment the lines, the build of setting fails with an error message that I can't make heads ot tails of 09:01
gist.github.com/lizmat/6387859
donaldh FROGGS: I left [Coke]'s original workaround, for older versions of rakudo/jvm.
FROGGS: and presumed that doing the same would be sufficient. 09:02
FROGGS k
moritz lizmat: looks like a bootstrap issue in one of the traimod:<is> candidates 09:02
(and yes, I know that's vague)
lizmat well, the candidate I just uncommented, pretty sure
jnthn lizmat: Well, bizzarely, if you look at the line numbers and follow those, you find yourself on the line that .new's X::Inheritance::UnknownParent 09:03
That is, in the multi trait_mod:<is>(Mu:U $type, *%fail) { ... } candidate
Which suggests the sub lookup failed somehow 09:04
lizmat this was the line: trait_mod:<is>(&infix:<<(<)>>, :prec($iffy)); 09:05
jnthn wonders if the name handling is somehow busted...
r: sub infix:<<(<)>>() { }; say &infix:<<(<)>>
camelia rakudo 7b26cb: OUTPUT«sub infix:<(<)>() { ... }␤»
jnthn Hm, works there at least. :)
lizmat yes, but not at BEGIN time
why is that in a BEGIN block anyway? 09:06
I mean, it's at the end of the core setting, so late in execution anyway
jnthn Because we want to apply the traits once while the setting is being compiled, not every startup time...
lizmat but I guess still before the mainline
ok
jnthn Well, no, it's the opposite side of the compile-time boundary.
Which is really important. 09:07
lizmat because you want to freeze that in the setting, gotcha 09:09
jnthn Aye. Also 'cus if you do it while the setting is being loaded, it counts as a change that should be re-serealized in everything else we pre-compile.
And thus makes all pre-compiled output larger. 09:10
jnthn uncomments and builds one of the lines in the BEGIN that is commented out 09:11
lizmat jnthn: token infix:sym«"\x222A"» would be the right way to add to the grammar, right ? 09:15
or should I just plunk in the ∪ ? 09:16
lizmat plunking in the ∪ :-) 09:19
lizmat notices that with the 400+ extra lines in the CORE setting, parse time has gone up from ~130 to ~140 seconds :-( 09:21
plunking in the ∪ does it, plunking in the rest now :-) 09:22
FROGGS the 7th nqp::shell() call dies with "Can't spawn child process" in my test script :o( 09:28
dalek kudo/nom: 0dc3ddf | (Elizabeth Mattijsen)++ | src/core/precedence.pm:
Most iffy ops are actually chaining, judging from the grammar
09:29
jnthn lizmat: Re-produced the error you described...on JVM :) 09:33
lizmat well, that's consistent anyway :-)
jnthn: a mismatch between precedence.pm and the grammar: 09:34
trait_mod:<is>(&infix:<(.)>, :prec($junctive_or));
token infix:sym<(.)> { <!before <sym> <infixish> > <sym> <O('%junctive_and')> }
colomon lizmat: I've noticed the parse slowdown in the smoke test results 09:35
lizmat: seems like it took 90s for the longest time, then 100s for a few days, and today (I think?) it went up to 110s 09:36
lizmat it's just significant more code, settings now at 16518 lines
oops, 16158 09:37
colomon are you suggesting that a 2.5% increase in the lines of code should cause a 10% slowdown?
lizmat well, lots and lots more ops, maybe they're expensive? 09:38
more to search through?
donaldh I can imagine it is non-linear.
FROGGS mixins are expensive, yes 09:39
colomon actually, I guess my parrakudo vs jakudo timing tests do suggest there is a non-linear difference in parrakudo performance….
lizmat just be glad that I didnt' put any ∪ in the code, the parse would have taken 40 times longer
well, maybe 20 times
after it trying to parse for an hour, I gave up
jnthn lizmat: nqp::say (&infix:<<"\x2208">>).perl; in that BEGIN block comes back with Nil...
lizmat you mean the op is not known yet ? 09:40
jnthn Well, the lookup fails, yes. 09:42
oh...
World.pm:1999 09:43
A "are we compiling setting" check.
In name handling.
That exactly explains it.
lizmat a liitle cheaty :-) 09:45
fwiw, I'm not seeing a fix here
jnthn :) 09:47
Yeah, I'm seeing what I can come up with
dalek kudo/nom: 21b9bc9 | (Elizabeth Mattijsen)++ | src/core/precedence.pm:
Make precedence of (.) in line with what Grammar.nqp says
09:58
dalek rlito: 33d603f | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - pretty print slices
10:14
dalek ast: 6bce859 | (Elizabeth Mattijsen)++ | S03-operators/ (2 files):
Unfudge now passing set/bag tests (should give us 100+ more passing tests)
10:18
dalek kudo/nom: b45bc51 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp:
Add all set/bag operators to grammar, so we can parse them always
10:25
lizmat r: say <a b c> ∪ <b c d> ∪ <c d e> # will soon work
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/fbzocDJfGJ␤Two terms in a row␤at /tmp/fbzocDJfGJ:1␤------> say <a b c> ⏏∪ <b c d> ∪ <c d e> # will soon work␤ expecting any of:␤ postfix␤ infix stopper␤ infix or me…
jnthn lizmat: Fix coming up for the other thing too 10:27
lizmat cool, then I can finally put this behind me (for now)
dalek ast: 59c6970 | (Elizabeth Mattijsen)++ | S32-io/copy.t:
Make sure files from this test don't trample on file-tests.t
10:30
lizmat this should fix the heisenbug in parallel spectests
jnthn \o/
lizmat r: my %h; say %h<a><b>:delete 10:36
camelia rakudo 21b9bc: OUTPUT«Nil␤»
lizmat $ perl6 -e 'my %h; say %h<a><b>:delete'
No such method 'delete' for invocant of type 'Any'
lizmat if I remove Any.delete I get this 10:36
lizmat plus all set/bag related :delete tests failing 10:38
jnthn lizmat: What do we expect it to do? 10:40
Silently do nothing?
lizmat return Nil ?
yes, just like .delete on a hash on a non-existing key 10:41
lizmat r: my %h; say %h.delete("a") 10:41
camelia rakudo 21b9bc: OUTPUT«(Any)␤»
jnthn Well, but this time we're calling it on something also undefined.
hah :)
That's no Nil... :)
But makes sense, the default hash value type is Any
lizmat indeed...
yup 10:42
dalek kudo/nom: c032e37 | jnthn++ | src/Perl6/World.nqp:
Be less stupid about infix:<< ... >> in setting.
10:45
kudo/nom: 74c0916 | jnthn++ | src/core/precedence.pm:
Uncomment precedence trait setup for set ops.

They no longer set op us the bomb...
lizmat wheee! 10:46
jnthn lizmat: I mean, the other way to do it is to look for :U in the :delete/:exists handling.
lizmat for now, I'm adding X::Immutable
as suggested yesterday
when I work on making {} and [] subs, I'll take that along again 10:47
lizmat looks at github.com/rakudo/rakudo/commit/c032e37c60 and hopes the RaNIW will bring clarity :-) 10:48
jnthn Well, QAST::Want and QAST::SVal are both covered at least :) 10:50
lizmat Q: constant term:<∅> = set();
would that need adding to the grammar as well ?
jnthn No 10:51
Don't think so at least
lizmat r: constant term:<<∅>> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/_2jqi4sB9a␤invoke() not implemented in class 'QAST::Want'␤at /tmp/_2jqi4sB9a:1␤------> ␤»
jnthn Hmm.
How on earth...
lizmat that's the only thing missing from the whole set/bag stuff 10:52
jnthn r: constant term:<∅> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/dVN9lYtGP4␤invoke() not implemented in class 'QAST::Want'␤at /tmp/dVN9lYtGP4:1␤------> ␤»
jnthn r: my \∅ = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/QrO8ZQNp05␤Malformed my␤at /tmp/QrO8ZQNp05:1␤------> my ⏏\∅ = set(); say ∅␤ expecting any of:␤ scoped declarator␤»
jnthn r: my \term:<∅> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!===␤No such method 'ast' for invocant of type 'NQPMu'␤»
jnthn fucking hell :/
lizmat that's the brewery not too far from Salzburg, right ? 10:53
jnthn Right!
I'm just having a glass now :P
I'm...not even sure how it's parsing... 10:56
lizmat r: constant term:<<"\x2205">> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/__jl1xL_ng␤invoke() not implemented in class 'QAST::Want'␤at /tmp/__jl1xL_ng:1␤------> ␤»
jnthn std: constant term:<<"\x2205">> = set(); 10:57
camelia std 27326bc: OUTPUT«ok 00:00 42m␤»
jnthn oh my word... 11:01
It parses as constant term, then rule trait eats the colonpair, but Rakudo doesn't know what to do with a colonpair as a trait (heck, I'm not sure I do either :))
It's right there in rule trait in STD though. 11:02
| <colonpair>
lizmat I see only 1 colon ? 11:03
r: constant term::<<"\x2205">> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/AWavGewukx␤Missing initializer on constant declaration␤at /tmp/AWavGewukx:1␤------> constant term:⏏:<<"\x2205">> = set(); say ∅␤ expecting any of:␤ colon pair␤»
FROGGS lizmat: it is about a name-value pair
lizmat ah, ok
jnthn Does anybody knwo what this syntax means? 11:04
FROGGS :from<Java> is a nv-pair
jnthn is looking at S06
sub x() is :Foo[...] # definitely a pair with a list
But that doesn' cover it 'cus we don't parse an "is"
lizmat r: constant is term:<<"\x2205">> = set(); say ∅
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/jLTi3Rh4on␤Missing initializer on constant declaration␤at /tmp/jLTi3Rh4on:1␤------> constant is ⏏term:<<"\x2205">> = set(); say ∅␤ expecting any of:␤ statement list␤ pref…
lizmat r: term:<<"\x2205">> is constant = set(); say ∅ # just fooling around 11:05
camelia rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/GOnp6huAvD␤Two terms in a row␤at /tmp/GOnp6huAvD:1␤------> :<<"\x2205">> is constant = set(); say ⏏∅ # just fooling around␤ expecting any of:␤ argument list␤ prefix or t…
FROGGS jnthn: where do you see a trait?
viv tells me it is a defterm with a colonpair
lizmat $ perl6 -e 'set().delete("a")'
Cannot call 'delete' on an immutable 'Set'
dalek kudo/nom: 95b45b4 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Make Set/Bag.delete throw X::Immutable
11:06
FROGGS │ └─VAST::type_declarator__S_constant, BEG: 0, END: 34, SYM: constant,
│ ├─VAST::defterm, BEG: 9, END: 26, WS: 1
│ │ │ └─colonpair: - !!perl/hash:VAST::colonpair
jnthn FROGGS: Oh, it should be. Rakudo is not parsing it that way. It's wrong. But in understanding how it parsed it at all, I discovered this: 11:07
std: sub foo() :bar { }
camelia std 27326bc: OUTPUT«ok 00:00 43m␤»
jnthn That is, anywhere you can write "is some_trait" or any of the other trait mods, you can also write a colonpair. 11:08
I'm trying to find some spec on the semantics of that.
(and failing...)
'cus I hadn't realized it existed :)
FROGGS jnthn: hmmm, the defterm mismatch makes it hard 11:10
jnthn FROGGS: Well, I can get us to handle defterm, I expect. 11:11
FROGGS: I'm just wondering about rule trait's <colonpair> branch :)
FROGGS otherwise we might just do: | <identifier> <colonpair>* in token type_declarator:constant
jnthn has some lunch
No, we should follow the STD factoring, I think...
FROGGS std line 2510: token defterm { # XXX this is probably too general 11:12
lizmat r: say <a b c> ∪ <b c d> ∪ <c d e> # does it work already ? 11:17
camelia rakudo 95b45b: OUTPUT«set(a, b, c, d, e)␤»
lizmat yeah!
FROGGS cool!
moritz \o/ 11:22
lizmat++
lizmat colomon++ for doing all the work in iecza
niecza
JimmyZ You don't have permission to access /perl6/today on this server. 11:23
diakopter JimmyZ: irclog.perlgeek.de/perl6/2013-08-30 11:26
diakopter lizmat: so we parse 40 lines/second.. 11:27
yikes.
flussence rn: say Buf[uint16].new(0xD835 0xDCB7).decode('utf16').ord; 11:32
camelia niecza v24-90-gd827fa8: OUTPUT«===SORRY!===␤␤Unable to parse argument list at /tmp/BnOOv0Odsl line 1:␤------> say Buf[uint16].new(⏏0xD835 0xDCB7).decode('utf16').ord;␤Couldn't find final ')'; gave up at /tmp/BnOOv0Odsl line 1:␤------> say Buf[ui…
..rakudo 95b45b: OUTPUT«===SORRY!=== Error while compiling /tmp/SKJPouncb2␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/SKJPouncb2:1␤------> say Buf[uint16].new(0xD835 ⏏0xDCB7).decode('utf16').ord;␤ expecting any of:␤…
flussence rn: say Buf[uint16].new(0xD835, 0xDCB7).decode('utf16').ord;
camelia rakudo 95b45b: OUTPUT«119991␤»
..niecza v24-90-gd827fa8: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'uint16' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36) ␤ at /h…
moritz r: say Buf[uint16].new(0xD835, 0xDCB7).decode('utf16')
camelia rakudo 95b45b: OUTPUT«𝒷␤»
flussence I guess that isn't going to be easy to get working in niecza...
moritz thought there weren't any codepoints this high 11:33
r: printf '%x', 119991
camelia rakudo 95b45b: OUTPUT«1d4b7»
moritz never mind :-)
just above the BMP
flussence 1fxxx is where all the emoji live
moritz I was just confused by decimal 11:34
flussence r: say 0x10ffff.fmt('%x')
camelia rakudo 95b45b: OUTPUT«10ffff␤»
flussence doh
r: say 0x10ffff.fmt('%d')
camelia rakudo 95b45b: OUTPUT«1114111␤» 11:35
flussence that's a lotta chars.
moritz r: say 0x10ffff
camelia rakudo 95b45b: OUTPUT«1114111␤»
moritz even shorter :-) 11:35
moritz ok, I'm confused 11:35
tools/perl6-limited.pl runs exec "ulimit -t 45; ulimit -v 2048576; ./perl6 @ARGV";
FROGGS === CONFUSED ===
moritz and in the JVM case, this now says: 11:36
Error occurred during initialization of VM
Could not reserve enough space for object heap
lizmat away for a while&
moritz and ./perl6 does a exec java -Xms100m ...
so, it needs 100m, and 2G virtual memory aren't enough for that? 11:37
flussence java has a tendency to malloc a gazillion times the physical memory and then make the kernel's VM subsystem do all the work 11:38
flussence even if it never uses it all 11:38
dalek rlito: 067a421 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slice assignment refactor
11:39
flussence you'd probably have better luck with ulimit -m
moritz flussence: or I could leave out the ulimit -v totally in the JVM case
flussence: because it has its own limitation
flussence or that :)
flussence is the department of redundancy department today 11:40
moritz now a *proper* JVM adaption of autunfudge.pl would use an eval server instead...
s/an/the/
dalek rlito: 4016966 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slice assignment - Call node
11:44
dalek kudo/nom: a9be7f0 | moritz++ | tools/autounfudge.pl:
[autounfudge] make use of JVM eval server
12:04
moritz you can now run perl tools/autounfudge.pl --jobs 3 --jvm -a 12:05
FROGGS moritz++
jnthn moritz++
jnthn should $dayjob for a bit; will look at termdef later 12:06
FROGGS I read this as: timedef later 12:08
moritz I haven't don the rakudo.jvm vs. rakudo vs. rakudo.parrot marker distiniction yet
that would be a LHF for anybody wanting to do a it of perl 5 hacking
FROGGS \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ 12:42
I think I've fixed the spectest heisenbugs I had! 12:43
jnthn Is that one person celebrating a lot, or a whole crowd? :) 12:44
FROGGS the former 12:45
because this was driving me insane
and it forced me to only run one thread, which takes ages of course
dalek ast: 7c89478 | moritz++ | S0 (3 files):
unfudge rakudo tests
12:47
p: 4b4fd70 | (Tobias Leich)++ | src/vm/parrot/ops/nqp.ops:
exit from a child thread so it gets cleaned up

Otherwise we are unable to fork (ENOMEM) several times in a row.
12:48
rlito: cdce7f7 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slice assignment - Index node
12:49
dalek rlito: 66bb20c | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slice assignment - Lokup node
13:08
dalek : cf4f949 | (Tobias Leich)++ | STATUS.md:
status update
14:20
dalek ast: 3610848 | (Tobias Leich)++ | S32-io/other.t:
added tests for RT #117841
14:23
kudo/nom: 60474ff | (Tobias Leich)++ | t/spectest.data:
run tests for RT #117841
14:24
dalek rlito: de37bfe | (Flavio S. Glock)++ | / (4 files):
Perlito5 - js - slice assignment tests
14:37
rlito: 7c75124 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - js - TODO - slices are done
14:41
dalek p: cba09d3 | (Pawel Murias)++ | t/nqp/79-callercode.t:
Add test for nqp::callercode.
15:27
moritz is slightly amused by github.com/masak/p6cc2012/blob/mas.../moritz.md . masak++ found 'while cond() -> @val { }' worth mentioning as an idiomatic use of Perl 6 15:30
whereas all the meta ops, gather/take and MAIN routine are taken for granted by now :-) 15:31
jnthn wonders if elegantest is idiomatic use of English :P 15:32
nwc10 it's sort of self descriptive
moritz jnthn: as opposed to "most elegant"? 15:33
jnthn aye :)
TimToady most elegantest 15:34
mauke mostest 15:35
moritz dimly recalls that ...est is only used for 1 or 2 syllable words, or something
moritz only 1, it seems 15:36
mauke 1 syllable || (2 syllables && ends with -y)
moritz mauke++
mauke
.oO( toadiest )
15:37
moritz eflnet.com/tutorials/adjcompsup.php seems 2 syllables and ends with -er|-le|-ow also qualifies
masak moritz: yes, I am looking for things that are unusual (but skillful) uses of idiomatic Perl 6. :) 15:43
yoleaux 06:53Z <FROGGS> masak: this is the evil: parrot/src/io/io_private.h:120:#define PIO_BUFFER_MIN_SIZE 2048 /* Smallest size for a block buffer */
TimToady well, it's all prescriptivest nonsensest. 15:44
Ignoring prescriptivists is the most fun. 15:45
jnthn *most funnest
:P
geekosaur mostest funner 15:46
TimToady The question is, who's to be masterest, that's all... --Humptiest Dumptiest 15:48
mauke be the change you want to see in the english
masak you can make words mean anything. going against the implicit rules currently in place carries a finite, non-zero cost. prescriptivists seem to me to be people who assign enormous values to that cost. 15:49
jnthn They literally value the status quo
masak yes :) 15:50
that's an appropriate use of "literally" :)
TimToady unless you can find a Latin word for that 15:51
heck, just write the whole thing in Latin, that's what they really wanted you to do 15:52
and don't use run-on sentences, they suck 15:53
jnthn And don't even consider to stupidly split infinitives...
TimToady splits his infinitives boldly 15:54
skids Yes these days we comb them instead.
TimToady go figure
mauke go, figure 15:55
TimToady or, comb never finds any common ground :) 15:56
FROGGS masak: your blög will work if you'd use parrot HEAD
masak oh, that so?
what's this wonderful thing that's happened in Parrot HEAD? :)
FROGGS I call it patch :o) 15:57
masak ooh, FROGGS/froggs/utf-split-8
FROGGS++
FROGGS :o)
and we finally have a parrot release we want to upgrade to 15:58
masak huh, why in github.com/parrot/parrot/commit/8c...071fdde7d1 does it talk about io_private.h ?
that seems totally unrelated to the one-line fix.
oh, or that's where the constant comes from? of course. 15:59
anyway, hold on and I'll rebuild my Rakudo on a bleeding Parrot, and see how it goes :)
FROGGS there is a spectest too 16:00
t/spec/S32-io/other.t
you might want to run it before upgrading
moritz oh, those tests are slooow 16:09
but they all passe here, on parrot 5.5.0 16:10
FROGGS weird
moritz it might be ICU vs non-ICU build
FROGGS but it might be a combination of arch, libicu and other stuff
do you have ico installed? 16:11
icu*
masak and we already know people have different chunk sizes.
I bet moritz++ has icu installed ;)
moritz masak: I have 16:12
[Coke] moritz: is autounfudging smart enough to deal with rakudo.parrot vs. rakudo.jvm? 16:13
moritz [Coke]: not yet
[Coke]: but it shouldn't be too hard to change that
[Coke] ok. saw an autounfudge of a rakudo.jvm, just wanted to make sure it was really jvm ok.
masak t/spec/S32-io/other.t passes here on a Rakudo build with Parrot HEAD \o/ 16:14
[Coke] also, should we make t/fudgeandrun and autounfudge both auto-detect jvm usage?
masak (I didn't try it before upgrading, sorry)
[Coke] (fudgeandrun does already, in a cheesy fashion)
moritz [Coke]: I review the autounfudge patches manually before committing them
[Coke] moritz: ok, I trust you. :) 16:15
moritz (and that one was run with JVM)
[Coke] whee, pugs passes another test today. 16:16
(that is, someone added a test that worked on pugs with no changes)
expect the daily runs to hit later in the evenings today. (still running at the same time, but can't easily push until evenings now.) also, I'll see about moving the rakudo daily star run to the new test machine and see if it fares any better. 16:17
[Coke] is very excited for the workshop
moritz hopes for a flood of new, highly-qualified core hackers 16:18
moritz I almost typo'ed that as 'ocre hackers' 16:19
TimToady prefers blue hackers
moritz doesn't know if ogres are smart enough to hack on rakudo 16:20
masak latest Rakudo with FROGGS-patched Parrot can run my blög engine to make a complete rebuild of my site! \o/ 16:21
FROGGS++
(it does so in 3m15s on this box, which isn't too bad either)
TimToady suspects blue ogres are smart enough
[Coke] is currently in purple. 16:22
jnthn wonders how fast Rakudo JVM will do it... :)
masak it's fairly IO-intensive, so maybe not so much faster.
we'll see, I guess.
FROGGS cool! 16:23
jnthn masak: Could it use async IO or do stuff in parallel? :P
But yeah, we'll see ;) 16:24
Need to get the pipe thing in place first
FROGGS just use `hyper ` to generate the pages in parallel :o)
TimToady race is more better
[Coke] jnthn: I really want to try rewriting one of my java-based servers that does a lot of string manipulation and dumping IO in perl6 to see how it compares. :| 16:25
FROGGS doesn't know the difference between race and hyper 16:26
masak FROGGS: hyper outputs in input order, race outputs in completion order (which can be faster). 16:27
aughh, I just received a complaint email (from a non-contestant) about the t3 reviews... :/ 16:28
moritz what did ey complain about?
TimToady specifically, race doesn't have to do any bookkeeping to get the results back into the original list order 16:29
masak moritz: he'd submitted a t3 solution to me that used an A* search, I had apparently replied to him that there are more convenient ways to solve it than with an A* search, and now he's disappointed that I don't spell out such ways in my post. 16:30
the discussion is from January, so I'm not even sure what I meant by "more convenient ways". maybe I simply meant that you can use a sort algorithm, the way most people have done.
PerlJam masak: Be perfect! It's so annoying when you exhibit behavior that shows you are actually human. 16:31
:-)
masak I'm definitely not in possession of a proof that some particular solution is optimal.
TimToady
.oO(Here are all the different kinds of hammers you can use on this screw.)
masak ponders how to un-disappoint this particular reader
FROGGS TimToady: but you usually have to put the threads in a list anyway to join them at some point... 16:32
masak fwiw, here's the guy's solution: gist.github.com/masak/1e9d78d8deaa789880e3 16:33
moritz that doesn't look very 6y :-) 16:34
TimToady race is probably implemented with a channel, and some number of threads on the other side that could be anywhere from 1 to N. But it's really just a set of threads, so there are probably more optimal ways of doing thread joins in such a case than keeping them in a linear structure
FROGGS moritz: according to the file-et it is Perl Y :o) 16:35
file-ext*
masak moritz: oh, I neglected to mention he sent in his solutions as Python.
TimToady the race only needs to know when the set of threads goes to ∅
masak Python 3, even.
TimToady speaking of hammers and screws...
moritz always screws up the hammering 16:37
FROGGS .oO( ... hammer in the evening, all over this land .... ) 16:39
donaldh getting somewhere with java NIO sockets for nqp: gist.github.com/donaldh/6391827 16:42
dalek p/donaldh-sockets: 83ea6f2 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
donaldh first hack on sockets for JVM.
16:55
p/donaldh-sockets: 59fb7d2 | (Donald Hunter)++ | src/vm/jvm/ (3 files):
Initial ops for socket IO using NIO.
[Coke] rakudo parrot failure today: S14-roles/parameter-subtyping.t aborted 22 test(s) 17:51
FROGGS [Coke]: works like a charm here 17:52
[Coke] works here outside of the test_summary, using tools/perl6-limited.pl 17:54
FROGGS hmmm 17:55
[Coke] lovely. :{
FROGGS yeah :/
it is getting fragile 17:56
>.<
ingy dives into 6 17:58
moritz quite enjoyed wtfviz.net/ 17:58
ingy moritz: :D 17:59
ingy imagines that being the new standard look of a Tag Cloud 18:00
or maybe turn it into a programming language
lizmat FROGGS: t/spec/S32-io/other.rakudo.parrot (Wstat: 0 Tests: 60 Failed: 0) 18:08
TODO passed: 1-60
shouldn't that be unfudged then? 18:09
masak moritz: "Percentacles" :)
lizmat
.oO( particles )
lichtkind jnthn: when might rakudo on moar arrive, because gcl comes around nicely wnat to see that on perl6 18:16
the other thing is that i want to make an good rakudo article in wikipedia 18:17
jnthn ahahaha...those visualzations are "great" :)
lichtkind jnthn: i think you dont ment me
jnthn lichtkind: No, unless you consider yourself a "great" visualization... :P 18:18
lichtkind_ jnthn: im currently hacking on visual toys related to what i just said so i was a bit confused
jnthn lichtkind: I'm not sure when it'll arrive. And there's more than one kind of arrive. :) 18:19
jnthn lichtkind: Oh. You can get some good inspiration from wtfviz.net/ :) 18:19
lichtkind: I think it'll be November-ish, anyways
lichtkind: for "passes some amount of the spectest"
lichtkind jnthn: thank you 18:21
it kinda hit me yesterday after cleaning up the old abandoned Ponie article: there should be 2 about rakuto and mojolicious 18:22
lizmat r: say Bag.new( {a=>1,b=>2} ) 18:30
camelia rakudo 60474f: OUTPUT«bag("a\t1 b\t2" => 1)␤»
lizmat I assume we expect bag( a=>1,b=>2 ) here
moritz then we can't make bags of bags 18:32
lichtkind currently adding moar to the perl article 18:34
hai liz , sending books is really cheap
TimToady lizmat: we do not unpack anything in the constructor
lichtkind its much less hassle than another kilo in my backpack 18:35
lizmat TimToady: so doing it like this, is really operator error ?
TimToady the constructor just takes a list of things to put in the bag, and doesn't care if any of those things are bags 18:36
or hashes
TimToady often takes bags of bags to the grocery store...
lizmat but is the bag supposed to only containt stringification of the bags as keys
TimToady turning a hash into a Bag requires a coercion
lizmat or real bags
?
TimToady you sure that's not just the .gist doing that? 18:37
lizmat %e{$_}++ for @args; # the heart of Bag.new
TimToady r: say Bag.new( {:a(1), :b(2)} ).perl 18:37
camelia rakudo 60474f: OUTPUT«(("a\t1 b\t2" => 1).hash).Bag␤»
guillaume2 hello
jnthn lizmat: Is Bag based on an object hash or not? 18:38
moritz guillaume2: hi
lizmat not yet
but could be :-)
guillaume2 is there any way i can access the cocoa api (os/x) using perl6 ?
TimToady ("a\t1 b\t2" => 1).hash is an object
masak NativeCall, perhaps?
lizmat my Int %e{Mu}
TimToady but I guess the key isn't
well, except insofar as strings are objects 18:39
so yeah, needs to be a Hash of Any or so
er, Hash[Any] I mean 18:40
er, Hash[Any,Any] !!!
jnthn my %h{Any} I guess :)
TimToady should eat breakfast
does the jvm have cocoa mappings? 18:42
diakopter *giggle* 18:43
lichtkind done
TimToady lichtkind++ for adding cocoa mappings to jvm :)
lichtkind TimToady: yeah would be nice but i already have more interests than time :) 18:44
skids you know that's going to show up on some poor devel's google search now. 18:45
lichtkind TimToady: i ment the article update is done, mentioning the spec closing, moar and jvm port
yes :)
diakopter spec closing?
lichtkind withing next 12 month or so 18:46
rumors have it
diakopter <- rumor has it 18:46
grondilu rn: class Foo { has ($.a is rw, $.b) }; my $x = Foo.new; $x.a = 42; say $x;
camelia rakudo 60474f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/Pu1NDMZsjy:1␤␤»
..niecza v24-90-gd827fa8: OUTPUT«Unhandled exception: Unable to resolve method a in type Foo␤ at /tmp/iCG6GvxjYV line 1 (mainline @ 7) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home/p6ev…
grondilu r: class Foo { has $.a is rw }; my $x = Foo.new; $x.a = 42; say $x; 18:47
camelia rakudo 60474f: OUTPUT«Foo.new(a => 42)␤»
grondilu r: class Foo { has $.a is rw; has $.b }; my $x = Foo.new; $x.a = 42; say $x;
camelia rakudo 60474f: OUTPUT«Foo.new(a => 42, b => Any)␤»
grondilu r: class Foo { has ($.a is rw, $.b) }; my $x = Foo.new; $x.a = 42; say $x;
camelia rakudo 60474f: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/2wH5GVGaql:1␤␤»
lichtkind now updateing pugs article a bit 18:48
moritz "pugs is dead. Get over it."?
lichtkind moritz: yes but there are a lot infos hanging around that need polish 18:49
jnthn lichtkind++ # czeching out the articles that need polish 18:51
lizmat jnthn: Bag has this attribute: has %!elems 19:00
if I change Bag.new to:
my Int %e{Any};
%e{$_}++ for @args;
self.bless(:elems(%e));
the %e is correct with the object as keys, but when I check the $!elems attribute, they're all strings as keys
as in: say Bag.new( { a=>1,b=>2 } ).keys[0].WHAT # (Str) 19:01
jnthn lizmat: Yes, bless does assignment, not binding. 19:02
lizmat Q: is there a way to directly make %!elems a Int/Any hash
and to have .new assign directly to it ?
I guess first making the object, then filling it, as opposed to the other way around
jnthn Write a submethod BUILD that binds it, or just use nqp::create and nqp::bindattr in Bag.new if you fancy cheating :)
(where cheating = being faster)
lizmat how do I nqp::create a "typed" hash ? 19:04
lizmat it magically comes from (self) in the Hash case 19:05
but I don't have that here :-) 19:06
jnthn lizmat: no no, you use a my Int %e{Any} to make the hash itself. 19:07
lizmat: It's Bag you nqp::create
lizmat: and just circumvent the whole .bless thing.
lizmat tries to figure this out :-) 19:08
lizmat my $b = nqp::create(Bag); 19:10
nqp::bindattr( $b, Bag, '%!elems', %e );
$b;
Can not bind attribute '%!elems' declared in class 'Bag' with this object 19:11
jnthn: I'm not seeing what I'm doing wrong 19:12
FROGGS lizmat: the other.t test file fails on some systems right now 19:14
for example on mine when I use parrot 5.5.0
dalek kudo/nom: 68a5456 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
No reason to hide Bag/Set.delete from any backtrace
19:15
: 276f55c | (Tobias Leich)++ | lib/Perl5/Grammar.nqp:
properly ignore code after a __END__
lizmat FROGGS++ 19:16
moritz lizmat: re bindattr, missing nqp::decont 19:30
lizmat on the hash?
ok
moritz or my $b := nqp::create(Bag);
(or decont on the $b) 19:31
lizmat thanks, that's it! 19:32
ag({"a" => 1, "b" => 2} => 1)
bag({"a" => 1, "b" => 2} => 1)
masak FROGGS: waitwait, so if you do 'use v5' inside a block, with an __END__... 19:41
FROGGS: is the rest of the file ignored, or only that block?
FROGGS masak: the rest of the block I guess 19:42
lizmat jnthn: alas, it doesn't seem to compile in settings: gist.github.com/lizmat/6393560
FROGGS masak: either that or it would fail to parse at all
TimToady votes for parsefail 19:44
unless it's at the top level of a file 19:46
FROGGS __END__ in a block: Unable to parse expression in block; couldn't find final '}' 19:50
masak ok. 19:53
lizmat is there a reason (apart from having to do use Bag" why we couldn't put Bag c.s. into lib, like Test.pm ? 20:00
lizmat re gist.github.com/lizmat/6393560 , I realize now that "but" is defined in operators.pm, which comes *after* Bag.pm 20:03
now trying to shift the order around
moritz lizmat: one thing that comes to mind is that other types can't esily have a .Bag method when Bag isn't in core 20:05
lizmat: but on the whole I agree that factoring it out into a module would be beneficial
same with sockets
lizmat or figure out a way to do typed hashes without having "but" 20:06
my $what := self but TypedHash[$t.WHAT, c[0]];
jnthn Where's the but used, ooc?
lizmat in PARAMETERIZE_TYPE in src/core/Hash 20:07
jnthn Could always re-write it to do the MOP call directly
lizmat that would be way over my head right now
suggestions welcome :-)
moving Bag c.s. to be compiled after metaops, make it parse 20:09
but after optimize, I get:
moritz self.HOW.mixin(self.clone(), c[0]);
lizmat Code ref 'Str' does not exist in serialization context
diakopter o_O
lizmat tries moritz' suggestion 20:10
jnthn Right :)
lizmat - my $what := self but TypedHash[$t.WHAT, c[0]]; 20:11
+ my $what := self.HOW.mixin(self.clone(), c[0]);
right ?
jnthn yes
lizmat running make
arnsholt jnthn: It being called PARAMETERIZE always trips me up, BTW. I keep wanting it to be PARAMETRIZE =) 20:17
lizmat r: my Int %h{Any}= { a=> 1 } => 2; say %h 20:18
camelia rakudo 68a545: OUTPUT«Hash[Int,Any].new({"a" => 1} => 2)␤»
lizmat $ perl6 -e 'my Int %h{Any}= { a=> 1 } => 2; say %h'
===SORRY!===
Cannot look up attributes in a type object
lizmat sorry, moritz, jnthn: that does not seem to be the trick :-( 20:19
jnthn r: Hash.clone
camelia rakudo 68a545: OUTPUT«Cannot look up attributes in a type object␤ in block at src/gen/CORE.setting:1093␤ in method reify at src/gen/CORE.setting:6884␤ in method reify at src/gen/CORE.setting:6779␤ in method gimme at src/gen/CORE.setting:7212␤ in method sink at src/gen/CORE.setting…
lizmat I would expect somehow TypedHash to be mention in the call to mixin
or the $t.WHAT ?
jnthn lizmat: I...think the self.clone() just wants to be self.WHAT
lizmat running make 20:20
moritz lizmat: oh sorry, should be .mixin(self.WHAT, TypedHash[$t.WHAT, c[0]]) 20:23
lizmat ok, that makes more sense, from a purely textual point of view :-) 20:24
lizmat builds ok, now running spectest 20:32
ingy builds R* 20:39
lizmat spectest is clean, now checking TypeArray for synchronicity 20:43
dalek rl6-roast-data: ce1cd3c | coke++ | / (5 files):
today (automated commit)
20:48
dalek kudo/nom: 3f474a1 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Use less syntactic sugar for TypedHash/Array, to allow Bag/Sets to use them
20:52
masak lizmat++ # good use of commented-out code 21:21
does "[can't] yet" mean "too early in the circularity bootstrap"?
or does it mean "not implemented yet in Rakudo"?
lizmat too early
the "but" is implemented in operators.pm 21:22
but Set.pm wants to create a typed hash *before* operators.pm
masak ok. I thought I saw something like that in the backlog. 21:23
the comments leave it a bit ambiguous. shall I go ahead and disambiguate? 21:24
lizmat please do
masak I feel I need to do something useful today, if ever so slightly. :)
the only thing that has happened is that I've gotten an email about my failure to deliver on someone's cravings for formalism. :P 21:25
(not that there's anything wrong at all with a craving for formalism)
lizmat you can also enjoy the fact that rakudo.parrot has gone from 26688 to 26952 test passing today 21:27
Tene masak: Your description of their complaint is distressingly imprecise.
lizmat jnthn,moritz: updated error message in gist.github.com/lizmat/6393560 21:28
lizmat seems something is lacking for serialization 21:29
lizmat for clarity: the same code compiles and works outside of settings 21:32
lizmat wonders how difficult it would be to stub a class with a filename to have that class loaded as soon as something needs it 21:33
class Bag { >>>lib/Bag.pm }; Bag.new # loads lib/Bag.pm at runtime 21:35
dalek kudo/nom: afe36d3 | masak++ | src/core/ (2 files):
clarified "can't yet" comments

It's about "too early in bootstrap" not "no-one has implemented this in Rakudo".
lizmat jnthn: error output is the same with --ll-exception in gist.github.com/lizmat/6393560
masak heh. I had way too much fun doing strange things to git producing that commit :)
let's see, I checked out the current commit as detached, did a mixed reset to get back lizmat++'s changes, then 'git commit -p' with editing individual hunks so I didn't have to open the files manually. 21:36
lizmat opening files individually is so 1990's 21:37
masak then I rebased the new (detached) commit on top of the nom branch, unfortunately producing conflicts (I wish I knew how to avoid that), and finally I merged (fast-forward) nom with the new, rebased, detached commit.
hm, maybe a merge strategy would've helped me avoid the conflicts. 21:38
masak tries
lizmat maybe using sed would have been easier ?
masak *lol*
something about Git makes me feel like I'm riding the electrical impulses in the wiring inside the computer, changing data in mid-stream. 21:39
lizmat seriously, I often do something like vi `ack -l foo` to edit all files with a certain string
masak ooh 21:40
jnthn lizmat: urgh, that error is...argh
masak .oO( category theory recognizes "urgh" and "argh" as ajunctions ) 21:41
adjunctions*
lizmat maybe it is my $b = nqp::create(Bag); that should be binding rather than assignment
running make with that now
jnthn I suspect it's the typed my, actually... 21:43
lizmat no difference 21:44
masak yes, `git rebase -X theirs nom` would've let me go ahead and "rebase over" lizmat's changes. 21:45
note the somewhat counterintuitive "theirs", even though I want to preserve my changes in case of a conflict.
that's just how rebase rolls.
lizmat tries without typed my, just in case 21:46
(although that was the whole point of this excercise)
lizmat (just to make sure nothing else is messing this up) 21:47
jnthn: could it be that the %e needs e decont ? 21:49
*a
nqp::bindattr( nqp::decont($b), Bag, '%!elems', %e );
lizmat builds ok without the typed my 21:51
jnthn lizmat: Not if you bound it 21:52
lizmat: No, errors of that kind imply something deeply wrong, probably in something involving dynamic compilation...
lizmat: They also tend to be a nightmare to track down... 21:53
lizmat: Though, trying to pre-compile a module that uses a typed hash and seeing if that breaks too would narrow it down
lizmat I can do that :-) 21:54
just any typed hash, right ?
jnthn aye 21:55
lizmat +class FooBar { 21:58
+ method new {
+ my Int %h{Any};
+ }
+}
jnthn That should trigger if, if it's a general bug. 21:59
lizmat yup, same error
jnthn Well, at lesat that gives something smaller to use in tracking it down. 22:00
lizmat sc = serialization context ? 22:01
jnthn Right. 22:02
lizmat well, I guess the serializer only knows how to serialize normal hashes
even if empty
jnthn No, it works at a lower level than that. 22:03
lizmat well, I'm pretty sure this would be the first serialization of a typed hash
because before the "but" fix, it was just impossible to get there
jnthn Probably, yes, but it's more likely to be role/mixin related...
Or to boil down to that.
The question is, "which Str"... :S 22:04
lizmat could it be that it assumes that keys in hashes are Str
and since that was not seen in that context, it fails?
adding "my Str $a;" 22:05
jnthn No, the error is clearly talking about a code-ref Str 22:06
Which means we're talking about something to do with a Str method
The error comes from serialization.c 22:08
lizmat indeed. no change in error
there *is* a method .Str in Bag 22:09
jnthn Yeah, but we can reproduce it without Bag...
lizmat true 22:10
jnthn Curiously, there's no Str method in Hash or any of the TypedHash things
lizmat shall I add one? 22:11
jnthn No, I'm just trying to understand where the problem may be coming from.
lizmat maybe we should sleep a night over it ? 22:12
feels like something that needs inspiration rather than headbanging :-)
jnthn r: Hash.^methods.grep(*.name eq 'Str').perl.say 22:13
camelia rakudo 3f474a: OUTPUT«(method Str(Mu : , Mu *%_) { ... },).list␤»
lizmat yep, from Mu
jnthn r: Hash.^methods.grep(*.name eq 'Str')[0].package.say
camelia rakudo 3f474a: OUTPUT«(Mu)␤»
jnthn Yes, indeed.
jnthn Don't think I'll figure it out tonight, no 22:14
lizmat neither... 22:15
going to get some inspiration from the backside of my eyelids
gnight, #perl6!
and thanks for the help, jnthm!
jnthn 'night, lizmat
np, thanks for all the Bag/Set work!
masak .oO( Jonatham ) 22:18
lizmat damn keming
masak shoulda been jnthrn? :P
jnthn That's how it'd be if I grew up in the south of England, not the north :P 22:19
masak is that where they practice Lawr and Order, too? 22:21
lue
.oO(With help from the Doctor and one of his companions, when he's not using the TAHDIS)
22:24
masak "Time and..." Hypothetical Dimension? 22:27
BenGoldberg .ping 23:12
yoleaux There is no ping command; nor can this be construed as a response.
jnthn 'night, #perl6 23:16
masak 'night, #perl6 23:19