»ö« 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 moritz on 3 May 2013.
ssutch is there any way to make the panda bootstrap script more explicit, it is failing on one of the subtests (testing panda) and i'd like to debug 01:14
timotimo_ you can try installing ufo, then running ufo in the panda dir to get a makefile, then building panda with ufo and running the tests manually with "perl6 -Ilib t/foo.t 01:16
ssutch oh dear 01:17
colomon I don't think you actually need to use ufo to build panda if you run the tests with perl6 -Ilib
timotimo_ oh, that works? good point then. 01:19
ssutch ah ok
timotimo_ i'm going to bed now. good luck! 01:20
ssutch ok, so i ran perl6 -Ilib t/tester.t (which is the file that was failing) 01:21
timotimo_ hehe, the tester fails to test :)
ssutch and it appears to pass, and then die on t/fail.t 01:22
which is not addressed in the command line
timotimo_ oh 01:23
a question
does it end in "ok 2 - what should fail, fails"?
ssutch gist.github.com/samuraisam/5770551
^ output above, it ends with "not ok 2 - what should fail, fails"
timotimo_ hah, wat? it fails, but fails to notice that it failed, so it assumed it succeeded and thus the test to fail failed
ssutch haha 01:24
timotimo_ oh, that may come from the new exception types perhaps, let me check
[Coke] with latest rakudo-java, if I comment out "use v6" in t/01-sanity/*.t, we actually pass 8 files.
ssutch if it was just committed to rakudo, then possibly. i am not running a star release
colomon [Coke]: \o/ 01:25
ssutch nice!
colomon ssutch: the change is actually to panda.
timotimo_ hmm, if the prove returns nonzero, it will "fail 'Tests failed'"
why doesn't it fail according to dies_ok? 01:26
colomon ssutch: I don't see any sign of a fail.t existing now?
ssutch environ: ubuntu 13.04, perl 5.14.2, TAP::harness 3.23
timotimo_ r: sub foo() { fail "tests failed" }; use Test; dies_ok { foo }, "hopefully OK";
camelia rakudo b2072f: OUTPUT«ok 1 - hopefully OK␤»
ssutch rakudo: latest, panda: latest
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/MXExaCWR91:1␤------> latest, panda⏏: latest␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ stat…
timotimo_ fwiw, i cannot reproduce your problem :( 01:27
colomon ssutch: github.com/tadzik/panda/tree/master/t
ssutch colomon: strangely, panda installed on another machine fine, not hours ago 01:28
colomon oh, is this in testmodules/testme2/t/?
timotimo_ yes
ssutch yeah
timotimo_ i was going to bed, so that's what i'll do now. good luck! 01:29
colomon github.com/tadzik/panda/blob/maste...2/t/fail.t
is it that file? That's only got one test...
timotimo_ t/fail.t (Wstat: 0 Tests: 1 Failed: 1) Failed test: 1
that's the expected result
the *unexpected* result is that fail not leading to the exception 01:30
colomon ah
timotimo_ and *that* causes not ok 2 - what should fail, fails
# Looks like you failed 1 tests of 2
testception
and bedtime
ssutch hah
colomon: gist.github.com/samuraisam/5770551
(you may've already seen that link)
colomon hold on, I'm going to try it myself. 01:31
ssutch perl6 --version; This is perl6 version 2012.10 built on parrot 4.6.0 revision 0 01:33
colomon hmmm... that's a bit old now.
aha! duplicated your failure. 01:34
ssutch installed from the repo, not sure why it says that
maybe when building from a repo it doesn't embed the correct version
colomon wrong branch, maybe?
perl6 --version
This is perl6 version 2013.05-210-g1d43629 built on parrot 5.2.0 revision RELEASE_5_2_0
that's built from a repo
ssutch yep, you're right, i am pointing at the wrong perl6 binary, strangely 01:36
ssutch This is perl6 version 2013.05-236-gc947f78 built on parrot 5.2.0 revision RELEASE_5_2_0 01:36
colomon: how did you repro? 01:38
colomon I got a fresh panda, used the bootstrap code to git the submodules, then did perl6 -Ilib -Iext/File__Tools/lib t/tester.t 01:39
ssutch colomon: strangely, when using the correct version of rakudo, it installed just fine, so perhaps an error is being masked somewhere? 01:40
colomon I don't know. This is somewhat confusing code. :\
my rakudo is not perfectly fresh, so there's a possibility that's the issue. 01:41
ssutch probably not, i can repro the issue (despite installation working properly) by running the same command as you 01:42
colomon interesting. if I change Tester.pm to die instead of fail, I catch the error.
ssutch what does that imply? 01:46
colomon I wonder if you're seeing nested failures? That is, tester.t fails because Panda::Tester::test has changed errors from die to fail; and then the installer installs it anyway, because Panda does n't notice the fail as a test failure. 01:47
labster try doesn't catch errors thing I ran into yesterday?
colomon labster: I didn't notice that when you posted it (or I've forgotten), can you give us more context? 01:48
labster sub foo { fail "bar" }; try foo(); #this dies 01:48
colomon is running a huge cad test in the background, as well as systematically downloading video of the 1981 Newfoundland Folk Festival. My input control on my box comes and goes as a result... 01:49
labster because try catches thrown errors, but not failures, and then the failure goes into sink context and gets thrown
ssutch hmm 01:50
colomon labster: yes, I'm think this might be a similar issue
colomon is now desperately turning off programs because his Mac is running out of memory. 01:51
colomon ah, the cad program was using 4.5 gigs of memory. :\ 01:53
ssutch colomon, labster: is that a bug which needs reported? 01:56
labster Yeah, a specsbug (IMO, anyway)
colomon the immediate problem is a panda bug
(I mean, not labster's thing)
ssutch im not sure what a specsbug is, or how to go about helping, unfortunately 01:57
colomon ssutch: he means it's actually a problem with the perl 6 specification.
labster Don't worry about it, I'll think about it some more :)
What are we trying to fix in panda? 01:58
colomon the panda thing is a more immediate issue though, I'm pretty sure it still won't work even if that bit of the spec and rakudo were fixed the way labster++ wants.
ssutch i see 01:59
colomon let me ponder the best way to report it.
ssutch meaning how to describe it in a bug on the GH project? 02:01
colomon ssutch: was pondering fixing it locally and doing a pull request, but probably just submitting the bug is better. 02:02
ssutch eh, good to get something started 02:02
if you file a bug i can tinker with a fix 02:03
ssutch i won't be able to describe the problem well enough, or with enough depth 02:03
colomon I'm still trying to figure out if I understand the problem or not. 02:05
stevan__ www.infoq.com/presentations/Thinkin...rogramming << good talk about concurrency and perhaps Perl 6 related 02:07
lizmat: ^ you in particular might be interested in this 02:08
colomon ssutch: huh. looking over everything again, I'm not convinced there is a bug after all. what you were seeing may have been because you were using an obsolete p6 02:12
ssutch true
why might it fail when you run the case individually, then?
colomon I think I might have been misreading the test output then.
gist.github.com/colomon/5770760 looks like the first one I got working 02:13
sorear o/
colomon there's that FAIL, but it's the FAIL for the inner test, not the outer test.
\o, sorear
ssutch haha, you're right: 02:14
ok 2 - what should fail, fails
colomon ssutch: I searched over the code, and it looks to me like it should be trapping fails and converting them to exceptions.
I'm not convinced it's a sane error handling system, but it does look like it should work.
unless $_ = $.tester.test($dir) { 02:15
die X::Panda.new($bone.name, 'test', $_)
}
seems like it's adding a couple of lines of code and a conditional simply to avoid passing the name of the project into the testing code. 02:17
labster anyone convinced of panda's sanity is probably insane himself. 02:19
ssutch hah 02:20
colomon afk # sleep 02:40
Teratogen does perl 6 still use & for functions/subroutines? 02:42
lue r: &say("yes :)") 02:44
camelia rakudo b2072f: OUTPUT«yes :)␤»
Teratogen that's slicker than cum on a gold tooth! 02:45
ssutch r: my $s = &say; $s("plop"); 02:46
camelia rakudo b2072f: OUTPUT«plop␤»
Teratogen I can see Perl 6 is going to be a whole new learning curve for me 02:47
lue r: my ¢capture = \(1,2,3); # sadly, we do not still have this sigil :( (S08 says we do, but IIRC that's a bunch of lies) 02:49
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/U0j_rYGsVR:1␤------> my ⏏¢capture = \(1,2,3); # sadly, we do not ␤ expecting any of:␤ scoped declarator␤»
benabik r: my \cap = \(1,2,3)
camelia rakudo b2072f: ( no output )
benabik r: my \cap = \(1,2,3); say cap
camelia rakudo b2072f: OUTPUT«1 2 3␤»
labster r: my \cap = \(1,2,3); say cap.perl 03:05
camelia rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())␤»
benabik To be fair, I think you can store them in normal $vars. 03:06
r: my $cap = \(1,2,3); say $cap.perl
camelia rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())␤»
lue Of course you can. But normal variables don't have a sigil that requires fancier methods to type :) 03:07
(On a US keyboard, anyway) 03:08
atroxaper Good morning, #perl6 ! 03:19
sorear o/ 03:24
pmichaud sorear: sorry I didn't get the CLA printed while in Austin... ended up getting back to room too late each day. 03:43
Teratogen is there a CPAN for Perl 6 yet? 03:44
benabik panda?
sorear it's called panda. look it up.
pmichaud if you email or /msg me a mailing address for you, I'll send you a blank CLA and a return-postage envelope.
Teratogen: modules.perl6.org may be what you're looking for.
dalek kudo/nom: 90f3bee | pmichaud++ | src/core/Hash.pm:
Enable Hash[TVal,TKey].new to work (for lizmat++).

This patch updates Hash.new so that it correctly understands how to create typed hashes from a parameterized Hash type object. In particular, `Hash[Str,Int].new` will create a hash constrained to Int keys and Str values.
This patch at least partially addresses
  github.com/perl6/specs/issues/43 .
Note that this doesn't resolve the output of `.perl` on typed hashes; that's a different problem (having to do with the definition of `Hash.perl` and/or `TypedHash.perl`). And `.perl` is due for some redesign as well, see
  github.com/perl6/specs/issues/6 .
04:06
sorear pmichaud: \o/ 04:07
pmichaud gist.github.com/pmichaud/5771173 # example run 04:08
it's often nice when the patch description is longer than the patch itself :) 04:09
pmichaud .tell lizmat creating typed hashes via Hash[TVal,TKey].new now works. 04:11
yoleaux pmichaud: I'll pass your message to lizmat.
pmichaud okay, time to take care of other stuff... be back tomorrow, hopefully
lue Is TVal first because someone who types just Hash[Obj] is more likely to be wanting to constrict value type? 04:53
sorear yes 04:59
all required parameters must come before all optional parameters
sorear also this allows Hash[foo] and Array[foo] to both be containers of foo 04:59
FROGGS o/ 06:49
labster \o FROGGS 06:54
moritz \o *
RedditAnalytics could someone show me a COBOL one-liner to decode a JSON string? 06:57
whoops wrong channel
FROGGS hehe 06:59
not so wrong, I guess here are peeps who'd love to help you there 07:00
Patterner don't say the C-word.
Teratogen back in the late 1990s I saw examples of Cobol CGI and Fortran CGI on the web 07:02
they both looked very painful 07:03
Patterner I saw a "HUNT THE WUMPUS" in COBOL recently
bonsaikitten Teratogen: you say that as if these things were retired now
Patterner I do COBOL nearly every day... it's alive^Wundead.
Teratogen Object Oriented Cobol!
moritz cOObol? 07:04
Patterner OOPSCOBOL
sorear is that anything like CLC OBJECT DISORIENTED INTERCAL 07:05
bonsaikitten: but is cobol still being used *for CGI*? 07:06
bonsaikitten sorear: never run a touchy system, or something ;) I mean ... I have some sh-CGI here, and I see no reason to replace it 07:07
Patterner banks and insurance companies normally don't use CGI. 07:11
moritz what do they use? mod_php? 07:12
Patterner 3270 :) 07:12
sorear does, in fact, have to interface with COBOL for $dayjob 07:14
sorear uses... unsecured ftp dropboxes.
Patterner our customers have to use sftp for delivery :) 07:15
sorear actually that's not quite true. the system uses USER/PASS authentication.
but business data over cleartext tcp gives me the heebie jeebies 07:16
sorear Patterner: that's awesome. $PARTNER doesn't even offer sftp. 07:16
and no X12.58 either 07:17
Patterner "we don't do that" "exclude our liability in writing" "we can do that" 07:19
sorear hmm? 07:20
Patterner when some doesn't want to use sftp 07:21
*someone
sorear ah, when other people want to use plain ftp, you make them sign waivers? 07:22
what kind of business are you running?
Patterner so far everybody complied :) 07:23
converting z/OS Assembly to COBOL
(not running, just a small cog in the big wheel)
lizmat pmichaud++ 07:43
yoleaux 04:11Z <pmichaud> lizmat: creating typed hashes via Hash[TVal,TKey].new now works.
lizmat Stevan__++ 07:53
ssutch_ damn, i like hyper operators or whatever, the >> 08:30
moritz yes, they are neat 08:37
masak good antenoon, #perl6 08:40
moritz \o masak 08:45
sorear o/ 08:46
dalek ast: 11905a8 | (Elizabeth Mattijsen)++ | S02-types/ (2 files):
Fudge some now passing keyset|set tests
08:46
sorear moritz: I just realized I haven't seen Ronja in almost a year. Did you successfully train her to avoid keyboards? :) 08:46
ssutch_ what's a good way to get an array of random numbers 08:47
sorear r: say rand xx 5
camelia rakudo b2072f: OUTPUT«0.47205200940104 0.873995257114199 0.0482415071191511 0.820666323078587 0.344253672970794␤» 08:48
moritz sorear: for one my laptop is broken, and the desktop keyboard harder to read 08:48
sorear: and I try harder to move the cursor out of the irssi window, thus taking the focus away 08:49
sorear: and finally, growing up, she spends less time on my lap :-)
ssutch_ what if i want integers 1 to 30?
jnthn r: say (1..30).roll(5)
camelia rakudo b2072f: OUTPUT«24 21 10 3 17␤»
moritz sorear: oh, and I work more, so less time at home in front of IRC 08:50
ssutch_ roll?
moritz like rolling dice
ssutch_ yeah, how does (1..30).roll work?
sorear r: say (1..10).pick(7) # or if you want a lottery, that can be done too
camelia rakudo b2072f: OUTPUT«5 4 8 7 9 3 1␤»
sorear ssutch_: 1..30 returns a Range object, pick and roll are methods on that 08:51
ssutch_ ahh
sorear moritz: so how much longer until she deliberately seeks out IRC windows? :D 08:51
ssutch_ neato 08:52
moritz sorear: dunno, currently youtube is all the rage, mostly this one here: en.wikipedia.org/wiki/Mole_%28Zden...aracter%29 08:56
and anything related to fire fighters
ssutch_ is it better to turn a float rand into an int or to use Range::roll? 08:58
moritz sorear: Range.roll is more idiomatic 08:59
sorry, meant ssutch_
ssutch_ hokay 09:00
thanks!
is there a way to apply the >> operator to an infix operator such as *
sorear r: say (1..10) <<*>> (1..10) 09:01
camelia rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100␤»
sorear r: say (1..10) >>*<< (1..10)
camelia rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100␤»
sorear r: say (1..10) >>*>> 5
camelia rakudo b2072f: OUTPUT«5 10 15 20 25 30 35 40 45 50␤»
sorear r: say (1..10) >>*<< 5
camelia rakudo b2072f: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<*> are not of the same length␤left: 10 elements, right: 1 elements␤ in sub hyper at src/gen/CORE.setting:14157␤ in sub hyper at src/gen/CORE.setting:14145␤ in block at src/gen/CORE.setting:14136␤ in block at …
ssutch_ heh you guys rock 09:03
ssutch_ r: say ((rand xx 10)>>*>>10)>>.floor.join(", ") 09:07
camelia rakudo b2072f: OUTPUT«7, 9, 2, 0, 5, 6, 1, 3, 1, 3␤»
ssutch_ lolz
that's fun
jnthn pmichaud++ # Hash.new fix, and it's almost certainly faster too :) 09:16
Timbus r: (0..9).roll(10).join(", ").say
camelia rakudo b2072f: OUTPUT«8, 8, 2, 6, 2, 8, 6, 0, 9, 9␤»
ssutch_ what if i wanted to turn those each into a list of string "x" 09:17
eg ["xxxxx", "xxxx", "x", "xxxxxxx", ...] 09:18
Timbus map * x "x"
ssutch_ so x multiplied by the integer in the array
Timbus r: say "x" x 5
jnthn r: (0..9).roll(10).map("x" x *).join(", ").say
camelia rakudo b2072f: OUTPUT«xxxxx␤»
rakudo b2072f: OUTPUT«x, xxxxxxxx, xxxx, x, xxxxxxxx, xxxxx, xx, xxxxxx, xxxxx, ␤»
Timbus yeah
ssutch_ nice
what is the *
Timbus "whatever" 09:19
ssutch_ like $_
Timbus basically
ssutch_ cool
Timbus makes a block though
jnthn "x" x * creates a closure like { "x" x $_ }
ssutch_ ahhh, ok 09:20
Timbus r: my $addfive = * + 5; say $addfive(37)
camelia rakudo b2072f: OUTPUT«42␤»
jnthn Well, I guess it doesn't clone over much of anything in this case, though. :)
ssutch_ is there something like .select(* > 1) to filter an array
jnthn .grep(* > 1)
Timbus grep(* > 1)
what is this a race D;
jnthn :) 09:21
ssutch_ fun
lizmat jnthn: wrt pmichaud's changes: I guess all of the [TVal,TKey] work is done in the nqp::create(self) ? 09:22
ssutch_ p: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ")
camelia pugs: OUTPUT«*** ␤ Unexpected "*>>"␤ expecting term postfix␤ at /tmp/7AisggCMaP line 1, column 20␤»
ssutch_ r: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ")
camelia rakudo b2072f: OUTPUT«xx, xxxxxxx, xxxxxxx, xxx, xxxx, xxxxxxx, xxxxx, xxxx␤»
lizmat jnthn: or in the %h.STORE(@args) ?
jnthn lizmat: nqp::create(self) creates something of exactly the same type as self 09:23
lizmat: And the [TKey, TValue] are part of the type
lizmat ok, I didn't realize it was that simple
ssutch_ fun times
masak r: say join ", ", map "x" x *, (2..10).roll 09:24
camelia rakudo b2072f: OUTPUT«xxxxx␤»
masak r: say join ", ", map "x" x *, (2..10).roll xx 10
camelia rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxx, xxxxxxxx, xxxxxxxxxx, xx, xxxxxxx, xxxxxx, xxxxxxxxxx␤»
ssutch_ nice
masak utilizing listops and not just chaining. 09:25
r: say join ", ", "x" x (2..10).roll xx 10
camelia rakudo b2072f: OUTPUT«xxxxxx, xxx, xxxxxxxxx, xx, xxxxxxx, xxxxxxxxx, xxxx, xxxxxxxxx, xxxxxxxx, xxxxx␤»
masak even better ;)
ssutch_ interesting, listops
masak in the above, 'join' and 'map' were listops. 09:26
effectively it means that they have an invisible '(' and the ')' is also invisible and ends up at the end of the statement.
ssutch_ chaining is clearer, coming from python/java/etc, however listops is prettier 09:27
masak yeah, listops reduce clutter.
jnthn There's also feeds
lizmat r: say ("x" x 10).substr(0,(2..10).roll) for ^10
camelia rakudo b2072f: OUTPUT«xxxx␤xx␤xxxx␤xxxxxx␤xxxxxxxxx␤xxxxxxxxxx␤xxxxxxx␤xxxxxxxxxx␤xxxxxx␤xxx␤»
jnthn r: (2..10).roll(10) ==> map "x" x * ==> join ", " ==> say
camelia rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxxxx, xxxx, xx, xxxxxxxx, xxxxxxx, xxxxxxx, xxxxxxxxx␤»
masak so many paradigms! :D
Timbus r: say join ", ", do for ^10 {"x" x (2..9).pick} 09:28
camelia rakudo b2072f: OUTPUT«xxxxxxxx, xxx, xxxxxx, xxxxxxx, xxxxxxxx, xxx, xxxxxx, xxx, xxx, xx␤»
jnthn Which mean you can write things in the order they take place.
ssutch_ masak: if you were to put parens around that, what would it look like?
sorear jnthn: I'm thinking that all frames in a caller-chain should have the same thread context
masak r: say(join(", ", map("x" x *, (2..10).roll xx 10)))
camelia rakudo b2072f: OUTPUT«xx, xxxxx, xxx, xxxxx, xxxxxxxx, xxxxx, xxxxxxx, xxxxx, xxxxxxxxxx, xxxxxxxx␤»
jnthn sorear: Not sure that can be true? I mean, what's the caller of an async? 09:29
jnthn sorear: Or in @stuff>>.() where the invocations get threaded? 09:29
I'd expect $*FOOs to still be visible.
Or are we talking about the dynamic caller chain? 09:30
sorear Right now I'm working on a one-caller model
async sort of wants two-caller
because we absolutely don't want exceptions propagating out 09:31
jnthn True...I'd kinda been thinking that the boundary frame would be "special" in some way
sorear anyway as long as we have a continuation boundary at the async all is good :)
ssutch_ xxxes: gist.github.com/samuraisam/5772440 09:32
jnthn That sounds reasonable. Not having one hurts my not-enough-coffee-yet head :)
sorear async and gather both want to propagate contextuals but not exceptions
masak ssutch_: nice :) 09:35
sorear awesome. just got a NRE in org.objectweb.asm.Frame.a 09:54
nwc10 NRE? E is presumably Exception 09:55
sorear null ref
nwc10 forgive my ignorance, but is that a bug in it, or in user code? 09:56
ie, is it "Should not be possible"?
sorear that's a very good question.
jnthn sorear: Grab a debug version of it, rather than the minified one
jnthn sorear: I think what sometimes happens is that there's an unbalanced stack, and it then reports it very badly (e.g. like this) :/ 10:00
sorear hmm, seems my labels are getting eaten to 10:02
too
d'oh 10:03
was passing the wrong thing to trycatch
let's see if this fixes it
sorear jnthn: can I assume "has int $!foo" will be initialized to zero? 10:07
jnthn sorear: yes
sorear jnthn: It seems that modifying the compiler to define all the labels I'm jumping to helped a bit 10:09
jnthn sorear: "you don't say" :) 10:10
sorear: Got a more useful error now?
sorear Not really
Which version of the asm.jar am I supposed to get again? 10:11
jnthn aww
I think we're on 4.1
sorear java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1
jnthn eek
sorear I'm staring at forge.ow2.org/project/showfiles.php?group_id=23 and I can't see which jars are minified
jnthn sorear: The .zip files tend to contain a minified and non-minified version. 10:12
sorear: It can also be sometimes helpful to put a e.printStackTrace() in around line 67 or so of JASTToJVMBytecode.java 10:13
sorear found it 10:15
java.lang.ClassFormatError: Illegal class name "Lorg/perl6/nqp/runtime/ThreadContext;" in class file D9375F1865034634DA52C58DF992620B58E5A6CB
wut
jnthn wat 10:16
tadzik Lorg is the new Borg 10:17
masak :) 10:18
the 'L' stands for 'cLass', IIRC.
or at least a reference type, which isn't an array.
sorear oops, I was *also* leaving the stack rather unbalanced 10:22
sorear ok, now it's blowing up in a completely different way. 10:28
sqirrel o/ sorear
sorear o/ aq 10:32
o/ sqirrel
sorear ok, the crash depends on COMPUTE_FRAMEWS 10:43
colomon ugh, when I try to install Time::Duration with panda I get 24 test failures. when I run it by hand, I get 0 test failures -- even when I use the pre-compiled module. :( 10:44
jnthn sorear: That tends to mean the stack is unbalanced somewhere. But if you remove it, you get bytecode out and can inspect it at least. 10:46
sorear qb_NNN numbers aren't consequtive and vary from compile to compile? 10:49
jnthn I don't think they vary from compile to compile 10:51
They're consecutive in some sense but probably not ordered in the generated output.
Probably ordered by "when did we first encounter the QAST::Block in question" 10:52
sorear yay! i made it...ONE FILE FURTHER! 10:55
tadzik colomon: wow, that's weird 10:57
colomon tadzik: indeed
tadzik: also, it worked yesterday. 10:58
tadzik :o
jnthn sorear: yay!
lizmat colomon: it's the 13th today? although not a Friday :-) 11:00
colomon tadzik: so it seems like it must have been caused by a Rakudo change yesterday
tadzik that'd make me feel better 11:01
lizmat I think the only one is pmichaud's Hash.new change ?
colomon lizmat: jnthn had two patches yesterday as well
jnthn uh-oh. :) 11:02
lizmat Ah, ok, must have slipped out of my Textual, visible backlog then
colomon backs up his rakudo to 978aeeee24d3d88131695f74568873c29a8de921 and tries again...
jnthn Though, my patches were on JVM stuff, I think. 11:03
lizmat fwiw, I spectestested pmichaud's change without any errors 11:04
so if that *is* the problem, we don't have a test for it
colomon lizmat: that would describe almost every issue with have in the overall module ecosystem. ;) 11:05
colomon at 978aeeee24d3d88131695f74568873c29a8de921 it works fine 11:09
moritz colomon: of course; the errors we have tests for never even make it to the ecosystem 11:10
sorear cool, it falls apart if I have a function call which needs to be treated as a resume point inside a parameter default value 11:14
lizmat is there an easy way to convert a string such as 'Str' to the type Str without having to resort to eval ? 11:15
sorear ::('Str') 11:16
lizmat sorear++ 11:18
masak rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo() 11:22
camelia rakudo b2072f: OUTPUT«works␤»
..niecza v24-75-g480a062: OUTPUT«Potential difficulties:␤ $d is declared but not used at /tmp/fldzGYorEm line 1:␤------> multi foo(:⏏$d!, *@f) {}; multi foo(*@f) { say "work␤ @f is declared but not used at /tmp/fldzGYorEm line 1:␤------> multi foo(:$d!, *⏏[…
masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo()
camelia rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤ in sub foo at /tmp/ENmRfCy7XE:1␤ in block at /tmp/ENmRfCy7XE:1␤␤»
..niecza v24-75-g480a062: OUTPUT«Potential difficulties:␤ @f is declared but not used at /tmp/1FKU62R8td line 1:␤------> multi foo(*⏏@f, :$d!) {}; multi foo(*@f) { say "work␤ $d is declared but not used at /tmp/1FKU62R8td line 1:␤------> multi foo(*@f, :⏏[3…
masak *sigh*
can we please removed those useless 'is declared but not used' warnings? 11:23
remove*
they're obscuring the result of the program.
lizmat at least in camelia :-)
r: say 'Str'.WHAT; say Str.WHAT # how do I differentiate between 'Str' and Str ?
camelia rakudo b2072f: OUTPUT«(Str)␤(Str)␤»
masak really, we should start thinking of warnings as having (at least) two levels: refactor-time and commit-time. 11:24
sorear wonders if masak is interested in #OK
masak sorear: yes, in the short term. thanks.
jnthn lizmat: .DEFINITE
masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() # OK
camelia niecza v24-75-g480a062: OUTPUT«Potential difficulties:␤ @f is declared but not used at /tmp/wCHfjb5uOe line 1:␤------> multi foo(*⏏@f, :$d!) {}; multi foo(*@f) { say "work␤ $d is declared but not used at /tmp/wCHfjb5uOe line 1:␤------> multi foo(*@f, :⏏[3…
..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤ in sub foo at /tmp/qaOCMY8Ca9:1␤ in block at /tmp/qaOCMY8Ca9:1␤␤»
masak rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() #OK
camelia niecza v24-75-g480a062: OUTPUT«works␤»
..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(*@f, :d(:$d)!)␤:(*@f)␤ in sub foo at /tmp/x62Ze8yNAL:1␤ in block at /tmp/x62Ze8yNAL:1␤␤»
masak rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo() #OK
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«works␤»
masak submits rakudobug
lizmat jnthn++
sorear jnthn: Is it deliberate that function parameter default values are compiled outside the scope of $*BLOCK ? 11:25
jnthn sorear: No, that sounds accidental. 11:25
jnthn sorear: Oddly though, "sub foo($x, $y = $x) { say($y) }; foo(1);" works...which I'd kinda not expect to if the wrong $*BLOCK was in scope... 11:27
sorear nqp-jvm: sub foo($x, $y = $x) { say($y) }; foo(1); 11:34
camelia nqp-jvm: OUTPUT«1␤»
sorear nqp-jvm: my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1); 11:35
camelia nqp-jvm: OUTPUT«java.lang.ArrayIndexOutOfBoundsException: 5␤ at org.perl6.nqp.runtime.Ops.getlex_o(Ops.java:473)␤ at A69CBE3FC5DEDECB510AAD35FFAA48063FF8862B.qb_11(<generated>)␤ at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240)␤ at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200…
jnthn eek
sorear jnthn: I blame fallback to dynamic lookup
jnthn Yeah, forgot about that.
sorear sorear$ ./nqp -e 'my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1);' 11:36
1
colomon okay, it looks like it's the Hash.new changes causing the problem with Time::Duration / Panda. If I rollback just that commit, everything works okay.
afk # walk
dalek p: 4891d23 | sorear++ | src/vm/jvm/ (3 files):
Code generation support for thawing saved frames. Also fixes block scope error on default arguments.
11:37
lizmat colomon: any example of code actually breaking? 11:43
sorear nqp::qlist. Heh.
jnthn: what is "inlinability" in QAST::CompilerJAST? 11:45
jnthn sorear: "can an optimizer inline some block using this op in a plce that calls it" 11:47
*place
I did it as an opt-in thing on Parrot, but most things are inlineable, so pondering switching it to opt-out for Moar. Don't think anything is marked either way just yet. 11:48
masak .oO( "outlinability"?! ) 11:54
sorear sleep& 11:55
jnthn 'night, sorear 11:56
moritz inlininability 11:59
dalek kudo/nom: 948b2b5 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Get rid of evil eval hack in Any.hash, change type to keytype

The latter was suggested on #perl6 by TimToady, as I recall. Possible thanks to the work of pmichaud on Hash.new.
12:11
lizmat off to the French Perl Workshop& 12:12
jnthn airport, stuff...be back sometime & 12:18
masak ditto & 12:19
dalek rl6-roast-data: 722bf4f | coke++ | / (4 files):
today (automated commit)
12:27
[Coke] niecza has 16 failing tests at the moment. (so close) 12:28
dalek kudo-star-daily: fba81ec | coke++ | log/ (5 files):
today (automated commit)
12:35
colomon First six tests which fail all are calls to later_exact 13:00
timotimo_ hm, what does that do? 13:06
colomon has finally gotten Panda to run prove --verbose so he can see what the error is: 13:53
# got: '365 days, 22 hours, 59 minutes, and 32 seconds later'
# expected: '1 year, 22 hours, 59 minutes, and 32 seconds later'
spider-mario leap year? 13:57
PerlJam saying "365 days" rather than "1 year" 13:58
colomon ugh, this bug is going to be a nightmare to track down 13:59
xenoterracide is there a comparison interface? like obj.equals( obj ) ? ( and on a more perly note is said interface automagically used under the hood by things like smartmatch 14:03
colomon xenoterracide: there are quite a few comparison operators
and yes, in some cases smartmatch uses them.
xenoterracide let me clarify, by interface, I mean is there specifically a role which defines the interface for equality. 14:06
colomon xenoterracide: nope
ACCEPTS is the standard method to implement smartmatch under the hood, but it's not a role
xenoterracide ok 14:07
on a different note, anyone get rakudo working on windows? 14:08
colomon getting 365 days instead of 1 year requires $this = floor($remainder / (365 * 24 * 60 * 60)); to not work correctly. :\
xenoterracide: has it recently stopped working on windows?
xenoterracide no idea, I've not tried to build it
wasn't sure if it was a supported arch 14:09
colomon xenoterracide: one of our main developers uses it 14:10
as his development platform, I mean.
xenoterracide maybe I should ask him what he uses as a terminal emulator 14:11
PerlJam xenoterracide: See rakudo.org/ btw
colomon r: 3600 * 24 * 366 - 360 -28 14:17
camelia rakudo b2072f: ( no output )
colomon r: say 3600 * 24 * 366 - 360 -28 14:18
camelia rakudo b2072f: OUTPUT«31622012␤»
colomon rn: say floor(31622012 / (365 * 24 * 60 * 60))
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1␤»
colomon rn: say 31622012 - (365 * 24 * 60 * 60) 14:19
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«86012␤»
colomon rn: say 86012 / 3600 14:20
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«23.892222␤»
colomon rn: say 86012 % 3600
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«3212␤»
colomon rn: say 3212 / 60
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«53.533333␤»
colomon appears to have made a math error somewhere 14:21
colomon rn: my $MINUTE = 60; my $HOUR = 60 * $MINUTE; my $DAY = 24 * $HOUR; my $YEAR = 365 * $DAY; say $DAY + - $HOUR + -28 + $YEAR 14:22
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«31618772␤»
colomon rn: say floor(31618772 / (365 * 24 * 60 * 60))
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1␤»
colomon how does one execute a p6 script which has been translated to pir? 14:27
colomon afk # promised son I'd play the next level of Lego Star Wars 14:28
moritz colomon: I don't think that's possible right now 14:35
gfldex xenoterracide: rakudo on parrot runs (most of the time) on cygwin 14:36
xenoterracide cygwin is of course not quite native windows 14:42
moritz fwiw jnthn uses the msvcc toolchain to build rakudo 14:44
gfldex what is a good idea
Makefile:772: recipe for target `NQPP5QRegex.pbc' failed
make: *** [NQPP5QRegex.pbc] Segmentation fault (core dumped)
moritz gfldex: find installed copies of nqp, and delete them 14:45
JimmyZ use msvcc to build MoarVM because apr doesn't support strawberry perl 14:46
BinGOs JimmyZ: do you mean apr doesn't support mingw, rather than Strawberry? 14:57
JimmyZ BinGOs: the former 14:57
jnap wow, there's a lot of people here 14:58
BinGOs it didn't appear to like Cygwin very much either. But I'll leave that to rurban
PerlJam jnap: just a few :)
gfldex the world waits for perl 6 :) 14:59
jnap is github.com/supernovus/perl6-psgi/ what we have for Perl6 and PSGI? is that recommended? 15:00
I'm asking because I am considering working on a Catalyst like port to Perl6, as a way to help CatalystP5 experiment with possible futures without breaking existing production code 15:02
JimmyZ BinGOs: I guess libuv will replace apr eventually
PerlJam jnap++ (I was just going to ask if you were exploring a perl6y catalyst)
JimmyZ Catalyst? the author of Catalyst creats mojo? 15:03
*created 15:04
jnap PerlJam: I think so, because like I said, maybe if some of us get sick of hacking backcompat all the time :) nice to have a free slate, but something that can co inspire between P5 and P6 Catalyst teams 15:05
jnap also maybe I can help try to inspire interest in hacking out the nonblcking support, which seems to not really be around, and is becoming a bigger deal for webdevelopment 15:07
gfldex rakudo build fine on cygwin after rm -r install/ 15:08
timotimo_ oh, nonblocking support? yes, please :) 15:12
diakopter japhb: ping 15:12
moritz jnap: you can start by giving moarvm libuv as backend for IO, which supports non-blocking IO very nicely
timotimo_ not even suggesting to bring parrot up to speed? ;) 15:13
JimmyZ timotimo_: that will take another 10 years, me thinks :P 15:14
timotimo_ people keep saying moarvm seems very promising, which gives me hope :)
being non-involved in both the jvm work and the moarvm effort makes it really hard for me to see the progress being made; not enough blogposts ;) 15:15
jnap I'll look at linuv, but I guess that's going to be c programming, not my thing. I might be better off doing test cases, etc. 15:16
so I guess steps would be (for moarvm at least) integrate libuv with test cases, build a non blocking web server with it, then we can complate the PSGI port... 15:18
diakopter jnap: some of us are working on the libuv thing. not sure about timeline. 15:19
1-2 months to replace apr; 1-2 months to get async IO/events finalized, conservatively 15:20
diakopter stevan__: that talk has been discussed several times on this channel :D it's possible they're findable in the clogs 15:20
jnap: optimistically, 2-3 weeks for each of those.. ;) 15:23
chip & I are working on the design doc with jnthn's and others' oversight 15:24
jnap diakopter: for nonblocking? are the docs someplace I can watch?
diakopter anyone else with node/libuv/C/threads experience is very welcome to contribute; we're not at the saturation point of contributors yet 15:25
jnap: yep; PM me a google account ID I can add to the shared drive folder 15:26
jnap I don't actually think we need to have nonblocking baked in to have PSGI as a base for webframeworks. I'm just looking at github.com/supernovus/perl6-psgi/ and not sure
diakopter it doesn't need non-blocking if the threads are low-overhead enough, depending on how high concurrency/capacity you intend to serve... I mean... looking at these graphs gives some perspective: 15:27
www.techempower.com/benchmarks/#section=data-r3 15:28
diakopter oh, I guess there's some more recent rounds linked there from the top 15:30
ah, they added some perl ones by then
dancer, mojolicious 15:31
they're both around 1/25 the capacity of the best
well, on one test anyway 15:32
on another, around 1/2
jnap lol, I don't even want to know what Catalyst would look like on that
diakopter off the charts?
and not in the good direction?
jnap doubt in the good direction, yeah 15:33
the claim here is going to have to be productivity and long term maint over raw speed, at least for Catalyst P5
is my focus anyway
diakopter I mean, they have Web::Simple on there. 15:37
...
seems Kelp is also a Perl one 15:38
afk&
JimmyZ can I watch the docs too? 15:46
timotimo_ i hope there'll be a bit of nice performance to be had with websites and frameworks atop perl6 some day :| 15:47
__sri would be more than happy with perl5-ish performance 16:12
timotimo_ i don't know what perl5-ish performance is like :(
__sri is also very much looking forward to libuv and proper threads in moarvm :) 16:13
timotimo_ is going to be excited about the deployment possibilities the jvm offers 16:15
perl6 web app: here's your .war, go! 16:16
__sri jnap: hopefully we'll not have to make any of the perl5 tradeoffs in perl6 16:16
jnap __sri: I do think the big frameworks ontop of company supported languages are going to have a certain advantage here, since they can spend money on certain types of db and related optimizations 16:17
__sri expects web development in perl6 to be more like in scala... with play framework and the like
jnap I like play and on the JS side angular.js has a lot of neat ideas 16:18
timotimo_ what's special about play?
__sri is going to bring his mongodb driver with him once he starts working on mojolicious6
timotimo_: heavily based on actors 16:19
jnap timotimo_: is pretty approachable for the power you get
__sri imagines perl6 web dev to be about custom web servers with non-blocking i/o and actors 16:20
jnap but for CatalystP6 I think I'd want to be inspired by the current catalyst values of not trying to be a full stack, stay with the ideals of sticking as close as possible to standard syntax, etc
japhb diakopter, pong 16:24
timotimo_ so, what are the "conservative" and "optimistic" estimates for running something like the cave adventure game or a simple bailador web server or something along those lines on moarvm and/or jvm? 16:27
dalek ecs: 58d18fa | larry++ | S04-control.pod:
a try prefix implies 'use fatal' inside
16:28
diakopter timotimo_: lolz. 16:29
diakopter those are like 60% confidence intervals. ;) 16:30
timotimo_ well, i'll still take them :P 16:31
[Coke] nieza has 16 failures again today. 17:27
colomon [Coke]: presumably that will be the case until I figure out how to fix the Nil bug. 17:28
dalek c: 0f839d3 | GlitchMr++ | lib/Bool.pod:
Add forgotten dot.
mls Hi guys! 17:30
mls (just backlogged a bit) 17:31
mls regarding auto-close: that reminds me of parrot patch I did some time ago 17:32
tadzik hi mls!
mls It got rid of that "sub->ctx" ponter in parrot. 17:32
mls It made nqp and perl6 work with the patch, it was just changing a couple of lines of code. 17:33
(jnthn++ maybe doesn't remember, though) 17:34
Anyway, I didn't merge it into parrot because it is not backward comatible, so I wanted to get the ok from the hll developers first 17:35
[Coke] talks with the rtbugadmins - my bug is fixed in the version we are (eventually) upgrading to.
mls It somehow slipped of my radar, though, so it's still not merged.
The commits are still in the mls/new-autoclose branch in the parrot git repo 17:36
See github.com/parrot/parrot/commits/m...-autoclose 17:37
lizmat arrived in hotel in Nancy, France 17:40
mls .tell jnthn FYI, I wrote a couple of comments about auto-close 17:40
yoleaux mls: I'll pass your message to jnthn.
lizmat "all our dishes are furnished" 18:04
wow, what google translate will do to your menu :-)
lue hello world o/ 18:26
dalek rl6-roast-data: f4dd3ba | coke++ | / (4 files):
today (automated commit)
18:27
labster \o hi lue 18:54
flussence huh... I just noticed the first byte of every UTF-8 codepoint in the Combining Diacriticals block is 0xCC|0xCD. wonder if that was done intentionally as a mnemonic. 19:21
dalek kudo-star-daily: 1130a81 | coke++ | log/ (5 files):
today (automated commit)
19:29
[Coke] anyone know if star is picking the same version of modules each time, or if it's getting HEAD of master each time? 19:35
diakopter I thought the star repo contained snapshots of last known working releases 19:40
dagurval they point to a specific commit in each module 19:49
see for example this commit github.com/rakudo/star/commit/cabe...fa#modules
flussence star uses git submodules last I checked, and those don't auto-update. You have to run a specific `git submodule $something` to do that. 19:53
labster r: my $h = &cwd.wrap( { 'FAKE' } ); say cwd(); say &cwd(); 19:57
camelia rakudo b2072f: OUTPUT«/home/p6eval␤FAKE␤»
labster Am I doing something wrong here?
dalek ecs: 8875a24 | (Dagur Valberg Johansson)++ | S11-modules.pod:
Constants, enums and (our) variables are also exportable (I hope)
20:05
lue I'm a bit confused by S02:1908. Should it instead be s/short form/method form/ (or similar phrasing)? 20:14
flussence +1 for method 20:17
lue (Of course, I question the validity of mentioning alternate forms of dereferencers in a section called "sigils indicate interference", but oh well)
s/interference/interface/
timotimo_ hehe
timotimo_ with a barcode sigil you get cancer rays from outer space 20:17
lue I'm wondering if I shouldn't just remove the paragraph I cited. Yes the [], {}, and () were mentioned above, but only in passing. 20:18
flussence that'd kill two problems at once (there's an "s" trying to run away too) 20:20
[Coke] dagurval: danke. (so, I think one thing I have to add the daily star runs is "how many commits behind are we for each module" 20:24
dalek ecs: b832cbe | lue++ | S02-bits.pod:
[S02] Remove irrelevant sentence.

The operators to which the sentence was referring to were only mentioned in passing in this section ("Sigils indicate interface"). Dereferencers are described in detail elsewhere, along with the dotted method forms.
20:26
[Coke] in my checked out copy of star, those module directories are already ... checked out. how can I edit/get the submodule verison?
*version 20:27
dagurval I wonder if there is a reason for star not following latest commit. It wasn't possible before with submodules, perhaps that is the reason? It's possible now though with a recent version of git.
[Coke] We don't want to fight breakage just before a release. 20:29
I think it's reasonable to stick with "known good" versions. (I'd prefer something like auto-jumping to the next release tag, but our ecosystem doesn't do that)
doc is not the latest version. 20:30
json... jsonrpc, panda, rakudo-debugger, zavolaj - those all have updates not in star. 20:32
If someone bumps those up to latest, we can get some test coverage on the daily run before any release this month.
sorear good * #perl6 20:41
flussence [Coke]: git submodule init; git submodule update # ...I think 20:44
flussence the versions are in ./.gitmodules IIRC 20:44
[Coke] ./.gitmodules doesn't have a version on it 20:47
(on any of the submodules)
flussence goes to read up on how this *actually works*...
[Coke] running "git submodule update", I get the expected updates based on my earlier send - but git status shows no difference in the star checkout I have. 20:48
flussence okay, git *does* track the submodule revisions in the parent, just not that file. `git diff` should show they've changed though. 20:49
[Coke] nope. I see no diff. 20:50
flussence hm... maybe I should try poking the repo myself 20:51
[Coke] Danke. 20:54
timotimo_ you have to cd into the submodule, checkout a newer revision, cd out, git add the change and then commit it 20:56
iirc
flussence aha, there's a way to tell git to pull updates for submodules
each one needs submodule.$thing.branch = master in its .gitmodules section, then you just do `git submodule update --remote` 20:57
(want me to commit that?) 20:58
(oh wait, I can't. never mind) 20:59
actually I'm not sure if all of them call the branch "master", but it didn't break anything when I tested just now 21:04
eternaleye tadzik: I'm finding myself tempted to try making something like Bailador, but with a bit more magic and a bit more syntactic sugar. Mind if I occasionally poke you with questions? (My current thoughts involve a syntax like: get "/foo/bar/*/baz" -> $var #`[ from that asterisk ], :$parameter #`[ CGI-style ?foo=bar params are named params ] { } with coercion to signature-introspected types) 22:36
tadzik eternaleye: no, I won't mind :) Ask whenever you need 22:38
eternaleye Also, dynamically generating a grammar from the paths and using that + actions to dispatch.
tadzik my exam session is coming to an end, so I'll hopefully have tuits to answer them 22:38
eternaleye Cool, thanks!
tadzik oh, I've tried that once, did you see it?
although it wasn't dynamic
eternaleye tadzik: Mm, no I didn't. It's in the git repo?
tadzik ttjjss.wordpress.com/2010/11/27/gra...p-further/ 22:39
eternaleye Anyway, I just felt that having :name in the path was redundant with Perl 6's signatures, and then I started thinking about type coercion and how well path components = positional and cgiparams = named seemed to work.
tadzik and previous post, linked
eternaleye And then you get :$foo! mandatory stuff and :foo(:f) aliasing for free 22:40
And the Whatever star just seemed to be the placeholder that made the most sense to me. 22:42
(earlier I toyed with the idea of doing something more like given/when, but it ended up ugly kinda fast in my head)
Where you'd have root { path 'foo' { } path 'bar' { get 'baz' -> :$cgiparam { } } } 22:43
eternaleye tadzik: I'm thinking of naming it Capoeira, since it's Dancer with a plan to kick ass :P 22:49
flussence eternaleye: I've considered doing a thing that uses multis, where your example up there would match «sub get('foo','bar',$var,'baz')» 22:49
tadzik eternaleye: :D
eternaleye: sounds good :0
flussence (might get a bit long-winded, but it uses minimal magic :)
eternaleye flussence: I though about it, but last I checked where clauses were expensive in the MMD sense. 22:50
ssutch would it be possible to compile EBNF into grammars 23:20
diakopter ssutch: sure 23:23
want to write a grammar for EBNF? :) 23:24
ssutch yeah
i am trying to write a grammar for protocol buffer IDL
and found a protocol buffer EBNF
diakopter I mean, want to write a grammar than can parse EBNF, so that it can be compiled to p6 grammar
sorear slaaaaangs 23:25
ssutch grammars all the way down 23:26
[Coke] is there a better way to write this in nqp these days:? 23:30
token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
[Coke] looks like Rakudo leaves off the pirop entirely (which I can do for the ones that match perl6's defaults, I suppose) 23:34
[Coke] if I remove the pirop mul there, I get the same error. 23:35
[Coke] gist.github.com/coke/5778345 23:36
sorear NQP uses token infix:sym<*> { <sym> <O('%multiplicative, :op<mul_n>')> } 23:49
[Coke] is the _n needed? 23:55
sorear probably 23:56
I'm not really an expert with this part of NQP
[Coke] ENOCHANGE 23:57
[Coke] :op<mul> and :op<mul_n> still die with Null PMC access in get_string - presumably I am missing something else. 23:58