»ö« 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 :) 00:00
'night, timotimo
psch this is confusing me gist.github.com/peschwa/8625806 00:03
why does the error change to undeclared variable? 00:04
jnthn psch: Double quotes interpolate variables 00:06
psch ooh
right
psch that's silly of me 00:06
jnthn Use Q[...] or something
psch yeah 00:06
great, it does throw X::Assignment::RO 00:07
jnthn Maybe not on MoarVM yet, though 00:09
Mouq psch: Nerm… I hadn't actually looked at your commit until now
r: use Test; ok 'nonsense', 'this test will always succeed'
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«ok 1 - this test will always succeed␤»
Mouq ok tests the truthiness of it's first argument and uses the second as a test message
psch oh 00:14
Mouq psch: so what I think you were looking for is `is`, and I think you'll have to define a sub other than 'say'
psch right
Mouq psch: Hey, it's better than no test :)
psch i don't know if a test that always passes is better than no test... :) 00:15
that's what i get for only having used throws_like up to now hah
Mouq psch: Hah, it's cool 00:16
jnthn 'night, #perl6
Mouq night jnthn
psch g'night jnthn
r: use Test; (my $a) = 1,2,3; is $a, (1,2,3), "Assignment into parentheses'd my works." 00:22
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«ok 1 - Assignment into parentheses'd my works.␤»
psch Mouq: that's a better test right?
dalek ast: 7af18f0 | (Pepe Schwarz)++ | S03-operators/assign.t:
Correct test for RT #76444. Mouq++
00:24
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76444
psch (i hope so cause now it's in...)
r: (my $a) = 1, 2, 3; say $a.WHAT; (1,2,3).WHAT.say; 00:26
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«(Parcel)␤(Parcel)␤»
psch i feel fairly confident it's correct.
Mouq psch: Nergle, sorry, I was offline 00:39
I read the bug report more as `routine (my $a) = 1,2,3` being parsed as `(routine (my $a)) = 1,2,3` when it should be `routine ((my $a) = 1,2,3)` 00:41
psch that actually makes sense, the other cases don't work when removing the routine 00:42
in my defense, the usefulness of the test did improve... :)
i'll change it again though, you're clearly right
Mouq lol, psch++ it's more than I've done today :) 00:43
Ok
psch i'm not quite sure how to write the test though 00:44
psch r: use Test; is 'foo (my $a = 1,2,3)', (1,2,3), 'Routine call taking a parenthesesed my as argument works.'; # this isn't right 00:44
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«not ok 1 - Routine call taking a parenthesesed my as argument works.␤# got: 'foo (my $a = 1,2,3)'␤# expected: '1 2 3'␤»
psch so is doesn't eval it's 1st argument
but eval_ok probably has the same semantics as ok, except it evals first
Mouq r: use Test; sub low-prec (\i) {True}; is (low-prec (my $a) = 1,2,3), True; is $a, (1,2,3) 00:46
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«ok 1 - ␤ok 2 - ␤»
psch right, i had declared a sub foo($x) { $x } locally for the example above 00:48
r: use Test; sub foo($x) { $x }; is foo (my $a = 1,2,3), (1,2,3), 'Routine call taking a parenthesesed my as argument works.'; # this maybe?
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤ in sub foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
psch nope
well, yours works
Mouq++ # test-writing support
Mouq psch: You passed (1,2,3) to foo 00:49
psch the second one?
Mouq psch: As well 'Routine…'
psch right
Mouq psch: You got this 00:50
Mouq is leaving again 00:53
psch just adds all of these test cases 00:53
dalek ast: fab066e | (Pepe Schwarz)++ | S03-operators/assign.t:
Corrected tests for RT #76444. Mouq++
00:56
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76444
psch wonders what 'Nerm' and 'Nergle' mean...
dalek ast: 06a737b | (Pepe Schwarz)++ | S04-statement (2 files):
Added tests for RT #89208
01:25
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=89208
psch r: $foo:: 42; say $foo:: # RT #76400 01:27
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76400
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$foo' is not declared␤at /tmp/tmpfile:1␤------> $foo::⏏ 42; say $foo:: # RT #76400␤ expecting any of:␤ …»
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76400
psch r: $foo:: = 42; say $foo:: # still different than in the ticket 01:28
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$foo' is not declared␤at /tmp/tmpfile:1␤------> $foo::⏏ = 42; say $foo:: # still different than␤ expecting …»
psch std: $foo:: = 42
camelia std 09dda5b: OUTPUT«ok 00:01 123m␤»
psch n: $foo:: = 42
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] i…»
psch wonders who is wrong here 01:29
colomon just forgot that I was editing files on my Linux box, and checked them into git directly from my Mac. Seems to have worked okay... 01:58
psch how do verify the bool value inside a method of an exception in throws_like? 02:03
i have this: gist.github.com/peschwa/8627020
but the warning is unsettling 02:04
if i leave out the smart match the last test case fails...
i also don't quite understand how an "always fail[ing]" smart match gives a successful test result
psch "leave out the smart match" here means just putting 'private => { False }', which in retrospect doesn't really seem to make sense to me either 02:05
oh 02:06
yeah, nevermind, i checked in S32-exceptions/misc.t and i have to $_ === *
psch .oO( private is not even an array... -.- ) 02:07
psch colomon: i dont quite get your worry there. do you have your local git repo hosted on a networked filesystem? 02:09
colomon psch: I'm editing the files over SSHFS. 02:10
and, apparently, committing them over SSHFS, too. 02:11
psch that's fine, isn't it 02:12
if your repo is mounted locally from another computer you edit and commit on the other computer
colomon apparently
psch a possibly troublesome scenario would be mounting a subdir of the repo via sshfs and then commiting... 02:13
of course after editing inside that subdir
but as long as you mount the root of the repo i don't see any cause of concern
dalek ast: 8fe2db8 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
Added test for RT #78012
02:16
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=78012
psch in fact, i think im gonna try that out now 02:17
remounting a subdir of a remote with unpushed changes in another repo without those changes and then changing things inside the subdir
i'm fairly confident git will complain
"could not commit hanged contents of $file" 02:21
psch is pretty sure he doesn't exactly understand that error
that's actually kind of interesting 02:22
after adding a file in the subdir, then "mount -o bind"ing the subdir into a clean repo i had to commit in both repos before i could rebase into the one i "mount -o bind"ed from 02:23
psch has no idea what that actually means 02:24
anyway, i feel i'm starting to ramble, i'm gonna go to bed o/
Mouq r: class NUM {}; my $NUM::twelve = 12; my $NUM::fourty-two = 42; say [+] NUM::.values; 02:28
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«54␤»
dalek ast: 13c7fbf | (Mark Shoulson)++ | / (3 files):
Add new signature/parameter matching tests.
colomon \o 02:29
Mouq psch++ clsn++ 02:30
clsn Hope it's good.
TimToady rosettacode.org/wiki/Brace_expansion now has a Perl 6 entry 03:04
it's kinda beautiful
colomon TimToady++ 03:08
japhb: if you want some simple tests for Vec3, feel free to steal them from my fork. ;) 03:12
diakopter TimToady: I don't see the Perl 6 one there 03:19
TimToady cache out of date? 03:20
diakopter did you commit the change? 03:24
TimToady certainly
diakopter well, there is a note at the top from Dec 14 03:25
weird
TimToady well, that's a different issue
diakopter This page was last modified on 26 January 2014, at 03:20.
TimToady you have to page down to get to Perl 6, it doesn't make a table of contents until there are four entries 03:26
diakopter soneone deleted it?
er there it is 03:27
but what happened to the Python one I just saw
TimToady the python was withdrawn, see the talk page 03:28
diakopter oh 03:30
clsn r: 6 S+ 9 # LTA error. See line #3542 in Grammar.nqp, missing around line #5169 in Actions.nqp. 03:53
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...ml?id=3542 03:53
camelia rakudo-jvm e51b6c: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Int'␤ in any at gen/jvm/BOOTSTRAP.nqp:1680␤ in any at gen/jvm/BOOTSTRAP.nqp:1663␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot e51b6c: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Int'␤ in any at gen/parrot/BOOTSTRAP.nqp:1692␤ in any at gen/parrot/BOOTSTRAP.nqp:1674␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar e51b6c: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/tmpfile:1␤␤»
skids The described backslashing behavior does not match bash, nor does it make any sense to me. (echo a\\{1,2\,c} --> a\1 a\2,c not a\\1 a\\2\,c ) 03:58
timotimo o/ 08:56
raydiak what does "is pure" do? 09:04
timotimo it's meaningful to the optimizer 09:05
it will constant-fold only things that are marked is pure
raydiak means "no side effects" or similar?
timotimo that's right 09:06
or "no side-effects to worry about"
caching, for example, would be allowed
raydiak makes sense 09:07
timotimo and if you want you can mess with the optimizer that way :P
r: sub test is pure { rand }; for ^10 { say test + test } 09:08
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub test at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
timotimo r: sub test is pure { rand }; for ^10 { say test() + test }
camelia rakudo-jvm e51b6c: OUTPUT«0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤0.8786985940925635␤»
..rakudo-parrot e51b6c: OUTPUT«1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤1.04900561984469␤»
..rakudo-moar e51b6c: OUTPUT«1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤1.28499817762646␤»
raydiak ha ha, got it
timotimo hm, i think it'll even work without the addition 09:09
r: sub test is pure { rand }; for ^10 { say test }
camelia rakudo-moar e51b6c: OUTPUT«0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤0.406724576016814␤»
..rakudo-jvm e51b6c: OUTPUT«0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤0.8538433738476435␤»
..rakudo-parrot e51b6c: OUTPUT«0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤0.308586922564672␤»
timotimo yup
raydiak is inlining happening?
well, dumb question in the context of constant folding 09:10
timotimo heh.
raydiak I guess I was wondering if inlining works in general
timotimo we do inline simple things
raydiak simple? 09:10
timotimo not exactly sure about what exactly constitutes a simple thing 09:11
i'll give you a link to the source code
raydiak read my mind :)
timotimo github.com/rakudo/rakudo/blob/nom/....nqp#L2541
raydiak ah, I see 09:12
timotimo wether or not an op is inlinable can be seen in the Ops.nqp or QASTOperationsMAST.nqp and friends 09:13
on JVM and moar, the default for an op is to be inlinable, on parrot it's the other way around iirc 09:14
raydiak none of the args can be optional, capture, slurpy, lol, bound to something somewhere else, or constrained, to name a few
timotimo i'd think some of those could be made to work, but it'd be ... work :P 09:15
raydiak I've been looking at the rakudo and nqp source lately...it's remarkably coherent and legible
timotimo i wholeheartedly agree 09:16
unfortunately, to a beginner, that doesn't mean you'll immediately know just what to write :P
raydiak not at all, but I tried reading the source once or twice with p5, and decided I didn't want to sacrifice that much of my life :P
timotimo has seen some of the insides of pypy and it was a similar deal to nqp and rakudo 09:17
FROGGS o/ 09:18
raydiak \o
FROGGS timotimo: this is awesome :o) feather.perl6.nl/~raiph/25jan2014-b...kudos.html 09:49
timotimo++
masak good antenoon, #perl6 09:51
atroxaper masak: hello! 09:53
moritz \o * 09:58
timotimo FROGGS: all the ++'s belong to other people in this case :) 10:00
FROGGS TimToady++ # there can't be a cleaner solution than the p6 one rosettacode.org/wiki/Brace_expansion 10:01
timotimo: it was you cpu power, wasn't it? :o)
timotimo well, yeah
masak FROGGS: not only that, it shows very clearly the two different philosophical levels Perl 5 and Perl 6 operate on. 10:06
Perl 5 is more "regexes, data structures and loops". Perl 6 is more "grammars and hyperops". 10:07
FROGGS rosattecode++, job well done I'd say :o) 10:08
rosettacode++, even
I am eager to see other solutions, though I don't think any could beat Perl 6 (for my taste) 10:09
jnthn morningish, #perl6 10:24
FROGGS morning jnthn 10:25
FROGGS jnthn: you don't have any hints where could start looking for "Object conflict detected during deserialization."? 10:27
is it a problem writing down the mbc to disk, or is it a problem loading it? 10:28
jnthn FROGGS: Happens at load time 10:29
FROGGS btw, I should be able to use the flunk.moarvm produced by windows, right? 10:30
no, I won't
because of BS
jnthn You should be able to... 10:32
FROGGS tries
just to try it 10:33
jnthn FROGGS: Anyway, the missing stuff is that MoarVM throws an exception at github.com/MoarVM/MoarVM/blob/mast...on.c#L1872 while it needs to do github.com/perl6/nqp/blob/master/s...on.c#L1767 10:34
FROGGS ahh 10:35
thank you!
jnthn It's not a lot of code to port, but I need to pack and get ready for airport here... 10:36
FROGGS jnthn: yeah, I already wanted to ask "what is the catch", but I will try it now :o) 10:37
have a nice flight!
:o)
timotimo perfect timing for my train yay 11:41
timotimo o/ from a train 12:02
FROGGS :o) 12:09
o/ from a chair
moritz \o from a rocking chair 12:17
atroxaper Is there way to call something by timer? Or sleep function? 12:42
timotimo there is a sleep function, sure 12:44
and on the jvm you can have periodic calls to a function
atroxaper timotimo: oh... thank you. sleep is what i wonted. 12:45
moritz r: my $now = now; sleep 1; say now() - $now 13:16
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ now used at line 1␤␤»
moritz r: my $now = now; sleep 1; say now - $now 13:17
camelia rakudo-jvm e51b6c: OUTPUT«1.022␤»
..rakudo-parrot e51b6c: OUTPUT«1.02675534␤»
..rakudo-moar e51b6c: OUTPUT«1.03735240␤»
smls .tell skids re "described backslashing behavior does not match bash": Well, Bash does several things together: 1) word splitting 2) brace expansion 3) wildcard and tilde expansion 4) backslash stripping. The rosetta task is exclusively about brace expansion... 13:26
yoleaux smls: I'll pass your message to skids.
JimmyZ r: my $now = now; sleep 1; say now - $now 14:25
camelia rakudo-moar e51b6c: OUTPUT«1.0338047␤»
..rakudo-jvm e51b6c: OUTPUT«1.0159990␤»
..rakudo-parrot e51b6c: OUTPUT«1.0209812␤»
ajr_ What is the "Richards benchmark"? Reference? 15:46
timotimo ajr_: it simulates a scheduler workload for I/O and cpu-bound tasks 16:32
github.com/japhb/perl6-bench/blob/...p/richards 16:33
ajr_ timotimo: Thanks. Is there a functional specification (as opposed to implemetation), somewhere? 16:39
timotimo i don't know of one, but i also didn't look very hard 16:41
i ported it from python code found in the repository of pypy's speed measurement project
ajr_ Martin Richardson's home page: www.cl.cam.ac.uk/~mr10/ with a link to www.cl.cam.ac.uk/users/mr/Bench/bench.tgz which appears to have several different versions. 18:05
jnthn oh, *that* Richards... 18:08
jnthn dinner & 18:28
arnsholt jnthn: On JVM, ``use NativeCall; my $x := CArray[int].new; $x[0] := 1; say "alive"'' works, while ``use NativeCall; my $x := CArray[int].new; $x[0] = 1; say "alive"'' fails with "java.lang.RuntimeException: This type does not support positional operations" 18:32
Both work on Parrot. Rakudo's scalar container missing some kind of REPRop on JVM?
FROGGS perl6-m -e 'sub postcircumfix:<؟ ?>(*@a) { @a.join("-") }; say 123؟1, 2?' 20:09
123-1-2
diakopter wat 20:10
masak looks right to me.
FROGGS :o)
diakopter wat
masak diakopter: I think you have to elaborate a bit on what befuddles you. 20:11
FROGGS the arabic question mark is a bit off here in my chat client, but the customm postcircumfix works
jnthn wtf
oh
ffs, it's RTL
:P
FROGGS wtf -> ftw
:P
jnthn Yes, I wrote ftw but it was in RTL, you see :P
FROGGS hehe
'course
jnthn wtf ++SGGORF! 20:12
diakopter what's trl
FROGGS \o/ <-- rtl even
jnthn Well, I just grabbed JDK8 and it seems Rakudo on JVM builds and spectests on it... 20:13
masak oh, I had to go to the web logs to even see what you guys were so confused over...
FROGGS weird is, that is shows the arabic ? correctly after the 123 when I highlight the text... 20:14
jnthn However, Java's substring semantics have changed, and the time to do JAST -> classfile has gone up a bunch...
diakopter masak: how is 123-1-2 formed 20:15
lue Having two of those RTL question marks seems to keep it from breaking completely, but I could be wrong there. ‮Now at least you didn't use weirder Unicode characters...‭
FROGGS damn, now that I fully implemented postcircumfix, Perl5::Terms infiniloops when precompiling it
diakopter: it gets the invocant as the first arg, and the stuff in the postcircumfix after that 20:16
diakopter what's in the postcircumfix
FROGGS 1, 2
diakopter where's the 2
FROGGS after the one :o)
diakopter don't see a 2 20:17
FROGGS perl6-m -e 'sub postcircumfix:<* *>(*@a) { @a.join("-") }; say 123*1, 2*'
123-1-2
here, ascii
lue diakopter: try selecting the text, see if you can move around the text doing that.
diakopter that's not what mine looks like at all
FROGGS the right-to-left char messes up, that's all
masak diakopter: three arguments go in: the 123, the 1, and the 2. 20:18
diakopter nopasting my problem
masak diakopter: I didn't even see the confusion, because my client didn't RTL things.
FROGGS I (sort of) see "... 1232 ,1??" 20:19
lue masak: aw, then you missed my joke earlier :)
masak lue: must've, yes.
diakopter FROGGS: yes, that's what I saw 20:20
lue irclog is willing though, at least: irclog.perlgeek.de/perl6/2014-01-26#i_8178625
jnthn I just tried to type what I saw, but when I copy-paste the RTL char it makes it impossible to type what I want :P
FROGGS hehe 20:21
moritz iirc gtk tries to handle RTL correctly
lue moritz: works in gtk-using hexchat at least (Unicode OVERRIDE characters included ☺) 20:22
diakopter imgur.com/VzLp72r.png 20:23
lue diakopter: that second 2 in "1232"? That's the missing 2 :) 20:24
diakopter I see that now
jackjack sometimes i think i learnt the wrong language this perl stuff 20:49
FROGGS ?
dalek p: bbb81a1 | moritz++ | / (2 files):
Configurable git protocols; closes #153
20:50
jackjack it really hurts my brains bad
moritz maybe you just need somebody to teach it properly 20:51
git also hurt my brain before I understood it
diakopter my brain hurts my brain
jackjack im the only person in the world whos read those perl manuals three times
and that systems admin with perl one 20:52
i think i prefer wiley to o'reilly 20:53
the way i see it is you have to be a top expert in perl 5 to understand the changes in perl 6---that means someones got a better book which they teach from 20:56
raydiak disagrees
jackjack raydiak you cant write thos e books in 2 years there too fat 20:57
raydiak I disagree that you have to be a top expert in perl 5 to learn perl 6
moritz some of our core contributors didn't do Perl 5 before hacking on Perl 6 20:58
jackjack anyway curtis "ovid" poe is taking a lecture at fosdem2014 so ill ask him feb2 21:00
skids A lot of the things in Perl5 and 6 that fry brains are actually just basic CS concepts that fry brains in college, it is just that Perl actually uses/implements them while many other languages do not.
yoleaux 13:26Z <smls> skids: re "described backslashing behavior does not match bash": Well, Bash does several things together: 1) word splitting 2) brace expansion 3) wildcard and tilde expansion 4) backslash stripping. The rosetta task is exclusively about brace expansion...
dalek kudo/nom: c2982df | moritz++ | / (2 files):
import configurable git protocol changes from NQP

Fixes RT #121072
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121072
arnsholt Blah. Does anyone happen to know which particular bit of code in NQP/JVM inserts the exception handler that intercepts stray exceptions?
jnthn arnsholt: Maybe you mean invokeDirect? 21:02
arnsholt: Or you mean something in code-gen?
skids yoleaux tell smls: backslash stripping is usually ensconced in the syntax parsing in the first stages of brace expansion. Not stripping them is actually harder than stripping them.
erg. 21:03
FROGGS skids: .tell
skids fixed it in a msg, thanks 21:04
arnsholt jnthn: Could be code-gen 21:11
jnthn src/jvm/QAST/Compiler.nqp:3554 21:12
arnsholt tries invokeDirect first
arnsholt Oh, that looks promising 21:13
Cheers!
sjn arnsholt: you up for a beer and some grub on tuesday? :) 21:14
arnsholt: www.meetup.com/Oslo-pm/events/16228...162287772/ \o/
oops
www.meetup.com/Oslo-pm/events/162287772/ 21:15
jnthn It's so good it's worth pasting twice!
sjn it's so good it's worth 404ing it? o_O
arnsholt That might be doable
Aha! NQP_VERBOSE_EXCEPTIONS=1 21:18
jnthn: Are there any VM-specific bits to Rakudo's container stuff? 21:20
jnthn arnsholt: Yes. 21:21
arnsholt: container.c for Parrot and MoarVM, and a couple of java classes (that should have container in the name) are in rakudo-runtime.jar
arnsholt Right 21:22
There's something weird with "my $x = CArray.new" on JVM, might look like an unimplemented REPRop or something
jnthn Oh? 21:23
What error are you seeing, ooc?
arnsholt On JVM, ``use NativeCall; my $x := CArray[int].new; $x[0] := 1; say "alive"'' works, while ``use NativeCall; my $x := CArray[int].new; $x[0] = 1; say "alive"'' fails with "java.lang.RuntimeException: This type does not support positional operations"
Er, s/:=/= in the second one
So binding the CArray to $x works fine, but assigning doesn't 21:24
jnthn lemme glance NativeCall...
arnsholt The verbose exception thing shows that the error is coming from P6Opaque 21:24
It works fine on Parrot
jnthn wonders how on earth the binding case works at all 21:27
arnsholt Heh
jnthn On this line: 21:28
nqp::bindpos_i(arr, nqp::unbox_i($pos.Int), $v);
try an nqp::decont(arr) instead.
arnsholt Sounds plausible
Prints alive \o/ 21:29
Thanks!
jnthn \o/ 21:30
arnsholt That might be the cause for some other weirdness I'm seeing with JVM and CArray too, actually
jnthn Put in the nqp::decont to Zavolaj; I think we'll want them for Moar too
arnsholt Probably
I'm gonna add some tests to the CArray suite anyways. Turns out the CArray implementation on JVM wasn't quite as complete as I imagined =) 21:31
jnthn yay :)
arnsholt So I'll be a good TDD citizen and write some tests first =)
arnsholt But first sleep, I think 21:33
See you folks tomorrow
FROGGS gnight arnsholt++
jnthn 'night, arnsholt++
masak 'night, arnsholt++ 21:34
tadzik wow, it's late already :o
masak always liked the fortune "It's later than you think." 21:48
FROGGS jnthn: I know now why Perl5::Terms infiniloops when using the ustom postcircumfix 21:49
customm*
gah!
custom*
masak 'night, #perl6 21:50
FROGGS it is an indirect method call that happends all the time, and Perl5::Terms is huge so it tries to match this postcircumfix almost everywhere in that code
I guess it will succeed, but not today :o(
night masak
so, I am ripping out that postcircumfix from v5 21:51
jnthn I'd not imagine it's *that* slow...
FROGGS jnthn: shall I commit that postcirumfix code for rakudo anyway?
jnthn LTM should stop you ending up there, no?
FROGGS: Yes, preferably with a spectest or two for custom postcircumfixes...and provided it doesn't break anything else, of course. 21:52
FROGGS jnthn: I already spectested it
jnthn: maybe LTM does not catch because $starter is not a literal? 21:53
jnthn FROGGS: But it's in a parametric role, iirc? 21:54
And those are constant after interpolation
The NFA stuff has a some stuff in for genericity of this kind...
FROGGS it is in the role, yes
jnthn Then it should work out 21:55
smls perl6: sub foo($x) is cached { say "foo called with $x"; 2 ** $x }; say foo 10; say foo 10; 22:06
yoleaux 21:03Z <skids> smls: backslash stripping is usually ensconced in the syntax parsing in the first stages of brace expansion. Not stripping them is actually harder than stripping them.
camelia rakudo-parrot c2982d, rakudo-jvm c2982d, rakudo-moar c2982d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Can't use unknown trait 'is cached' in a sub declaration.␤at /tmp/tmpfile:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_ba…»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Unhandled trait cached for this context at /tmp/tmpfile line 1:␤------> sub foo($x) is cached ⏏{ say "foo called with $x"; 2 ** $x }; s␤␤Unhandled exception: Check failed␤␤ at /home/p…»
smls ^^am I doing it wrong, or is is just NYI?
tadzik timotimo: I like the table solution :) 22:07
smls skids: but wildcard expansion happens after brace expansion (at least conceptually), and it the backslashes to know which potential wildcards are escaped
*needs 22:08
re "Not stripping them is actually harder than stripping them", I don't see any evidence of that in the three solutions that have been posted so far on the rosetta page. 22:09
timotimo tadzik: thank you kindly
tadzik it's a lot saner 22:10
timotimo tadzik: but i was kind of scared, it could be called "two-pass parsing"
which TimToady++ really doesn't want to have anywhere near perl6 for good reasons
tadzik do you have any idea how many passes is the current parser using? :P
hard to say, because it's post-processing the rows 22:11
diakopter N
timotimo 22:11
jnthn smls: as far as I know, nyi 22:19
dalek kudo-star-daily: 0ff0a36 | coke++ | log/ (5 files):
today (automated commit)
22:22
rl6-roast-data: 1896ed6 | coke++ | / (6 files):
today (automated commit)
rl6-roast-data: e950485 | coke++ | / (6 files):
today (automated commit)
timotimo ah, 99.38% of jvm. not bad! 22:30
oh, we've been at a better percentage recently
jnthn Wow, S32 is a bigger source of fail than S05 now 22:32