»ö« 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/WaiXy5NuX3Cannot 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/q8Z0rfam1bTwo terms in a rowat /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 © &symlink &link &chmod AST CallFrame … | ||
jnthn | r: say CORE::.keys.grep(/∪/) | ||
camelia | rakudo 7b26cb: OUTPUT«===SORRY!=== Error while compiling /tmp/dZV570wNAbUnrecognized 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/fbzocDJfGJTwo terms in a rowat /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/_2jqi4sB9ainvoke() 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/dVN9lYtGP4invoke() not implemented in class 'QAST::Want'at /tmp/dVN9lYtGP4:1------> » | ||
jnthn | r: my \∅ = set(); say ∅ | ||
camelia | rakudo 21b9bc: OUTPUT«===SORRY!=== Error while compiling /tmp/QrO8ZQNp05Malformed myat /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_nginvoke() 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/AWavGewukxMissing initializer on constant declarationat /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/jLTi3Rh4onMissing initializer on constant declarationat /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/GOnp6huAvDTwo terms in a rowat /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/SKJPouncb2Unable 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 1Unhandled 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
|