Camelia, the Perl 6 bug

IRC log for #parrot, 2012-09-12

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:36 kid51 joined #parrot
00:39 kid51_ joined #parrot
01:09 kid51 joined #parrot
01:09 * MikeFair waves.
01:16 kid51_ joined #parrot
01:43 dalek parrot/native_pbc2: d92e691 | rurban++ | / (5 files):
01:43 dalek parrot/native_pbc2: Configure probes for format, sizes, ranges and digits
01:43 dalek parrot/native_pbc2:
01:43 dalek parrot/native_pbc2: Probe FLOATVAL_FMT/floatvalfmt with float round-trip precision tests.
01:43 dalek parrot/native_pbc2: Found that long double and __float128 on intel are
01:43 dalek parrot/native_pbc2: stable only with %17Lg. I.e. 17 digits precision in number-string round
01:43 dalek parrot/native_pbc2: trips. Do the precision test for all float types.
01:43 dalek parrot/native_pbc2:
01:44 dalek parrot/native_pbc2: Also test for the cpp defines of ranges and DBL|FLT_DIG
01:44 dalek parrot/native_pbc2: (precision digits).
01:44 dalek parrot/native_pbc2:
01:44 dalek parrot/native_pbc2: New config hash value for floatvaldig, the number of compiler
01:44 dalek parrot/native_pbc2: precision digits, which be different to the tested floatvalfmt.
01:44 dalek parrot/native_pbc2:
01:44 dalek parrot/native_pbc2: Improved HAS_FLOAT128 detection.
01:44 dalek parrot/native_pbc2:
01:44 dalek parrot/native_pbc2: Use HAS_INT64 instead of HAS_LONGLONG for bswap64.
01:44 dalek parrot/native_pbc2: review: https://github.com/parrot/parrot/commit/d92e6919af
02:13 rurban joined #parrot
02:13 rurban left #parrot
02:16 kid51 joined #parrot
02:19 kid51_ joined #parrot
02:39 benabik joined #parrot
02:39 MikeFair heya benabik
02:40 benabik o/ MikeFair
02:40 MikeFair benabik: Hey question for ya
02:40 benabik If it's quick, I'm buried in signals and pipes.
02:40 MikeFair So I've got these two block rules, that basically go:
02:41 MikeFair 'on' <identifier> <statement_list> 'end' $<identifier>
02:41 MikeFair it's working just fine, but I'm noticing that it's getting really on some parses because of the possibility of lots of backtracking
02:41 MikeFair err really slow
02:42 MikeFair is it better to make 'on' <identifier> and 'end' <identifier> separate match statements?
02:42 MikeFair or is that not a 'quick question'? :)
02:43 MikeFair (signals and pipes, sounds FUN!! :) )
02:43 MikeFair =)
02:43 benabik "fun" more like.
02:43 benabik learning the ins and outs of controlling terminals is oy
02:43 * MikeFair grins broadly at benabik's pain.
02:44 benabik So it's supposed to match   'on foo 1; 2; 3; end foo' ?
02:44 MikeFair yep
02:44 benabik Is end a valid statement?
02:45 MikeFair there are many 'end' <ident> satements but they are the equivalent of }
02:45 MikeFair end if, end repeat, end <handlername>
02:46 sorear MikeFair: have you played with Rakudo's grammar debugger?
02:46 MikeFair it'd be a lot more complicated to break it out because I'd have to find out which 'end' this one was
02:46 sorear you might have to move your code from NQP to Perl 6 for that
02:46 MikeFair sorear: no I haven't yet... and I'm on the new NQP so it might actually be available to me now! :)
02:46 rurban_mobile wouldn't on var{ statement_list } be better?
02:46 MikeFair sorear: right - yeah
02:47 rurban_mobile ending a list with end is a pain
02:47 benabik Right, matching the end as part of the block is a good idea.  I'm just wondering if the "end $<id>" gets munched by statement_block somewhere
02:47 MikeFair rurban_mobile: syntax is not my choice really =)
02:47 sorear rurban_mobile: MikeFair is writing a grammar for an existing language (HyperTalk)
02:47 rurban_mobile Oops
02:47 MikeFair rurban_mobile: but I agree
02:48 MikeFair I'm building up to being able to parse this:
02:48 MikeFair on start
02:48 MikeFair if true then repeat with word char of item = char char to word of word
02:48 MikeFair char of char to word char to char of char char of word
02:48 MikeFair put a&&"HyperTalk is a bitch to parse
02:48 MikeFair end repeat else beep
02:48 MikeFair end start
02:49 MikeFair There's a mixture of element items, keywords as variables, range expressions, if, repeat, and a handler :)
02:50 MikeFair I've got one test file that's a combination of every if statement construction I could think of
02:50 MikeFair it's curently 68 lines and takes 30 to 45 seconds to parse
02:50 benabik MikeFair: that block shouldn't cause backtracking unless the end is getting munched by statement_list.  Which I would suggest is a bad thing.
02:51 benabik Unless end at the beginning of a statement is valid.  In which case the grammar is extremely unfortunate.
02:51 MikeFair benabik: Well <EXPR> is valid
02:51 benabik Is 'end' a valid expr?
02:52 MikeFair I am not sure if 'end' is a valid varname
02:52 * MikeFair looks at his reference
02:52 benabik language keywords should not be variable names.
02:54 benabik And even if it is, I would hope "end foo" is unambiguously the end of foo.  :-/
02:54 MikeFair well I'll just call it that end is not a valid statement starter
02:55 MikeFair benabik: yes, end foo is the end of 'on foo'
02:56 benabik As far as I can tell, it would only need to backtrack if <statement_list> went past end foo.  So I would suggest trying to figure out if that's happening.  Otherwise perhaps the backtracking is somewhere else.
02:56 benabik Grammar debugger could be very useful for this.
02:57 MikeFair Well the if is the monster backtracker
02:57 benabik http://perlgeek.de/en/arti​cle/debug-a-perl-6-grammar
02:57 benabik moritz++
02:58 MikeFair benabik: I think the way they make it "fast" is to use the presence/non-presence of <return> characters at key points
02:59 benabik You might want a token stmt_end { $$ || ';' }
02:59 MikeFair 'then' <statement> = single then   // 'then' <return> <statement> = multi if terminated with 'end' 'if'
02:59 benabik I imagine Hypercard was not implemented with a backtracking parser.
03:00 MikeFair benabik: hehe -nope
03:00 benabik I remember Hypercard.  It wasn't that advanced.  :-D
03:00 MikeFair benabik: It's gotten a lot more advanced in the later generations of the xTalk family, but HyperTalk is what I have a reference fore
03:00 MikeFair -e
03:00 aloha -2.71828182845905
03:01 benabik 2+2
03:01 aloha 4
03:01 benabik aloha tries to parse every message in channel as math?  ow.
03:01 MikeFair benabik: check out www.runrev.com if you're interested / at all curious about what the latest generation of it can do -- it's quite impressive
03:01 MikeFair ha!
03:02 sorear MikeFair: remember cuts.
03:02 * MikeFair didn't know what that aloha message was.
03:02 sorear 2.718281828 is e
03:02 MikeFair cuts?
03:02 sorear MikeFair: have you ever used prolog?
03:02 benabik Cuts and using token liberally is good.
03:03 MikeFair benabik: oh - about the stmnt_end:
03:04 MikeFair token statement { || <statement_control> [ ';' ]? || <EXPR> }
03:04 MikeFair I currently have that, I kep trying to add [ ';' | $$] but it doesn't seem to work
03:04 MikeFair I don't know why they have the first || in there
03:05 sorear [ ';' || $$ ]
03:05 sorear might work better
03:05 MikeFair sorear: i've tried that too
03:05 sorear MikeFair: leading || is ignored, it's useful for lining up lists
03:05 sorear token foo {
03:05 sorear || <foo>
03:05 sorear || <bar>
03:05 sorear || <quux>
03:05 sorear }
03:05 MikeFair sorear: I left it in because it looked prettierI jsut wasn't sure what it did, good to know it's ignorable
03:06 MikeFair sorear: That regex is currently lined up that way
03:08 benabik Hah.  SuperCard offers a discount if you have any HyperCard stuff.
03:09 MikeFair benabik: hehe - not that I'd want either; =)
03:09 * MikeFair is suprised you found anything supercard related today
03:09 benabik ?
03:09 MikeFair HyperCard or SuperCard
03:09 MikeFair They've been out of publication for decades now
03:09 MikeFair at least as far as I've been aware
03:10 MikeFair After SuperCard came MetaCard which really kicked ass, then the Revolutionguys bought the Metcard engine out and in the last few years have just really made it something incredible
03:10 benabik SuperCard still exists: http://www.supercard.us/
03:12 MikeFair Wow
03:12 MikeFair sure enough
03:12 * MikeFair didn't know.
03:13 benabik Okay, back to homework.  yay
03:14 MikeFair benabik: yay
03:14 rurban_mobile joined #parrot
03:15 MikeFair sorear / rurban_mobile : the real problem is the say stuff
03:15 MikeFair err the if stuff
03:16 MikeFair I was hoping not to have to enforce the newline after then construct
03:17 MikeFair I was also trying to do something like 'then' ~ 'else' <statement_list> || 'then' ~ [ 'end' 'if' ] <statement_list>
03:17 MikeFair || <statement>
03:19 MikeFair Hmm, verbatim is interesting
04:35 Khisanth joined #parrot
05:53 nopaste joined #parrot
06:18 nopaste joined #parrot
06:40 fperrad joined #parrot
07:06 brrt joined #parrot
08:20 Psyche^ joined #parrot
12:41 PacoAir joined #parrot
12:43 PacoAir joined #parrot
13:10 JimmyZ joined #parrot
13:37 benabik joined #parrot
13:40 bluescreen joined #parrot
14:38 nine left #parrot
14:38 nine joined #parrot
15:13 rurban_mobile joined #parrot
15:21 contingencyplan joined #parrot
16:02 brrt left #parrot
16:47 benabik joined #parrot
17:04 tuxit joined #parrot
17:54 benabik_ joined #parrot
18:08 benabik joined #parrot
18:17 TonyC joined #parrot
18:19 lucian joined #parrot
18:22 TonyC joined #parrot
18:23 nopaste joined #parrot
18:37 rurban_mobile joined #parrot
18:45 mdupont joined #parrot
19:00 rurban_mobile joined #parrot
19:22 benabik joined #parrot
19:30 dmalcolm joined #parrot
19:33 rurban_mobile joined #parrot
19:39 mtk joined #parrot
19:42 dalek nqp: 2651350 | moritz++ | src/QAST/Operations.nqp:
19:42 dalek nqp: [QAST] do not null something we still need
19:42 dalek nqp:
19:42 dalek nqp: Fixes RT #114836
19:42 dalek nqp: review: https://github.com/perl6/nqp/commit/265135051c
19:44 dalek rakudo/nom: 220a691 | moritz++ | tools/build/NQP_REVISION:
19:44 dalek rakudo/nom: bump to an NQP revision which fixes RT #11483
19:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/220a691e33
19:48 benabik joined #parrot
20:21 dalek parrot: 3d2a484 | rurban++ | src/dynpmc/ (2 files):
20:21 dalek parrot: dynpmc/os: actually build this dummy pmc for loadlib "os" backcompat
20:21 dalek parrot: review: https://github.com/parrot/parrot/commit/3d2a484d3e
20:23 rurban_mobile tadzik: loadlib "os" should work now. I really forgot to build and install it into runtime/parrot/dynext/
20:25 tadzik mistab?
20:47 dalek parrot/native_pbc2: eca83f5 | rurban++ | src/packfile/pf_items.c:
20:47 dalek parrot/native_pbc2: check for HAS_LONGLONG with Parrot_UInt8 cast, fix syntax error in temp. code
20:47 dalek parrot/native_pbc2: review: https://github.com/parrot/parrot/commit/eca83f5bc4
20:47 dalek parrot/native_pbc2: a38401c | rurban++ | / (3 files):
20:47 dalek parrot/native_pbc2: fix various typos, use FLOATVAL_FMT directly in imcc
20:47 dalek parrot/native_pbc2: review: https://github.com/parrot/parrot/commit/a38401ce53
21:17 travis-ci joined #parrot
21:17 travis-ci [travis-ci] parrot/parrot#543 (master - 3d2a484 : Reini Urban): The build is pending.
21:17 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/a54a581d2392...3d2a484d3e57
21:17 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/2425440
21:17 travis-ci left #parrot
21:33 lucian joined #parrot
21:39 dalek parrot: 39f8f91 | jkeenan++ | / (4 files):
21:39 dalek parrot: Add ASSERT_ARGS() to two files; re-run 'make headerizer.'
21:39 dalek parrot: review: https://github.com/parrot/parrot/commit/39f8f91234
21:43 dalek parrot/native_pbc2: 6a80df4 | rurban++ | / (3 files):
21:43 dalek parrot/native_pbc2: promote float to double va va_arg()...
21:43 dalek parrot/native_pbc2:
21:43 dalek parrot/native_pbc2: intel and pcc does not support va_arg float arguments. Sounds weird but
21:43 dalek parrot/native_pbc2: so it is.
21:43 dalek parrot/native_pbc2: float still has problems
21:43 dalek parrot/native_pbc2: review: https://github.com/parrot/parrot/commit/6a80df4eb3
21:43 dalek parrot/native_pbc2: e4efd86 | rurban++ | src/packfile/pf_items.c:
21:43 dalek parrot/native_pbc2: fix cvt_num8_num4
21:43 dalek parrot/native_pbc2: review: https://github.com/parrot/parrot/commit/e4efd865b4
21:53 lucian joined #parrot
22:51 alvis joined #parrot
23:26 benabik joined #parrot
23:59 lucian joined #parrot

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

Parrot | source cross referenced