Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-09-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 jaldhar joined #perl6
00:12 benabik joined #perl6
00:40 replore_ joined #perl6
01:10 FROGGS__ joined #perl6
01:23 FROGGS joined #perl6
01:32 benabik joined #perl6
01:44 MikeFair_ joined #perl6
02:04 MikeFair_ Good evening p6 :)
02:12 [Coke] hio
02:13 jaldhar joined #perl6
02:17 sorear o/
02:41 replore joined #perl6
02:54 [Coke] ok. last non-grammar/action cleanup pending for partcl is nqp issue #52
03:05 MikeFair_ [Coke]: Hey, I've got a couple functions that I'm running into problems with using NQP that are resulting in "method not found" errors
03:05 MikeFair_ First is this one:    #NQP::getinterp__P().recursion_limit(100000);
03:05 MikeFair_ Second is:     #NQP::hll-config($comp.config);
03:06 MikeFair_ If I simply comment those two out, then I can get into the interactive shell, but if I type anything that successfully parses,
03:06 replore joined #perl6
03:06 MikeFair_ I get: Method 'ast' not found for invocant of class 'NQPMu'
03:07 MikeFair_ [Coke]: Any ideas on what I'm looking for here?
03:08 MikeFair_ (BTW, in case it wasn't clear, the getinterp__P.recursion_limit call and NQP:hll-config call
03:08 MikeFair_ produce this: invoke() not implemented in class 'NQPMu'
03:16 sorear MikeFair_: it would be more useful to say 'invocant is null'
03:17 sorear NQPMu is NQP's null value
03:20 MikeFair_ sorear: So NQPMu as I understand it is the compiler instance?
03:21 MikeFair_ sorear: Or is it something NQP specific?
03:21 MikeFair_ or wait
03:21 MikeFair_ NQPMu is NQP's null value
03:22 MikeFair_ So the class that represents "NULL" in NQP has not implemented the command I'm trying to invoke
03:23 MikeFair_ (the class that represents "NULL" being NPQMu
03:23 MikeFair_ I get that
03:23 MikeFair_ now. :)
03:27 sorear MikeFair_: you say $obj.foo but $obj is null.
03:34 oops joined #perl6
03:55 moritz good morning
04:01 sorear o/
04:04 popl joined #perl6
04:16 telex joined #perl6
04:20 thou_ joined #perl6
04:29 MikeFair_ sorear: (Was putting kids to bed) Yep I see that / understand that error now
04:35 MikeFair_ So it looks like I'm having problems with this line here:   hll-config($comp.config);
04:35 MikeFair_ Could not find sub &hll-config
04:35 telex joined #perl6
04:35 MikeFair_ Which seems an obvious enough description of what's going on
04:38 MikeFair_ NQP.pm has an implementation of hll-config...
04:38 MikeFair_ Which I'm assuming comes in as partof the "use NPQHLL;" line
04:49 sorear I would not make that assumption
04:50 MikeFair_ ok - tracked it down
04:50 MikeFair_ it was a separate sub in the same file as another "MAIN" function
04:51 MikeFair_ I don't know where the examples I was looking were getting their hll-config function from, but in this file, it was clearly a sibling sub to MAIN
04:51 MikeFair_ it had exactly two lines in it:
04:51 MikeFair_ $config<version>    := '2012.09-220-g962ffbe';
04:51 MikeFair_ $config<build-date> := '2012-09-07T07:16:59Z';
04:52 MikeFair_ So once I copied in that hll-config sub that stopped being a problem
04:52 * MikeFair_ still doesn't know if that was the _right_ way to fix it, but it works for now until I learn why that was the wrong move later on. :)
04:54 MikeFair_ ok, so that exaplains everything there was to know about _that_ main executable file (main.nqp -> safirce.pir -> safire.c -> safire.o -> installable_safire)
04:55 MikeFair_ There may be a pbc just after the pir but I don't recall immediately. :)
04:56 MikeFair_ that being said I'm now on to why my Compiler.pm / Actions.pm / Grammar.pm are producing an Method 'ast' called on a null object reference. :)
04:57 MikeFair_ (but only when there is a parse match)
05:12 moritz MikeFair_: but your stuff in a repo on github, so that I can have a look at it
05:15 MikeFair_ moritz: Ok... I'll have to set up an account first... if it doesn't take too long
05:15 moritz it doesn't. You just pick a username, past a public SSH key, and be done
05:21 sorear this assumes you have a public ssh key
05:22 sorear ISTR having a lot of trouble with that step
05:22 sorear there's very little documentation for something a typical person will do exactly once
05:24 MikeFair_ https://github.com/MikeFair/Safire
05:24 MikeFair_ I skipped the ssh key
05:25 MikeFair_ when I did a git push it asked me for an https login
05:25 MikeFair_ I was able to use my github username/pass successfully
05:27 MikeFair_ So build.sh is my stupid hand made build program because I'm not so sophisticated as to be able make setup.pir do the right thing, nor am I able to make Makefiles work for me (I never got the hang of them - spent most of my development life on the windows side or in scripting langauages)
05:28 MikeFair_ src/safire.nqp is my clone of Perl 6's main.nqp tweaked to load the safire language instead of Perl
05:29 MikeFair_ and src/safire is what you'd expect
05:30 MikeFair_ Grammar/Actions/Compiler/Runtime pretty much exactly out of mk_language_shell save for my bad attempts at 'fixing" stuff
05:30 MikeFair_ moritz: Thanks for looking at it btw
05:38 * moritz almost got it to build
05:39 MikeFair_ hehe
05:39 MikeFair_ Hmm, I think I had a languages library reference that I had to add (which I only had because I did a make install of NQP after I built it)
05:40 MikeFair_ But I think that might have been causing runtime, not compile time errors
05:41 moritz MikeFair_: safire.c seems to be a generated file -- you shouldn't put that into git
05:41 moritz otherwise you have a huge diff after each recompilation
05:41 * MikeFair_ nods
05:42 MikeFair_ yes, as is the .o, all the .pbcs, and all the .pirs too
05:42 MikeFair_ I will need to make a .gitignore for that stuff
05:42 MikeFair_ And the executable itself
05:42 moritz I'm about to send you a pull request that makes build.sh easier to adapt to other paths
05:43 moritz should I remove the generated files from git too?
05:43 MikeFair_ please do
05:43 MikeFair_ though without the ignore won't it just put them back?
05:43 moritz only if you do a 'git add .' or so
05:43 MikeFair_ right
05:44 MikeFair_ don't expect I'll need to do that so that won't be a problem then
05:49 moritz MikeFair_: pull request sent.
05:50 moritz MikeFair_: sorry, need to go now, $daughter is going beserk; I hope to get around to look at your actual problem soon :-)
05:50 MikeFair_ So how does that work?  Will it show up somewhere that someone has made that request?
05:50 MikeFair_ moritz: No worries!  I have a 10 year old and a 7 year old myself :)
05:53 moritz MikeFair_: https://github.com/MikeFair/Safire/pull/1
05:54 MikeFair_ I figured it out - I had to click the "open" button over the request
05:54 MikeFair_ At least that seemed to be the right thing :)
05:54 MikeFair_ now wait
05:54 MikeFair_ err nope - let's try "submitted"
05:55 moritz there should be "merge" button or so
05:56 MikeFair_ Click through the UI to "Pull Requests" then "Open" on the request didn't work
05:56 MikeFair_ navigating direct with the URL you gave showed the merge button
05:56 MikeFair_ It's now closed
05:56 moritz "Merge pull request", a very green button
05:57 moritz oh, you merged it. Thanks.
05:57 MikeFair_ I wonder if I clicked "close" instead of 'open' on the "Pull Requests" tab if that would have made a difference
05:57 MikeFair_ moritz: my pleasure! :)
05:58 moritz MikeFair_: ok, I see a problem now
05:59 moritz ./installable_safire -e 'say 42'
05:59 moritz enter statement_control: say 42
05:59 moritz Null PMC access in find_method('push')
05:59 moritz current instr.: '' pc 795 (src/gen_actions.pir:333) (src/safire/Actions.pm:28)
05:59 moritz the "Null PMC access in find_method('push')"  means:
05:59 moritz you've called $something.push
05:59 moritz and $something is Null
05:59 MikeFair_ moritz: right, try -e 'say "42"'
05:59 moritz so, let's look at line src/safire/Actions.pm line 28
05:59 moritz for $<EXPR> { $past.push( $_.ast ); }
06:00 moritz so, we now know that $past is Null
06:00 moritz the line before is
06:00 moritz my $qast := QAST::Op.new( :name<say>, :op<callmethod>, :node($/) );
06:00 moritz $qast vs. $past
06:01 moritz it seems that nqp doesn't complain about misspelled variables :(
06:01 MikeFair_ moritz: hhe - nqp doesn't seem to complain about a lot of things :)
06:02 moritz so, when I fix the variable names, it gets further in the compilation
06:03 MikeFair_ I get to "enter TOP"
06:03 moritz MikeFair_: do you want to give commit access to that repo right away? then we don't have to go through the pull requests every time :-)
06:04 * MikeFair_ nods.
06:05 MikeFair_ How do I jsut make it totally open to whoever is willing to actually bother with branching/cloning it or whatever?
06:05 moritz I don't think there's such an option
06:05 MikeFair_ I think you've been added as a Collaborator
06:06 MikeFair_ is that all I need to do?
06:07 moritz yes
06:07 moritz I've pushed my fixes
06:07 * MikeFair_ tries a git pull.
06:08 moritz now
06:08 moritz ./installable_safire -e 'say "42"'
06:08 moritz enter quote:sym<">: "42"
06:08 moritz exit quote:sym<">: "42"
06:08 moritz enter quote: "42"
06:08 moritz Method 'ast' not found for invocant of class 'NQPMu'
06:08 moritz current instr.: 'term:sym<quote>' pc 1054 (src/gen_actions.pir:441) (src/safire/Actions.pm:42)
06:08 moritz line 42 is make $<quote_EXPR>.ast;
06:09 moritz the error message implies that $<quote_EXPR> is NQPMu, i.e. empty
06:09 moritz so, let's look at rule term:sym<quote>
06:09 moritz token term:sym<quote> { <quote> }
06:10 moritz no quote_EXPR there, just a quote
06:10 moritz so it must be changed to
06:10 moritz make $<quote>.ast
06:10 moritz MikeFair_: with me so far?
06:11 MikeFair_ sort of
06:11 MikeFair_ the quote stuff is actually a merging of a couple different examples
06:11 moritz yes, I figured :-)
06:11 moritz the important thing is not what you did wrong, but how to figure out what's wrong
06:12 * MikeFair_ nods.
06:12 MikeFair_ So I get really confused about this part
06:12 MikeFair_ on the one hand quote is a term, and on the other it's a match rule
06:13 moritz well, you have token quote
06:13 moritz which matches either "foo" or 'foo'
06:13 MikeFair_ The part I think I understand is that term:sym<"> is somehow saying that a <"> match is a terminal match
06:13 moritz right
06:14 MikeFair_ moritz: Which is handled by the two quote<'> and quote<"> tokens
06:14 moritz so, you have that token quote
06:14 mucker joined #perl6
06:14 moritz right
06:14 moritz on the other hand you have to tell the grammar where to look for a quote
06:14 moritz and of course you need to look for it in term position
06:15 moritz for example in    say '42'   the grammar looks for a term after it has parsed the say
06:15 MikeFair_ but what I don't quite get is how the two are related.... I mean I kind of get that term:sym<"> is a terminal match rule, so it will go hunting for those... I think, and that one says go match <quote> which then fire off the token rules
06:15 moritz so, the   term:sym<quote>   rule is a way to tell the grammer "when you look for a term, one option is to look for a <quote>"
06:16 MikeFair_ right, well it's term:sym<"> { <quote> }
06:16 moritz token quote:sym<"> { <?["]> <quote_EXPR: ':qq'> }
06:16 sorear The :sym<"> part is mostly just a human readable name.
06:17 sorear What matters is "term" (this is a terminal symbol) and { <quote> } (delegate responsibility to the 'quote' rule)
06:17 MikeFair_ Right
06:17 moritz MikeFair_: the  quote:sym<something> rules are just all the alternative branches that might match when you write <quote>
06:18 moritz you could just as well write   token quote { <?[']> <quote_EXPR: ':q'> | <?["]> <quote_EXPR: ':qq'> }
06:18 MikeFair_ and the <quote> part on the term:sym<quote> is actually a completely different thing that is only meaningful in the context of distinguishing among the multiple term possibilities
06:18 MikeFair_ moritz: Right, and there has to be a proto line to enable that to work
06:18 moritz both correct
06:19 moritz MikeFair_: I think you did understand the concepts, it just needs a little time to sink in
06:19 * MikeFair_ nods.
06:19 MikeFair_ The more I work with it, bang my head, read the docs, the more the docs make sense
06:20 moritz MikeFair_: I've pushed another small fix
06:20 moritz what I get now is
06:20 moritz enter TOP: say "42"
06:20 moritz Method 'ast' not found for invocant of class 'NQPMu'
06:20 moritz current instr.: 'TOP' pc 273 (src/gen_actions.pir:145) (src/safire/Actions.pm:7)
06:20 moritz line 7 is
06:20 moritz make QAST::Block.new( $<statement_list>.ast, :node($/) );
06:20 moritz so, $<statement_list> is empty
06:20 moritz why?
06:21 moritz let's look at token TOP
06:21 MikeFair_ I found the tutorials are doing a great job at walking me through "what" to do, and explaining the concepts behind what we're doing, but are a bit light on the "why I'm doing this particular line, and exactly what this line is exactly doing"
06:21 moritz token TOP { <statement_control> [ $ || <.panic: "Syntax error"> ]
06:21 moritz }
06:21 moritz so, not $<statement_list>, just a $<statement_control>
06:21 moritz so you need to change the line to
06:21 moritz make QAST::Block.new( $<statement_control>.ast, :node($/) );
06:22 MikeFair_ or make TOP a list
06:22 moritz correct
06:23 MikeFair_ ok, made it control
06:23 MikeFair_ (I'll get to list, eventually, let's just take it one statement at a time for now)
06:23 moritz aye, small steps are good
06:24 MikeFair_ and it crashes in a way that I can't read exactly
06:24 MikeFair_ Error while compiling block : Error while compiling op callmethod: invoke() not implemented in class 'NQPMu'
06:24 MikeFair_ current instr.: '' pc 42925 (src/stage2/QAST.pir:15042) (src/stage2/QAST.nqp:2252)
06:25 MikeFair_ so "op" is NULL?
06:25 MikeFair_ which is part of "block"?
06:25 moritz well, the problem has to do with callmethod
06:25 moritz what do you call the method on?
06:25 MikeFair_ say
06:25 MikeFair_ in Runtime.pm
06:26 moritz no, the method name is 'say'
06:26 moritz but what object do you call the method on?
06:26 MikeFair_ hehe - I think we're now in a "I'm going to cross that bridge when I come to it"
06:26 moritz you can't just say "call a method" without saying on which object
06:27 moritz that's what the error message explains about, though in an obscure manner
06:27 MikeFair_ So this is where NQP differs a bit, I think
06:27 MikeFair_ moritz: Now I totally get it
06:27 MikeFair_ s/Now/No
06:27 MikeFair_ but in PCT land, the Runtime.pm was just accessible
06:28 MikeFair_ again, this is just taking the mk_language_shell and tweaking it as much as required to make that much work again
06:28 moritz but in PCT you couldn't call a method without saying what to call it on either :-)
06:28 MikeFair_ Wrapping in a class and adding use NQPHLL was the bulk of the changes
06:28 moritz maybe mk_languages_shell was borked too :(
06:28 MikeFair_ moritz: Nope it worked :)
06:29 MikeFair_ but there was likely magic I couldn't see
06:29 MikeFair_ Somehow Runtime.pm and Actions.pm got connected
06:29 MikeFair_ If you look at Runtime.pm you'll see where callmethod ended up
06:29 moritz MikeFair_: let's simplify things by making 'say' a subroutine, not a method
06:30 MikeFair_ I just can't tell you how it got there
06:30 moritz so just change :op<callmethod> to :op<call>
06:31 MikeFair_ moritz: Ahh the original mk_language_shell was a pasttype<cal>
06:31 MikeFair_ <call>
06:31 moritz that explains it
06:31 moritz exit TOP: say "42"
06:31 moritz Could not find sub say
06:31 moritz that's progress
06:31 moritz it means that the compilation finished successfully
06:31 moritz and only died at runtime
06:32 MikeFair_ would a missing use NPQHLL do it?
06:33 MikeFair_ or would those subs need to be wrapped in an accessible clas or namespace?
06:34 moritz use NPQHLL is not enough
06:34 moritz note that NQP has a sub say(), but it doesn't make that available to generated code
06:34 moritz (so that it doesn't pollute the namespace of the generated code)
06:34 * MikeFair_ nods.
06:35 moritz so, you need to write your own sub say
06:35 MikeFair_ I think PIR has the same thing
06:35 MikeFair_ oh wait
06:35 moritz pir has a 'say' opcode
06:35 MikeFair_ I think I see what you're saying, the code is trying to call nqp::say
06:35 MikeFair_ what about print?
06:36 MikeFair_ same thing?
06:36 moritz it also has as 'print' opcde
06:36 moritz but
06:36 moritz both don't quite do what you want
06:36 moritz because both only accept one argument
06:36 MikeFair_ which is why they used the ::join
06:37 moritz but you can still use the 'say' opcode for now
06:37 moritz so change :name<say>, :op<call>   to :op<say>
06:37 moritz ./installable_safire -e 'say "42"'   now prints 42
06:38 moritz but now you get a compilation error when you do something like -e 'say "42", "23"'
06:38 moritz because nqp::say doesn't like multiple arguments
06:38 moritz the proper thing to do is to start write a 'say' built-in
06:39 moritz so, create an  src/builtins.nqp with something like
06:40 moritz sub say(*@args) { for @args { nqp::print($_) }; nqp::print("\n") }
06:40 moritz add a build step that compiles that down to PIR
06:40 moritz and in the action rule for TOP, generate an .include 'src/gen_builtins.pir'
06:41 MikeFair_ moritz: So kind of like what's in Runtime.pm
06:41 MikeFair_ rename that to builtins.npq
06:42 moritz I don't see a Runtime.pm
06:42 moritz it doesn't really matter what you call it
06:42 moritz as long as it works :-)
06:42 MikeFair_ src/safire/Runtime.pm really?
06:42 janosik joined #perl6
06:42 moritz oh, right
06:42 moritz yes, that's fine
06:45 * moritz wonders how to emit an .include 'runtime.pir'
06:48 MikeFair_ an op?
06:49 lizmat joined #perl6
06:49 moritz no idea, and currently no time, sorry
06:54 MikeFair_ moritz: No worries
06:56 tokuhiro_ joined #perl6
07:10 marmay joined #perl6
08:07 jerome joined #perl6
08:20 Psyche^ joined #perl6
08:27 masak morning, #perl6!
08:29 moritz masak, morning!
08:31 masak 'tis a loverly Saturday antenoon in southern Sweden. sunlight. slight chance of rain. significant chance of hacking.
08:32 moritz \o/
08:32 moritz how is jnthn doing? last time I saw him here he said he was sick
08:32 Su-Shee in north-eastern germany, one and a half hour of hacking has already happened. ;) good morning everyone.
08:33 moritz \o Su-Shee
08:34 sorear o/ o/ o/
08:40 FROGGS good morning
08:40 FROGGS Su-Shee, where exactly you're from?
08:41 Su-Shee Berlin
08:42 Su-Shee *hihi* I learned a great new word today, very useful for us tech folks: "frankenstandard". I'll put it right next to "paleocode" and "heisenbug" :)
08:42 FROGGS frankenstandard??
08:43 FROGGS is it about undead code?
08:43 FROGGS Su-Shee: we'll meet at the gpw2013?
08:43 Su-Shee at the what?
08:44 FROGGS german perl workshop in berlin
08:44 Su-Shee no, it's a word for a bastardized "standard" as in "assembled a couple of ideas and maybe best practices, thrown together under one label" ;)
08:44 masak moritz: jnthn is not recovered, and may not be for a few days. yesterday when I saw him he *appeared* well, though, even though he still self-reported as being sick.
08:44 Su-Shee FROGGS: no, probably not.
08:45 masak moritz: I believe modulo being busy with $work, he may be back on the channel today.
08:45 FROGGS Su-Shee: k
08:47 sorear WHAT!  jnthn?  sick?
08:47 FROGGS ya, since wednesday or so
08:48 am0c joined #perl6
08:52 masak sorear: it's an instance of the common cold. he got it on Sunday, and instead of slowing down and recovering, he worked long hours for most of the week.
08:54 Su-Shee that's a great way to make a flu last longer - if you do it right, up until 4 weeks. I speak of experience ;)
08:54 sorear masak: good to know it's something generally survivable :D
08:55 bonsaikitten Su-Shee: sure it doesn't mean "north bavarian confusion pretending to be a standard" ? ;)
08:56 FROGGS bonsaikitten: thats what I thought
08:59 Su-Shee ?!
08:59 xinming joined #perl6
08:59 FROGGS the question is, is it oberfranken, mittelfranken or unterfranken?
09:26 masak Su-Shee: I wonder if the set of SOAP standard documents counts as a frankenstandard.
09:27 moritz I think that's the prime example, no?
09:32 * masak .oO( to the extent anything having to do with SOAP can be regarded as indivisible, yes... ) :P
09:32 masak I'm forever amused that the "S" in "SOAP" used to stand for "Simple", but *they backtracked on that*.
09:33 moritz what does it stand for now?
09:33 Su-Shee I decided it stands for "sad"
09:34 sergot hi o/ !
09:34 masak moritz: it doesn't stand for anything.
09:34 masak sergocie! \o/
09:34 moritz Su-Shee: "sad" is good. I like that.
09:34 tadzik o/
09:34 sergot \o/
09:35 moritz \o tadzik, sergot o/
09:37 sorear sleep&
09:38 moritz good night sorear
10:04 masak $sorear.sleep(:well);
10:18 pmurias joined #perl6
10:37 jnthn afternoon o/
10:37 yarp joined #perl6
10:37 masak jnthn! \o/
10:38 moritz \o jnthn
10:38 * jnthn finally got a decentish night's sleep
10:40 mhasch SOAP should perhaps be renamed SMOAP
10:40 snearch joined #perl6
10:40 mhasch \o jnthn
10:40 jnthn .oO( I thought it was called SOAP to reflect that the design needed to be cleaner )
10:41 mhasch good one, jnthn.  Or perhaps for slipperiness (is that an English word?)
10:42 jnthn I think so :)
10:42 masak phenny: en pl "slipperiness"?
10:42 phenny masak: "śliskość" (en to pl, translate.google.com)
10:42 masak heh, that word even looks slippery :P
10:42 jnthn SOAP is a bit overdesigned, but if there's any bit of the web service stack that screws things up, it's probably WSDL.
10:42 jnthn "Yes, let's do RPC all over again!"
10:42 masak only because WSDL projects the whole thing down into something very boring... yeah, RPC.
10:43 masak "SOAP is not RPC! Here, have this WSDL."
10:43 jnthn Yeah. It can't effectively capture ongoing conversations.
10:44 jnthn And thus we end up with BPEL, WS-Choreography, etc.
10:45 masak hm, that's a nice summary of what it loses. I wonder how a standard that captured conversations would look.
10:45 masak a "WSDL done right" kind of thing.
10:45 masak <and-then-she-said />
10:45 jnthn Well, see BPEL.
10:45 jnthn But these days I'm a bit fonder of the hypermedia approach.
10:46 masak I don't think BPEL ever took off to any significant extent.
10:46 jnthn I've ran into people using it while teaching.
10:46 masak oh!
10:47 jnthn There is tooling around it.
10:47 masak bet there is.
10:47 jnthn .oO( It's probably quite enterprisey ;) )
10:50 jnthn Time for some errands and brunch. Then I guess I'd better figure out my keynote for the seminars next week... :)
10:53 marmay joined #perl6
10:54 masak :)
11:06 masak thou++ # http://ode-to-camelia.tumblr.com/post/31​046545127/interactive-fiction-in-perl-6
11:09 buubot_backup joined #perl6
11:10 Su-Shee joined #perl6
11:36 Woodi I met "frankenstandards" in newspaper last week describing approuch or activity of our goverment... but missed that ocassion to make my disctionary richer... noted now :)
11:36 Woodi hallo today :)
11:37 whiteknight joined #perl6
11:37 masak today greets you back :)
11:38 Woodi it's nice :)
11:38 * masak .oO( is a disctionary a collection of various-sized disks? like the hanoi game in crypt? )
11:39 Woodi no, probably my irssi miss one more script, for spelling :)
11:40 JimmyZ joined #perl6
11:40 masak of all the words to misspell... ;)
11:48 Woodi anyone saw "War Photographer" ?
11:49 crab2313 joined #perl6
11:53 GlitchMr joined #perl6
11:54 dalek nqp: b4dec6c | jnthn++ | src/PASTRegex.pir:
11:54 dalek nqp: Stop exporting the dummy PAST package.
11:54 dalek nqp: review: https://github.com/perl6/nqp/commit/b4dec6cdac
11:54 dalek nqp: e19b5fd | jnthn++ | src/stage0/ (9 files):
11:54 dalek nqp: Update stage0 to eliminate PAST package cross-refs.
11:54 dalek nqp: review: https://github.com/perl6/nqp/commit/e19b5fda95
11:54 dalek nqp: 1ff9f02 | jnthn++ | src/PASTRegex.pir:
11:54 dalek nqp: Further gut the PAST inclusion code.
11:54 dalek nqp: review: https://github.com/perl6/nqp/commit/1ff9f02beb
12:03 replore joined #perl6
12:08 JimmyZ joined #perl6
12:17 dalek nqp: 718a3fc | jnthn++ | src/ (5 files):
12:17 dalek nqp: Eliminate a bunch more PAST references.
12:17 dalek nqp: review: https://github.com/perl6/nqp/commit/718a3fcba9
12:18 dalek rakudo/nom: 0ead9e4 | jnthn++ | tools/build/NQP_REVISION:
12:18 dalek rakudo/nom: Bump to an NQP that doesn't load/import PAST.
12:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ead9e4d87
12:22 MayDaniel joined #perl6
12:41 FROGGS__ joined #perl6
12:41 FROGGS joined #perl6
12:52 * masak .oO( an NQP free of the PAST )
13:04 jaldhar joined #perl6
13:23 jaldhar joined #perl6
13:30 GlitchMr Just wondering, is there any sort of shortcut for grep?
13:30 GlitchMr So, I could shortcut stuff like grep * > 20, @array
13:37 masak r: my @a = 44, 13, 59, 22, 18; .say if $_ > 20 for @array
13:38 p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Variable @array is not declared␤at /tmp/zBMBswBvuw:1␤»
13:38 masak r: my @a = 44, 13, 59, 22, 18; .say if $_ > 20 for @a
13:38 p6eval rakudo 0ead9e: OUTPUT«44␤59␤22␤»
13:38 PacoAir joined #perl6
13:40 GlitchMr gather .take if $_ > 20 for 1, 2, 40, 3
13:40 GlitchMr I'm almost sure I'm doing it incorrectly
13:40 GlitchMr (ok, at this point grep is better)
13:41 masak the only thing shorter than grep I could imagine would be if you declared a postcircumfix operator for lists that delegated to .grep
13:41 masak but playing around with that idea locally, I couldn't get it to work, unfortunately.
13:42 GlitchMr Well, map has shortcut (> 1, 2, 3 X** 2
13:42 GlitchMr 1 4 9
13:42 GlitchMr oops
13:42 GlitchMr whatever
13:42 GlitchMr And reduce has shortcut too
13:42 GlitchMr I was wondering why not grep
13:42 masak um, X** is not a shortcut for map.
13:43 GlitchMr It isn't?
13:44 GlitchMr But... it works, doesn't it?
13:45 pmurias jnthn: re js backend (which I plan to resume hacking on today ;) do you think it makes sense to have it in a rakudo fork, or make it seperate in a repo of itself combinable with a rakudo repo?
13:45 phenny pmurias: 19 Aug 05:40Z <JimmyZ_> tell pmurias speaking of rakudo-js, you may be interested in https://github.com/kripken/emscripten/wiki
13:46 masak GlitchMr: 'X**' is a shortcut for 'map { $_ ** 2 }'.
13:46 GlitchMr "Emscripten is an LLVM-to-JavaScript compiler."
13:47 skids joined #perl6
13:47 GlitchMr Interesting. I was thinking about making x86 emulator in JavaScript, but I guess that way is faster.
13:49 masak pretty sure someone has made an x86 emulator in JavaScript already.
13:49 jnthn pmurias: The fork approach makes it harder to benefit from Rakudo improvements I guess. The separate repo approach may work out better...it depends on Rakudo not breaking too many APIs you depend on, but given the main thing you depend on for now is probably QAST, that may not be a great problem.
13:50 jnthn (I don't see any notable changes to QAST coming)
13:51 jnthn The approach I'd had in mind for porting Rakudo was "first port NQP", but that may be drawn out and less -Ofun than your current path :)
13:51 GlitchMr But if Ruby works, why Parrot wouldn't?
13:52 pmurias it could work
13:52 pmurias but would end up horribly slow
13:52 GlitchMr Hmmm... yeah
13:53 GlitchMr And Perl 6 has bigger compiler compared to Ruby
13:53 Cofyc joined #perl6
13:53 pmurias jnthn: has NQP fully transitioned to QAST?
13:54 pmurias jnthn: the problem with having the backend in a seperate repo is how integrate it with the build system
13:56 jnthn pmurias: Yes, NQP is fully using QAST now
13:58 masak \o/
14:02 yarp joined #perl6
14:03 pmurias jnthn: would it be possible to have rakudo support "backend plugins"? seeing as other backends beside js are planned?
14:07 jnthn pmurias: It's already possible to create alternative frontends to Rakudo that do different things with the compilation. That's the easiest way to go for now.
14:07 jnthn pmurias: I posted something in a gist a while back for cognominal on how to get Rakudo to do the compilation stage and then dump the parse tree as JSON
14:10 pmurias jnthn: I already have a alternate frontend that does what I want
14:10 pmurias jnthn: what I'm having trouble is getting everything to build correctly
14:12 pmurias or does just coping fils into the rakudo dir and patching the build system seem sane
14:16 jnthn If you already did a "make install of Rakudo", then you should be able to just "use" various bits of the existing compiler
14:17 jnthn See in https://github.com/jnthn/rakudo-debu​gger/blob/master/bin/perl6-debug.nqp for example
14:17 jnthn There it just does "use" of the grammar, actions, etc.
14:18 jnthn Then you just build a rakudo-js executable and any of the other libraries you are adding
14:19 Khisanth joined #perl6
14:23 GlitchMr warning: LLVM version appears incorrect (seeing "Ubuntu clang vers", expected "clang version 3.1")
14:23 GlitchMr That could be fun
14:24 GlitchMr Who has added "Ubuntu" there?
14:26 GlitchMr Perhaps I could try it on feather and not on my machine... perhaps
14:29 GlitchMr It's dev machine, isn't it?
14:35 GlitchMr "nice make"
14:35 GlitchMr ok
14:58 JimmyZ joined #perl6
15:09 gongyiliao joined #perl6
15:23 kaare__ joined #perl6
15:26 crab2313 joined #perl6
15:44 UncleFester6 joined #perl6
15:52 pmurias jnthn: I get http://pastie.org/4685840 when compiling rakudo-debugger
15:53 jnthn pmurias: Interesting. Wonder if that's a result of the NQP move to QAST.
15:54 pmurias I'm trying make clean, hoping it might help
15:54 pmurias jnthn: I have seen a similiar error trying to compile the js backend
15:57 jnthn pmurias: See if what I just pushed helps
16:02 GlitchMr https://gist.github.com/3676439
16:02 GlitchMr Wait... feather doesn't have bits/predefs.h?
16:03 Chillance joined #perl6
16:04 GlitchMr glitchmr@feather /usr/include> find -name 'predefs.h'
16:04 GlitchMr ./i386-linux-gnu/bits/predefs.h
16:05 GlitchMr I guess I should somehow learn clang about it
16:13 mucker joined #perl6
16:15 raiph joined #perl6
16:15 raiph hi all
16:16 Ulti hi
16:16 raiph moritz: is any of perl6.org dynamically served via p6 code?
16:16 raiph Ulti: hi
16:17 TimToady not that I'm aware of
16:28 GlitchMr Most of perl6.org is static webpages generated using mowyw
16:30 raiph TimToady, GlitchMr: thanks
16:32 GlitchMr Also, there is ecosystem (the real one, not modules.perl6.org page) which uses Dancer
16:32 GlitchMr But it's hosted on feather1, not feather2
16:33 GlitchMr http://feather.perl6.nl:3000/
16:33 GlitchMr (it's also sort of slow)
16:35 pmurias jnthn: thanks, that fixed the build error
16:36 pmurias jnthn: how do I get Term::ANSIColor the debugger needs?
16:36 GlitchMr pmurias: use panda
16:36 GlitchMr panda install Term::ANSIColor
16:37 GlitchMr If you don't have panda then either compile it or (if you're on feather) use one of already compiled pandas (I've one in my directory)
16:50 TimToady just added http://rosettacode.org/wiki/Hofsta​dter_Q_sequence#Idiomatic_solution
16:52 TimToady (doesn't work with rakudo, btw, due to not introducing the symbol soon enough on a constant declaration)
17:03 pmurias jnthn: I get the following error http://pastie.org/4686155
17:03 fgomez joined #perl6
17:04 pmurias jnthn: it disappears when I replace Perl6::Compiler::JavaScript.new with Perl6::Compiler http://pastie.org/4686157
17:05 UncleFester6 http:://perlcabal.org appears to be down (also checked downforeveryoneorjustme.com)
17:09 pmurias * Perl6::Compiler.new
17:09 pmurias jnthn: Perl6::Compiler::JavaScript.new seems to return an NQPMu
17:09 lizmat joined #perl6
17:18 am0c joined #perl6
17:20 pmurias jnthn: the name Perl6::Compiler::JavaScript seems to cause trouble
17:20 pmurias Perl::Compiler::JavaScript works fine
17:28 Ulti TimToady: those are easily the cleanest solutions for that algorithm on rosetta
17:29 pmurias jnthn: git remote add origin git@github.com:pmurias/rakudo-js.git
17:29 pmurias git push -u origin master
17:29 pmurias sorry
17:29 pmurias jnthn: https://github.com/pmurias/rakudo-js # haven't yet migrate the actual backend yet
17:32 pmurias jnthn: re porting nqp first, I could try that
17:32 pmurias s/porting/supporting
17:47 fgomez joined #perl6
17:48 MikeFair joined #perl6
17:48 TimToady Ulti: yeah, kinda surprised that Haskell doesn't do better on that one
17:54 MikeFair Heya #p6!
17:55 mrblobby joined #perl6
18:00 marmay joined #perl6
18:02 xinming joined #perl6
18:06 masak MikeFair! \o/
18:10 mucker joined #perl6
18:12 MikeFair anyone have any ideas about what makes this useful?:
18:12 MikeFair _dumper($statement_list, 'SAFIRE')
18:12 MikeFair unless (pir::getinterp__P()).stdhandle(1).tell > $*AUTOPRINTPOS;
18:13 MikeFair It seems to run after every command in the interactive shell
18:16 moritz MikeFair: it calls the dumper only if no output was produced
18:17 masak which isn't completely foolproof; sometimes the output "" was produced.
18:18 MikeFair ok it looks like the function "stdhandle(1)" doesn't exist, I replaced it with stdout_handle() and it seemed happier about that
18:18 masak > print "OH HAI"
18:18 masak OH HAI
18:19 masak > print ""
18:19 masak True
18:19 masak but it's goodenuf, I guess. :)
18:37 MikeFair So I'm trying to really understand this .ast thing
18:37 MikeFair I get that .ast is a node  in the AST tree
18:37 benabik joined #perl6
18:38 MikeFair I think I get that make SOMEASTOBJ put that's node into the tree
18:38 MikeFair I get that:    my $qast := QAST::Op.new( :name<print>, :op<print>, :node($/) );
18:39 sorear good * #perl6
18:39 MikeFair will make a new AST object of the QAST::OP kind
18:39 masak sorear! \o/
18:39 MikeFair hehe
18:39 * MikeFair moves to #parrot
18:39 masak MikeFair: .ast is the place where you hang your AST. most commonly the action methods do this. parse tree != AST.
18:40 masak MikeFair: parse tree == the subdivision of the parsed text into things that belong together. AST == a more high-level description of the semantics of the program.
18:41 masak specifically, the AST nodes can be rearranged to match the semantics more than the syntax.
18:41 masak someone stop me if I am explaining this wrong ;)
18:41 moritz no, masak is completely right
18:42 moritz in rakudo's codegen this is especially apparent for blocks
18:42 MikeFair masak: Right, well if I'm seeing it right, there realy isn't a "parse tree" that I work with, I create Grammar rules, and the Regex engine is managing the parse tree for me
18:42 masak indeed.
18:42 moritz which get all sorts of hooks, lexpads and so on
18:42 masak the parse tree is what ends up in $/
18:42 moritz or for BEGIN blocks
18:43 MikeFair exactly, right, ok so I think I'm getting that right
18:43 masak and the thing in $/ is completely isomorphic to the grammar's call graph (modulo hidden rules).
18:43 MikeFair What's confusing me is the part where this occurs: $<somematchrule>.ast
18:43 masak MikeFair: well, each parse node under $/ has an .ast attribute.
18:43 MikeFair OHHHHh
18:44 masak MikeFair: what happens in practice is that the recursive descent parsing creates ASTs as rules succeed, leaves-first.
18:44 MikeFair That makes more sense, IIRC from earlier explanations $/ is technically a cursor type object
18:44 tadzik good evening #perl5
18:44 masak MikeFair: so you sorta-kinda build your AST from smaller pieces, and put them together.
18:44 tadzik er, #perl6 that is
18:44 masak tadzik! \o/
18:44 tadzik masak! \o/
18:45 tadzik how are things!
18:45 masak MikeFair: took me a while to get this part. but when your rule in the middle succeeds, all its subrules have already succeeded, and contain useful .ast things already.
18:45 masak MikeFair: it's a kind of structural induction, I guess.
18:45 MikeFair Yeah, I don't think the part where $<matchrule> is an object that has an AST property has been mentioned that clearly in the tutorials/docs, or at least I didn't comprehend it when I read it the first time :)
18:45 masak tadzik: things are perfectly satisfactory, thank you. how's with you?
18:46 MikeFair masak: Yeah, I'm getting the bottom up nature of the matches I think, that's what makes "term" so important
18:46 masak MikeFair: another thing: the 'make' keyword just sets the .ast of the current $/
18:46 moritz MikeFair: please write a tutorial now, because now you still remember how it was when you didn't understand it
18:46 masak +1
18:46 tadzik masak: things are nice. I managed to fix my phone today :)
18:46 tadzik that was quite satisfying
18:46 masak tadzik: finally found a screwdriver?
18:46 tadzik lots of small pieces, screwdrivers, glues, hair dryers
18:46 tadzik yes
18:47 MikeFair moritz: Is there a good accessible place I can scratch the notes
18:47 MikeFair moritz: A wiki of some kind
18:47 moritz MikeFair: wiki.perl6.org exists
18:47 MikeFair I guess a .md
18:47 MikeFair in my project is as good a place to start as any
18:47 tadzik I never thought a strong connection to hardware, but I find it strangely satisfying to fix my stuff myself, and not waiting weeks for warranty service
18:47 moritz MikeFair: also each github project has a wiki, where you can put stuff
18:48 MikeFair moritz: Yeah, thanks to you having me get a githup and project setup, I've got a place to hang the stuff that's easily sharable
18:49 MikeFair Like all things it's likely to suck at first, but I think it'll have some good reusable bits that others can make sense of in a real tutorial
18:50 MikeFair I'll make sure I get some of this added to my project and then have one of you guys, or someone from #parrot review it for accuracy
18:51 * masak has learned a ton of stuff about git in the past few days
18:52 masak turns out writing a course about something you know makes you examine it more thoroughly'n usual :)
18:55 moritz I can confirm that :-)
18:55 huf explaining things is the best way to understand them
18:55 moritz guess why I wrote so many blog posts about Perl 6 :-)
18:56 * masak is pleased that $work++ pays him to understand and then explain things
18:57 moritz this week I learned that push.default should be set to 'upstream' if you want sanity
19:00 masak moritz: by gosh, you're right! and the default is 'matching' -- a very dangerous default.
19:00 * masak configures his local git with a quickness
19:00 moritz and I also learned that it's not so easy to maintain commit messages over ammends/rebases if they start with a # sign
19:01 masak hehehe
19:02 moritz at $work we start commits with #ticketnumber
19:02 moritz I've now gone over to start them with <space>#ticketnumber
19:03 masak I think I would make an even bigger distinction than just a space.
19:04 moritz I also thought about [#ticketnumber] or OTRS#ticketnumber
19:04 moritz but I need to check with cow-orkers first
19:05 * moritz scrolls through 'man git-config'
19:06 * masak .oO( they need to chew on it a bit... ruminate on it... )
19:06 masak moritz: heh, that's what I did when you mentioned push.default ;)
19:06 masak now I might include that bit in the course.
19:06 moritz woah, you can set mergetool to vimdiff
19:07 REPLeffect joined #perl6
19:15 masak nice. didn't know that.
19:15 masak today I created my first commit with three parents :)
19:16 moritz woah, how does that work?
19:16 masak on branch b1, 'git merge b2 b3'
19:16 masak just make sure that neither of them fast-forwards ;)
19:16 moritz or add --no-ff, I guess
19:17 masak or that.
19:19 tadzik merging two branches at once? huh
19:19 masak yeah.
19:19 masak I asked on #git if there was ever a use case for that.
19:19 moritz I wonder how well tools that support it
19:20 moritz like gitk
19:20 masak got the answer "if the branches are on the same topic", which, hm.
19:20 tadzik . o O ( git merge nom nom nom
19:20 tadzik )
19:20 masak if the branches are on the same topic, they might as well have some further relation, like one is a branch of the other.
19:20 masak and then you could always merge the three branches in two steps. which seems saner to me anyway.
19:23 moritz it sounds like a very perlish thing to just not introducing a limitation where limit or no limit would be possible
19:24 masak it does.
19:29 moritz though I might argue that the 'merge a b' syntax might be better for merging a into b, no matter on what branch you are
19:31 masak well, git-rebase has an --onto option which does what you want there. git-merge doesn't, however.
19:39 benabik As I recall, when git merges A B & C, it basically does "merge(merge(A,B),C)" but records the result as a single commit.
19:40 masak benabik: that sounds more like recursive merge to me.
19:40 masak benabik: which happens with complicated-enough topologies even for "ordinary" two-commit merges.
19:40 moritz well, the semantics of the merge are left to the merge tool
19:41 masak benabik: if what you're saying is true for tree-commit merges, then I no longer know what the "octopus" merge strategy does :)
19:42 benabik Merge recursive merges multiple merge bases before merging 2 branches.
19:43 benabik Octopus merges the trees one by one, and I think dies if there are any conflicts.
19:43 masak hm.
19:44 cognominal joined #perl6
19:48 benabik Recursive merge is about creating a reasonable single base for a 3-way merge for complex history.  Octopus just keeps iteratively merging trees in the dumbest possible way and fails if it gets conflicts.
19:51 masak heh!
19:51 masak benabik++
19:51 fgomez joined #perl6
19:52 masak that sounds simple enough to be the truth :)
19:52 benabik d9f3be7: [PATCH] Infamous 'octopus merge'
19:52 benabik Or at least that was the original design.  The less shell scripts there are in git, the less sure I am how it works.  :-D
19:53 * benabik followed the git list for a few years.
19:53 masak nice.
19:54 benabik Oh!  Octo is still a script!
19:54 masak oh!
19:55 masak yeah, here: https://github.com/git/git/blo​b/master/git-merge-octopus.sh
19:55 masak hehe, I got that error message today! "Should not be doing an Octopus."
19:56 masak I was all like, "dude, I didn't ask you to!"
19:56 masak wow, that's really a refreshingly short script.
19:57 benabik Git can be remarkably simple.  The individual parts are highly composable.
20:10 masak rn: { say "$^thing, remarkably simple and composable" }($_) for <Git Perl>
20:10 p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«Git, remarkably simple and composable␤Perl, remarkably simple and composable␤»
20:11 GlitchMr rn: say "$_, remarkably simple and composable" for <Git Perl>
20:11 p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«Git, remarkably simple and composable␤Perl, remarkably simple and composable␤»
20:11 GlitchMr There is more than one way to do it
20:13 masak rn: say "{ 'Git' & 'Perl' }, remarkably simple and composable"
20:13 p6eval niecza v21-1-ga8aa70b: OUTPUT«all("Git", "Perl"), remarkably simple and composable␤»
20:13 p6eval ..rakudo 0ead9e: OUTPUT«all(Git, remarkably simple and composable, Perl, remarkably simple and composable)␤»
20:13 masak heh :)
20:38 masak good ♞, #perl6
20:49 lichtkind joined #perl6
20:50 lichtkind may i know why err is gone?
20:51 sorear what was err?
20:52 lichtkind low precedence version of // (defined or)
20:52 lichtkind once called dor by p5p
20:52 jnthn .oO( we showed that one the dor)
20:53 lichtkind yes but why?
20:53 sorear it's spelled "orelse" now
20:53 fgomez joined #perl6
20:55 geekosaur "err" was kinda a lousy name for the concept
20:55 sqirrel joined #perl6
20:56 FROGGS good morning pals
20:56 cognominal joined #perl6
21:01 sorear good morning FROGGS, sqirrel
21:01 lichtkind sorear: but orelse was for some time around when err was too
21:03 sorear I wonder why we ever had both
21:13 ggoebel__ joined #perl6
21:30 cognominal joined #perl6
21:30 dalek tablets: 51a3f1b | (Herbert Breunung)++ | docs/ (2 files):
21:30 dalek tablets: err is gone
21:30 dalek tablets: review: https://github.com/perl6/tablets/commit/51a3f1b5bb
21:45 pmurias jnthn: everything has been ported succesfully to the new scheme, thanks for help
22:01 tokuhiro_ joined #perl6
22:06 raiph joined #perl6
22:08 raiph hi all
22:08 tadzik hi raiph
22:09 raiph pondering a #perl6 summary request
22:09 raiph "can you give a percentage progress of how much of rakudo matches the spec as it exists today."
22:09 spider-mario joined #perl6
22:09 raiph http://perlmonks.org/?node_id=991556
22:10 raiph i'd appreciate a response from #perl6ers to my response to that request
22:11 raiph er, the response at http://perlmonks.org/?node_id=992426
22:12 sorear hmm
22:13 sorear http://perl6.org/compilers/features
22:14 sorear there was at one point a fancy infographic based on that
22:14 sorear ah https://raw.github.com/mj41/Perl-6-G​D/master/export/Summary%20-%20Compil​ers'%20features%20-%20GoodData.png
22:14 sorear somewhere else on the internet there is a graph of spectest data vs time
22:15 raiph sorear: right. all three of those are linked or mentioned in my response.
22:18 sorear raiph: I have nothing to add to your response
22:18 raiph the issues for me are 1) to be careful about the metamessage (p6 is not done) and 2) which of the three metrics do i add, if any?
22:22 sorear add any metrics which are important enough for people on IRC to find remarkable.
22:26 raiph sorear: interesting. you are implying the summary audience is "people on IRC", right?
22:26 raiph i haven't defined the summary audience. it should have been the first thing i did, but i've chosen to do things the hard way.
22:28 sorear raiph: As I understood it, the audience is people who would follow IRC if only there werent' so much of it.
22:28 sorear raiph: so the people on IRC would be a good proxy for interest
22:28 sorear szabgab should probably use a different metric because he has a very different audience
22:29 raiph sorear: i hadn't thought of it that way.
22:29 raiph (the audience being #perl6 followers)
22:32 timotimo will perl6 get a benchmark suite any time soon? to see if performance improves or regresses in the implementations? or is that too early?
22:32 raiph i've not been able to reach perlcabal.org for about 24 hours. is this known about? anyone else have that problem?
22:33 benabik joined #perl6
22:34 FROGGS timotimo: there was a guy at YAPC::EU who did that for perl5, maybe you can get him doing it for perl6...
22:34 FROGGS timotimo: you might google for perlformance
22:34 timotimo well, first those benchmarks would have to be written :)
22:34 sorear timotimo: perl6 has a benchmark framework, but only one benchmark has been written for it yet
22:35 timotimo oh, it's the same thing they have on speed.pypy.org, that's sweet.
22:40 tadzik we used to have that (perf suite)
22:40 raiph my ping tests suggest perlcabal.org is down
22:43 timotimo perlformance has a line in its documentation saying =item L<Benchmark::Perl::Formance::Plugin::P6STD​|Benchmark::Perl::Formance::Plugin::P6STD>
22:45 tadzik STD.pm5 is probably quite a stresstest :)
22:45 tadzik there's https://github.com/pmichaud/rpbench
22:47 TimToady there was never a time when we had both err and orelse
22:47 TimToady I yanked out err and replaced it with orelse
22:48 timotimo tadzik: the readme is completely empty :(
22:48 tadzik yes
22:49 tadzik I remember seeing some graphs from https://github.com/perl6/bench-scripts
22:51 supernovus joined #perl6
22:52 supernovus It appears perlcabal is down, at least from where I'm at. Is there an indexOf equivilent in Array?
22:53 tadzik supernovus! \o/
22:53 tadzik no, I don't think there's one
22:53 supernovus Darn, I hate having to create a loop just to find the index of an element in an array. Maybe I should add indexof to the spec ;-)
22:58 tadzik :)
22:58 gfldex it's indeed a little odd to have splice require an index but no method that can give you one
23:03 supernovus Ah well, a manual loop will do for now.
23:04 sorear there's always .kv.first({ .value == foo }).key
23:05 supernovus Project xyzzy coming up shortly. My own take on text adventures in Perl 6. For no reason but for fun :-)
23:07 [Coke] MikeFair: it's not "nqp::getinterp__P()", but pir::
23:07 supernovus Anyway, time to go for now, have a good * all!
23:08 TimToady good night  #OK timezone
23:09 [Coke] adios, TimToady.
23:09 TimToady I'm not going away!
23:17 MikeFair [Coke]: Thanks!
23:17 simcop2387 joined #perl6
23:18 MikeFair [Coke]: I think I eventually discovered that, but it's not working even then, I think the real culprit is stdout_handle instead of stdhandle(1)
23:18 * [Coke] tries to crawl out of the skyrim hole.
23:18 diakopter [Coke]: what's skyrim? something I should look into?
23:20 [Coke] diakopter: RPG game that came out last year. I finally got around to playing it. I finally managed to pull myself away from the screen a little while ago.
23:20 * [Coke] wonders if any NQP people are about.
23:20 diakopter hm
23:20 diakopter I've never tried an RPG
23:20 diakopter I'm deprived
23:37 MikeFair [Coke]: Other than those that are stumbling their way through and getty bloody as it goes along?  I can't tell
23:37 lichtkind good night
23:38 sorear [Coke]: jnthn is sick I hear
23:38 sorear MikeFair: are you still having problems post-moritz?  I might be able to help
23:43 MikeFair sorear: Well I'm now to the point of being able to build and test
23:43 MikeFair sorear: So that's great!
23:44 cognominal joined #perl6
23:56 * [Coke] wonders what the replacement for PAST::Op(:pirop) is.
23:56 [Coke] QAST::Op(:name) ?
23:56 jaldhar joined #perl6
23:57 sorear [Coke]: look at what rakudo does for pir::foo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo