|
Parrot 1.8.0 Zygodactyly released | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang Set by moderator on 23 November 2009. |
|||
| pmichaud | japhb: it's following the Perl 6 specification | 00:09 | |
| japhb | Really? I'll be darned. Is that to put decimal in line with other bases (which are often specified in unsigned form)? | 00:10 | |
| pmichaud | well, the spec recently changed | 00:14 | |
| so that now +\\- is part of number parsing | |||
| so NQP will likely follow suit | |||
| PerlJam | Where is the method control on PAST::Blocks documented? | 00:15 | |
| pmichaud | ...method control? | ||
| oh, .control | |||
| it might not be documented yet. | |||
| basically it sets a control handler for the block | |||
| PerlJam | it's not in pdd26 | ||
| Coke | PerlJam++ | 00:16 | |
| pmichaud++ | |||
| pmichaud | the special value 'return_pir' simply adds PIR code to catch return exceptions and return the payload | ||
| looks like +\\- was added to number parsing on Nov 18 | 00:17 | ||
| Coke adds a test to partcl-nqp to make sure we don't regress on the if {$a==} test... | 00:18 | ||
| pmichaud | what problem was the .nows supposed to fix in partcl expr handling? I forget. | 00:19 | |
| oh, is wb<0> | |||
| that's the default in the new version | |||
| at least, it should be the default. | |||
| Coke | pmichaud: puts [expr 2eq3] ? | 00:20 | |
| er, this one: | |||
| puts [expr 2eq 3] | |||
| (all other whitespace combos seem to work. | 00:21 | ||
| pmichaud | looking. | 00:22 | |
| PerlJam | puts [expr 2 eq3] does ... interesting things. | 00:25 | |
| Coke | WOOF. | ||
| must have missed that one. =-) | |||
| PerlJam++ | |||
| if I want a copy instead of an assignment in NQP... ? | 00:27 | ||
| pmichaud | pir::copy | ||
| probably pir::copy__PP for now -- I'll add it so the __PP isn't needed. | |||
| (also note that NQP doesn't do assignment, only set/bind) | |||
|
00:28
abqar joined
|
|||
| Coke | er, yes. | 00:28 | |
| pmichaud | > puts [expr 2eq 3] | 00:30 | |
| 0 | |||
| > puts [expr 2 eq3] | |||
| 0 | |||
| > puts [expr 3 eq3] | 00:31 | ||
| 1 | |||
| Coke | is that with a local fix? | ||
| pmichaud | yes. | ||
| Coke | +1 | ||
| purl | 1 | ||
| pmichaud | pushed. | ||
| I guess I should eliminate the item from TODO, also | |||
|
00:32
plobsing joined
|
|||
| pmichaud | TODO pushed. | 00:32 | |
| Coke | I think I have something close on <global> | 00:33 | |
| 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 nopaste.snit.ch/18822 | ||
| pmichaud | while %LEXPAD.outer { | ||
| %LEXPAD := %LEXPAD.outer; | |||
| } | |||
| infinite loop | 00:35 | ||
| purl | see infinite regress | ||
| pmichaud | currently I have the outermost lexpad pointing to itself. | ||
| Coke | whoops. | ||
| pmichaud | but that doesn't quite fit my conception of how it should work | ||
| just a sec | |||
| (checking tcl specs) | 00:36 | ||
| I think that global should create entries in the current lexpad that are bound to the corresponding PMCs of the global lexpad | |||
| and then set($var, $value) should generally use copy instead of binding | 00:37 | ||
| Coke | ... I thought that was what I was doing there. =-) | ||
| pmichaud | oh, you're right. | ||
| Coke | (changed it to while %LEXPAD.outer != %LEXPAD.outer { | 00:38 | |
| ... er.. | |||
| pmichaud | that's not likely to help either | ||
| Coke | while %LEXPAD != %LEXPAD.outer { | ||
| pmichaud | that either, since you're essentially comparing two Hashes :-( | ||
| probably want !=:= but NQP doesn't implement that yet | |||
| still easier would be to make LexPad #0 always available somewhere. | |||
| instead of following the chain of outers | 00:39 | ||
| Coke | Sure. | ||
| pmichaud | unless there are multiple globals | ||
| Coke | per-interpreter, perhaps. | ||
| pmichaud | (e.g., with namespaces -- I haven't investigated tcl namespaces yet) | ||
|
00:39
tetragon joined
|
|||
| pmichaud | src/PmTcl.pir is the code that sets up the global lexpad | 00:39 | |
| you could just bind it into a package or global symbol somewhere | |||
| my suggestion would be to add | 00:40 | ||
| Coke | set_hll_global '%GLOBALS', lexpad | ||
| ? | |||
| pmichaud | yeah | ||
| exactly | |||
| then in global(), you can do our %GLOBALS | |||
| and it'll be the same one | |||
| Coke | do I need to bind it? or just declare it? | 00:41 | |
| pmichaud | just declare it. | ||
| (set_hll_global '%GLOBALS' does the binding) | |||
| (our %GLOBALS just says that %GLOBALS is a package var) | |||
| 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:47 | |
| 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. | ||
| pmichaud | maybe push what you have already, so I can look? or nopaste the diff somewhere? | ||
| Coke | not sure if that's really the same lexpad I should be looking at. | ||
| pmichaud | it should, yes. | ||
| nopaste | "coke" at 72.228.52.192 pasted "pmichaud++" (49 lines) at nopaste.snit.ch/18823 | 00:49 | |
| Coke | (I had just split the bindingt into 2 lines on the off chance that mattered.) | ||
| pmichaud | oh | 00:50 | |
| not %GLOBALS<$_> | |||
| you want %GLOBALS{$_} | |||
| and %CUR_LEXPAD{$_} | |||
| Coke | [:facepalm:] | ||
| pmichaud++ | 00:51 | ||
| pmichaud | it works? | ||
| Coke | ayup. | 00:52 | |
| pmichaud | \\o/ | ||
| I might've implemented [globals] in terms of [upvar] though :-) | |||
| 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 | ||
| pmichaud | well, I had also been thinking of keeping "pure" versions in a namespace somewhere | 00:54 | |
| anyway, nice work on [global] | 00:55 | ||
| I can probably get uplevel #0 {code} to work pretty simply | 00:56 | ||
| Coke | I'm trying to get a test for the global before committing... moment. | 00:57 | |
| pushed | 00:59 | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "uplevel #nn {code} for Coke" (17 lines) at nopaste.snit.ch/18824 | 01:00 | |
| pmichaud | gotta run to the store | ||
| bbi30ish | |||
|
01:05
payload joined
01:20
bogen joined
|
|||
| Coke | how to know if an optional arg was passed into nqp? | 01:26 | |
| (nevermind, I can do it manually) | |||
|
01:34
kid51 joined
02:34
JimmyZ joined
|
|||
| dalek | TT #1330 created by plobsing++: [PATCH] deprecate "v" to denote empty nci pararameter list | 02:57 | |
|
03:01
cconstantine joined
|
|||
| dalek | kudo: 0a61bee | (Kyle Hasselbacher)++ | build/gen_parrot.pl: Make gen_parrot.pl die more gracefully, thanks to Timothy Bollman |
03:07 | |
|
04:52
davidfetter joined
05:19
uniejo joined
05:48
xenoterracide joined
07:04
uniejo joined
07:20
payload joined
07:28
fperrad joined
07:30
fperrad_ joined
07:33
TiMBuS joined
08:18
iblechbot joined
08:23
riffraff joined
09:45
szabgab joined
09:51
abqar joined
|
|||
| dalek | rrot: r42796 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] now installables are striped |
10:05 | |
|
10:07
shockwave joined
|
|||
| shockwave | Hi | 10:08 | |
| purl | hola, shockwave. | ||
| shockwave | I was reading here about the Parrot debugger: www.parrotcode.org/docs/debugger.html | 10:09 | |
|
10:09
Taulmarill joined
|
|||
| shockwave | this other page mentioned that it was being fused with parrot: en.wikibooks.org/wiki/Parrot_Virtua...t_Debugger | 10:09 | |
| Can anyone tell me the current status of the debugger? | |||
| I don't actually need to use it. I working on the semantic analysis of my language now. I'm just curious. | 10:10 | ||
| moritz | I think dukeleto++ put a lot of work into the debugger | 10:14 | |
| shockwave: maybe ask him when he's around | 10:15 | ||
| shockwave | moritz, Ok, thanks. | ||
|
10:54
zak_ joined
11:02
lucian joined
11:07
mikehh joined
|
|||
| mikehh | messages | 11:08 | |
|
11:09
jsut_ joined
11:32
JimmyZ joined
11:44
theory joined
11:57
whiteknight joined
11:58
cconstantine joined
|
|||
| whiteknight | good morning #parrot | 11:59 | |
|
12:04
cognominal joined
12:12
Taulmarill joined
|
|||
| mikehh | All tests PASS (pre/post-config, smoke (#30152), fulltest) at r42796 - Ubuntu 9.10 amd64 (g++ with --optimize) | 12:16 | |
|
12:27
bluescreen joined
12:36
ruoso joined
12:38
JimmyZ joined
12:50
masak joined
12:56
davidfetter joined
12:59
gaz joined
|
|||
| Coke | ovid++ #cobol | 13:08 | |
| davidfetter | parrot.privatepaste.com/2d905e0566 | 13:11 | |
| Coke | dcolish? | 13:12 | |
| duncan? | |||
| purl | i think duncan is mailto:duncan@thorn.net | ||
| moritz | dduncan? | 13:13 | |
| purl | well, dduncan is using them anyway or Indiana Jones | ||
|
13:13
plobsing joined
|
|||
| davidfetter | Coke, dcolish is daniel colish. grad student in portland | 13:14 | |
| plobsing | hi #parrot | 13:15 | |
| Coke | moritz, davidfetter, danke. | 13:18 | |
| davidfetter | bitte :) | ||
| whiteknight | good morning everybody | 13:22 | |
| plobsing | hi whiteknight | ||
| dalek | rrot-linear-algebra: 8edd836 | Whiteknight++ | src/pmc/complexmatrix2d.pmc: Some refactors to ComplexMatrix2D. Untested |
||
| rrot-linear-algebra: 2bbe500 | Whiteknight++ | t/complexmatrix.t: Add several test stubs for complexmatrix.t, and add a test for iterate_method_inplace |
|||
| whiteknight | hello plobsing | 13:23 | |
| plobsing | i've given up my plan to write a lorito prototype | ||
| after asking a couple questions, i realize that lorito isn't (just) about jit | 13:24 | ||
| its so much more | |||
| I was just coming at it from the JIT angle | |||
| whiteknight | what else do you mean? | ||
| plobsing | it seems to me its more about internal optimization and not using C for most stuff | 13:26 | |
| like not having to cross pcc-c barriers so often | 13:27 | ||
| and various optimizations not offered by available C compilers | |||
| Coke | (not crossing pcc/c barriers) that was a big item, yes. | 13:48 | |
|
13:53
iblechbot joined
|
|||
| dalek | trixy: dbf7de5 | Whiteknight++ | .gitignore: add a .gitignore file with some common stuff |
14:00 | |
| trixy: e1bf102 | Whiteknight++ | (4 files): remove some old diagnostics messages. Brute-force a solution to abs.t. One test fails on comparison between NumMatrix2D, ComplexMatrix2D |
|||
| whiteknight | plobsing: you're right about the barrier-crossing optimizations. Those are a nice benefit | 14:10 | |
| I had been sort of ignoring them for now, looking for a naive and simple initial approach to get JIT working | 14:11 | ||
| but then again, it probably doesn't make any sense to be too naive about it all | |||
| probably better to just do it right the first time | |||
| Coke | whiteknight: well, we missed that chance. =-) | 14:19 | |
| let's do it right this time, though. =-) | 14:20 | ||
| when's that kid gonna pop? | |||
| whiteknight | the kid was due 4 days ago | ||
| so "any minute now" | |||
| and he's going right to his room for being late | |||
| 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 | ||
| Coke | heh. my first was a month early. we naively expected he'd show up on time. | ||
| pro tip: get a good night's sleep for as long as you can. =-) | 14:22 | ||
| Coke sees Dan comment on a parrot post. | 14:26 | ||
| Coke goes, "whoa." | |||
| PerlJam | Coke: which post would that be? | 14:29 | |
| whiteknight | link? | ||
| 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. | ||
| 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 i174.photobucket.com/albums/w89/pic...ebook2.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 | ||
| Coke | in response to ovid's tweet/post about making money by doing cobol on parrot. | 14:33 | |
|
14:33
fperrad joined
|
|||
| Coke | (basically a thumbs up) | 14:33 | |
| whiteknight | Austin had that same exact idea back at YAPC | 14:34 | |
| pmichaud | good morning | ||
| 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 | ||
| 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
|
|||
| pmichaud | irclog.perlgeek.de/parrot/2009-11-20#i_1751189 # start of thread | 14:36 | |
| Tene | whiteknight: I was three weeks overdue. :) | 14:38 | |
| pmichaud | I was six. | 14:40 | |
| whiteknight | pmichaud: no, I haven't seen that thread | ||
| Coke | pmichaud: holy crap. | 14:41 | |
| purl | only in the Vatican, my friend | ||
| whiteknight | luckily for my wife, I think the doctors are going to induce earlier then 6 weeks overdue | ||
| Coke | pitocin? | 14:42 | |
|
14:42
fperrad_ joined
|
|||
| 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.) | ||
| (JFP) | |||
| 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:44 | |
| of course there is added complexity of maintaining inter-generational pointer lists, but that should not be too bad in comparison | 14:45 | ||
|
14:56
cognominal joined
15:07
fperrad joined
15:08
cognominal joined
15:09
bubaflub joined
15:11
Psyche^ joined
|
|||
| Coke wonders if perl6-internals is forwarding to parrot-dev. | 15:13 | ||
|
15:15
fperrad_ joined
|
|||
| Coke | (or, "did anyone else see ovid's post?) | 15:17 | |
| allison | Coke: I got ovid's post | 15:19 | |
| Coke: but not as a forward, I'm still subscribed | |||
| dalek | p-rx: 0ce5b09 | pmichaud++ | src/Regex/P6Regex/Actions.pm: Automatically add ļæ½ lexical to regex blocks. |
15:22 | |
| Coke | I thought we had already killed that list. | 15:27 | |
| is that a cent sign? | |||
| allison | I think we left it up for a while because RT was still forwarding to it. Can be killed off now. | 15:28 | |
| Tene | Yes. | 15:33 | |
| particle | Coke: yes, that's dollar-cent | ||
| Coke | is it a Perl6 thing? I don't see anything matching 'cent' in pugs/docs/Perl6 | 15:35 | |
| 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:37 | |
| moritz | Coke: it's an internal thing, mostly | 15:40 | |
| Coke: and something the end-user won't see | |||
| unless he pokes into the guts of the regex engine | |||
| Coke | so, rakudo-only-internals? | ||
| moritz | STD.pm uses the same thing | 15:41 | |
| Coke | so it's standard, then, and should be documented? =-) | ||
| (even if obscure?) | |||
| moritz | probably | ||
| particle | it's not in S05? | 15:42 | |
| 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:45 | |
| dalek | nxed: r205 | julian.notfound++ | trunk/winxed.winxed: options -L and -I in compiler driver |
15:49 | |
| nxed: r206 | julian.notfound++ | trunk/examples/parser.winxed: a bunch of cleaning, refactor and improvements in example parser |
15:58 | ||
|
16:04
cosimo joined
|
|||
| 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 | |
| (since parrot doesn't really support rolling your own argument processing (perhaps after callsig, maybe) | |||
| pmichaud | Coke: I'm not sure I understand the question fully (more) | ||
| You can either use the PIR, or you can rewrite the code into NQP, or you can do a mixture of the two. | |||
| Coke | right, I was hoping for something more syntactical. | 16:09 | |
| (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" | ||
| Coke | pmichaud: I do not wish to write code. | ||
| 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? | ||
| Coke uses character map for that on windows, and ... the similarly named thing on os x. | 16:12 | ||
| 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 | ||
| pmichaud | oh! | ||
| or are you asking if you can have signatures ? | |||
| whiteknight | and I'm not going to open character map and type out a bunch of U+ codes just to write a simple program | ||
| Tene | whiteknight: in vim, I just type ^KCt | 16:14 | |
|
16:16
bogen left
|
|||
| Coke | github.com/partcl/partcl/blob/maste...in/set.pir | 16:16 | |
| set takes a varname and an optional value. I have to hand-roll all that code to get the right error message. | |||
| whiteknight | Tene: if Vim is the solution, I would rather stick with the problem | ||
| Coke | brb. | ||
| pmichaud | Coke: right... I think you're looking for multisubs and smart dispatch | ||
| Coke | pmichaud: tcl doesn't have multisubs. | 16:17 | |
| and even if it did, I'd then need to override the error generated by an invalid MMD. | |||
| pmichaud | right | ||
| Coke | if I have to override the error /anyway/, why not just do it once? | ||
| pmichaud | so, how does tcl do its argument processing ? | ||
| Coke | no clue. brb. | 16:18 | |
|
16:19
Coke joined
|
|||
| Tene | whiteknight: anywhere else, I just type Compose,c,| | 16:19 | |
| Coke | back | ||
| moritz++ #utf-8 help. | |||
| 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 | |||
| Coke | pmichaud: except for the fact that we're running on top of parrot, sure. | ||
| I don't think you'll find that in the spec. | |||
| 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 | ||
| it's like a tcl-specific version of getopts | 16:21 | ||
| Coke | pmichaud: I've already written that. | ||
| in pir. | |||
| pmichaud | can't the builtins just use that? | ||
| the set code you pointed me to looks... set-specific. | |||
| Coke | those aren't options. | 16:22 | |
| so, yes, i can refactor my code to do all that myself. | |||
| but I already /have/ all that code. | |||
| pmichaud | if you're asking whether we can switch nqp to use the builtins you've already written, the answer is yes | ||
| Coke | no. | 16:23 | |
| I'm asking if nqp provides anything that would let me avoid writing that as handrolled code in the first place. | |||
| pmichaud | well, nqp just follows what Perl 6 does, and in Perl 6 those would be multis | ||
| so short answer appears to be "no" | |||
| Coke | Danke. | ||
| pmichaud | that said, it shouldn't be hard to write a couple of helper routines to make it much simpler | 16:24 | |
| i.e., to hopefully more closely follow whatever Tcl does | |||
| Coke | pmichaud: tcl appears to have it handrolled for set: | 16:26 | |
| tcl.cvs.sourceforge.net/viewvc/tcl/...iew=markup , line 1453. | |||
| "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. | ||
| dalek | nxed: r207 | julian.notfound++ | trunk/ (11 files): Backward incompatible syntax change: arguments for init require parentheses in |
||
| 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:28 | |
| pmichaud | I don't think you need callsig here anyway | 16:29 | |
| if you have | |||
| our sub set($var, $value, *@args) { ... } | |||
| Coke | and then die if args is defined. that works for this simple case, yes. | ||
| pmichaud | then you can throw an error if @args > 0 | ||
| Coke | that fails for things like puts. | 16:30 | |
| pmichaud re-reads puts | |||
| 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. | ||
| you cannot define a user-defined proc to do that except by handrolling, mind you. | 16:31 | ||
| pmichaud | right. | ||
| Coke | so it's all a little squishy. | ||
| pmichaud | in that case I think it pretty much needs to be sub puts(*@args) { ... } and you just pick out the args yourself | ||
| note that I had to do this for sub if() | 16:32 | ||
| Coke | yup, which is exactly how the pir version are written. | ||
| pmichaud: yah, if is one of the worst in that regard. =-) | |||
| pmichaud | but if wasn't so bad in nqp | ||
|
16:32
payload joined
|
|||
| Coke | pmichaud: well, the PIR version is probably doing more atm. | 16:32 | |
| we'll compare it again once we're passing t/cmd_if.t =-) | 16:33 | ||
| Coke wonders what the next big stumble was. | |||
| wasn't [regexp] going to require some nqp changes? | |||
| pmichaud | I'm pretty sure that the version of 'if' I have is reasonably complete, except for error handling. | ||
| but even then error handling should be pretty straightforward. | |||
| Coke | (one can hope =-) | 16:34 | |
| pmichaud | [regexp] needs an implementation of p5 regexes, I bet. | 16:35 | |
|
16:35
zak_ joined
|
|||
| 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 | ||
| Coke | but for today, even having the p6 stuff /might/ be sufficient. | ||
| www.tcl.tk/man/tcl8.5/TclCmd/re_syntax.htm | |||
| PerlJam | pm: check out the options to switch -- tmml.sourceforge.net/doc/tcl/switch.html | ||
| Coke | PerlJam: the option parsing there is one of the things that I wrote for partcl. | 16:37 | |
| (so you can use something like getopt to handle those.) | |||
| dalek | rrot: r42797 | fperrad++ | trunk/tools/dev/mk_language_shell.pl: [languages] fix templates |
16:38 | |
| Coke | pmichaud: (tcl variant) Any idea how much work that is? | ||
| pmichaud | Coke: I'm guessing not too much | ||
| (for me, of course) | |||
| 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 ;) | ||
| Coke | PerlJam: heh. | ||
|
16:39
patspam joined
16:41
gaz joined
|
|||
| 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"? | ||
| (i.e. posix REs, extended REs, and advanced REs) | 16:42 | ||
|
16:43
jsut joined
|
|||
| pmichaud | no, I don't have it mostly done yet. | 16:45 | |
| Tene | Coke: can you ask a more-specific question about nqp-rx and mod_parrot? | 16:48 | |
| dalek | p-rx: fb49c3e | pmichaud++ | src/NQP/ (2 files): Treat leading '-' as part of numeric literals. |
16:53 | |
| p-rx: fafe401 | pmichaud++ | src/Regex/P6Regex/Grammar.pm: Add error message on incorrect range quantifiers. |
|||
| p-rx: d982340 | pmichaud++ | src/stage0/ (3 files): Update bootstrap. |
|||
| Coke | PerlJam: yes. | 16:56 | |
| Tene: no | |||
| Tene | ... okay. | ||
| :) | 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. | ||
| dalek | rrot-linear-algebra: c4cd881 | Whiteknight++ | (9 files): 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 |
||
| 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?) | ||
| Coke | tene, sfaik, it never worked, yes. | ||
| pmichaud | afaik, the -nqp version of partcl should be much more amenable to working with mod_parrot | ||
| dalek | rrot: r42798 | pmichaud++ | failed to fetch changeset: [nqp]: Update with latest fixes to ļæ½, 1..x, negative literals. |
||
| pmichaud | perhaps even "seamless" | ||
| PerlJam | has anyone written a mod_parrot thing that uses the new NQP? | 16:59 | |
| Tene | PerlJam: No. | ||
| pmichaud | PerlJam: you mean written mod_parrot with NQP, or that uses NQP? | ||
| Tene | Coke: Yes, I expect the nqp version of tcl should run fine on mod_parrot. | ||
| 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. | ||
| pmichaud | same. | ||
|
17:00
iblechbot joined
|
|||
| Tene | Not quite shocked, but very surprised. | 17:00 | |
| 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. | ||
| pmichaud | Coke: my guess is that we just create an ARE compiler in partcl | ||
| PerlJam | pmichaud: that's what I would think | 17:02 | |
| pmichaud | not trivial... but certainly doable and doesn't require much PIR | ||
| Tene | Coke: if you're interested in mod_parrot experimentation, I'd love to help you over the long weekend. :) | 17:03 | |
| Coke | pmichaud: ARE should certainly be the default. | 17:05 | |
| (trying to figure out if you can even use the others anymore.) | |||
| 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 | ||
| Coke | right. | 17:07 | |
| sounds almost sixian. | 17:08 | ||
| 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. | ||
| Coke: I can do a bit more than that... probably not until much later today though | |||
| Coke | I'll gladly take as many tuits as you offer. =-) | ||
| PerlJam: if you're bored, catch is basically just eval with an exception handler. =-) | 17:11 | ||
| PerlJam has no clue how to do exception handling. | 17:12 | ||
| pmichaud | ...yeah, NQP really wants 'try' implemented. :) | ||
| it can be done with Q:PIR, though. :-) | |||
| 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 :) | ||
| Coke | sure. those are mainly just copies of return. | 17:14 | |
| Tene | pmichaud: I can do try in NQP for you. | ||
| Coke | (also error) | ||
| PerlJam | Tene++ | ||
| Tene | pmichaud: do you want catch too? | ||
|
17:15
cognominal_ joined
|
|||
| pmichaud | Tene: I'd happily review a patch :-) | 17:16 | |
| (yes, please) | |||
| Coke | pmichaud: btw, I never applied your uplevel patch. | ||
| (figured you could have the karma - looked reasonable.) | |||
| pmichaud | Coke: I'm not even sure where it is right now :-) | ||
| 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. | ||
| PerlJam bets that tcl AREs could be built by cribbing bunches of Regex/P6Regex/Grammar.pm | |||
| pmichaud | PerlJam: you're correct. | ||
| 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 :) | ||
| Coke | pmichaud: huh. already applied. Danke. | ||
| pmichaud | Coke: oh, I must've applied it w/o knowing about it then | ||
| dalek | rrot: r42799 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] _has_strip checks custom cflags |
||
| Coke | pmichaud++ # magic code from nowhere. | ||
| PerlJam | pmichaud: applying patches in your sleep? | ||
| pmichaud | Tene: in the simplest case, we want try { ... } to catch any non-control exceptions, just like P6 | ||
| 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. | ||
| pmichaud | yeah, it's the CATCH that's the tricky part. | ||
| 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 | |
| (in parrot) | |||
| 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:23 | ||
| pmichaud | Coke: I don't follow the question | 17:25 | |
| Coke | implied, "does my analysis look right to you" | ||
| the followup being, "I wonder how to change that" =-) | |||
| (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. | ||
| yes. | |||
| Coke | aha! | ||
| and looking at the code (should have done), you are doing a split. muahaha. | 17:27 | ||
| I might be able to fix that.. | |||
| PerlJam | making a real list data type sounds useful :) | 17:30 | |
| Coke | PerlJam: well, we have that in partcl. I am not sure which parts of it matter in -nqp. | 17:31 | |
| (the biggest bits being stringification and listification) | |||
| Tene | Coke: you can define EHs that take all types except those specified. | 17:32 | |
| 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. | ||
| Coke | tene++ | ||
| pmichaud | Tene: I'm more interested in where we stick the exception. | ||
| Tene | Ah. | ||
| 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:34 | |
| 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:35 | |
| pmichaud | Coke: viviself | 17:36 | |
| purl | well, viviself is certain to get run? | ||
| Coke | will that only set a value if none was provided? | 17:37 | |
| pmichaud | for variables of :scope('parameter'), yes. | 17:38 | |
| oh, in some other cases too. | |||
| basically :viviself says how to vivify the variable if it doesn't already exist. | |||
| ...and it can be any PAST tree | 17:39 | ||
| Coke | can it be a string literal? | ||
| dalek | rrot: r42800 | pmichaud++ | failed to fetch changeset: [nqp]: Latest fixes to $/, $ļæ½, and match handling. |
||
| pmichaud | yes. | ||
| (string and numeric literals in PAST trees are treated as PAST::Val nodes) | |||
| lunch needed here -- bbiah | 17:40 | ||
| cotto | pmichaud, is "for 1 .. 10 { ... }" planned for nqp-rx? | ||
| pmichaud | cotto: 'for' already exists | 17:41 | |
| cotto: the question is what NQP should do about the non-existent range type | |||
| (since Parrot doesn't have ranges) | |||
| cotto | sounds like a feature request | 17:42 | |
| Tene | pmichaud: 'try' is statement-control or statement_prefix? | 17:43 | |
| Hmm. Looks like the former. | 17:44 | ||
| Coke | PAST::Var.new( :scope<parameter>, :viviself<@argument[1]> ) | ||
| I presume I'm abusing the syntax horribly there. | |||
| pmichaud | viviself(@argument[1]) | ||
| <...> is a literal | |||
| <@foo> is literal ('foo') | 17:45 | ||
| er, | |||
| drat | |||
| <@foo> is literal ('@foo') | |||
| cotto: I suppose that NQP could treat $start..$end (infix:<..>) as a request to build an RPA from $start to $end | |||
| Coke | ok. that is trying to instantiate a class of type "b" where b was the default value i wanted. | 17:46 | |
| pmichaud | ohhhhh | ||
| drat | |||
| Coke | so very close. =-) | ||
| pmichaud | :viviself handles strings differently, for backwards compatibility reasons | ||
| :viviself(PAST::Val( :value(@argument[1]) )) | |||
| have to explicitly use a PAST::Val node there (sorry) | 17:47 | ||
| er, PAST::Val.new | |||
| (I really need lunch) | |||
| Coke | pmichaud++ # default values now work. | 17:48 | |
| pmichaud | #ps in 39? | 17:51 | |
| whiteknight | ah right, #ps | 17:52 | |
|
17:53
cconstantine_ joined
|
|||
| Coke | pmichaud, PerlJam: got [llength] and default values for args. | 17:56 | |
| (both involved 'treating things as lists') | |||
| that leaves catch and regexen as the two big things left. | |||
| dalek | nxed: r208 | julian.notfound++ | trunk/examples/parser.winxed: if statement and empty statement, and some changes in code generation in example |
18:01 | |
| Coke | ... except for all the other small things that are left. I'll update the TODO. | ||
|
18:02
darbelo joined
|
|||
| cotto_work | #ps in 30 | 18:03 | |
| er, 27 | |||
| whiteknight | 26.5 | ||
| darbelo cues up the Johnny Cash. | 18:04 | ||
| Coke | PerlJam, pmichaud: updated the TODO list for partcl-nqp; some of those are pretty smallish. | 18:06 | |
|
18:06
estrabd joined
|
|||
| nopaste | "tene" at 97.117.77.36 pasted "nqp try (ignores all errors) for pmichaud++" (32 lines) at nopaste.snit.ch/18834 | 18:11 | |
|
18:12
lucian joined
|
|||
| nopaste | "tene" at 97.117.77.36 pasted "basic try test for nqp" (6 lines) at nopaste.snit.ch/18835 | 18:16 | |
|
18:23
kj joined
|
|||
| mikehh | #ps time | 18:30 | |
| cotto_work | kinda like business time, but not | 18:31 | |
| Coke | I cannot run the meeting today. | 18:33 | |
|
18:34
cognominal joined
|
|||
| Coke | Tene++ | 18:35 | |
| any parrot commiters want a google wave invite? | 18:36 | ||
| PerlJam | I want to know why I have no invites to hand out. | 18:37 | |
| (or if I do, where are they?) | 18:38 | ||
| Tene | I've got plenty of invites. | ||
| Coke | tene: i would love some help with the partcl-nqp experiment! | ||
| Tene | 'kay | ||
| Coke | I can make you a collaborator on partcl-nqp if you like. | ||
| Tene | Sure. | 18:39 | |
| Coke | "tene" ? | ||
| (github) | |||
| Tene | Yes. | ||
| Coke | tene: done. check out: | 18:40 | |
| git clone git@github.com:partcl/partcl-nqp.git | |||
| allison got the time wrong again | 18:47 | ||
| cotto_work | dst-- | 18:48 | |
| Tene | Hi allison! Come rescue me from the mos thorrible #ps ever! | ||
| allison | Tene: have we done priority review? | 18:49 | |
| Tene | We solicited recommendations for priorities, and got back "optimization, or turkies" | 18:50 | |
| Coke | can you make a turducken with a parrot? | 18:57 | |
| PerlJam doesn't imagine that parrot tastes very good | 18:58 | ||
| dalek | tracwiki: v3 | allison++ | DocsTasklist | ||
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| 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
|
|||
| Coke ponders creating a Parrot Dev Wave. | 19:21 | ||
| Coke does so. | 19:22 | ||
| Tene = tenebrackets@googlewave.com | 19:24 | ||
| Coke | tene: done | 19:25 | |
| pmichaud: | 19:27 | ||
| > puts [set a "foo"] | |||
| extra characters after close-quote at line 1, near "]\\n" | |||
| pmichaud | oops. | 19:28 | |
| just remove the <.panic's> for now | |||
| I forgot about that particular case -- was trying to be a little advanced | 19:29 | ||
| Coke | this whole chunK: | 19:30 | |
| [ <?before \\S> <.panic: 'extra characters after close-brace'> ]? | |||
| ? | |||
| (except the other one) | |||
| pmichaud | yes | 19:32 | |
| 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:33 | ||
| Coke | gone. | 19:34 | |
| with that, partcl's t/tcl_misc.t parses. | 19:37 | ||
|
19:42
kthakore joined
19:51
payload joined
|
|||
| 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 nopaste.snit.ch/18837 | 19:52 | |
| Coke | (that's in NQP-rx) | ||
| pmichaud | because you're using == instead of eq | 19:53 | |
| Coke | ... if this were written in tcl, I would have tried that first! | ||
| pmichaud | (== is numeric compare, eq is string compare) | ||
| cotto_work | because... what he said | ||
| Coke | does nqp have a < for strings? | 19:55 | |
| pmichaud | lt | ||
| same as Perl | |||
| Coke | danke | ||
| pmichaud | eq ne lt le gt ge | ||
| we don't yet have leg or <=> yet but those are likely to be added :) | |||
| pmichaud goes to look at Tene++'s try/catch patches | 19:56 | ||
| Tene: I think that 'try' is a statement prefix now. | 19:57 | ||
|
19:57
bubaflub left
|
|||
| Coke | <- idiot. | 19:59 | |
| ok. two [string] subcommands done. | |||
| PerlJam: your incr code has an MMD failure, methinks. | 20:00 | ||
| cotto_work | I'm not seeing anything like what chromatic saw with Capture's mark eating up ~88% of the time. | 20:02 | |
| pmichaud | hmmm | 20:03 | |
| perhaps you could characterize what you do see then? (when you get a chance -- doesn't have to be immediate) | |||
| Tene | Is it allowed to say "try foo();" ? | ||
| pmichaud | Tene: yes. | ||
| Tene | Okay, I'll change it. | ||
| Coke | PerlJam: fixed. | 20:08 | |
| Tene: the next thing partcl-nqp needs is catch. =-) | |||
| (which is our way of spelling try). no pressure. =-) | |||
| Tene | Coke: give me a small tcl snippet and point me at the repo again and I'll do it. | 20:11 | |
| Coke | one thing just occurred to me; you're /not/ trapping control exceptions? | 20:13 | |
| (I think tcl might need that.) | 20:14 | ||
| cotto_work | seen chromatic | ||
| 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] | ||
| nopaste | "coke" at 72.228.52.192 pasted "for tene++: simple tcl catch samples" (11 lines) at 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) | ||
| Coke | partcl-nqp? | 20:17 | |
| purl | partcl-nqp is at github under partcl/ , nopaste shows the issue. | ||
| Tene | Coke: Oh, actually, the patch I pasted does catch control exceptions too. I'll fix that for nqp also, thanks. | ||
| Coke | Tene: well, I /do/ want to catch those. =-) | ||
| but I don't think we need it for right now. | |||
| Tene | Well, that's easier then. That's the default. | ||
| Coke | spif | ||
| partcl-nqp is also on github under partcl/partcl-nqp | 20:18 | ||
| purl | okay, Coke. | ||
| Coke | the numbers there are pulled from: | ||
| www.tcl.tk/man/tcl8.5/TclCmd/return.htm#M5 | 20:19 | ||
| but at this point, I really just need the "try" aspect. | |||
| no, partcl-nqp is github.com/partcl/partcl-nqp | 20:20 | ||
| purl | okay, Coke. | ||
| pmichaud | try in nqp needs to (as much as possible) match the perl 6 semantics for 'try' | 20:22 | |
| so if p6 doesn't catch control exceptions, then nqp shouldn't. | 20:23 | ||
| dalek | nxed: r209 | julian.notfound++ | trunk/winxedst0.cpp: allow more than one parent in class |
||
| Coke | that's fine for partcl also, I can always implement catch based on tene's work for the builtin try. | 20:24 | |
| Tene | pmichaud: I'm working on it right now... just distracted by work. | 20:26 | |
| dalek | nxed: r210 | julian.notfound++ | trunk/examples/parser.winxed: function args and for in statement in example parser |
20:28 | |
| Coke | Tene: added a catch variant that is more like [eval] as a placeholder. | 20:35 | |
|
20:35
kurahaupo joined
|
|||
| dalek | nxed: r211 | julian.notfound++ | trunk/ (3 files): drop from the stage 0 compiler the options now handled by the driver, freeing it |
20:42 | |
|
20:43
bluescreen joined
20:45
gaz joined
|
|||
| 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 | |
| (only slightly slower.) | |||
| (about .50 for partcl, .55 for partcl-nqp) | 20:53 | ||
| pmichaud | Coke: okay, good to know. | 21:02 | |
| Tene | pmichaud: okay, I have a better patch for you now. | 21:05 | |
| nopaste | "tene" at 97.117.77.36 pasted "try patch for nqp-rx for pmichaud" (44 lines) at nopaste.snit.ch/18839 | 21:06 | |
| pmichaud | Tene: ... that still shows statement_control ? | 21:07 | |
|
21:07
joeri joined
|
|||
| Tene | Oh, you want me to change that too? | 21:07 | |
| Sure. | |||
| pmichaud | + $past<handlers> := @handlers; | 21:08 | |
| shouldn't that be $past.handlers(@handlers) ? | 21:09 | ||
| Tene | Sure. | ||
| Really, I'd like to be able to autovivify $past<handlers> as an array. Can I do that? | 21:10 | ||
| pmichaud | with pir::vivify, perhaps. | 21:11 | |
| or you could do | |||
| oh wait | |||
| no | |||
| I don't want to be using the hash interface to set PAST node values. | |||
| (there's a reason we provide the method interface :-) | |||
| Tene | Is there array literal syntax in nqp? []? | 21:12 | |
| pmichaud | yes | ||
| [] creates a RPA | |||
| Tene | Okay, great. | ||
| pmichaud | so you could do $past.handlers([ PAST::Control.new(...) ]) | ||
| 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 | ||
| dalek | tracwiki: v4 | allison++ | DocsTasklist | ||
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| tracwiki: v5 | allison++ | DocsTasklist | |||
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| Tene | Oh, yay, failure... Method 'isa' not found for invocant of class 'String' | 21:14 | |
| Ah, I didn't save my grammar changes. :) | 21:16 | ||
| dalek | tracwiki: v6 | allison++ | DocsTasklist | 21:17 | |
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| Tene | If we have statement_prefix:try, does that mean we have a postfix form of CATCH? | 21:18 | |
| foo() CATCH { ... }; | |||
| allison | msg japhb I put in a start on the API discussion in the doc tasklist | 21:21 | |
| purl | Message for japhb stored. | ||
| 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. | ||
| allison | japhb: :) | ||
| japhb: feel free to extend, alter, break into more detailed tasks, etc, I figured it was worth getting a stub in | 21:23 | ||
| 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. | ||
| pmichaud | Tene: no, CATCH can only be used with the block form | 21:29 | |
| Coke: ... duplicate some of the builtins in the grammar? | 21:30 | ||
| oops, have to pick up kid, bbi10 | |||
| Tene | pmichaud: I'm not quite sure about the semantics of :handlers on PAST::Stmts... if the exception is handled, it returns. | ||
| Which is probably wrong. | |||
| pmichaud | Tene: enclose the statement in a block | ||
| Tene | Yes, that's what I'm doing. | 21:31 | |
| pmichaud | bbi10 | ||
| Coke | pmichaud: that is, add protoregex for, e.g. command<for> that do the work of for as part of the grammar. | 21:32 | |
| nopaste | "tene" at 97.117.77.36 pasted "pmichaud: are these semantics right?" (37 lines) at nopaste.snit.ch/18840 | 21:34 | |
| "tene" at 97.117.77.36 pasted "the patch to make that work" (48 lines) at nopaste.snit.ch/18841 | 21:36 | ||
|
21:37
zak_ joined
|
|||
| pmichaud | Coke: you mean precompile for statements instead of doing it dynamically? | 21:38 | |
| er, [for] commands ? | |||
| Coke | right. | 21:39 | |
| (and [while] and a few others.) | |||
| pmichaud | that's along the same lines of what I was thinking for [proc] | 21:40 | |
| Coke | pmichaud: turns out we need [regsub] also, btw. but I imagine that's trivial if [regexp] is working. | 21:41 | |
| 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:43 | |
| dalek | rrot-plumage: f841db9 | japhb++ | : [METADATA] mt19937 update from fperrad++ |
21:44 | |
| Coke | is there a way to copy over lib/test_more.tcl and t/** from partcl ? | 21:46 | |
| pmichaud | Coke: you mean "...and preserve history?" | 21:47 | |
| Coke | "via git", yah. | ||
| as opposed to just doing an offline copy/import. | |||
| pmichaud | I imagine there is, but I don't know it. | ||
| 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:51 | |
| Tene | Coke: Yes, it's completely possible. Why do you want to do it, though? | 21:53 | |
| pmichaud | Coke: I think we could speed things up a fair bit if we cached the results of eval, expr, and proc. | 21:54 | |
| and that wouldn't require modifying the grammar :-) | |||
| Tene | pmichaud: is that try impl. good? | 21:55 | |
| Coke | Tene: just to share some files between partcl & partcl-nqp | ||
| for now, I'm just doing this in my checkout, which is fine. | |||
| 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. | ||
| pmichaud | looking a code | ||
| *at | |||
|
21:57
Andy joined
|
|||
| pmichaud | Tene: code looks awesome. do you have a commit to nqp-rx ? | 21:57 | |
| Tene | I... don't know. Lemme check. | ||
| Looks like no. | |||
| pmichaud | github id? | 21:58 | |
| Coke | "tene" | 21:59 | |
| Tene | Yes. | ||
| pmichaud | You now have commit. | ||
| 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"? | ||
| well, let me write it down here just so there's a record somewhere | |||
| the normal bootstrap procedure is | |||
| Coke | IWBN, but it's not a priority, no. | ||
| pmichaud | (1) make test in nqp-rx | ||
| Coke | "soon", not "asap" | ||
| pmichaud | (2) make bootstrap-files | 22:02 | |
| (3) make clean test # to verify that the bootstraps work | |||
| Tene | oh, we could use some 'try' tests, I bet. | ||
| pmichaud | (4) commit files in src/stage0 | ||
| Tene | I need to do stuff for $work. AFK. | ||
| pmichaud | (5) copy files in src/stage0 to parrot/ext/nqp-rx/src/stage0 | ||
| test parrot, commit | |||
| yes, we do need 'try' tests | 22:03 | ||
| 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. | ||
| pmichaud | yes, I think the nopaste is a good start | ||
| dalek | p-rx: b42c475 | tene++ | src/NQP/ (2 files): Basic implementation of "try". |
22:06 | |
| Coke | dalek? | ||
| purl | dalek is probably #parrot's spammy little rss bot or (see: dalek plugins) | ||
| Coke | dalek plugins? | ||
| purl | dalek plugins is github.com/Infinoid/dalek-plugins/tree/master | ||
| allison rebooting after system software update | 22:08 | ||
|
22:09
cconstantine joined
|
|||
| 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
|
|||
| dalek | tracwiki: v111 | coke++ | Languages | 22:13 | |
| tracwiki: add partcl-nqp | |||
| tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff | |||
| pmichaud decides to add caching to partcl-nqp | |||
|
22:13
ruoso joined
22:17
cognominal joined
|
|||
| Coke | pmichaud: > puts [expr 0==2] | 22:18 | |
| The opcode 'iseq_i_n' (iseq<2>) was not found. Check the type and number of the arguments | |||
| == is defined as: | |||
| dalek | nxed: r212 | julian.notfound++ | trunk/winxedst0.cpp: fix a mistake in the output file name |
||
| nxed: r213 | julian.notfound++ | trunk/examples/parser.winxed: fix local variables handling and add define var capability to for in |
|||
| Coke | 108:token infix:sym<==> { <sym> <O('%compare_numeric, :pirop<iseq Inn>')> } | ||
| pmichaud | hmmm, I think nqp bug. | 22:19 | |
| hmmm, I think maybe not. | |||
| okay, I'm not sure. | 22:20 | ||
| Coke | (just fixed the name of that, btw, it's 'equality_numeric', not 'compare_numeric' | ||
| 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 | ||
| (at the tcl level) | |||
| pmichaud | I think the problem is in the EXPR handling in nqp/hll | 22:22 | |
| it's likely omitting 0 constant nodes from the tree | |||
| (due to incorrectly testing for true/false) | |||
|
22:35
sjn joined
22:36
theory joined
22:40
allison joined
|
|||
| Tene | purl: msg japhb nqp-rx has 'try' now. It will get 'CATCH' soon. | 22:47 | |
| purl | Message for japhb stored. | ||
| dalek | nxed: r214 | julian.notfound++ | trunk/examples/parser.winxed: one step towards assignment in example parser |
||
| japhb | Tene, *pick a huzzah meme here* | 22:48 | |
| Tene | I think you wanted it for something? | ||
| pmichaud | I have a few other commits for nqp, so will get bumped to parrot shortly. | ||
| japhb | Yup. So far my best attempt at try without syntactic support is as seen at gitorious.org/parrot-plumage/parrot...qp#line194 | 22:50 | |
| which is ... not pretty | |||
| definitely LTA | |||
| And it was WAY worse before some previous NQP-rx improvements landed. For one thing, | 22:51 | ||
| the code you're looking at wouldn't have worked a week or so ago. | |||
| 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. | ||
| dalek | nxed: r215 | julian.notfound++ | trunk/Makefile: fix make clean |
||
| Tene | ah | ||
| japhb | Tene, so what would that look like with the new try? | 22:53 | |
| 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? | ||
| s/Context/Capture/ | |||
| 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 | |
| s/failures/error messages/ | |||
| Tene | Ah. | ||
| 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. :-) | ||
| I love it when I can delete code from Glue.pir. | 22:58 | ||
| Tene | japhb: what's up with the signature of that catch block? | 22:59 | |
| $e, &c, @args | |||
| exception, continuation pulled from the exception, and what? | |||
| 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:00 | |
| 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
|
|||
| Tene | anyway, try { Readconfig($path); CATCH { $!error := "Failed to ... $path ... $_" } } | 23:02 | |
| is what it'll be. | |||
| pmichaud | +1 | ||
| purl | 1 | ||
| japhb | yeah, that will be one step closer to my happy place, definitely | ||
| Tene | I think. I need to read up on $_ vs $! in CATCH blocks. | ||
| and the 'try' is unnecessary there, even. | |||
| pmichaud | we'll likely want to keep try for NQP | ||
| japhb | Fine by me. | 23:03 | |
| pmichaud | I'm pretty sure CATCH blocks start out with the exception in both $_ and $! | ||
| (if we can easily do CATCH blocks in NQP without the 'try' keyword, that's okay also) | |||
| (I prefer whatever keeps the code simplest/cleanest) | |||
| Tene | pmichaud: it would be more-difficult to forbid CATCH outside of try. | 23:04 | |
| pmichaud | Tene: that makes sense also. | 23:05 | |
| 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 | ||
| Tene: you're very welcome to add/update them there | |||
| dalek | tracwiki: v7 | japhb++ | DocsTasklist | 23:07 | |
| tracwiki: Slightly rewind link to beginning of parrotsketch discussion (my original question) | |||
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| Tene | Yeah, master uses the 'try' pasttype, which catches everything. | 23:08 | |
| and doesn't ignore control exceptions. | |||
| dalek | rrot: r42801 | pmichaud++ | failed to fetch changeset: [nqp-rx]: Bump nqp with latest updates for .ast, try, more. |
23:18 | |
| 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? | ||
| coherent? | |||
| purl | coherent is, like, still in use | ||
| pmichaud | stable? | ||
| purl | Biologists have a term for systems which are "stable"... it is "dead". or a place that's filled with crap. or defecating. | ||
| Tene | consistent | ||
| japhb | Tene++ | ||
| That's the one | |||
| thank you! | |||
| Tene | :) | ||
| japhb | That was driving me insane | 23:24 | |
| Tene | a list of statements or rules or... roles? | ||
|
23:24
davidfetter joined
|
|||
| cotto_work | Can it be Thanksgiving time please? | 23:28 | |
| 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. | ||
| It's kinda lonely. It's a ghost town. | 23:30 | ||
| pmichaud | partcl incoming | 23:37 | |
| dalek | tracwiki: v8 | japhb++ | DocsTasklist | 23:38 | |
| tracwiki: Summarize and collate comments from linked #parrotsketch discussion | |||
| tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff | |||
| japhb | allison, I think I've got most of my thoughts and last week's #ps discussion into trac.parrot.org/parrot/wiki/DocsTasklist now | ||
| 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. | ||
| *partcl | |||
| afk, long dinner | 23:39 | ||
|
23:44
mariano joined
23:47
kid51 joined
23:55
payload1 joined
|
|||
| 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. | ||