»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:12 Psyche^_ joined 00:16 Psyche^ left 00:19 berekuk left 00:21 berekuk joined 00:29 berekuk left 00:30 berekuk joined 00:32 berekuk left 00:34 colomon joined 00:45 jnap left 00:46 jnap joined 00:47 jnap left 00:55 pdurbin joined 01:01 panchiniak left 01:10 FROGGS left
[Coke] perl6 vs. java - please make sure "t/fudgeandrun" still works. 01:13
01:14 EvanTeit1lman joined, EvanTeit1lman left 01:15 FROGGS joined 01:23 adu joined 01:24 jeff_s1 left 01:25 rjbs left
colomon [Coke]: what do you mean by that? 01:26
01:30 kid51 joined 01:33 adu left 01:34 adu joined
diakopter probably he meant "vis a vis" instead of "vs" 01:41
01:47 kid51 left
geekosaur or that change to $*EXECUTABLE_NAME ? 01:49
diakopter oh 02:15
yeah.
02:19 adu left 02:25 abnorman left
colomon Just pulled latest rakudo-jvm, and t/fudgeandrun still works 02:31
02:42 FROGGS left 02:45 FROGGS joined 03:07 skids left 03:12 mauke left, mauke joined 03:13 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 03:14 preflex_ is now known as preflex 03:50 EvanTeitelman left 04:03 takesako joined, dhaivat joined 04:20 dhaivat left 04:25 thou left 04:37 daniel-s__ joined 04:40 daniel-s left 04:46 SamuraiJack__ joined 04:52 FROGGS left 04:53 hummeleBop joined, FROGGS joined 04:55 benabik left 05:21 benabik joined 05:28 dayangkun joined
moritz \o 05:30
05:34 salv0 left 05:35 census joined 05:43 abnorman joined 05:51 abnorman left 05:58 snoopy` joined, snoopy` left, ssutch left 06:00 dwarring joined 06:03 ssutch joined
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
06:23 ssutch left
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
06:34 census left 06:35 FROGGS left
TimToady zzz & 06:41
06:41 ssutch joined 06:48 dmol joined, FROGGS joined
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.
06:57 zakharyas joined 07:10 denis_boyun joined 07:11 berekuk joined, domidumont joined 07:14 kaleem joined 07:15 domidumont left 07:16 domidumont joined
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.
07:19 denis_boyun left 07:22 ssutch left 07:28 Rotwang1 joined 07:30 SmokeMachine left 07:46 REPLeffect left 07:56 sqirrel joined 07:57 dmol left
dalek rlito: 8f1a1ea | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slices use the array API
08:09
08:18 xinming left 08:20 xinming joined 08:31 donaldh joined 08:32 wtw joined 08:36 daxim joined, donaldh left
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?
08:44 teslos joined
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
08:52 donaldh joined
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
08:54 donaldh left
FROGGS ohh, that is Friday the 13nth O.o 08:55
08:55 donaldh joined
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
09:02 sqirrel left
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
09:07 pecastro joined
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
09:18 xinming left
lizmat plunking in the ∪ :-) 09:19
09:20 xinming joined
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
09:28 denis_boyun joined
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
09:40 Rotwang1 left
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
09:55 denis_boyun left
dalek kudo/nom: 21b9bc9 | (Elizabeth Mattijsen)++ | src/core/precedence.pm:
Make precedence of (.) in line with what Grammar.nqp says
09:58
10:06 rindolf joined, dmol joined
dalek rlito: 33d603f | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - pretty print slices
10:14
10:15 xinming_ joined
dalek ast: 6bce859 | (Elizabeth Mattijsen)++ | S03-operators/ (2 files):
Unfudge now passing set/bag tests (should give us 100+ more passing tests)
10:18
10:18 xinming left
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'
10:36 grondilu joined
lizmat if I remove Any.delete I get this 10:36
10:37 denis_boyun joined
lizmat plus all set/bag related :delete tests failing 10:38
10:40 Ayiko left
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
10:41 teslos left
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
10:42 sqirrel joined
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␤»
11:08 cognominal left
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
11:25 nebuchadnezzar left, xenoterracide left, nebuchadnezzar joined
diakopter JimmyZ: irclog.perlgeek.de/perl6/2013-08-30 11:26
11:27 daniel-s__ is now known as daniel-s
diakopter lizmat: so we parse 40 lines/second.. 11:27
yikes.
11:29 xinming_ left 11:30 teslos joined 11:31 xinming joined
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␤»
11:35 SamuraiJack__ left
moritz even shorter :-) 11:35
11:35 SamuraiJack joined
moritz ok, I'm confused 11:35
tools/perl6-limited.pl runs exec "ulimit -t 45; ulimit -v 2048576; ./perl6 @ARGV";
FROGGS === CONFUSED ===
11:35 sqirrel left
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
11:37 rindolf left
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
11:38 cognominal joined
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
11:51 jnap joined 11:54 grondilu left 11:59 rindolf joined
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
12:16 xinming left 12:17 xinming joined 12:25 denis_boyun left 12:35 PacoLinux joined 12:36 kbaker joined
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
12:53 xinming_ joined 12:57 xinming left 12:59 ajr joined, ajr is now known as Guest59506, xinming_ left, Guest59506 is now known as ajr_ 13:01 rindolf left, xinming joined, rindolf joined
dalek rlito: 66bb20c | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - slice assignment - Lokup node
13:08
13:11 bluescreen10 joined 13:14 pdurbin left 13:19 telex left 13:23 skids joined 13:31 btyler joined, telex joined 13:38 bluescreen100 joined 13:44 bluescreen__ joined, bluescreen100 left, bluescreen__ left 13:47 denis_boyun joined 13:49 PacoLinux left 13:55 denis_boyun__ joined 13:56 denis_boyun left 14:04 xinming left 14:05 xinming joined 14:12 xinming left 14:14 xinming joined 14:15 kaleem left 14:18 PacoAir joined
dalek : cf4f949 | (Tobias Leich)++ | STATUS.md:
status update
14:20
14:22 jaldhar left
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
14:28 SamuraiJack left 14:33 berekuk left 14:34 berekuk joined, denis_boyun__ left
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
14:45 berekuk left, FROGGS left 14:57 ajr joined, ajr_ left 14:58 ajr is now known as Guest19488, Guest19488 is now known as ajr_ 15:01 dhaivat joined 15:03 berekuk joined 15:08 cognominal left 15:09 cognominal joined 15:13 FROGGS joined 15:14 berekuk left 15:16 berekuk joined 15:19 denis_boyun joined 15:26 pmurias joined
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
15:31 dhaivat left
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
15:36 EvanTeitelman joined
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
15:45 zakharyas left
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 :)
16:00 teslos left
FROGGS there is a spectest too 16:00
t/spec/S32-io/other.t
you might want to run it before upgrading
16:01 pmurias left 16:07 domidumont left
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
16:18 dmol left
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
16:25 arlinius joined
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
16:39 berekuk left 16:40 ssutch joined
donaldh getting somewhere with java NIO sockets for nqp: gist.github.com/donaldh/6391827 16:42
16:44 jeff_s1 joined 16:48 berekuk joined 16:52 berekuk left 16:54 domidumont joined
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.
16:58 dmol joined 17:00 berekuk joined 17:01 abnorman joined 17:03 abnorman left, abnorman joined 17:04 thou joined 17:08 colomon left, colomon joined 17:10 dalek left, dalek joined 17:11 ChanServ sets mode: +v dalek 17:12 EvanTeitelman left 17:14 berekuk left 17:17 donaldh left 17:18 ajr_ left 17:20 berekuk joined 17:25 abnorman left, abnorman joined 17:28 dhaivat joined 17:33 daxim left 17:42 Rotwang1 joined 17:48 xinming left 17:49 xinming joined
[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
17:58 ivanoff joined
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
18:06 denis_boyun left 18:07 SamuraiJack joined
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 )
18:11 ivanoff left 18:15 lichtkind joined, lichtkind_ joined
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
18:19 lichtkind_ left
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"
18:21 rindolf left
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
18:29 dhaivat left, domidumont left
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
18:37 guillaume2 joined
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
18:46 grondilu joined
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␤␤»
18:47 zwut00 joined 18:48 konundra joined
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
18:54 lichtkind left 18:55 guillaume2 left 18:56 berekuk left
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
19:05 FROGGS left
lizmat it magically comes from (self) in the Hash case 19:05
but I don't have that here :-) 19:06
19:06 xinming left
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
19:08 xinming joined 19:09 FROGGS joined 19:10 berekuk joined
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
19:17 berekuk left 19:18 pecastro_ joined 19:19 pecastro left, ajr joined 19:20 ajr is now known as Guest11325, Guest11325 is now known as ajr_, SamuraiJack_ joined 19:21 dhaivat joined 19:24 SamuraiJack left
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)
19:33 berekuk joined 19:34 denis_boyun joined
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
19:50 berekuk left
FROGGS __END__ in a block: Unable to parse expression in block; couldn't find final '}' 19:50
masak ok. 19:53
19:56 EvanTeitelman joined, cognominal left 19:57 dhaivat left, konundra left
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
20:01 dhaivat joined
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
20:16 berekuk joined
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
20:18 SamuraiJack_ left
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
20:20 dhaivat left
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
20:27 dhaivat joined 20:29 xenoterracide joined
lizmat builds ok, now running spectest 20:32
20:37 bluescreen10 left
ingy builds R* 20:39
lizmat spectest is clean, now checking TypeArray for synchronicity 20:43
20:46 bluescreen10 joined
dalek rl6-roast-data: ce1cd3c | coke++ | / (5 files):
today (automated commit)
20:48
20:49 frdmn left
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
20:58 araujo left 20:59 araujo joined 21:01 zwut00 left 21:03 dayangkun left 21:06 skids left 21:10 xinming left 21:12 xinming joined 21:17 dayangkun joined 21:19 c1sung left, c1sung joined
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)
21:26 mauke left, mauke_ joined
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.
21:27 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 21:28 preflex_ is now known as preflex
lizmat jnthn,moritz: updated error message in gist.github.com/lizmat/6393560 21:28
21:29 dhaivat left
lizmat seems something is lacking for serialization 21:29
21:30 mauke_ is now known as mauke
lizmat for clarity: the same code compiles and works outside of settings 21:32
21:33 denysonique is now known as denysonique_, denysonique_ is now known as denysonique__
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)
21:47 denysonique__ is now known as denysonique
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 );
21:49 denysonique is now known as denysoniqeu
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.
22:13 dhaivat joined 22:14 dhaivat left, frdmn joined
jnthn Don't think I'll figure it out tonight, no 22:14
22:14 grondilu left
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
22:29 kbaker left 22:34 skids joined 22:35 denis_boyun left, nyuszika7h left 22:36 xinming left, nyuszika7h joined 22:37 xinming joined 22:46 scientes joined 22:47 btyler left 22:55 scientes left 23:01 BenGoldberg joined 23:06 kid51 joined 23:08 hummeleBop left
BenGoldberg .ping 23:12
yoleaux There is no ping command; nor can this be construed as a response.
jnthn 'night, #perl6 23:16
23:19 dmol left
masak 'night, #perl6 23:19
23:35 ajr_ left