»ö« 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.
jnthn Well, no, the hard problem is you need to arrange an early return of the block that invoked the binder also. 00:00
Which probably needs a little C-level work...
timotimo ah, so that's something i know nothing about agani :) 00:01
again*
jnthn That's why it's not quite an LHF
timotimo where do i have to look to find the code that calls this specific piece of binder?
colomon jnthn! \o/
jnthn It lives in BOOTSTRAP
Oh, that calls it? The moar version of Ops.nqp. That's where p6bindsig is generated from
timotimo OK 00:02
jnthn Oh, there's a non-C way...
Change the code-gen
timotimo i've done code-gen before, but not much for moar
jnthn If the thing p6bindsig calls returns non-null, immediately do a return_o on it.
Otherwise continue
timotimo that seems easy enough!
jnthn Then make the non-Junction path of the appropriate method in BOOTSTRAP return null 00:03
And done.
timotimo cool. consider it maybe perhaps done!
jnthn That is more robust than C hacking even if it's a couple of extra instructions...
timotimo o>
oh. is it enough to change the implementation of p6bindsig in Ops.nqp? 00:04
or do i have to go all the way into the QASTCompilerMAST?
jnthn Just in Ops.nqp 00:05
timotimo great 00:06
timotimo jnthn: aren't we wasting a lot of performance by making binding a method call on the binder object? 00:18
or is a method call on a WVal compile-time-resolved?
jnthn timotimo: Method calls aren't *that* expensive. 00:19
timotimo: No, compile time isn't right, but that's the place where something like invokedynamic or Moar's type specializer stuff come in. 00:20
timotimo: Further, within a month or two I'll have many cases of binding doing something cheaper than the full-blown binder anyways... 00:21
timotimo right. cool :)
what :decl do i use for a local? 00:22
:decl('var')?
the return_o would be a QAST::VM.new( :mastop('return_o'), QAST::Var.new( ... ) ), yes? 00:23
ah, decl('var') is correct 00:24
jnthn timotimo: Oh, I'd do the code-gen a little more manually than that 00:25
timotimo yup, moarop
maybe at first i'll make it a QAST tree and then do the MAST out of it if it works?
jnthn That is, compile the existing thing we have, push those instructions onto a new list (see other ops for examples), then use fresh_o to get a temporary register, etc.
Well, could do, but this is hot/common enough to deserve being done without creating a full-on local... 00:26
timotimo how come there's :foo('bar') so often in that file rather than :foo<bar>?
jnthn Habbit, I guess. :) 00:27
timotimo oh, a local is more than one register?
jnthn It's one register, but it's lifetime is for the frame.
timotimo i put it into a Stmts in the hopes of getting fresh registers that way and have them deallocated afterwards
jnthn No, locals are per frame.
timotimo oops :)
jnthn Which is why I'm saying not to do it that way :) 00:28
Or, a reason... :)
timotimo it would perhaps be cool if we could do something on the QAST level that gets us registers instead of full locals if we can prove something or other
because at that level we already have an optimizer that can do stuff 00:29
also, that could explain why my "lexicals to locals" optimization made no performance difference whatsoever
i have to tell $qastcomp.as_mast what register to store its results in, right? 00:30
jnthn No, just make sure you pass :want($MVM_reg_obj) and then the object you get back will have a .result_reg 00:31
Various examples like this should exit
*exist
timotimo 'k
that way i won't even have to do the regalloc dance! :) 00:32
jnthn You still need to release that obj register 00:33
And you'll need a fresh_i temporary too for the result of isnull I guess... :)
timotimo oh? right.
jnthn Dance, regalloc monkey! 00:34
timotimo fresh_i will give me an int64? or should i get a smaller one? 00:35
jnthn Yeah, and that's what you want
timotimo good
timotimo oh. the p6bindsig should probably return the result of the bind_sig method call, aye? 00:39
that means i shouldn't release the register, right?
jnthn No, p6bindsig is always in void context.
timotimo OK
what do i pass to the constructor of MAST::InstructionList then? 00:40
jnthn So you can hand back MAST::VOID or so instead of a register
timotimo just the @ops?
ah, ok
jnthn And I think there's an $MVM_reg_void for the kind
timotimo excellent. let me try to compile it
i had to copypaste $MVM_reg_void first, but now it could work 00:45
jnthn yay 00:48
timotimo This REPR cannot change type 00:49
not quite sure what i dun wrongs :|
oh, wait
jnthn wtf... :)
timotimo i'm not actually invoking the autothreader at all yet
i think i need to re-read how i'm supposed to implement this
jnthn hehe
timotimo ah, i think i implemented it wrongly 00:50
i return nqp::null if it was a junction
where i should do Junction.AUTOTHREAD($caller, $sig), right? (or perhaps |$sig?)
dalek kudo/moar_autothread: 63a4f5e | (Timo Paulssen)++ | src/ (2 files):
first attempt at autothreading for moarvm
00:52
timotimo you can have a look at how i misunderstood you :P
jnthn You can't return nqp::null if it was a junction 00:53
You need to return the junction result!
timotimo isn't that what i did?
jnthn < timotimo> i return nqp::null if it was a junction
timotimo yes, that's what i did wrong :)
look at the diff now
oh, haha
it's kinda late here %) 00:54
jnthn That nqp::null(); needs to be an extra level out
Well, or in an else, more like.
timotimo oh? i put a return in front of the Junction.... instead
jnthn Off the if $bind_res {
But you don't return null if the bind is OK
timotimo ah, now i understand 00:54
jnthn That nqp::null is dead code as you have it.
timotimo it is! :) 00:55
and now: it was!
finanalyst jnthn: how do i get a perl6 using the jvm?
jnthn The code-gen looks right...
timotimo now i'm getting somewhere 00:56
jnthn finanalyst: Well, easy way is something like perl Configure.pl --backend=jvm --gen-nqp
timotimo i got through stage parse this time :)
finanalyst i've tried looking on the net, and read your blogs, but I couldnt find any info on the configure
jnthn: thanx. Can i do this in the same rakudo star directory as the parrot one? i mean will this clobber perl6 under parrot? 00:57
jnthn finanalyst: You missed the "Building Rakudo on JVM" section of the README too? :P
timotimo jnthn: will there be any reason to have an op that never checks for null, instead knowing that no junction could have ever come here?
jnthn finanalyst: Oh...there's not a JVM-based Rakudo Star yet.
finanalyst: That's probably why you missed it. This is just for building a Rakudo on JVM... 00:58
timotimo timo@schmetterling ~/p/rakudo (moar_autothread)> ./perl6-m -e 'say 10|20|30'
any(10, 20, 30)
that's not quite it %)
oh
wait, it is!
jnthn timotimo: It is 'cus say gists junctions...
jnthn timotimo: Try say 1 + 2 | 3; 00:58
timotimo This type does not support elems at src/gen/m-CORE.setting:3204 (/home/timo/perl6/rakudo/../install/languages/perl6/runtime/./CORE.setting.moarvm:AUTOTHREAD:12)
this i can work with.
1 + 2 | 3 gives me any(3, 3) 00:59
so .. that would be right?
jnthn What's 1 + (2 | 3) give? :)
timotimo the error seen above
i'll have a closer look
might be |$sig is wrong
jnthn moment... 01:00
timotimo: I think you're passing the wrong things... 01:01
timotimo yes, i might :|
jnthn Junction.AUTOTHREAD($caller, |$sig);
timotimo that's my current code, isn't it? 01:02
jnthn Yeah
timotimo OK
jnthn It's the capture you want though...
timotimo oh, i have to pass ... yeah
|ed?
it seems like AUTOTHREAD has |args in its signature
and deconts that and gets its $!list from the Capture class 01:03
jnthn Yeah, but I don't think you can just | it
You need to get the positional and hash bit of it I think...
timotimo i'll have to do the equivalent of parrot's implementation where it unshifts the ... oh?
i think i can do that
jnthn No, MVMCallCapture is not that mutable...
Getting the hash bit is easy, I think... 01:04
timotimo yeah, i can nqp::getattr the $!list and $!hash
from the Capture class
jnthn No, no...
$capture isn't one of those
It's a low-level MoarVM CallCapture thingy 01:05
timotimo oooh
jnthn nqp::capturenamedshash($capture) will get you the hash part.
timotimo thanks
jnthn See the code that fills up @pos_args starting around line 578 for how to extract the positionals, boxing them as you go. 01:06
Then that @pos_args, and the thing nqp::capturenamedshash gives you, are both things you can | into the arglist.
timotimo thanks
so i |@my_pos_args, |%(nqp::getnamedshash(...))? 01:07
Heap corruption detected: pointer 0x7f5d228d91f8 to past fromspace 01:09
>_<
jnthn Something like that... 01:10
eek
More torture needed, evidently...
timotimo bisects
if i remove my loop, it's all fine and dandy 01:11
this happens when compiling the bootstrap, fwiw
jnthn I suspect it's heisenbug...
timotimo yes, seems heisenbugish 01:13
commenting out either one of the three push + box + captureposarg lines, it passes 01:14
dalek kudo/moar_autothread: 3ead913 | (Timo Paulssen)++ | src/ (2 files):
first attempt at autothreading for moarvm
01:38
jnthn 'night, #perl6 01:41
colomon \o
timotimo Type check failed in bind; expected Str but got Str 1 01:54
that 1 there is the result of nqp::istype($got, $want)
m)
moritz timotimo: containerization fail? 08:03
arnsholt timotimo: How'd you get that result? That sounds really weird... 08:15
moritz breaking the autothreader would do that :-) 08:43
masak good morning, #perl6 08:56
FROGGS o/
xfix codegolf.stackexchange.com/a/17726/3103 09:08
Interesting how Perl 6 can make nice code golf programs (but I still lost to GolfScript).
rn: say [~] pick *,^9 09:09
camelia rakudo-parrot e5268b: OUTPUT«653170482␤»
..rakudo-jvm e5268b: OUTPUT«827341506␤»
..niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
xfix Uh oh. Timeout during compilation. This won't break stuff, right?
masak xfix: ^9 is 0 to 8, not 0 to 9 09:10
xfix lol, fail
fixed 09:11
rn: say [~] pick *,^9
rn: say [~] pick *,^10
camelia rakudo-jvm e5268b: OUTPUT«037426815␤»
..niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
..rakudo-parrot e5268b: OUTPUT«861047523␤»
rakudo-jvm e5268b: OUTPUT«8730126954␤»
..niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
..rakudo-parrot e5268b: OUTPUT«9145730628␤»
xfix rn: say [~]pick *,^10 09:14
std: say [~]pick *,^10 09:15
camelia rakudo-jvm e5268b: OUTPUT«===SORRY!=== Error while compiling /tmp/DyR3OxY2Eq␤Two terms in a row␤at /tmp/DyR3OxY2Eq:1␤------> say [~]⏏pick *,^10␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …» 09:15
..niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
..rakudo-parrot e5268b: OUTPUT«===SORRY!=== Error while compiling /tmp/RbjR_FOk6e␤Two terms in a row␤at /tmp/RbjR_FOk6e:1␤------> say [~]⏏pick *,^10␤ expecting any of:␤ argument list␤ postfix␤ infix stopper…»
std 09dda5b: OUTPUT«===SORRY!===␤Two terms in a row (listop with args requires whitespace or parens) at /tmp/3iNTbZlQNY line 1:␤------> say [~]⏏pick *,^10␤ expecting any of:␤ POST␤ argument list␤ feed_separator␤ infix or meta-i…»
hoelzro morning #perl6! 09:20
FROGGS xfix: looks more like niecza is broken on the server where camelia is running
jnthn morning o/ 09:41
masak jnthn! \o/ 09:43
FROGGS morning jnthn 09:47
moritz n: 42 10:04
camelia niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
dalek kudo/moar-support: ccf4e13 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Fix optional array/hash params.
11:19
jnthn That fixes the split tests, at least...
FROGGS jnthn++ 11:20
jnthn j: my $a = nqp::null() 11:45
camelia rakudo-jvm e5268b: OUTPUT«java.lang.NullPointerException␤␤»
jnthn p: my $a = nqp::null()
camelia rakudo-parrot e5268b: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in block at /tmp/MFHoaPyitD:1␤␤»
pmurias how does the speed of nqp-moar compare to nqp-parrot? 12:02
grondilu pmurias: from what I've tried (not much), moar is a bit slower so far. 12:03
jnthn Probably depends what you do. It runs NQP "make test" faster at least... 12:06
jnthn And parses CORE.setting faster. Loses out due to slow stage at the end, though... 12:06
pmurias I'm considering if it makes sense to switch nqp-js to use nqp-moar instead of nqp-parrot 12:07
jnthn: what's the slow stage?
FROGGS stage mast
jnthn pmurias: QAST -> MAST
code-gen
grondilu tried only basic stuff, like counting in for loops. 12:07
FROGGS pmurias: you might want to wait another week, so more spectests pass 12:08
pmurias nqp-js so the amount of spectests nqp-moar passes isn't a big concern 12:09
jnthn: why is that so expensive?
jnthn pmurias: Dunno yet. 12:10
pmurias: More focused on getting stuff working at the moment... 12:11
pmurias seems resonable 12:18
pmurias :), nqp-js hasn't bitrotten recently 12:22
FROGGS pmurias: good for you :o) 12:26
when I leave v5 unattended for more than two weeks, it is broken most times 12:27
pmurias do we have NaN and infinities in nqp numbers? 12:39
FROGGS yes 12:40
nqp: say(nqp::inf) 12:41
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«Inf␤»
FROGGS nqp: say(nqp::isnanorif(nqp::inf))
camelia nqp-moarvm: OUTPUT«Error while compiling op isnanorif (source text: "nqp::isnanorif(nqp::inf)"): No registered operation handler for 'isnanorif'␤frame_name_1109␤»
..nqp-parrot: OUTPUT«Error while compiling op isnanorif (source text: "nqp::isnanorif(nqp::inf)"): No registered operation handler for 'isnanorif'␤current instr.: '' pc 57054 (gen/parrot/stage2/QAST.pir:21045) (gen/parrot/stage2/QAST.nqp:3631)␤»
..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤ in coerce (gen/jvm/stage2/QAST.nqp:4205)␤ in as_jast (gen/jvm/stage2/QAST.nqp:2988)␤ in (gen/jvm/stage2/QAST.nqp:3785)␤ in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3773)␤ in as_jast (gen/jvm…»
FROGGS nqp: say(nqp::isnanorinf(nqp::inf))
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1␤»
arnsholt crosses fingers 12:44
FROGGS arnsholt: what's up?
arnsholt Trying a bit of a long shot at fixing NQP #46 12:45
colomon arnsholt++ 12:45
arnsholt But no =/ 12:46
FROGGS :/ 12:47
jnthn Well, in NQP I think it is syntactic about how it flattens (array vs hash)
May be an easier fix in Rakudo... 12:48
pmurias why do we have both log10 and log (which takes a base)?
pmurias is fixing NQP #130 12:49
arnsholt jnthn: The reason it bugs me is that both the subrule call and the method call parse the argument list using the main arglist rule, and thus should have the same AST for it 12:50
And there's the annoying hash flattening problem on JVM, which I'm not sure if is related or not (but probably not, I think) 12:51
pmurias nqp::log_n and nqp::ln_n appear to do the same thing
shouldn't we remove one?
moritz +1 12:53
arnsholt I agree 12:54
pmurias which one gets to stay?
pmurias nqp::log_n is used by rakudo, so it would be easier to remove nqp::ln_n 12:56
jnthn Yeah, if they're dupe, remove one.
And removing the one Rakudo ain't using is easiest. May be worth looking over the various backends to find the dupe.
If it's more widespread.
arnsholt I think all three backends have both ops 12:57
dalek kudo/moar-support: 21a1699 | jnthn++ | src/vm/moar/ops/container.c:
Disallow assigning null.
12:58
kudo/moar-support: 0397a49 | jnthn++ | src/core/ (2 files):
Get runtime backtrace reporting working on Moar.
jnthn [Coke]: 0397a49 should mean that today's run gives much more informative failure modes.
FROGGS jnthn++ # \o/ 12:59
dalek p: 6d67680 | (Pawel Murias)++ | t/nqp/83-log.t:
Add a test for nqp::log_n.
dalek kudo-js: bd301f6 | (Pawel Murias)++ | run_tests:
Switch to using nqp-p for running QAST tests.
13:03
kudo-js: 1573742 | (Pawel Murias)++ | run_tests:
Remove comment.
kudo-js: 6ba98c7 | (Pawel Murias)++ | nqp:
Update the submodule to newest nqp.
kudo-js: fc92369 | (Pawel Murias)++ | / (3 files):
Implement nqp::log_n.
kudo-js: 3b97d73 | (Pawel Murias)++ | run_tests:
Add passing test to run_tests.
13:04
nwc10 \o/ rakudo-js is back 13:05
nwc10 watch out MoarVM, the race is back on 13:05
FROGGS :P
dalek rl6-roast-data: 5d56d9e | coke++ | / (3 files):
today (automated commit)
13:24
[Coke] diakopter: fyi, I'm pushing the runtimes of the daily stuff on host06 earlier today, trying to get them towards your original request, which I think was "done before you wake up". 13:39
jnthn 78.42% \o/ 13:40
timotimo jnthn: did you see the way moarvm + autothreader fails now?
jnthn timotimo: Ah, was gonna ask you what current state is... :)
How's it fail now?
timotimo i can tell you :P
the code it gens for p6bindassert looks like "get the value, then the type. run the istype op on it and if it returns 1, skip to success" 13:41
it doesn't skip to success and running nqp::istype on the values just like the codegen would returns 1
so ... heisenbug? missing root or something in istype?
jnthn Lemme look...
Ah... 13:43
dalek kudo/moar-support: 095c777 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
Missing decont in p6bindassert.
13:53
jnthn timotimo: ^^ 13:53
timotimo yay
i'll try that
jnthn say any(-1,2).abs # works with that :) 13:54
timotimo \o/
xfix Interesting. Ruby 2.1.0 has 1/3r syntax, which does what 1/3 does in Perl 6. 14:02
timotimo not ok 88 - an & junction right of a | junction will be autothreaded first 14:05
# got: 'all(any("\x[64]\x[6f]\x[67]\x[20]\x[31]\x[20]\x[31]\x[30]", "\x[64]\x[6f]\x[67]\x[20]\x[32]\x[20]\x[31]\x[30]"), any("\x[64]\x[6f]\x[67]\x[20]\x[31]\x[20]\x[32]\x[30]", "\x[64]\x[6f]\x[67]\x[20]\x[32]\x[20]\x[32]\x[30]"))'
# expected: 'all(any("dog 1 10", "dog 2 10"), any("dog 1 20", "dog 2 20"))'
how did that happen? %)
grondilu r: say <1/3>.WHAT
camelia rakudo-parrot e5268b, rakudo-jvm e5268b: OUTPUT«(Str)␤»
grondilu n: say <1/3>.WHAT
camelia niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤» 14:06
timotimo i mean ... the string matches, but why is it escaped like that?
xfix timotimo, overescaping in `.perl`, perhaps.
(but I agree, this is silly... considering it's almost impossible to debug this)
timotimo yeah, but the source is the same, how does moar get the idea that it *should*?
xfix I'm almost sure that if "p" function in Ruby would escape like that, nobody would use it. 14:07
timotimo maybe nqp::iscclass( nqp::const::CCLASS_PRINTING ) done goofed up? 14:08
jnthn timotimo: Potentially
timotimo: Does auto-threading now work in general? 14:09
timotimo it seems so! :D
but yeah, the iscclass gives 0 for "d", which is obviously not correct 14:10
timotimo looks into it
also, i bet the perl method for Str could be much more efficient
jnthn timotimo: yay
jnthn hopes timotimo++ will push the junction thing before today's roast run starts :)
timotimo oh. yeah sure i can rebase and push :) 14:11
dalek kudo/moar-support: 279cb49 | (Timo Paulssen)++ | src/ (2 files):
implement autothreading for junctions
14:13
timotimo ah, the PRINTING cclass isn't implemented in moarvm 14:15
jnthn: can has moarvm commit bit? :) 14:17
dalek p: 2eed549 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
return the encoding we set, so we return something
14:18
dalek kudo/moar-support: 9d045f1 | (Tobias Leich)++ | src/core/control.pm:
pass decontainerized ENV to shell/run and spawn
14:20
timotimo without an internet connection to my desktop it is surprisingly hard to find out the definition of printing characters in Unicode 14:25
masak just iterate over all of them an test them against [:print:] 14:26
:P
timotimo sounds like a great idea
jnthn timotimo: Commit bit given 14:29
timotimo hum. libicu says printing is true for anything but the general category C 14:45
there is no UPV_C* constant in moarvm :(
masak is back to looking at t4 submissions 14:47
timotimo makes it so
jnthn [Coke]: Am just working on fixing the Test.pm mis-pre-compile so that hopefully JVM spectest will go faster 14:49
[Coke] jnthn: is it recompiling Test.pm so it builds each time? (that's got to be doubly slowo on the jvm) 14:55
jnthn yeah...got it fixed locally, it seems
[Coke] today's run just started, but the individual impls's don't checkout until it's there turn, so there's hope. :) 14:56
dalek kudo-star-daily: c6402d0 | coke++ | log/ (5 files):
today (automated commit)
14:57
timotimo jnthn: how are you testing it? with a BEGIN say "omg it compiles!"? :)
jnthn timotimo: Well, just doing a spectest run to see we make it some way into it... :)
timotimo ah, hehe 14:58
dalek kudo/nom: 5669b2a | jnthn++ | tools/build/Makefile-JVM.in:
Put Test.jar in the right place for spectest.

Should speed up the JVM spectest run a good bit.
14:58
masak TimToady++ # RENAME(1)
timotimo \o/
FROGGS RENAME(1) ? 14:59
what is that about?
diakopter [Coke]: heh I didn't have a timeframe on my request :P 15:00
masak FROGGS: 'man rename'
FROGGS: think of it as multiplayer 'mv'
moritz mv with perl (5) expression support 15:01
FROGGS masak: I see :o)
moritz rename '$_=uc' *.txt
arnsholt Wow. I had no idea it's really impractical to bundle JARs you depend on in your JAR 15:11
sjn hey, anyone here planning on going to FOSDEM? 16:23
(other than lizmat and woolfy :)
FROGGS sjn: ask dagurval
sjn wow, another Norwegian in #perl6? :) 16:25
dagurval: you going? :)
dalek kudo/moar-support: 5896eaa | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Avoid invalid capturelex operations.

Fixes various (maybe not all) wrong-frame errors.
16:26
sjn jnthn: if you're going, I'd like to direct your attention here: fosdem.org/2014/schedule/event/who...y_battery/ :) 16:30
masak jnthn is going, AFAIK. 16:31
sjn ok, cool
jnthn Yeah...need to get hotel and flight done though...d'oh
sjn masak: how about you? 16:32
jnthn: don't wait, it's filling up
sjn jnthn: I'm here; www.booking.com/hotel/be/nhatlanta.en-gb.html 16:34
s/here/staying here during FOSDEM/
masak sjn: I'm not coming this year. would be great fun, but... @stuff 16:38
sjn mm :-\ 16:40
masak my modest aim this year is to make it to YAPC::EU. 16:42
jnthn
.oO( See if from Sofia, not from the sofa! )
16:43
[Coke] r: say 24356 - 22311 16:54
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«2045␤»
lichtkind i have here a possible rakudo bug 17:04
[Coke] shoot.
lichtkind my class has @!sieb; but if i declare it as a has Array of Int @!sieb; i get weird error msg that its an Array[Int] not an int but im assigning that int to one cell so it should be right 17:08
jnthn lichtkind: You may just one has Int @!sieb; 17:08
lichtkind: The "array of" is implicit 'cus of the @ sigil 17:09
lichtkind ah
thank you
i dind know that maybe syn should be clearer on that
lichtkind jnthn: i currently restarted to do euler with perl 6 and rproduce some nice out of memory crashes because i cant have array with 4 mill elements :) 17:12
masak japhb_: ping 17:22
japhb pong 17:29
I felt a disturbance in the force ... I wasn't even caught up in logs. :-) 17:30
timotimo someone here commented that moarvm is slower than parrot in the bytecode generation stage
that's not 100% accurate
after stage post/pir, there's a whole different process stage where parrot compiles the .pir file to a .pbc which takes quite a while, too
moritz parrot's bytecode generation include the call that compiles .pir to .pbc
timotimo it does? in that case, it does the thing twice. 17:31
japhb Erm, masak? You were looking for me? 17:33
masak japhb_: yes, you possess higher knowledge that I'd like to have. 17:41
japhb Uh ...
That's just the opening line to a catastrophe. ;-) 17:42
masak mwhahaha
jnthn tells me that you auto-generate classes in github.com/japhb/p6-pb
jnthn
.oO( <masak> All I wanna do is eat your brain... )
17:43
masak :)
japhb Why yes, I do.
masak japhb_: do you know how, given a list of names like <foo bar baz>, to produce a class with those attributes? 17:44
japhb Yes.
masak \o/
hm, that's not even what I'm really after.
let me regroup and rephrase.
japhb masak: Start here: github.com/samuraisam/p6-pb/blob/m...tor.pm#L39 17:45
That method is strong with the metamodel.
timotimo masak: maybe my ADT module is of a bit of help to you, too?
masak given 'class C { has $.x }', how do I endow the attribute $.x with a Proxy that writes "fetch" on all fetches from it, and "store" on all stores. 17:46
masak I'm fine with an answer along the lines of "just give C this trait" -- what I want to avoid is doing things manually with each attribute. 17:47
japhb Erm. Why not just do 'has $!x' and write your own accessor?
moritz in fact, for masak's requirement, there's even no need for an attribute
japhb For that particular use case, it feels a little like you're reaching for the big tool, when the little one will do just fine. 17:48
moritz you can just write a method x that returns a Proxy
masak moritz: yes, I guess so. 17:48
japhb moritz: I was assuming he needed to keep *some* sort of state, but you're right that it could just disappear into the closure.
masak moritz: but I have a lot of methods like that, and I want to hide all the boilerplate.
masak closures ~~ objects :) 17:48
moritz masak: you can write that method once, and then .^add_method it as many times as you want. 17:49
japhb masak: <channelling diakopter> So does your mom.
jnthn If you're constructing the classes anyway, you could subclass Attribute, override compose (which does accessor generation) and use that attribute meta-object instead...
japhb And in fact, p6-pb does a lot of "subclass Attribute" type stuff. 17:50
masak subclassing attribute would be quite nice, yes. 17:51
lichtkind is the a way to set an init vlue for an whole array? 17:55
moritz p: my @a is default(42); say @a[23] 17:56
camelia rakudo-parrot 5669b2: OUTPUT«42␤»
moritz lichtkind: ^^
lichtkind ver cool 17:57
FROGGS hi lichtkind
lichtkind hai froogs
FROGGS :o)
lichtkind hope to see you in hannover
FROGGS I will be there
lichtkind i got Can't use unknown trait 'is default' in an attribute declaration. 17:58
expecting any of: 17:59
rw
readonly
box_target
maybe its not yet available for attributs
jnthn No, it's NYI for attributes
[Coke] huh. new run today really confused my script to find abort failures root causes. nifty. 18:00
dalek kudo/moar-support: 88dbdac | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
Complete p6return op.
japhb I must say, the r-m progress has been phenomenal to watch. Y'all are kicking ass. 18:03
colomon +1
timotimo r: my %esc = '$' => '\$', '@' => '\@'; say 'foo$ bar\$ baz@ quux\@'.comb(/%esc/); 18:09
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«␤»
timotimo r: my %esc = '$' => '\$', '@' => '\@'; say 'foo$ bar\$ baz@ quux\@'.comb(/@(%esc.keys)/);
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«$ $ @ @␤»
lichtkind thanks jnthn 18:17
japhb masak: Came across this in the logs: irclog.perlgeek.de/perl6/2014-01-03#i_8066095 -- What are Nomic, Dark, and secretary bot? 18:20
timotimo r: say "foobar" ~~ / <[:Print:]>+ / 18:21
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«「r」␤␤»
timotimo r: say "foobar" ~~ / <[Print]>+ /
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«「r」␤␤»
timotimo how do i ...
r: say "foobar" ~~ / <:Print>+ / 18:22
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«「foobar」␤␤»
timotimo ah!
benabik japhb: I would assume nomic refers to a tracker for the game: en.wikipedia.org/wiki/Nomic
timotimo r: my %esc = '$' => '\$', '@' => '\@'; say 'foo$ bar\$ baz@ quux\@'.comb(/<-%esc.keys>/); 18:27
camelia rakudo-parrot 5669b2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/REGOGxMzo7:1␤------> '; say 'foo$ bar\$ baz@ quux\@'.comb(/<-⏏%esc.keys>/);␤Unrecognized regex metacharacter - (mus…»
..rakudo-jvm 5669b2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/tLaJRRTO21:1␤------> '; say 'foo$ bar\$ baz@ quux\@'.comb(/<-⏏%esc.keys>/);␤Unrecognized regex metacharacter - (must b…»
timotimo r: my %esc = '$' => '\$', '@' => '\@'; say 'foo$ bar\$ baz@ quux\@'.comb(/<-@(%esc.keys)>/);
camelia rakudo-jvm 5669b2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/aruVVkKCVP:1␤------> '; say 'foo$ bar\$ baz@ quux\@'.comb(/<-⏏@(%esc.keys)>/);␤Unrecognized regex metacharacter - (mus…»
..rakudo-parrot 5669b2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/hwhU_PfXo3:1␤------> '; say 'foo$ bar\$ baz@ quux\@'.comb(/<-⏏@(%esc.keys)>/);␤Unrecognized regex metacharacter - (…»
timotimo r: my %esc = '$' => '\$', '@' => '\@'; say 'foo$ bar\$ baz@ quux\@'.comb(/<-[@(%esc.keys)]>/);
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«f o o $ b a r \ $ b a z q u u x \␤»
timotimo how do i? :\ 18:28
moritz eval!
or (.) <!{ %esc{$1}:exists}>
timotimo i'm porting this from code to regex to improve performance 18:41
so i was hoping i could introduce the keys of the hash to the regex engine
because the regex engine is pretty fast 18:42
moritz: you think i could get any more performance out of JSON::Tiny by looking intently at the code and regex codegen and stuff? 18:43
lichtkind hm even with simulated bit array i got memory error 18:52
moritz timotimo: I have no idea; might be worth trying 18:57
arnsholt t/nqp/83-log.t | 20 ++++++++++++++++++++ \o/ 19:15
timotimo arnsholt: you made a whole bunch of new tests? 19:19
arnsholt Nope. pmurias++ did 19:20
colomon sweet! 19:23
masak japhb: Nomic is a game in which a move is proposing a rule change and having it voted on. I made a sketch for a Perl 6 implementation, and I figure it's time to start implementing it. 19:25
diakopter masak: that's like meta-game meta-theory 19:26
masak Nomic is a very meta game.
arnsholt jnthn: Should I just remove nqp::ln_n, or would you prefer a bit more warning to (non-Rakudo) users?
masak japhb: Dark is a web engine (with one static and one dynamic part) based around feeds (as in Atom), operators on feeds, and projections from feeds into pages.
diakopter there's no I in meta
arnsholt See also en.wikipedia.org/wiki/Nomic 19:27
[Coke] There is an I in meat pie, though.
diakopter there is a meat pie in I, too
masak japhb: secretary bot (occasionally named "mishu", but it's just a working name) is my attempt to (finally!) get an online agent. event-based, programmable, shouldn't ever need to be rebooted. it's a second system. 19:29
japhb: incidentally, the things I asked you about tonight were for Nomic.
japhb: here's the sketch. gist.github.com/masak/5237570 -- I think you'll be able to see why I need what I asked for. ;) 19:30
tadzik just a working name. It's funny because mishu is working 19:31
masak in fact, I'm going to make it tonight's mini-challenge.
write an attribute trait that will make an attribute "sense" when it's being read from and written to.
yes, you too can win... an Internet!
diakopter is sensible 19:32
masak :P
tadzik sub sight is sense
masak tadzik: "mishu" MI4SHU1 秘书 is Mandarin for "secretary".
tadzik yeah, that rings a bell, from PPW and YAPCEU talk :) 19:33
masak aye.
tadzik btw folks, PLPW 2014 registration is open
masak \o/
tadzik this time in Poznań, on the wild west
diakopter google wants me to PLOW 2014 instead 19:34
tadzik it's like twice as close to()from) germany as PLPW 2013 was!
tadzik what a bargain! 19:35
masak ss/twice as close/half as far/ :P
tadzik hey, I know better where it is! :P
Rotwang poznan is the worst city ever 19:39
jnthn arnsholt: I think we can just remove it...
Rotwang tadzik: have you given any thoughts to my pull request?
masak Rotwang: I like Poznan. 19:45
then again, I like anything that has pierogi in it :)
arnsholt goes to remove nqp::ln_n 19:46
colomon pierogi++ 19:47
tadzik Rotwang: I was mostly out of internet recently, let me see 19:53
masak .oO( but you can win one, if you do the mini-challenge! ) 19:54
tadzik ok, I have mixed feelings
1st, it sort of defeats the purpose of Builder whatsoever
masak does anyone think blogs.perl.org/users/joel_berger/20...ubref.html could be done in Perl 6?
I don't think so, because you cannot do $!x or $.x outside of a class.
tadzik other than choosing a file to copy to blib 19:55
which may be a good thing
tadzik but: do you have a particular usecase that this change will solve? 19:55
in other news, the first thing I want to do once I get back to rakudo hacking, is get us rid of manual precomp, forever 19:56
jnthn r: class A { has $.x }; my $m = method () { say self.x }; A.new().$m()
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«(Any)␤»
tadzik so panda can stop doing it wrong
jnthn r: class A { has $.x }; my $m = method () { say self.x }; A.new(x => 42).$m() 19:56
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«42␤»
jnthn r: class A { has $.x }; my $m = method () { say $.x }; A.new(x => 42).$m()
camelia rakudo-parrot 5669b2, rakudo-jvm 5669b2: OUTPUT«42␤»
jnthn masak: Does work :)
$.x just needs a self
lichtkind (rakudo devs)++
jnthn masak: It's $!x you can't do, which I think we want to keep that way :) 19:57
lichtkind the error messages are sometimes reall useful
masak oh, right, the 'method' keyword. 19:58
yes, I agree -- that's the right level of encapsulation.
I haven't seen someone play around with ad-hoc methods that way.
dalek p: 7245cb4 | (Arne Skjærholt)++ | src/vm/ (3 files):
Remove superfluous nqp::ln_n op from all three backends.
19:59
Rotwang tadzik: "manual precomp"?
dalek p/replace-shift-with-control-in-strings: 8c8ff30 | masak++ | t/jvm/01-continuations.t:
s/shift/control/g in strings in 01-continuations.t
20:16
dalek kudo/moar-support: 7de1934 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Fix p6isbindable, fixing unpack-object.t.
20:28
masak p: sub trait_mod:<is>(Attribute:D $attr, :$sensitive!) { say "how to I proceed from here?" }; class C { has $.x is sensitive } 20:44
camelia rakudo-parrot 5669b2: OUTPUT«how to I proceed from here?␤»
masak more exactly, how do I make $.x notice it's being read from and written to?
FROGGS I'd grep for FETCH and STORE in rakudo's source 20:45
timotimo class foobar { has @.feelings ... }@ 20:46
FROGGS like src/Perl6/Metamodel/BOOTSTRAP.nqp:311: Proxy.HOW.add_method(Proxy, 'FETCH', ($PROXY_FETCH := nqp::getstaticcode(sub ($cont) {
maybe you can add that method to the attr?
masak I know about FETCH and STORE, and about proxies. 20:49
I just don't know how to tie the knot from an attribute trait_mod:<is> to a Proxy.
jnthn masak: I think you need a custom meta-attribute 20:51
masak: Oh, or not... 20:52
masak: I guess given you know your trait mod runs before accessor method generation, and accessor method generation is suppressed by installing a method...you can just beat it to install an accessor :)
masak: So really you want to be doing add_method or so :) 20:53
tadzik Rotwang: the fact that we have to explicitely precompile stuf, instead of rakud ohandling this for us
think python
masak jnthn: but I should do add_method to... the class HOW object, no? 20:54
nwc10 so, do I stay up to watch the SpaceX launch? If I go to bed, is it less likely to be scrubbed?
jnthn masak: Yeah, you an get hold of what I think with .package on the Attribute instance you were passed. 20:55
Rotwang tadzik: indeed, so when is it supposed to happen? 20:57
I'm wondering, because I have this module that compiles a native library in the Build.pm
after installation the module is supposed to find the library searching through @*INC at compile time 20:58
so currently it is not possible to install the module with panda, or at least I think so
masak p: sub trait_mod:<is>(Attribute:D $attr, :$sensitive!) { my $name = $attr.name.substr(2); my $class := $attr.package; $class.HOW.add_method($class, $name, sub ($c) { say "it tickles!"; $attr.get_value($c) }) }; class C { has $.x is sensitive }; my $c = C.new(:x(5)); say $c.x 21:11
camelia rakudo-parrot 5669b2: OUTPUT«it tickles!␤5␤»
masak ok, I can definitely work with this. 21:12
jnthn++
timotimo plpw is only 9 hours away from me. via train. 21:21
nwc10 before I forget
timotimo only costs 100 euros
nwc10 if there is a plan to have a hackathon at the German Perl Workshop, could it be decided soon
before I book travel and hotel
please :-)
dalek kudo/moar-support: 6ce3436 | (Tobias Leich)++ | src/ (2 files):
implement p6decodelocaltime and make $*TZ available
21:22
masak seems there is only one mention of FETCH and STORE methods on the whole spec. 21:24
and in that example, the sub for STORE has *one* parameter, whereas the examples I see in Rakudo have *two*. 21:25
spec wrong?
jnthn FROGGS: We get some more tests out of that? :)
japhb_ masak: Thanks for explaining the projects. :-)
masak p: sub trait_mod:<is>(Attribute:D $attr, :$sensitive!) { my $name = $attr.name.substr(2); my $class := $attr.package; $class.HOW.add_method($class, $name, sub ($c) { Proxy.new(FETCH => { say "read"; $attr.get_value($c) }, STORE => -> $, $v { say "write"; $attr.set_value($c, $v) }) }) }; class C { has $.x is sensitive }; my $c = C.new(:x(5)); $c.x = 42; say $c.x 21:27
camelia rakudo-parrot 5669b2: OUTPUT«write␤read␤read␤read␤read␤read␤read␤42␤»
masak \o/
FROGGS jnthn: 187 21:28
masak except... why does it print 'read' 6 times?
moritz masak: try say ~$c.x
it might be read for the multi dispatch, for the type check, a few times in .gist, ... 21:29
masak p: sub trait_mod:<is>(Attribute:D $attr, :$sensitive!) { my $name = $attr.name.substr(2); my $class := $attr.package; $class.HOW.add_method($class, $name, sub ($c) { Proxy.new(FETCH => { say "read"; $attr.get_value($c) }, STORE => -> $, $v { say "write"; $attr.set_value($c, $v) }) }) }; class C { has $.x is sensitive }; my $c = C.new(:x(5)); $c.x = 42; say ~$c.x 21:31
camelia rakudo-parrot 5669b2: OUTPUT«write␤read␤read␤read␤read␤read␤read␤read␤read␤read␤42␤»
masak 9 times!?
anyway, it's no biggie.
Mouq seems efficient
masak it's just going to result in a bunch of over-firings.
timotimo i'll probably go to the gpw2014 21:32
since it's so close
japhb_ Elephant in room is an elephant.
japhb_ That kind of thing is why it would be nice to coalesce profile call counts by classification of routine -- generated accessor, other generated method, hand-written method, sub, pointy, etc. 21:33
masak aye.
I'm almost tempted to report this as a rakudobug. 21:34
diakopter heh, put continuation shifts in those lolol
japhb_ masak: I understand both your reasoning and your hesitation.
jnthn You can't rely on that, really... 21:35
moritz masak: if you submit it as a rakudobug, prepared for the question "how many reads are OK, exactly?"
*be prepared
masak diakopter: I had a feeling it wasn't right. I'll delete the branch, then.
japhb_ rely on what, jnthn?
masak moritz: I'd expect 1.
jnthn japhb_: How many times it'll decont...
diakopter masak: er
masak or else Proxy is less useful.
diakopter masak: I wasn't addressing the branch
FROGGS timotimo: \o/ 21:36
moritz masak: but you do notice that you've passed this as an argument to a named routine, which needs the value for type checking and multi dispatch and all that fancy stuff?
japhb_ wonders if we need BFWs for all the things rakudo's design just assumes are very cheap.
masak p: class C { method x { Proxy.new(FETCH => { say "read"; 2 }, STORE => -> $, $v { say "write $v" }) } }; given C.new { .x = 5; say .x }
camelia rakudo-parrot 5669b2: OUTPUT«write 5␤read␤read␤read␤read␤read␤read␤2␤»
jnthn japhb_: Well, thing is, a decont normally *is* very cheap (pointer de-ref)
masak moritz: yes, I see what you are saying. 21:37
moritz: I just know that there is a preferred way in which I would want Proxy to work.
moritz so doing it in one fetch would require *another* layer of indirection
masak yes :/ 21:37
moritz the cocontainer :-)
japhb_ jnthn, Well, I can turn it around and say "BFW on Proxy that it breaks [one or more] assumptions that certain things are really fast, so Proxy is likely to have disproportionately large effects on performance"
masak moritz: no, but nice try :P 21:38
well, there are other parts of Perl 6 that promise to calculate the value only once and then cache it. '5 < $x < 10' comes to mind.
so it *is* possible, in some sense.
question is whether it is in this case, and if so, at what cost.
moritz be wary of "calculate the value only once" 21:39
diakopter masak: count how many the chained comparator does ;)
moritz the spec says that if $x is an expression, it is only evaluated once
japhb_ Under concurrency, beware of "recalculating is pure"
moritz but fetching a thing from its container isn't the same as evaluating an expression
japhb_ Sure, no argument. 21:40
masak moritz: yes, you're right.
jnthn Note that you can probably dump a backtrace in each FETCH call if you're curious where they're happening...
masak moritz: also, I can live with this behavior. Nomic (and the engine that drives it) will still work fine as-is, it'll just be slightly inefficient.
japhb_ I just never like finding out that things that in theory should have relatively minor effect really won't.
masak I won't submit a rakudobug. 21:41
japhb_ It's worth asking if there will ever be redundant *writes*.
masak but I would like to note for the record that my expectation was 1 'read'.
moritz goes to sleep less troubled
japhb_ o/ # "less troubled" sleep is best sleep
lue masak: is your Nomic game just a normal one written in Perl 6, or are the submitted rules bits of Perl 6 code? 21:42
jnthn masak: I'm surprised it's so many, but not really at all surprised it's multiple...
masak lue: the submitted rules are patches to the Perl 6 code that (currently) makes up the game. 21:44
lue that should be mind-bendingly fun :D 21:44
masak lue: that is, you're using the *same* application to propose rule changes, discuss them, and then change the actual rules.
[Coke] IO::Handle.copy is deprecated. Please use IO::Path.copy instead. -- this probably needs to be updated to the new DEPRECATED. Also, it's in roast. 21:53
S32-io/copy.t
timotimo right 21:56
masak diakopter: oh, I thought you were talking about the branch. 21:58
diakopter: did you see it? 21:59
diakopter: was it what you wanted?
diakopter: should I merge it?
tadzik bah, Rotwang's gone
tadzik preflex, tell Rotwang as soon as it's needed, so it may happen the first time someone runs a program that uses a module 22:00
preflex Consider it noted.
nwc10 T -6 minutes, if anyone is interested: www.spacex.com/webcast/
masak oh boy oh boy 22:01
nwc10 T -1 22:05
masak woooooooooooow 22:06
jnthn nice! 22:07
masak I love that it traveled 6 km in one minute.
...and THEN passed the sound barrier!
masak not such a good view of the planet this time around. 22:09
still, that's clearly ours.
*sniff*
PerlJam at least until the aliens come down and take it from us. 22:10
nwc10 they seem to have a new camera for stage 2, showing the engine from the side, I think as IR
masak yeah. 22:11
maybe that's what we saw last time too, though.
yes, it seems to be flipping back and forth.
colomon dang, didn't look down at the IRC window in time to notice and watch the launch. :( 22:12
[Coke] what's with the all the pixelated video? they clearly need more bandwith. :)
masak finds himself wishing the vehicle could go around the planet so that the planet obscures that bright nearby star 22:13
nwc10 yeah, the full colour live stream from the *rocket in flight* is a bit mangled. #firstworldproblem :-)
nwc10 oh, and it's not HD 22:13
masak yeah, if space has that bad connectivity, I'm not sure it's worth it.
I'm glad I found this out *before* I moved!
[Coke] not HD? pshaw! 22:14
nwc10 and the frame rate seems a bit low 22:14
masak that's a nice red glow. 22:15
something must have made it very hot recently. :P
lue I just decided to check out that webcast link, and to my infinite surprise it needs flash :/ 22:16
colomon look at all those people in space!
masak colomon: :D 22:18
I thought the day couldn't get any better, but then I saw a live stream of human engineers *propelling an object into orbit*.
'night, #perl6 22:19
colomon \o
lue does anyone else experience problems with Moar's CFLAGS somehow overriding Parrot's? Because I can make a pull request after a while with a fix for that. 22:20
dalek p: 79c72d8 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Don't take a null dispatcher.
22:26
dalek kudo/moar-support: 3f17cbf | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Implement p6finddispatcher.
22:28
dalek ast: 83e0589 | (Timo Paulssen)++ | S02-literals/quoting.t:
skip quoting tests requiring openpipe on moarvm
22:54
ast: ac60f26 | (Timo Paulssen)++ | .gitignore:
ignore rakudo.moar fudged test files
timotimo that gives us about 40 more tests
i wonder why version comparisons b0rk 22:55
ah, hehe
timotimo is probably about to make another 24 tests pass that used to fail 22:57
jnthn src/vm/moar/ops/perl6_ops.c(609) : error C2079: 'tm' uses undefined struct 'tm' 22:59
:(
timotimo :( 23:01
dalek kudo/moar-support: cf92e81 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Fix p6decodelocaltime build on Win32.
23:10
kudo/moar-support: a94270c | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Implement p6argsfordispatcher.
jnthn timotimo: Fine, though it's better we don't start fudging too much too soon...
diakopter jnthn: needz an asterisk after tm? 23:15
jnthn diakopter: In the decl? 23:17
No, it's stack allocated
um
(&tm)->tm_sec
diakopter I thoguht that was the error you got if you nested a struct inside itself instead of a pointer to a struct
jnthn ....that should be tmp.tm_sec...
(should as in, "it's shorter and means the same") 23:18
dalek kudo/moar-support: afac8b6 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Fix native auto-unboxing of params.
23:30
kudo/moar-support: 78e9800 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Complain about excess args.
dalek rl6-roast-data: dfb2456 | coke++ | / (4 files):
today (automated commit)
23:39
[Coke] If you fudge a roast ticket for moarvm, be sure to open a ticket. 23:40
otherwise we'll end up with more of the mess I created with all the "nom regression" todos.
jnthn [Coke]: Was JVM test run less awfully slow today? 23:45
lue perl6-m still doesn't work outside the git repo :( [rakudo commit 7de193412] 23:52
[Coke] not by much, it felt. probably swamped by lack of eval server.
[Coke] kicks off another run of moar to improve the test abort list. 23:53
jnthn [Coke]: hang on... 23:54
lue The specific error is "Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp'", for those interested. 23:54
jnthn [Coke]: OK, just pushed. Use latest Moar now :)
preflex jnthn: you have 1 new message. '/msg preflex messages' to read it.
jnthn [Coke]: Just fixed all the tests that depend on custom operators... :)