Camelia, the Perl 6 bug

IRC log for #parrot, 2009-11-24

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 pmichaud japhb: it's following the Perl 6 specification
00:10 japhb Really?  I'll be darned.  Is that to put decimal in line with other bases (which are often specified in unsigned form)?
00:14 pmichaud well, the spec recently changed
00:14 pmichaud so that now +\- is part of number parsing
00:14 pmichaud so NQP will likely follow suit
00:15 PerlJam Where is the method control on PAST::Blocks documented?
00:15 pmichaud ...method control?
00:15 pmichaud oh, .control
00:15 pmichaud it might not be documented yet.
00:15 pmichaud basically it sets a control handler for the block
00:15 PerlJam it's not in pdd26
00:16 Coke PerlJam++
00:16 Coke pmichaud++
00:16 pmichaud the special value 'return_pir'  simply adds PIR code to catch return exceptions and return the payload
00:17 pmichaud looks like +\- was added to number parsing on Nov 18
00:18 * Coke adds a test to partcl-nqp to make sure we don't regress on the if {$a==} test...
00:19 pmichaud what problem was the .nows supposed to fix in partcl expr handling?  I forget.
00:19 pmichaud oh, is wb<0>
00:19 pmichaud that's the default in the new version
00:19 pmichaud at least, it should be the default.
00:20 Coke pmichaud: puts [expr 2eq3] ?
00:20 Coke er, this one:
00:20 Coke puts [expr 2eq 3]
00:21 Coke (all other whitespace combos seem to work.
00:22 pmichaud looking.
00:25 PerlJam puts [expr 2 eq3]  does ... interesting things.
00:25 Coke WOOF.
00:25 Coke must have missed that one. =-)
00:25 Coke PerlJam++
00:27 Coke if I want a copy instead of an assignment in NQP... ?
00:27 pmichaud pir::copy
00:27 pmichaud probably pir::copy__PP for now -- I'll add it so the __PP isn't needed.
00:27 pmichaud (also note that NQP doesn't do assignment, only set/bind)
00:28 abqar joined #parrot
00:28 Coke er, yes.
00:30 pmichaud > puts [expr 2eq 3]
00:30 pmichaud 0
00:30 pmichaud > puts [expr 2 eq3]
00:30 pmichaud 0
00:31 pmichaud > puts [expr 3 eq3]
00:31 pmichaud 1
00:31 Coke is that with a local fix?
00:31 pmichaud yes.
00:31 Coke +1
00:31 purl 1
00:31 pmichaud pushed.
00:31 pmichaud I guess I should eliminate the item from TODO, also
00:32 plobsing joined #parrot
00:32 pmichaud TODO pushed.
00:33 Coke I think I have something close on <global>
00:34 pmichaud are you switching set() to use copy instead of bind?
00:34 nopaste "coke" at 72.228.52.192 pasted "close but no cigarillo." (17 lines) at http://nopaste.snit.ch/18822
00:34 pmichaud while %LEXPAD.outer {
00:34 pmichaud %LEXPAD := %LEXPAD.outer;
00:34 pmichaud }
00:35 pmichaud infinite loop
00:35 purl see infinite regress
00:35 pmichaud currently I have the outermost lexpad pointing to itself.
00:35 Coke whoops.
00:35 pmichaud but that doesn't quite fit my conception of how it should work
00:35 pmichaud just a sec
00:36 pmichaud (checking tcl specs)
00:36 pmichaud I think that global should create entries in the current lexpad that are bound to the corresponding PMCs of the global lexpad
00:37 pmichaud and then set($var, $value)  should generally use copy instead of binding
00:37 Coke ... I thought that was what I was doing there. =-)
00:37 pmichaud oh, you're right.
00:38 Coke (changed it to     while %LEXPAD.outer != %LEXPAD.outer {
00:38 Coke ... er..
00:38 pmichaud that's not likely to help either
00:38 Coke while %LEXPAD != %LEXPAD.outer {
00:38 pmichaud that either, since you're essentially comparing two Hashes :-(
00:38 pmichaud probably want !=:=   but NQP doesn't implement that yet
00:38 pmichaud still easier would be to make LexPad #0 always available somewhere.
00:39 pmichaud instead of following the chain of outers
00:39 Coke Sure.
00:39 pmichaud unless there are multiple globals
00:39 Coke per-interpreter, perhaps.
00:39 pmichaud (e.g., with namespaces -- I haven't investigated tcl namespaces yet)
00:39 tetragon joined #parrot
00:39 pmichaud src/PmTcl.pir is the code that sets up the global lexpad
00:39 pmichaud you could just bind it into a package or global symbol somewhere
00:40 pmichaud my suggestion would be to add
00:40 Coke set_hll_global '%GLOBALS', lexpad
00:40 Coke ?
00:40 pmichaud yeah
00:40 pmichaud exactly
00:40 pmichaud then in global(), you can do    our %GLOBALS
00:40 pmichaud and it'll be the same one
00:41 Coke do I need to bind it? or just declare it?
00:41 pmichaud just declare it.
00:41 pmichaud (set_hll_global '%GLOBALS'  does the binding)
00:41 pmichaud (our %GLOBALS just says that %GLOBALS is a package var)
00:47 Coke ok. global is now trying to do the right thing, apparently not finding the var. (I'm getting an empty string back trying to dump the value...)
00:48 pmichaud I suspect the var has to be vivified somehow in the global lexpad
00:48 Coke I am doing "set a 2" in the outermost scope.
00:48 pmichaud maybe push what you have already, so I can look?  or nopaste the diff somewhere?
00:48 Coke not sure if that's really the same lexpad I should be looking at.
00:48 pmichaud it should, yes.
00:49 nopaste "coke" at 72.228.52.192 pasted "pmichaud++" (49 lines) at http://nopaste.snit.ch/18823
00:49 Coke (I had just split the bindingt into 2 lines on the off chance that mattered.)
00:50 pmichaud oh
00:50 pmichaud not %GLOBALS<$_>
00:50 pmichaud you want %GLOBALS{$_}
00:50 pmichaud and %CUR_LEXPAD{$_}
00:50 Coke [:facepalm:]
00:51 Coke pmichaud++
00:51 pmichaud it works?
00:52 Coke ayup.
00:52 pmichaud \o/
00:52 pmichaud I might've implemented [globals] in terms of [upvar]  though :-)
00:53 Coke fair enough... until someone redefines upvar on you. =-)
00:53 dalek TT #1329 created by plobsing++: [PATCH] extend scope of t/codingstd/c_indent.t
00:54 pmichaud well, I had also been thinking of keeping "pure" versions in a namespace somewhere
00:55 pmichaud anyway, nice work on [global]
00:56 pmichaud I can probably get  uplevel #0 {code} to work pretty simply
00:57 Coke I'm trying to get a test for the global before committing... moment.
00:59 Coke pushed
01:00 nopaste "pmichaud" at 72.181.176.220 pasted "uplevel #nn {code} for Coke" (17 lines) at http://nopaste.snit.ch/18824
01:00 pmichaud gotta run to the store
01:00 pmichaud bbi30ish
01:05 payload joined #parrot
01:20 bogen joined #parrot
01:26 Coke how to know if an optional arg was passed into nqp?
01:26 Coke (nevermind, I can do it manually)
01:34 kid51 joined #parrot
02:34 JimmyZ joined #parrot
02:57 dalek TT #1330 created by plobsing++: [PATCH] deprecate "v" to denote empty nci pararameter list
03:01 cconstantine joined #parrot
03:07 dalek rakudo: 0a61bee | (Kyle Hasselbacher)++ | build/gen_parrot.pl:
03:07 dalek rakudo: Make gen_parrot.pl die more gracefully, thanks to Timothy Bollman
03:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​a61bee23f0f02a19fb192790385d084d47c1024
04:52 davidfetter joined #parrot
05:19 uniejo joined #parrot
05:48 xenoterracide joined #parrot
07:04 uniejo joined #parrot
07:20 payload joined #parrot
07:28 fperrad joined #parrot
07:30 fperrad_ joined #parrot
07:33 TiMBuS joined #parrot
08:18 iblechbot joined #parrot
08:23 riffraff joined #parrot
09:45 szabgab joined #parrot
09:51 abqar joined #parrot
10:05 dalek parrot: r42796 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
10:05 dalek parrot: [distutils] now installables are striped
10:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42796/
10:07 shockwave joined #parrot
10:08 shockwave Hi
10:08 purl hola, shockwave.
10:09 shockwave I was reading here about the Parrot debugger: http://www.parrotcode.org/docs/debugger.html
10:09 Taulmarill joined #parrot
10:09 shockwave this other page mentioned that it was being fused with parrot: http://en.wikibooks.org/wiki/Parrot_​Virtual_Machine/The_Parrot_Debugger
10:09 shockwave Can anyone tell me the current status of the debugger?
10:10 shockwave I don't actually need to use it. I working on the semantic analysis of my language now. I'm just curious.
10:14 moritz I think dukeleto++ put a lot of work into the debugger
10:15 moritz shockwave: maybe ask him when he's around
10:15 shockwave moritz, Ok, thanks.
10:54 zak_ joined #parrot
11:02 lucian joined #parrot
11:07 mikehh joined #parrot
11:08 mikehh messages
11:09 jsut_ joined #parrot
11:32 JimmyZ joined #parrot
11:44 theory joined #parrot
11:57 whiteknight joined #parrot
11:58 cconstantine joined #parrot
11:59 whiteknight good morning #parrot
12:04 cognominal joined #parrot
12:12 Taulmarill joined #parrot
12:16 mikehh All tests PASS (pre/post-config, smoke (#30152), fulltest) at r42796 - Ubuntu 9.10 amd64 (g++ with --optimize)
12:27 bluescreen joined #parrot
12:36 ruoso joined #parrot
12:38 JimmyZ joined #parrot
12:50 masak joined #parrot
12:56 davidfetter joined #parrot
12:59 gaz joined #parrot
13:08 Coke ovid++ #cobol
13:11 davidfetter http://parrot.privatepaste.com/2d905e0566
13:12 Coke dcolish?
13:12 Coke duncan?
13:12 purl i think duncan is mailto:duncan@thorn.net
13:13 moritz dduncan?
13:13 purl well, dduncan is using them anyway or Indiana Jones
13:13 plobsing joined #parrot
13:14 davidfetter Coke, dcolish is daniel colish. grad student in portland
13:15 plobsing hi #parrot
13:18 Coke moritz, davidfetter, danke.
13:18 davidfetter bitte :)
13:22 whiteknight good morning everybody
13:22 plobsing hi whiteknight
13:22 dalek parrot-linear-algebra: 8edd836 | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
13:22 dalek parrot-linear-algebra: Some refactors to ComplexMatrix2D. Untested
13:22 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/8edd836d0bbf8d8f7a330e23e4d3eec078a99566
13:22 dalek parrot-linear-algebra: 2bbe500 | Whiteknight++ | t/complexmatrix.t:
13:22 dalek parrot-linear-algebra: Add several test stubs for complexmatrix.t, and add a test for iterate_method_inplace
13:22 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/2bbe5003a412a4ce68967d218b909c1ea41062c2
13:23 whiteknight hello plobsing
13:23 plobsing i've given up my plan to write a lorito prototype
13:24 plobsing after asking a couple questions, i realize that lorito isn't (just) about jit
13:24 plobsing its so much more
13:24 plobsing I was just coming at it from the JIT angle
13:24 whiteknight what else do you mean?
13:26 plobsing it seems to me its more about internal optimization and not using C for most stuff
13:27 plobsing like not having to cross pcc-c barriers so often
13:27 plobsing and various optimizations not offered by available C compilers
13:48 Coke (not crossing pcc/c barriers) that was a big item, yes.
13:53 iblechbot joined #parrot
14:00 dalek matrixy: dbf7de5 | Whiteknight++ | .gitignore:
14:00 dalek matrixy: add a .gitignore file with some common stuff
14:00 dalek matrixy: review: http://github.com/Whiteknight/matrixy/commi​t/dbf7de5207b9c0d668475503365a6e9935c2d83c
14:00 dalek matrixy: e1bf102 | Whiteknight++ |  (4 files):
14:00 dalek matrixy: remove some old diagnostics messages. Brute-force a solution to abs.t. One test fails on comparison between NumMatrix2D, ComplexMatrix2D
14:00 dalek matrixy: review: http://github.com/Whiteknight/matrixy/commi​t/e1bf102f155b192e93ddc1e66f71f6514ffcef66
14:10 whiteknight plobsing: you're right about the barrier-crossing optimizations. Those are a nice benefit
14:11 whiteknight I had been sort of ignoring them for now, looking for a naive and simple initial approach to get JIT working
14:11 whiteknight but then again, it probably doesn't make any sense to be too naive about it all
14:11 whiteknight probably better to just do it right the first time
14:19 Coke whiteknight: well, we missed that chance. =-)
14:20 Coke let's do it right this time, though. =-)
14:20 Coke when's that kid gonna pop?
14:20 whiteknight the kid was due 4 days ago
14:20 whiteknight so "any minute now"
14:20 whiteknight and he's going right to his room for being late
14:21 Coke is there a "that's it, we're going in" cutoff date?
14:21 whiteknight I really don't know. If my wife had her way, that would have been about a month ago
14:21 Coke heh. my first was a month early. we naively expected he'd show up on time.
14:22 Coke pro tip: get a good night's sleep for as long as you can. =-)
14:26 * Coke sees Dan comment on a parrot post.
14:26 * Coke goes, "whoa."
14:29 PerlJam Coke: which post would that be?
14:29 whiteknight link?
14:29 purl or "Link is ... like ... this pointy eared goblin that walks around in midi-music land with a letter opener attacking circles and things and wooing princesses but not bannon, you know?" or preaction is Error.
14:32 Coke facebook.
14:32 purl facebook is probably a  social networking site used at most large universities or about 30% less annoying than myspace or too high friction to be really useful or http://i174.photobucket.com/album​s/w89/pickledpizza/facebook2.jpg or a high school reunion where you can weed out the losers.  Venue still sucks, though or failbook or assbook or a broken, glorified telephone
14:33 Coke in response to ovid's tweet/post about making money by doing cobol on parrot.
14:33 fperrad joined #parrot
14:33 Coke (basically a thumbs up)
14:34 whiteknight Austin had that same exact idea back at YAPC
14:34 pmichaud good morning
14:34 whiteknight I started writing a COBOL grammar at one point, but I didn't want to waste the several years of my life to do it
14:35 whiteknight good morning pmichaud
14:35 pmichaud whiteknight: did you happen to see the discussion chromatic and I had last week about compilation performance and gc ?
14:36 Taulmarill left #parrot
14:36 pmichaud http://irclog.perlgeek.de/p​arrot/2009-11-20#i_1751189   # start of thread
14:38 Tene whiteknight: I was three weeks overdue. :)
14:40 pmichaud I was six.
14:40 whiteknight pmichaud: no, I haven't seen that thread
14:41 Coke pmichaud: holy crap.
14:41 purl only in the Vatican, my friend
14:41 whiteknight luckily for my wife, I think the doctors are going to induce earlier then 6 weeks overdue
14:42 Coke pitocin?
14:42 fperrad_ joined #parrot
14:42 Tene My mother allegedly climbed a mountain at two weeks, hoping to induce labor.
14:42 Coke (just seeing if purl had something witty to say.)
14:42 Coke (JFP)
14:44 whiteknight pmichaud: Really outlines the need for a proper generational GC. a stable set of "old" PMCs (mostly Captures in your example) wouldn't need to get marked so often
14:45 whiteknight of course there is added complexity of maintaining inter-generational pointer lists, but that should not be too bad in comparison
14:56 cognominal joined #parrot
15:07 fperrad joined #parrot
15:08 cognominal joined #parrot
15:09 bubaflub joined #parrot
15:11 Psyche^ joined #parrot
15:13 * Coke wonders if perl6-internals is forwarding to parrot-dev.
15:15 fperrad_ joined #parrot
15:17 Coke (or, "did anyone else see ovid's post?)
15:19 allison Coke: I got ovid's post
15:19 allison Coke: but not as a forward, I'm still subscribed
15:22 dalek nqp-rx: 0ce5b09 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
15:22 dalek nqp-rx: Automatically add � lexical to regex blocks.
15:22 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​ce5b09ac6966b46574f48615b0e2d3a6d1b8630
15:27 Coke I thought we had already killed that list.
15:27 Coke is that a cent sign?
15:28 allison I think we left it up for a while because RT was still forwarding to it. Can be killed off now.
15:33 Tene Yes.
15:33 particle Coke: yes, that's dollar-cent
15:35 Coke is it a Perl6 thing? I don't see anything matching 'cent' in pugs/docs/Perl6
15:37 whiteknight if there's any reason in the world why I wouldn't use Perl6, it's because my keyboard just doesn't support it
15:40 moritz Coke: it's an internal thing, mostly
15:40 moritz Coke: and something the end-user won't see
15:40 moritz unless he pokes into the guts of the regex engine
15:40 Coke so, rakudo-only-internals?
15:41 moritz STD.pm uses the same thing
15:41 Coke so it's standard, then, and should be documented? =-)
15:41 Coke (even if obscure?)
15:41 moritz probably
15:42 particle it's not in S05?
15:45 Coke particle: possible. I don't see the english text "cent" in there, but as just mentioned on #perl6, I can't do much with utf-8 at the moment.
15:49 dalek winxed: r205 | julian.notfound++ | trunk/winxed.winxed:
15:49 dalek winxed: options -L and -I in compiler driver
15:49 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=205
15:58 dalek winxed: r206 | julian.notfound++ | trunk/examples/parser.winxed:
15:58 dalek winxed: a bunch of cleaning, refactor and improvements in example parser
15:58 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=206
16:04 cosimo joined #parrot
16:08 Coke pmichaud: I have a lot of code in runtime/builtins/*.pir to handle argument processing. can NQP help out with that, or am i basically going to have to reroll the pIR into NQP?
16:08 Coke (since parrot doesn't really support rolling your own argument processing (perhaps after callsig, maybe)
16:08 pmichaud Coke: I'm not sure I understand the question fully (more)
16:08 pmichaud You can either use the PIR, or you can rewrite the code into NQP, or you can do a mixture of the two.
16:09 Coke right, I was hoping for something more syntactical.
16:10 Coke (basically, all of the tcl stuff uses *@args and hand-rolls the checks.
16:10 pmichaud I'm not sure what you mean by "more syntactical"
16:10 Coke pmichaud: I do not wish to write code.
16:11 Coke perhaps more declarative would be a better choice of words.
16:11 Tene whiteknight: your OS doesn't provide extra support in typing characters not printed on the keys?
16:12 * Coke uses character map for that on windows, and ... the similarly named thing on os x.
16:13 pmichaud Coke: do you have a more specific example (from builtins/*.pir) that can explain what you're looking for?
16:13 whiteknight Tene: it does, but that's still obnoxious
16:13 pmichaud oh!
16:13 pmichaud or are you asking if you can have signatures ?
16:13 whiteknight and I'm not going to open character map and type out a bunch of U+ codes just to write a simple program
16:14 Tene whiteknight: in vim, I just type ^KCt
16:16 bogen left #parrot
16:16 Coke http://github.com/partcl/partcl/bl​ob/master/runtime/builtin/set.pir
16:16 Coke set takes a varname and an optional value. I have to hand-roll all that code to get the right error message.
16:16 whiteknight Tene: if Vim is the solution, I would rather stick with the problem
16:16 Coke brb.
16:16 pmichaud Coke: right... I think you're looking for multisubs and smart dispatch
16:17 Coke pmichaud: tcl doesn't have multisubs.
16:17 Coke and even if it did, I'd then need to override the error generated by an invalid MMD.
16:17 pmichaud right
16:17 Coke if I have to override the error /anyway/, why not just do it once?
16:17 pmichaud so, how does tcl do its argument processing ?
16:18 Coke no clue. brb.
16:19 Coke joined #parrot
16:19 Tene whiteknight: anywhere else, I just type Compose,c,|
16:19 Coke back
16:19 Coke moritz++ #utf-8 help.
16:20 pmichaud Coke: however tcl does its native argument processing -- we should probably be doing the same
16:20 * pmichaud reads a bit more tcl spec
16:20 Coke pmichaud: except for the fact that we're running on top of parrot, sure.
16:20 Coke I don't think you'll find that in the spec.
16:20 pmichaud Coke: well, something in Tcl is able to take a list of arguments and easily filter it out into the various option processing things
16:21 pmichaud it's like a tcl-specific version of getopts
16:21 Coke pmichaud: I've already written that.
16:21 Coke in pir.
16:21 pmichaud can't the builtins just use that?
16:21 pmichaud the set code you pointed me to looks... set-specific.
16:22 Coke those aren't options.
16:22 Coke so, yes, i can refactor my code to do all that myself.
16:22 Coke but I already /have/ all that code.
16:22 pmichaud if you're asking whether we can switch nqp to use the builtins you've already written, the answer is yes
16:23 Coke no.
16:23 Coke I'm asking if nqp provides anything that would let me avoid writing that as handrolled code in the first place.
16:23 pmichaud well, nqp just follows what Perl 6 does, and in Perl 6 those would be multis
16:23 pmichaud so short answer appears to be "no"
16:23 Coke Danke.
16:24 pmichaud that said, it shouldn't be hard to write a couple of helper routines to make it much simpler
16:24 pmichaud i.e., to hopefully more closely follow whatever Tcl does
16:26 Coke pmichaud: tcl appears to have it handrolled for set:
16:26 Coke http://tcl.cvs.sourceforge.net/viewvc/tcl/tcl/gen​eric/tclVar.c?revision=1.73.2.61&amp;view=markup , line 1453.
16:27 Coke "do we have 2 args?" (really 1, assuming there's an interp in there.), do we have 3 (really 2), oh, die with error message.
16:27 pmichaud Coke: I agree, it appears handrolled.
16:27 dalek winxed: r207 | julian.notfound++ | trunk/ (11 files):
16:27 dalek winxed: Backward incompatible syntax change: arguments for init require parentheses in
16:27 dalek winxed: pmc style new, and parentheses are mandatory in class style new
16:27 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=207
16:28 Coke I would vastly prefer to use the NQP-style sub declarations and override the error message. I could use :callsig, but I'm not sure that buys me anything for such simple examples.
16:29 pmichaud I don't think you need callsig here anyway
16:29 pmichaud if you have
16:29 pmichaud our sub set($var, $value, *@args) { ... }
16:29 Coke and then die if args is defined. that works for this simple case, yes.
16:29 pmichaud then you can throw an error if @args > 0
16:30 Coke that fails for things like puts.
16:30 * pmichaud re-reads puts
16:30 Coke whose signature has 1, 2, or 3 args, and the 2 arg version could be either a channel or an option as the first arg.
16:31 Coke you cannot define a user-defined proc to do that except by handrolling, mind you.
16:31 pmichaud right.
16:31 Coke so it's all a little squishy.
16:31 pmichaud in that case I think it pretty much needs to be    sub puts(*@args) { ... }    and you just pick out the args yourself
16:32 pmichaud note that I had to do this for   sub if()
16:32 Coke yup, which is exactly how the pir version are written.
16:32 Coke pmichaud: yah, if is one of the worst in that regard. =-)
16:32 pmichaud but if wasn't so bad in nqp
16:32 payload joined #parrot
16:32 Coke pmichaud: well, the PIR version is probably doing more atm.
16:33 Coke we'll compare it again once we're passing t/cmd_if.t =-)
16:33 * Coke wonders what the next big stumble was.
16:33 Coke wasn't [regexp] going to require some nqp changes?
16:33 pmichaud I'm pretty sure that the version of 'if' I have is reasonably complete, except for error handling.
16:33 pmichaud but even then error handling should be pretty straightforward.
16:34 Coke (one can hope =-)
16:35 pmichaud [regexp] needs an implementation of p5 regexes, I bet.
16:35 zak_ joined #parrot
16:36 Coke I'd prefer Tcl =) (seriously, p5 is going to be much closer than the p6 stuff.)
16:36 pmichaud oh, yes, we could go ahead and write the Tcl variant directly
16:36 Coke but for today, even having the p6 stuff /might/ be sufficient.
16:36 Coke http://www.tcl.tk/man/tcl8.5/TclCmd/re_syntax.htm
16:36 PerlJam pm: check out the options to switch -- http://tmml.sourceforge.net/doc/tcl/switch.html
16:37 Coke PerlJam: the option parsing there is one of the things that I wrote for partcl.
16:37 Coke (so you can use something like getopt to handle those.)
16:38 dalek parrot: r42797 | fperrad++ | trunk/tools/dev/mk_language_shell.pl:
16:38 dalek parrot: [languages] fix templates
16:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42797/
16:38 Coke pmichaud: (tcl variant) Any idea how much work that is?
16:38 pmichaud Coke: I'm guessing not too much
16:38 pmichaud (for me, of course)
16:39 Coke biggest issue I see is that tcl's re syntax is really 3 different syntaxes
16:39 PerlJam Coke: (I half expect that pm has it already mostly done and is just waiting for the proper moment to spring it on you  ;)
16:39 Coke PerlJam: heh.
16:39 patspam joined #parrot
16:41 gaz joined #parrot
16:41 * Coke wonders if stuff written with nqp-rx will be amenable to mod_parrotization.
16:41 PerlJam Coke: re the 3 different syntaxs ... are you referring to the different "flavors"?
16:42 PerlJam (i.e. posix REs, extended REs, and advanced REs)
16:43 jsut joined #parrot
16:45 pmichaud no, I don't have it mostly done yet.
16:48 Tene Coke: can you ask a more-specific question about nqp-rx and mod_parrot?
16:53 dalek nqp-rx: fb49c3e | pmichaud++ | src/NQP/ (2 files):
16:53 dalek nqp-rx: Treat leading '-' as part of numeric literals.
16:53 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​b49c3e2193f1411602242fd70e5172120766c4c
16:53 dalek nqp-rx: fafe401 | pmichaud++ | src/Regex/P6Regex/Grammar.pm:
16:53 dalek nqp-rx: Add error message on incorrect range quantifiers.
16:53 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​afe4017220f1cf02c0b7da93655e9e8250beb24
16:53 dalek nqp-rx: d982340 | pmichaud++ | src/stage0/ (3 files):
16:53 dalek nqp-rx: Update bootstrap.
16:53 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​982340847622c12cd52432b19050b9cc8eec681
16:56 Coke PerlJam: yes.
16:56 Coke Tene: no
16:56 Tene ... okay.
16:57 Tene :)
16:57 Coke I can be more verbose, though; at one point, hlls using pct were basically "mod_parrot-ready". i am wondering if partcl, if the -nqp variant replaces the current version, will have the same benefit.
16:57 dalek parrot-linear-algebra: c4cd881 | Whiteknight++ |  (9 files):
16:57 dalek parrot-linear-algebra: move the tests for pmc types into the t/pmc/ folder. Break the tests apart so we only run these tests if the sanity tests pass
16:57 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/c4cd8813ff17d80cac31ee11814a0b864e33608e
16:58 Tene There were problems using mod_parrot earlier with partcl?
16:58 PerlJam Coke: how do you syntactically distinguish between them?  (e.g., in a command that takes a RE, how do you tell it which syntax to use for your RE?  Or do some commands take one RE flavor and others take another?)
16:58 Coke tene, sfaik, it never worked, yes.
16:58 pmichaud afaik, the -nqp version of partcl should be much more amenable to working with mod_parrot
16:58 dalek parrot: r42798 | pmichaud++ | failed to fetch changeset:
16:58 dalek parrot: [nqp]:  Update with latest fixes to �, 1..x, negative literals.
16:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42798/
16:58 pmichaud perhaps even "seamless"
16:59 PerlJam has anyone written a mod_parrot thing that uses the new NQP?
16:59 Tene PerlJam: No.
16:59 pmichaud PerlJam: you mean written mod_parrot with NQP, or that uses NQP?
16:59 Tene Coke: Yes, I expect the nqp version of tcl should run fine on mod_parrot.
17:00 pmichaud note that for most HLLs, once compiled the "NQP" part disappears.
17:00 Tene I'd be very surprised if nqp-rx was different from nqp in terms of mod_parrot issues.
17:00 pmichaud same.
17:00 iblechbot joined #parrot
17:00 Tene Not quite shocked, but very surprised.
17:01 pmichaud at the moment the compilers built with NQP still just create instances of PCT::HLLCompiler and use that interface
17:01 Coke PerlJam: ... I thought that was mentioned in the regexp docs at one point. hurm.
17:01 pmichaud Coke: my guess is that we just create an ARE compiler in partcl
17:02 PerlJam pmichaud: that's what I would think
17:02 pmichaud not trivial... but certainly doable and doesn't require much PIR
17:03 Tene Coke: if you're interested in mod_parrot experimentation, I'd love to help you over the long weekend. :)
17:05 Coke pmichaud: ARE should certainly be the default.
17:05 Coke (trying to figure out if you can even use the others anymore.)
17:06 Coke ah. (?b) = rest of RE is a BRE, (?e) rest of RE is an ERE
17:06 pmichaud so, they all start out as ARE, but can switch to BRE/ERE in the middle
17:07 Coke right.
17:08 Coke sounds almost sixian.
17:09 Coke pmichaud: if you can get me something that does, e.g. literal atoms and a quantifier or two, I can work on expanding it.
17:09 pmichaud Coke: I can do that.
17:09 pmichaud Coke: I can do a bit more than that...    probably not until much later today though
17:09 Coke I'll gladly take as many tuits as you offer. =-)
17:11 Coke PerlJam: if you're bored, catch is basically just eval with an exception handler. =-)
17:12 * PerlJam has no clue how to do exception handling.
17:12 pmichaud ...yeah,  NQP really wants 'try' implemented.  :)
17:12 pmichaud it can be done with Q:PIR, though.  :-)
17:13 Coke (I'd point you at catch.pir in partcl, but it probably has been converted to use HLL macros.)
17:13 PerlJam break/continue would seem simpler from my position of ignorance :)
17:14 Coke sure. those are mainly just copies of return.
17:14 Tene pmichaud: I can do try in NQP for you.
17:14 Coke (also error)
17:14 PerlJam Tene++
17:14 Tene pmichaud: do you want catch too?
17:15 cognominal_ joined #parrot
17:16 pmichaud Tene: I'd happily review a patch :-)
17:16 pmichaud (yes, please)
17:16 Coke pmichaud: btw, I never applied your uplevel patch.
17:16 Coke (figured you could have the karma - looked reasonable.)
17:16 pmichaud Coke: I'm not even sure where it is right now :-)
17:17 Tene pmichaud: give me an nqp snippet that you'd like me to make work.
17:17 Coke pmichaud: I'll see if I can track it down.
17:17 * PerlJam bets that tcl AREs could be built by cribbing bunches of Regex/P6Regex/Grammar.pm
17:17 pmichaud PerlJam: you're correct.
17:18 pmichaud Tene: I haven't even gotten that far yet
17:18 PerlJam for some reason I was mildly surprised that P6Regex were defined in Perl 6  :)
17:18 Coke pmichaud: huh. already applied. Danke.
17:18 pmichaud Coke: oh, I must've applied it w/o knowing about it then
17:18 dalek parrot: r42799 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
17:18 dalek parrot: [distutils] _has_strip checks custom cflags
17:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42799/
17:18 Coke pmichaud++ # magic code from nowhere.
17:18 PerlJam pmichaud: applying patches in your sleep?
17:18 pmichaud Tene: in the simplest case, we want   try { ... }   to catch any non-control exceptions, just like P6
17:19 pmichaud I'm not sure what to do with them, though.
17:19 Coke I would imagine that try{} by itself would just eat the exception.
17:19 pmichaud yeah, it's the CATCH that's the tricky part.
17:20 Coke you can define exception handlers that only take a certain type. I dont know if you can define them to only take NOt a certain type.
17:20 Coke (in parrot)
17:23 Coke pmichaud: regarding "default values for args to proc" - I think that the string of arg info is being split on whitespace instead of "into words". (I think that explains the oddness on the "required args" error message.)
17:25 pmichaud Coke: I don't follow the question
17:25 Coke implied, "does my analysis look right to you"
17:25 Coke the followup being, "I wonder how to change that" =-)
17:26 Coke (the args to a proc is a list. if one element of the list is itself a list with two elements, the first is the var name and the second is the default value if it wasn't passed)
17:26 pmichaud oh, right.
17:26 pmichaud yes.
17:26 Coke aha!
17:27 Coke and looking at the code (should have done), you are doing a split. muahaha.
17:27 Coke I might be able to fix that..
17:30 PerlJam making a real list data type sounds useful  :)
17:31 Coke PerlJam: well, we have that in partcl. I am not sure which parts of it matter in -nqp.
17:31 Coke (the biggest bits being stringification and listification)
17:32 Tene Coke: you can define EHs that take all types except those specified.
17:33 Coke Tene: ah, so there you go, just avoid control-type exceptions.
17:33 Tene pmichaud: CATCH is pretty easy.  Just stuff the block into the 'control' attribute of the block it's in.
17:33 Coke tene++
17:33 pmichaud Tene: I'm more interested in where we stick the exception.
17:33 Tene Ah.
17:34 pmichaud Tene: but I'd be very happy with a version of try/CATCH that doesn't worry about where to put the exception yet :)
17:35 Coke hurm. I see in "our sub proc" where the variables are declared for the block. looking at parrot's PAST/Compiler.pir, I don't see an option to Var to say "and here's the default."
17:36 pmichaud Coke: viviself
17:36 purl well, viviself is certain to get run?
17:37 Coke will that only set a value if none was provided?
17:38 pmichaud for variables of :scope('parameter'), yes.
17:38 pmichaud oh, in some other cases too.
17:38 pmichaud basically :viviself says how to vivify the variable if it doesn't already exist.
17:39 pmichaud ...and it can be any PAST tree
17:39 Coke can it be a string literal?
17:39 dalek parrot: r42800 | pmichaud++ | failed to fetch changeset:
17:39 dalek parrot: [nqp]:  Latest fixes to $/, $�, and match handling.
17:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42800/
17:39 pmichaud yes.
17:39 pmichaud (string and numeric literals in PAST trees are treated as PAST::Val nodes)
17:40 pmichaud lunch needed here -- bbiah
17:40 cotto pmichaud, is "for 1 .. 10 { ... }" planned for nqp-rx?
17:41 pmichaud cotto: 'for' already exists
17:41 pmichaud cotto: the question is what NQP should do about the non-existent range type
17:41 pmichaud (since Parrot doesn't have ranges)
17:42 cotto sounds like a feature request
17:43 Tene pmichaud: 'try' is statement-control or statement_prefix?
17:44 Tene Hmm.  Looks like the former.
17:44 Coke PAST::Var.new( :scope<parameter>, :viviself<@argument[1]> )
17:44 Coke I presume I'm abusing the syntax horribly there.
17:44 pmichaud viviself(@argument[1])
17:44 pmichaud <...>  is a literal
17:45 pmichaud <@foo>  is literal ('foo')
17:45 pmichaud er,
17:45 pmichaud drat
17:45 pmichaud <@foo>  is literal ('@foo')
17:45 pmichaud cotto: I suppose that NQP could treat $start..$end (infix:<..>)  as a request to build an RPA from $start to $end
17:46 Coke ok. that is trying to instantiate a class of type "b" where b was the default value i wanted.
17:46 pmichaud ohhhhh
17:46 pmichaud drat
17:46 Coke so very close. =-)
17:46 pmichaud :viviself handles strings differently, for backwards compatibility reasons
17:46 pmichaud :viviself(PAST::Val( :value(@argument[1]) ))
17:47 pmichaud have to explicitly use a PAST::Val node there (sorry)
17:47 pmichaud er, PAST::Val.new
17:47 pmichaud (I really need lunch)
17:48 Coke pmichaud++ # default values now work.
17:51 pmichaud #ps in 39?
17:52 whiteknight ah right, #ps
17:53 cconstantine_ joined #parrot
17:56 Coke pmichaud, PerlJam: got [llength] and default values for args.
17:56 Coke (both involved 'treating things as lists')
17:56 Coke that leaves catch and regexen as the two big things left.
18:01 dalek winxed: r208 | julian.notfound++ | trunk/examples/parser.winxed:
18:01 dalek winxed: if statement and empty statement, and some changes in code generation in example
18:01 dalek winxed: parser
18:01 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=208
18:01 Coke ... except for all the other small things that are left. I'll update the TODO.
18:02 darbelo joined #parrot
18:03 cotto_work #ps in 30
18:03 cotto_work er, 27
18:03 whiteknight 26.5
18:04 * darbelo cues up the Johnny Cash.
18:06 Coke PerlJam, pmichaud: updated the TODO list for partcl-nqp; some of those are pretty smallish.
18:06 estrabd joined #parrot
18:11 nopaste "tene" at 97.117.77.36 pasted "nqp try (ignores all errors) for pmichaud++" (32 lines) at http://nopaste.snit.ch/18834
18:12 lucian joined #parrot
18:16 nopaste "tene" at 97.117.77.36 pasted "basic try test for nqp" (6 lines) at http://nopaste.snit.ch/18835
18:23 kj joined #parrot
18:30 mikehh #ps time
18:31 cotto_work kinda like business time, but not
18:33 Coke I cannot run the meeting today.
18:34 cognominal joined #parrot
18:35 Coke Tene++
18:36 Coke any parrot commiters want a google wave invite?
18:37 PerlJam I want to know why I have no invites to hand out.
18:38 PerlJam (or if I do, where are they?)
18:38 Tene I've got plenty of invites.
18:38 Coke tene: i would love some help with the partcl-nqp experiment!
18:38 Tene 'kay
18:38 Coke I can make you a collaborator on partcl-nqp if you like.
18:39 Tene Sure.
18:39 Coke "tene" ?
18:39 Coke (github)
18:39 Tene Yes.
18:40 Coke tene: done. check out:
18:40 Coke git clone git@github.com:partcl/partcl-nqp.git
18:47 * allison got the time wrong again
18:48 cotto_work dst--
18:48 Tene Hi allison!  Come rescue me from the mos thorrible #ps ever!
18:49 allison Tene: have we done priority review?
18:50 Tene We solicited recommendations for priorities, and got back "optimization, or turkies"
18:57 Coke can you make a turducken with a parrot?
18:58 * PerlJam doesn't imagine that parrot tastes very good
18:58 dalek tracwiki: v3 | allison++ | DocsTasklist
18:58 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=3&amp;action=diff
18:59 Tene pmichaud: there's a basic 'try' patch for nqp up there, btw.
18:59 PerlJam Coke: Every year I look around for that place I saw that did  Cow(Pig(Turkey(Duck(Shrimp)))) several years ago.   I bet it was a one-time deal.
19:11 gaz joined #parrot
19:21 * Coke ponders creating a Parrot Dev Wave.
19:22 * Coke does so.
19:24 * Tene = tenebrackets@googlewave.com
19:25 Coke tene: done
19:27 Coke pmichaud:
19:27 Coke > puts [set a "foo"]
19:27 Coke extra characters after close-quote at line 1, near "]\n"
19:28 pmichaud oops.
19:28 pmichaud just remove the <.panic's> for now
19:29 pmichaud I forgot about that particular case -- was trying to be a little advanced
19:30 Coke this whole chunK:
19:30 Coke [ <?before \S> <.panic: 'extra characters after close-brace'> ]?
19:30 Coke ?
19:30 Coke (except the other one)
19:32 pmichaud yes
19:33 pmichaud probably need to remove both of them (or comment them out), so that  puts [set a {foo}]   doesn't result in the error either.
19:34 Coke gone.
19:37 Coke with that, partcl's t/tcl_misc.t parses.
19:42 kthakore joined #parrot
19:51 payload joined #parrot
19:52 nopaste "coke" at 72.228.52.192 pasted "why does this always go through the toupper branch, even when invoked with a first arg of "compare" ?" (20 lines) at http://nopaste.snit.ch/18837
19:52 Coke (that's in NQP-rx)
19:53 pmichaud because you're using == instead of eq
19:53 Coke ... if this were written in tcl, I would have tried that first!
19:53 pmichaud (== is numeric compare, eq is string compare)
19:53 cotto_work because... what he said
19:55 Coke does nqp have a < for strings?
19:55 pmichaud lt
19:55 pmichaud same as Perl
19:55 Coke danke
19:55 pmichaud eq ne lt le gt ge
19:55 pmichaud we don't yet have leg or <=> yet but those are likely to be added :)
19:56 * pmichaud goes to look at Tene++'s try/catch patches
19:57 pmichaud Tene: I think that 'try' is a statement prefix now.
19:57 bubaflub left #parrot
19:59 Coke <- idiot.
19:59 Coke ok. two [string] subcommands done.
20:00 Coke PerlJam: your incr code has an MMD failure, methinks.
20:02 cotto_work I'm not seeing anything like what chromatic saw with Capture's mark eating up ~88% of the time.
20:03 pmichaud hmmm
20:03 pmichaud perhaps you could characterize what you do see then?  (when you get a chance -- doesn't have to be immediate)
20:03 Tene Is it allowed to say "try foo();" ?
20:03 pmichaud Tene: yes.
20:03 Tene Okay, I'll change it.
20:08 Coke PerlJam: fixed.
20:08 Coke Tene: the next thing partcl-nqp needs is catch. =-)
20:08 Coke (which is our way of spelling try). no pressure. =-)
20:11 Tene Coke: give me a small tcl snippet and point me at the repo again and I'll do it.
20:13 Coke one thing just occurred to me; you're /not/ trapping control exceptions?
20:14 Coke (I think tcl might need that.)
20:14 cotto_work seen chromatic
20:14 purl chromatic was last seen on #parrot 3 days, 3 hours, 3 minutes and 15 seconds ago, saying: msg kid51 RT #56110 can stay closed.  The final message in RT #60000 can become a new TT.  [Nov 21 17:10:18 2009]
20:16 nopaste "coke" at 72.228.52.192 pasted "for tene++: simple tcl catch samples" (11 lines) at http://nopaste.snit.ch/18838
20:16 mikehh All tests PASS (pre/post-config, smoke (#30160), fulltest) at r42800 - Ubuntu 9.10 amd64 (gcc with --optimize)
20:17 Coke partcl-nqp?
20:17 purl partcl-nqp is at github under partcl/ , nopaste shows the issue.
20:17 Tene Coke: Oh, actually, the patch I pasted does catch control exceptions too.  I'll fix that for nqp also, thanks.
20:17 Coke Tene: well, I /do/ want to catch those. =-)
20:17 Coke but I don't think we need it for right now.
20:17 Tene Well, that's easier then.  That's the default.
20:17 Coke spif
20:18 Coke partcl-nqp is also on github under partcl/partcl-nqp
20:18 purl okay, Coke.
20:18 Coke the numbers there are pulled from:
20:19 Coke http://www.tcl.tk/man/tcl8.5/TclCmd/return.htm#M5
20:19 Coke but at this point, I really just need the "try" aspect.
20:20 Coke no, partcl-nqp is http://github.com/partcl/partcl-nqp
20:20 purl okay, Coke.
20:22 pmichaud try in nqp needs to (as much as possible) match the perl 6 semantics for 'try'
20:23 pmichaud so if p6 doesn't catch control exceptions, then nqp shouldn't.
20:23 dalek winxed: r209 | julian.notfound++ | trunk/winxedst0.cpp:
20:23 dalek winxed: allow more than one parent in class
20:23 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=209
20:24 Coke that's fine for partcl also, I can always implement catch based on tene's work for the builtin try.
20:26 Tene pmichaud: I'm working on it right now... just distracted by work.
20:28 dalek winxed: r210 | julian.notfound++ | trunk/examples/parser.winxed:
20:28 dalek winxed: function args and for in statement in example parser
20:28 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=210
20:35 Coke Tene: added a catch variant that is more like [eval] as a placeholder.
20:35 kurahaupo joined #parrot
20:42 dalek winxed: r211 | julian.notfound++ | trunk/ (3 files):
20:42 dalek winxed: drop from the stage 0 compiler the options now handled by the driver, freeing it
20:42 dalek winxed: of platform dependencies
20:42 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=211
20:43 bluescreen joined #parrot
20:45 gaz joined #parrot
20:52 Coke pmichaud: fyi, partcl-nqp is currently slower than partcl at running t/sanity.t (when running partcl with the -q option to prevent including the stdlib.)
20:52 Coke (only slightly slower.)
20:53 Coke (about .50 for partcl, .55 for partcl-nqp)
21:02 pmichaud Coke: okay, good to know.
21:05 Tene pmichaud: okay, I have a better patch for you now.
21:06 nopaste "tene" at 97.117.77.36 pasted "try patch for nqp-rx for pmichaud" (44 lines) at http://nopaste.snit.ch/18839
21:07 pmichaud Tene: ... that still shows statement_control ?
21:07 joeri joined #parrot
21:07 Tene Oh, you want me to change that too?
21:07 Tene Sure.
21:08 pmichaud +    $past<handlers> := @handlers;
21:09 pmichaud shouldn't that be  $past.handlers(@handlers) ?
21:09 Tene Sure.
21:10 Tene Really, I'd like to be able to autovivify $past<handlers> as an array.  Can I do that?
21:11 pmichaud with pir::vivify, perhaps.
21:11 pmichaud or you could do
21:11 pmichaud oh wait
21:11 pmichaud no
21:11 pmichaud I don't want to be using the hash interface to set PAST node values.
21:11 pmichaud (there's a reason we provide the method interface :-)
21:12 Tene Is there array literal syntax in nqp?  []?
21:12 pmichaud yes
21:12 pmichaud [] creates a RPA
21:12 Tene Okay, great.
21:12 pmichaud so you could do  $past.handlers([ PAST::Control.new(...) ])
21:13 Tene I only set that default if there are no other handlers already present... I'll add CATCH and CONTROL blocks next, if you'd like.
21:13 pmichaud that would be excellent
21:13 dalek tracwiki: v4 | allison++ | DocsTasklist
21:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=4&amp;action=diff
21:13 dalek tracwiki: v5 | allison++ | DocsTasklist
21:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=5&amp;action=diff
21:14 Tene Oh, yay, failure... Method 'isa' not found for invocant of class 'String'
21:16 Tene Ah, I didn't save my grammar changes. :)
21:17 dalek tracwiki: v6 | allison++ | DocsTasklist
21:17 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=6&amp;action=diff
21:18 Tene If we have statement_prefix:try, does that mean we have a postfix form of CATCH?
21:18 Tene foo() CATCH { ... };
21:21 allison msg japhb I put in a start on the API discussion in the doc tasklist
21:21 purl Message for japhb stored.
21:22 japhb allison, nice timing!  I just now got back, haven't even had time to backlog
21:22 Coke allison, pmichaud: going to try to reply to chromatic's message this long weekend.
21:22 allison japhb: :)
21:23 allison japhb: feel free to extend, alter, break into more detailed tasks, etc, I figured it was worth getting a stub in
21:24 japhb allison, thank you, I will, as soon as I get caught up.
21:24 Coke pmichaud: I suspect that if we can duplicate some of the builtins in the Grammar, we'll see a speedup.
21:29 pmichaud Tene: no, CATCH can only be used with the block form
21:30 pmichaud Coke: ... duplicate some of the builtins in the grammar?
21:30 pmichaud oops, have to pick up kid, bbi10
21:30 Tene pmichaud: I'm not quite sure about the semantics of :handlers on PAST::Stmts... if the exception is handled, it returns.
21:30 Tene Which is probably wrong.
21:30 pmichaud Tene: enclose the statement in a block
21:31 Tene Yes, that's what I'm doing.
21:31 pmichaud bbi10
21:32 Coke pmichaud: that is, add protoregex for, e.g. command<for> that do the work of for as part of the grammar.
21:34 nopaste "tene" at 97.117.77.36 pasted "pmichaud: are these semantics right?" (37 lines) at http://nopaste.snit.ch/18840
21:36 nopaste "tene" at 97.117.77.36 pasted "the patch to make that work" (48 lines) at http://nopaste.snit.ch/18841
21:37 zak_ joined #parrot
21:38 pmichaud Coke: you mean precompile for statements instead of doing it dynamically?
21:38 pmichaud er, [for] commands ?
21:39 Coke right.
21:39 Coke (and [while] and a few others.)
21:40 pmichaud that's along the same lines of what I was thinking for [proc]
21:41 Coke pmichaud: turns out we need [regsub] also, btw. but I imagine that's trivial if [regexp] is working.
21:43 pmichaud Coke: in general what I've been thinking of doing is having a way to precompile strings into blocks and refer to them from code directly
21:44 dalek parrot-plumage: f841db9 | japhb++ | :
21:44 dalek parrot-plumage: [METADATA] mt19937 update from fperrad++
21:44 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/f841db9a986647ba10e795b097333d27ceba7a23
21:46 Coke is there a way to copy over lib/test_more.tcl and t/** from partcl ?
21:47 pmichaud Coke: you mean "...and preserve history?"
21:47 Coke "via git", yah.
21:47 Coke as opposed to just doing an offline copy/import.
21:47 pmichaud I imagine there is, but I don't know it.
21:51 Coke I have lib and t/ copied over in my checkout, trying to run any of the tcl based tests finds at least one thing to be fixed. =-)
21:53 Tene Coke: Yes, it's completely possible.  Why do you want to do it, though?
21:54 pmichaud Coke: I think we could speed things up a fair bit if we cached the results of eval, expr, and proc.
21:54 pmichaud and that wouldn't require modifying the grammar :-)
21:55 Tene pmichaud: is that try impl. good?
21:55 Coke Tene: just to share some files between partcl & partcl-nqp
21:55 Coke for now, I'm just doing this in my checkout, which is fine.
21:56 pmichaud Tene:  semantics look good
21:56 Tene Coke: What you'd do is use a tool to generate a set of commits containing only the given files, and then do a merge, or just paste the commits onto the top.
21:56 pmichaud looking a code
21:56 pmichaud *at
21:57 Andy joined #parrot
21:57 pmichaud Tene:  code looks awesome.  do you have a commit to nqp-rx ?
21:57 Tene I... don't know.  Lemme check.
21:57 Tene Looks like no.
21:58 pmichaud github id?
21:59 Coke "tene"
21:59 Tene Yes.
21:59 pmichaud You now have commit.
22:01 Tene pmichaud: how do I update the bootstrap?  Or should I just let you deal with that?
22:01 pmichaud Tene: I'll do it;  Coke, do you need try/catch "right away"?
22:01 pmichaud well, let me write it down here just so there's a record somewhere
22:01 pmichaud the normal bootstrap procedure is
22:01 Coke IWBN, but it's not a priority, no.
22:01 pmichaud (1) make test   in nqp-rx
22:01 Coke "soon", not "asap"
22:02 pmichaud (2) make bootstrap-files
22:02 pmichaud (3)  make clean test    # to verify that the bootstraps work
22:02 Tene oh, we could use some 'try' tests, I bet.
22:02 pmichaud (4)  commit files in src/stage0
22:02 Tene I need to do stuff for $work.  AFK.
22:02 pmichaud (5) copy files in src/stage0 to parrot/ext/nqp-rx/src/stage0
22:02 pmichaud test parrot, commit
22:03 pmichaud yes, we do need 'try' tests
22:04 dalek TT #1331 created by allison++: Mac OS 10.5 configuration fix
22:04 Tene My nopaste would be a good place to start.  That should cover everything we need.
22:04 pmichaud yes, I think the nopaste is a good start
22:06 dalek nqp-rx: b42c475 | tene++ | src/NQP/ (2 files):
22:06 dalek nqp-rx: Basic implementation of "try".
22:06 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​42c475bd18437900f148003d50ce387fc27be97
22:06 Coke dalek?
22:06 purl dalek is probably #parrot's spammy little rss bot or (see: dalek plugins)
22:06 Coke dalek plugins?
22:06 purl dalek plugins is http://github.com/Infinoid​/dalek-plugins/tree/master
22:08 * allison rebooting after system software update
22:09 cconstantine joined #parrot
22:11 Coke apparently when I added partcl-nqp to the language list before, I never submitted.
22:11 * Coke pokes dalek with a stick.
22:12 zak_ joined #parrot
22:13 dalek tracwiki: v111 | coke++ | Languages
22:13 dalek tracwiki: add partcl-nqp
22:13 dalek tracwiki: https://trac.parrot.org/parrot/wiki/L​anguages?version=111&amp;action=diff
22:13 * pmichaud decides to add  caching to partcl-nqp
22:13 ruoso joined #parrot
22:17 cognominal joined #parrot
22:18 Coke pmichaud: > puts [expr 0==2]
22:18 Coke The opcode 'iseq_i_n' (iseq<2>) was not found. Check the type and number of the arguments
22:18 Coke == is defined as:
22:18 dalek winxed: r212 | julian.notfound++ | trunk/winxedst0.cpp:
22:18 dalek winxed: fix a mistake in the output file name
22:18 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=212
22:18 dalek winxed: r213 | julian.notfound++ | trunk/examples/parser.winxed:
22:18 dalek winxed: fix local variables handling and add define var capability to for in
22:18 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=213
22:18 Coke 108:token infix:sym<==> { <sym> <O('%compare_numeric, :pirop<iseq Inn>')> }
22:19 pmichaud hmmm, I think nqp bug.
22:19 pmichaud hmmm, I think maybe not.
22:20 pmichaud okay, I'm not sure.
22:20 Coke (just fixed the name of that, btw, it's 'equality_numeric', not 'compare_numeric'
22:21 Coke oddly, used in an expression in an if, that error doesn't show, it assumes that 2==0, and then goes down the wrong code path.
22:21 Coke (at the tcl level)
22:22 pmichaud I think the problem is in the EXPR handling in nqp/hll
22:22 pmichaud it's likely omitting 0 constant nodes from the tree
22:22 pmichaud (due to incorrectly testing for true/false)
22:35 sjn joined #parrot
22:36 theory joined #parrot
22:40 allison joined #parrot
22:47 Tene purl: msg japhb nqp-rx has 'try' now.  It will get 'CATCH' soon.
22:47 purl Message for japhb stored.
22:47 dalek winxed: r214 | julian.notfound++ | trunk/examples/parser.winxed:
22:47 dalek winxed: one step towards assignment in example parser
22:47 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=214
22:48 japhb Tene, *pick a huzzah meme here*
22:48 Tene I think you wanted it for something?
22:48 pmichaud I have a few other commits for nqp, so will get bumped to parrot shortly.
22:50 japhb Yup.  So far my best attempt at try without syntactic support is as seen at http://gitorious.org/parrot-plumage/parrot-pl​umage/blobs/f841db9a986647ba10e795b097333d27c​eba7a23/src/lib/Plumage/Metadata.nqp#line194
22:50 japhb which is ... not pretty
22:50 japhb definitely LTA
22:51 japhb And it was WAY worse before some previous NQP-rx improvements landed.  For one thing,
22:51 japhb the code you're looking at wouldn't have worked a week or so ago.
22:52 Tene because of no pointy blocks, right?
22:52 japhb Tene, because I couldn't refer to $!error within a pointy block, because there was no way to get to self.
22:52 dalek winxed: r215 | julian.notfound++ | trunk/Makefile:
22:52 dalek winxed: fix make clean
22:52 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=215
22:52 Tene ah
22:53 japhb Tene, so what would that look like with the new try?
22:55 Tene japhb: there's no CATCH yet, so you'd just: try { ...; $errors=0 }; if $errors { ... }
22:55 cotto_work Has anyone verified the high amount of time spent in Context's mark while building nqp-rx's Actions.pm?
22:55 cotto_work s/Context/Capture/
22:56 japhb Tene, but I wouldn't be able to get to $e, right?  I actually need that ... it's how Config::JSON reports parse failures.
22:56 japhb s/failures/error messages/
22:56 Tene Ah.
22:57 Tene Yeah, that's right.  It'll be passed to CATCH though.
22:57 japhb OK cool.  Let me know when that's there, and I will *so* be making use of it.  :-)
22:58 japhb I love it when I can delete code from Glue.pir.
22:59 Tene japhb: what's up with the signature of that catch block?
22:59 Tene $e, &c, @args
22:59 Tene exception, continuation pulled from the exception, and what?
23:00 japhb The exception, the code PMC that was originally called, and the args that had been fed to it.  Basically, the exception, followed by the first two arguments to try.  Because it also works if you change the pointy block to some other invokable, and there were (are?) cases where I use one handler sub to handle multiple try's.
23:01 Tene Oh.
23:01 japhb I am just forced to use a pointy block when I'm doing try() within a method, if I want to be able to do anything to self .  Otherwise, I have lexical search fail.
23:01 payload joined #parrot
23:02 Tene anyway, try { Readconfig($path); CATCH { $!error := "Failed to ... $path ... $_" } }
23:02 Tene is what it'll be.
23:02 pmichaud +1
23:02 purl 1
23:02 japhb yeah, that will be one step closer to my happy place, definitely
23:02 Tene I think.  I need to read up on $_ vs $! in CATCH blocks.
23:02 Tene and the 'try' is unnecessary there, even.
23:02 pmichaud we'll likely want to keep try for NQP
23:03 japhb Fine by me.
23:03 pmichaud I'm pretty sure CATCH blocks start out with the exception in both $_ and $!
23:03 pmichaud (if we can easily do CATCH blocks in NQP without the 'try' keyword, that's okay also)
23:03 pmichaud (I prefer whatever keeps the code simplest/cleanest)
23:04 Tene pmichaud: it would be more-difficult to forbid CATCH outside of try.
23:05 pmichaud Tene: that makes sense also.
23:06 Tene pmichaud: oh... did you want me to add try/CATCH to ng as well?  or are they already there?
23:06 pmichaud Tene: there's a version there, but it might be minimal and/or simply copied from master
23:06 pmichaud Tene: you're very welcome to add/update them there
23:07 dalek tracwiki: v7 | japhb++ | DocsTasklist
23:07 dalek tracwiki: Slightly rewind link to beginning of parrotsketch discussion (my original question)
23:07 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=7&amp;action=diff
23:08 Tene Yeah, master uses the 'try' pasttype, which catches everything.
23:08 Tene and doesn't ignore control exceptions.
23:18 dalek parrot: r42801 | pmichaud++ | failed to fetch changeset:
23:18 dalek parrot: [nqp-rx]:  Bump nqp with latest updates for .ast, try, more.
23:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42801/
23:23 japhb dang it, this is on the tip of my tongue ... what's the positive word meaning non-conflicting in the sense of a list of statements or rules not conflicting with itself?
23:23 pmichaud compatible?
23:23 pmichaud coherent?
23:23 purl coherent is, like, still in use
23:23 pmichaud stable?
23:23 purl Biologists have a term for systems which are "stable"... it is "dead". or a place that's filled with crap. or defecating.
23:23 Tene consistent
23:23 japhb Tene++
23:23 japhb That's the one
23:23 japhb thank you!
23:23 Tene :)
23:24 japhb That was driving me insane
23:24 Tene a list of statements or rules or... roles?
23:24 davidfetter joined #parrot
23:28 cotto_work Can it be Thanksgiving time please?
23:29 japhb cotto_work, I'm too full from lunch ... need to hold off a bit.  :-)
23:29 cotto_work I don't care too much about food.  I just don't want to be here at work.
23:30 cotto_work It's kinda lonely.  It's a ghost town.
23:37 pmichaud partcl incoming
23:38 dalek tracwiki: v8 | japhb++ | DocsTasklist
23:38 dalek tracwiki: Summarize and collate comments from linked #parrotsketch discussion
23:38 dalek tracwiki: https://trac.parrot.org/parrot/wiki/D​ocsTasklist?version=8&amp;action=diff
23:38 japhb allison, I think I've got most of my thoughts and last week's #ps discussion into https://trac.parrot.org/parrot/wiki/DocsTasklist now
23:38 pmichaud Coke:  try the latest version of partcle and see if you get a performance win.  It now caches the results of any compiled expressions or evals to avoid re-compiling them again later.
23:38 pmichaud *partcl
23:39 pmichaud afk, long dinner
23:44 mariano joined #parrot
23:47 kid51 joined #parrot
23:55 payload1 joined #parrot
23:57 cotto_work msg chromatic I've run valgrind --tool=callgrind ./parrot ext/nqp-rx/nqp-rx.pbc --target=pir ../nqp-rx/src/NQP/Actions.pm with an optimized and non-optimized Parrot and it only spends 20-22% of its time in gc_ms_mark_and_sweep.  This seems inconsistent with the high amount of time you found to be spent in Capture's mark VTABLE function.
23:57 purl Message for chromatic stored.

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

Parrot | source cross referenced