Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-10

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:14 ash_ https://gist.github.com/ea759b72f3ce3be7f724 line 95 is the bad one i think, or i am just grasping at straws here
00:44 ash_ found it, i referenced something wrong
00:55 plobsing joined #parrot
00:56 mikehh ash_: any reason you are using for example: i += 1; rather than i++;
00:57 ash_ not really...
00:58 ash_ ++ gets confusing if you use it in some places, so i kinda avoid it altogether, but i don't mind putting in ++;
00:59 abqar joined #parrot
01:03 mikehh ash_: I also think the if .. switch .. else if .. switch .. etc in parse_identifier is far to complex and you could easily get lost there
01:03 ash_ yeah, i need to find some way of simplifying that table
01:03 ash_ if you have any suggestions let me know, they are subtly different, which is the annoying part
01:05 mikehh ash_: I'll have a think about it in a few hours - need sleep now
01:05 ash_ no worries, i'll keep thinking about it too
01:17 plobsing ash_: hi!
01:17 ash_ hi
01:18 * ash_ i wonder if i could get parrot to be somewhat integrated into xcode... it might help with debugging
01:18 ash_ my commandline fu is weak
01:19 ash_ plobsing: i have my signature parser almost completely integrated with the nci pmc
01:19 plobsing I find parrot's low-level debugging facilities to be lacking in general, but that's not as important as making higher level concepts actually work.
01:20 plobsing ash_: I saw. I've downloaded your nopasted example to try and track the segfault you mentioned (logs++)
01:20 ash_ and by almost it builds the correct ffi_cif object now, but it doesn't invoke them properly
01:21 ash_ i just updated it, it should work now, in theory, or if you git clone my repo, there is a folder called "throw_away" (i couldn't think of a better name, but i wanted to have my stuff in the repo), you can try building
01:23 ash_ i wasn't dereferencing enough on line 98 of the gist
01:24 plobsing &*arg_types[arg_count] ??
01:25 ash_ yea
01:25 ash_ i didn't have the * in there
01:25 ash_ i needed it
01:26 plobsing but (IRCC) & and * have the same precedence and are inverses. somethings fishy
01:26 ash_ i agree with mikehh++ though, i need to simplify parse identifier, the nested if's with switches seems complicated, but i can't think of a better way
01:27 ash_ either way, i am getting really close to having the current nci system build all of its calls dynamically, this means the core_thunks and extra_thunks are not needed anymore
01:28 arnsholt I'm with plobsing, that statement looks odd
01:32 plobsing ash_: if you have a lot of types, it is going to probably be on that order in length, but I would move the ifs inside the case. The distinction between char and long is more important (IMHO) than the distinction between unsigned long and signed long.
01:35 ash_ yeah, that makes sense
01:42 plobsing so it looks like that's comming together nicely. Do you think you'll have a working demo by next week?
01:42 ash_ plobsing: did you hear that the llvm people have a new debugger for the llvm, which i know was one of the complaints of the unladen swallow people was that the debugging support for the llvm was not great
01:43 ash_ plobsing: by next week for sure, i'd like to wrap it up asap and start planning the llvm changes...
01:44 ash_ if i could just have one good break with the stuff thats keeping me up (mostly debugging the pmc, it's been hard up to this point since i haven't gotten it to run with gdb for whatever reason), i think i could get the basics finished. I still need to work on the config stuff but i'll worry about that once i get the functionality there
01:45 plobsing debugging PMCs with gdb? yeah, I gave up trying to make that work. I tend to extract the vtable to another function and put the breakpoint on the extracted function. crude yet effective.
01:46 ash_ in gdb, can you print a STRING's contents?
01:46 ash_ i just got it working (sorta)
01:46 plobsing p *s
01:46 plobsing so long as it doesn't have embedded nulls, strstart (being a char *) will be assumed to be a string
01:46 ash_ ah, i didn't think that would be in there
01:46 ash_ cool, thanks
01:46 ash_ having the gdb will make this a lot easier...
01:47 ash_ i was putting in printfs everywhere...
01:47 plobsing AFAIK, gdb can eval arbitrary expressions in supported languages (including C)
01:47 ash_ glad i am not doing that now
01:48 ash_ are strings null terminated?
01:48 plobsing in parrot? not by documentation, but in practice, it seems so.
01:48 plobsing I think the allocator zeroes memory or something.
01:53 ash_ I assume I should use parrot's malloc/calloc right? do those do anything special? or are they just wrappers
01:53 TiMBuS joined #parrot
01:53 plobsing ash_: they are wrappers so that we can do special things if we so choose
01:54 plobsing so yes, use them
01:54 ash_ alright, i'll switch my mallocs and callocs over to those
01:56 plobsing just a heads up before you write too much more code: the codingstd tests will throw a fit on your current code. IWBNI you followed parrot style a little more closely.
01:56 ash_ were are the style guide lines?
01:57 plobsing pdd07_codingstd.pod
01:57 purl somebody said pdd07_codingstd.pod was just for parrot source code
01:58 plobsing coding style is a lot easier to write than to fix up (unless you're an indent(1) wizard)
01:59 ash_ i'll read over them and start following them as best  ican
02:00 plobsing you can register your C files in the appropriate place and then 'make codetest' will call you on anything that isn't kosher
02:02 ash_ k, do i have to add my files to the MANIFEST?
02:02 plobsing I can never remember. I'm currently tracing through the tests to see where they get their "big list of C files".
02:07 bacek_at_work tools/dev/mk_manifest_and_skip.pl if you are on svn checkout
02:07 plobsing yes, I'm fairly sure C files get included in the list after adding to MANIFEST and reconfig
02:08 plobsing or what bacek++ said
02:16 ash_ is there a parrot calloc?
02:16 cotto ash_, include/parrot/memory.h
02:17 cotto look for "zeroed"
02:17 ash_ mem_allocate_n_zeroed_typed ?
02:18 cotto if you want more than one thing, yes
02:19 ash_ k, is the mem_gc_allocate_* functions the same but integrated into the gc?
02:20 plobsing I would also like to know that. they seem to be used interchangeably in places.
02:20 cotto bacek_at_work, I believe you have a question. ;)
02:22 plobsing also why does zeroed imply interior pointers?
02:25 cotto msg khairul Don't forget to run make codingstd_test every now and then.
02:25 purl Message for khairul stored.
02:27 theory joined #parrot
02:40 tetragon joined #parrot
02:49 bacek_at_work Idea behind "mem_gc_*" functions that they are overridable in GC.
02:50 bacek_at_work "zeroed" because it's usually used for memory with pointer.
02:50 bacek_at_work not mandatory requirements.
02:51 bacek_at_work Anyway "_with_interior" imply that memory _can_ contains pointer.
02:51 szabgabx_ joined #parrot
02:52 ash_ so, if I am using an internal data structure (as in it never sees pir or anywhere outside of the pmc i am working in) i should use the _with_interior?
03:02 bacek_at_work ash_, if it contains pointers - yes
03:03 ash_ alright, they do contain pointers, so i'll have to make sure i don't have any leaky data structures
03:06 janus joined #parrot
03:09 bacek_at_work ash_, current GC is precise. So you have to implement custom VTABLE mark.
03:10 dalek parrot: r47523 | tcurtis++ | branches/gsoc_past_optimization (4 files):
03:10 dalek parrot: Fix a PAST::Pattern.transform bug and add an example of constant folding with PAST::Pattern.
03:10 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47523/
03:14 ash_ thanks, i'll keep that in mind and make the vtable mark appropriate
03:26 LoganLK joined #parrot
03:39 petdance joined #parrot
03:40 snarkyboojum joined #parrot
04:03 tetragon joined #parrot
05:00 cotto clock?
05:01 purl cotto: LAX: Wed 10:00pm PDT / CHI: Thu 12:00am CDT / NYC: Thu 1:00am EDT / LON: Thu 6:00am BST / BER: Thu 7:00am CEST / IND: Thu 10:30am IST / TOK: Thu 2:00pm JST / SYD: Thu 3:00pm EST /
05:02 tetragon_ joined #parrot
05:13 sorear seen pmichaud
05:13 purl pmichaud was last seen on #parrot 8 hours, 31 minutes and 49 seconds ago, saying: I don't.  :-)
05:38 fperrad joined #parrot
05:41 fperrad_ joined #parrot
05:55 aukjan joined #parrot
06:02 uniejo joined #parrot
06:15 dalek tracwiki: v1 | cotto++ | LoritoSecurity
06:15 dalek tracwiki: initial version, no actual contents
06:15 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lor​itoSecurity?version=1&action=diff
06:32 dalek tracwiki: v1 | cotto++ | LoritoConcurrency
06:32 dalek tracwiki: initial version, no contents yet
06:32 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lori​toConcurrency?version=1&action=diff
06:32 dalek tracwiki: v17 | cotto++ | LoritoRoadmap
06:32 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lor​itoRoadmap?version=17&action=diff
06:51 dukeleto seems like Parrot_compreg has no test coverage
06:57 dukeleto why is it that I can only read the source of IMMC after a few drinks?
06:57 dukeleto IMCC, even
07:02 moritz because it doesn't hurt so much if you can't read straight?
07:15 baest joined #parrot
07:16 dukeleto moritz: yes, you are correct
07:19 dukeleto the 3rd arg of Parrot_compreg is Parrot_compiler_func_t, but that is not in the embed/extend interface
07:25 he joined #parrot
07:32 cotto classy
07:38 dukeleto i would like to know how to fix things like this
07:39 * dukeleto falls down in yak-filled quicksand
07:45 cotto but you can build a bridge over the yak pit so other people won't have to fall into it!
07:48 Tene build it out of yak hair!
07:50 cotto there's plenty
07:50 cotto and duct tape too
07:50 cotto use what you've got
07:50 dukeleto there sure is a lot of duct tape in imcc
07:50 bacek aloha, humans
07:51 cotto aloha, bacek
07:51 bacek aloha, cotto
07:51 dukeleto bacek: hello
07:52 dukeleto it seems that Parrot_compile_string can only handle PIR or PASM and errors out on any other language
07:52 dukeleto i want to compile a rakudo (perl6) string from the embed API
07:52 bacek dukeleto, do it via pir.
07:53 dukeleto bacek: yeah, that was what I was thinking
07:53 dukeleto bacek: it is not possible from PIR?
07:54 dukeleto bacek: err, i mean C
07:54 bacek dukeleto, no afaik
07:54 dukeleto bacek: i see
07:55 dukeleto bacek: should I make a TT for that, or does one exist?
07:55 bacek dukeleto, I don't think that we have such ticket.
07:56 bacek OTOH, I don't think we should able to do it from C
08:03 dukeleto bacek: interesting. why so?
08:03 bacek it's 5 lines pir sub to invoke any other compiler.
08:04 bacek And we discourage using of C (in Lorito world)
08:04 bacek And list of available compilers is dynamic.
08:07 dukeleto bacek: i am talking about from the embedding API
08:08 dukeleto bacek: i am hacking on PL/Perl6 on top of PL/Parrot (Parrot in Postgres)
08:08 cotto bacek, you'll like this
08:08 bacek dukeleto, from embedding api you can call PIR sub which will invoke any compiler
08:08 cotto assuming make test passes
08:09 bacek cotto, like what?
08:09 dukeleto bacek: yes, but i have to go from C->PIR->Perl 6->C instead of C->Perl 6->C
08:09 cotto using proper multis in opsc
08:09 bacek dukeleto, no. You go from C->parrot->C
08:10 bacek cotto, yay! It was one of driving ideas for me to implement multis in nqp :)
08:10 dukeleto bacek: yeah, it is about the same
08:10 cotto It was really straightforward.
08:10 bacek dukeleto, so, why to bother with extending embed api?
08:11 dukeleto bacek: what do you mean?
08:11 bacek Time to go and sing anthem.
08:11 bacek dukeleto, functionality to invoke any compiler already available from embed API.
08:12 bacek All compilers are in PIR (apart IMCC, but I'm working on it)
08:12 bacek So, writing 1 small pir sud doesn't add too much overhead.
08:13 bacek afk # ozzying
08:13 dukeleto bacek: yeah, you are write
08:13 dukeleto right, even
08:13 * dukeleto needs to pass out
08:15 cotto bacek, two things for when you get back:
08:15 cotto does PIRATE have something I could hack on without stepping on your toes?
08:16 cotto Is there anything else in opsc that you know would be better if rewritten to use multis?
08:22 dalek parrot: r47524 | cotto++ | trunk/compilers/opsc/src/Ops/Op.pm:
08:22 dalek parrot: [opsc] use proper multis in Ops::Op.process_body_chunk
08:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47524/
08:24 clinton joined #parrot
08:29 dukeleto i just got imcc to core dump postgres. i should *really* go to sleep.
08:30 cotto wouldn't hurt me either
08:34 dalek rakudo: f0e5fe6 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
08:34 dalek rakudo: Support for multi sub main
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​0e5fe654ff390f94e3b2b55e63d841961601c4f
08:34 dalek rakudo: 811cd66 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
08:34 dalek rakudo: Support automatic usage
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​11cd6623a62a02cc1fedb8110c5b3764eb040bc
08:34 dalek rakudo: 6e3624e | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
08:34 dalek rakudo: Better usage message when using -e
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​e3624eb6d01fc669a91a7fd4ccbc9f9de396a1c
08:34 dalek rakudo: 14d1542 | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
08:34 dalek rakudo: USAGE-one-sub and process-cmd-args don't polute the global namespace anymore,
08:34 dalek rakudo: USAGE and MAIN_HELPER still do
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​4d1542c6eb71fe9101efb8530bd75efaedb4739
08:34 dalek rakudo: 037a9db | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
08:34 dalek rakudo: [minor] added comment removed empty line
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​37a9db214ec421be4b8194b13384d4f2b24112e
08:34 dalek rakudo: 2c1c3d7 | moritz++ | src/core/MAIN.pm:
08:34 dalek rakudo: Merge remote branch 'patrickas/master'
08:34 dalek rakudo: This gives us
08:34 dalek rakudo:  - support for multi sub MAIN
08:34 dalek rakudo:  - automatic USAGE message (customizable)
08:34 dalek rakudo:  - remove some functions from user namespace
08:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​c1c3d77ed5f8fee83c70e66b16e3cbf9d311807
08:43 mikehh joined #parrot
08:51 bacek_mobile joined #parrot
08:53 bacek_mobile cotto, pirate is blocked by nqp bug with protoregex...
08:54 cotto no workaround?
08:55 bacek_mobile nope. It just failed to parse pir with some hashseeds
08:55 cotto yuck
08:55 dalek parrot: r47525 | cotto++ | trunk/compilers/opsc/src/Ops/Op.pm:
08:55 dalek parrot: [opsc] simplify some multi variants now that they're separate
08:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47525/
08:55 cotto how to repro?
08:55 cotto I could take a shot at making it into a minimal test case
08:57 bacek_mobile I did tell about this to pm. Try to find it in irclogs. "bacek nqp hashseed" or something
08:57 cotto wfm
08:58 cotto I have a grep and I know how to use it.
09:00 bacek_mobile sigh. nopaste already expired...
09:00 cotto found it
09:01 cotto http://webcache.googleusercontent.com/sea​rch?q=cache:http://nopaste.snit.ch/20620
09:01 cotto yay for google's cache
09:02 cotto That looks like a fun one.
09:02 bacek_mobile I'll try to reproduce it later tonight
09:02 bacek_mobile I hope citizenship ceremony woldn't take long
09:03 bacek_mobile yeah, this one.
09:03 purl yeah, this one is great... http://dvs1.dvlabs.com/adc​ritic/spoof-powerlung.mov
09:04 bacek_mobile you can put somethink like <?DEBUG> to switch on debugging.
09:04 cotto I can reproduce it fine
09:04 bacek_mobile into grammar rules
09:05 cotto sounds good
09:06 cotto is that an nqp builtin?
09:06 cotto that's really handy
09:08 cotto either way, happy citizenshipping.  it's way too late for my debug-fu to be worth anything.
09:08 cotto 'night
09:18 bacek_mobile joined #parrot
09:20 he Hm, short question: I'm trying to convert a packaged parrot to using gmp.  Configure.pl says gmp is installed, and it's used during linking.  t/op/arithmetics.t says "No integer overflow for 32-bit INTVALs without GMP installed", however. It looks in interp[.IGLOBALS_CONFIG_HASH] -- where do I find that one to dig into what's going on?
09:22 moritz he: maybe  parrot_config --dump  contains some output of interest for you?
09:23 he ./parrot_config --dump | egrep -i gmp gives me (among others) "gmp => 'define'"
09:23 moritz libs => '-ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline '
09:23 moritz gmp => 'define'
09:23 moritz HAS_GMP => '1'
09:23 he HAS_GMP => '1' as well, yes.
09:23 moritz plus a long line for configuration_steps
09:24 he my libs are libs => '-lm -lcrypt -lpthread -lgmp -lintl'
09:25 moritz t/op/arithmetics.t doesn't mention integer overflow here
09:26 he This is with parrot 2.4.0
10:06 TiMBuS joined #parrot
10:30 bkuhn joined #parrot
10:42 aukjan joined #parrot
11:01 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34298), fulltest) at r47525 - Ubuntu 10.04 i386 (g++)
11:01 mikehh t/op/exit.t - TODO passed:   6 in testf
11:01 mikehh note that the TODO pass does not happen on amd64
11:23 lucian joined #parrot
11:26 Coke joined #parrot
11:35 whiteknight joined #parrot
11:38 dalek parrot: r47526 | NotFound++ | trunk/t/pmc/bytebuffer.t:
11:38 dalek parrot: avoid depending on icu to compile bytebuffer test file and skip some of its tests when no icu, TT #1677
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47526/
11:40 whiteknight good morning, #parrot
11:47 bacek aloha, humans
11:47 bacek whiteknight, aloha
11:50 dalek TT #1677 closed by NotFound++: t/pmc/bytebuffer.t:  Fails when ICU is not present
11:50 dalek TT #1677: http://trac.parrot.org/parrot/ticket/1677
11:55 khairul joined #parrot
11:55 dalek rakudo: b461fd2 | (Solomon Foster)++ | src/c (4 files):
11:55 dalek rakudo: Move Rat.Str to Real (with tweaks), delete Rat.Int tweak other Real.Str methods
11:55 dalek rakudo: so things still work.
11:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​461fd27a15d48fa5de39d1eeae598358fe86bd8
12:02 whiteknight good morning, bacek. How are you today?
12:02 bacek whiteknight, I'm an ozzy today. Just got my citizenship couple of hours ago :)
12:04 mikehh bacek: Congratulations - I think :-}
12:05 bacek mikehh, thank :)
12:06 whiteknight bacek: awesome
12:07 mikehh rakudo (2c1c3d7) builds on parrot r47525 - make test PASS, spectest_smolder -> #34302 (pugs r31183) PASS - Ubuntu 10.04 i386 (g++)
12:07 mikehh 19 TODO PASSes in 4 files
12:08 mikehh got the same results on amd64 (e3153ad) at r47458
12:11 dalek parrot: r47527 | NotFound++ | trunk/t/pmc/bytebuffer.t:
12:11 dalek parrot: add simpler ByteBuffer get_string tests that doesn't require ICU
12:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47527/
12:28 dalek parrot: r47528 | NotFound++ | trunk/t/pmc/bytebuffer.t:
12:28 dalek parrot: ByteBuffer tests for invalid charset/encoding
12:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47528/
12:32 dalek parrot-data-structures: 11a9461 | Whiteknight++ | README.pod:
12:32 dalek parrot-data-structures: Fix stupid typo
12:32 dalek parrot-data-structures: review: http://github.com/Whiteknight/parrot-data-structur​es/commit/11a9461f1d3d8f44c058f8334aa90b7f72ffd2f6
12:38 dalek parrot-data-structures: d06ea78 | Whiteknight++ | README.pod:
12:38 dalek parrot-data-structures: Remove unnecessary stars
12:38 dalek parrot-data-structures: review: http://github.com/Whiteknight/parrot-data-structur​es/commit/d06ea78cf982a9a0268a81ecc19ddd955fcef0e4
12:44 dalek parrot: r47529 | gerd++ | trunk/NEWS:
12:44 dalek parrot: Add NEWS for 2.5.0 from the last #parrotsketch meeting and something about Lorito
12:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47529/
12:44 dalek parrot: r47530 | khairul++ | branches/gsoc_instrument (10 files):
12:44 dalek parrot: Made the runtime library a single pbc + event notification
12:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47530/
12:44 dalek parrot: r47531 | NotFound++ | trunk/t/pmc/bytebuffer.t:
12:44 dalek parrot: ByteBuffer test with content invalid for the charset/encoding asked
12:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47531/
13:01 dalek parrot: r47532 | NotFound++ | trunk/NEWS:
13:01 dalek parrot: delete Winxed-only news from NEWS
13:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47532/
13:01 dalek parrot: r47533 | NotFound++ | trunk/NEWS:
13:01 dalek parrot: add ByteBuffer to NEWS
13:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47533/
13:02 ambs joined #parrot
13:13 dalek rakudo: 16d9cb0 | (Solomon Foster)++ | src/core/ (3 files):
13:13 dalek rakudo: Add Numeric.Real, Numeric.Int, Numeric.Rat, Numeric.Num, and Real.Real.  Change
13:13 dalek rakudo: Complex.Num to Complex.Real.
13:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​6d9cb035231e08a22ac848f8e558569e134c750
13:26 atrodo joined #parrot
13:50 dalek parrot: r47534 | NotFound++ | trunk (2 files):
13:50 dalek parrot: fix RIA thaw and add a test for it
13:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47534/
13:56 patspam joined #parrot
14:35 Coke msg particle I'm going to make Task::Parrot, methinks.
14:35 purl Message for particle stored.
14:35 particle ?
14:36 Coke Task is the new Bundle
14:36 Coke http://search.cpan.org/~ad​amk/Task-1.04/lib/Task.pm
14:36 particle ah, yes, good idea
14:36 bubaflub joined #parrot
14:40 ambs Task?
14:40 purl i think Task is like a Bundle, but listing prereqs in Makefile.PL/Build.PL instead of inside a Pod section or at http://search.cpan.org/dist/Task/
14:40 ambs purl++
14:40 tcurtis joined #parrot
14:43 gbacon joined #parrot
14:47 lucian_ joined #parrot
14:50 estrabd left #parrot
14:59 ash_ joined #parrot
15:15 Essobi joined #parrot
15:18 atrodo So let's say I'm in C with embedded parrot, I have an Eval PMC, and I want to pass it data when I invoke it.  What's the best way to do that/is that possible?
15:23 Coke ISTR there's a Parrot_invoke* variant for you.
15:23 Coke Parrot_ext_call ?
15:23 purl i think Parrot_ext_call is the same as Parrot_pcc_invoke_sub_from_c_args, but is the public interface (and so the one guaranteed to stick around)
15:24 Coke yup, that looks promising.
15:25 atrodo Yes, I can call the eval with that, but I'm having issues passing params in unless the Eval is a sub
15:27 Coke Eval isa Sub - should work.
15:27 Coke if not, if you can get us a failing test case, that'd help.
15:27 atrodo Hmmm, I think a code chunk may help explain, hold on
15:28 dalek parrot: r47535 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
15:28 dalek parrot: make FIA sort method half-usable
15:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47535/
15:34 atrodo http://gist.github.com/433158  #Sorry if it's a little harder to read since it's in pascal and not c
15:35 Coke what does create_string do?
15:35 atrodo Parrot_new_string
15:36 NotFound Pascal? Are you embeding parrot in a Pacal program? Amazing.
15:37 Coke We're missing code here.
15:37 atrodo I am indeed embedding parrot in pascal
15:37 Coke what is: "create_string(join(inNode.point.macros))" ?
15:38 atrodo Yes, that got by.  That should be create_string(code) in this example
15:39 atrodo in the real code, I'm pulling the code that gets passed in from another source
15:39 Coke ok. It's hard to debug your code if we don't have it all. =-)
15:39 atrodo Understand.  I've corrected it
15:40 Coke so you've got a PIR sub that should be creating an NQP sub, and then you're trying to invoke /that/
15:40 purl Hmm.  No matches for that, Coke.
15:40 Coke ?
15:40 Coke er, what is "hll" ?
15:40 Coke PIR ?
15:40 purl PIR is a bofh at tufts or http://www.pir.net or Passive Infra Red or Parrot Intermediate Language (and almost an acronym) or the Price is Right. or http://www.parrotcode.org/​docs/art/pp001-intro.html
15:40 Coke or NQP?
15:40 purl i think NQP is http://github.com/perl6/nqp-rx or not quite low-level enough for some purposes or Not Quite Perl 6
15:40 Coke purl, botsnack of doom.
15:40 purl :)
15:41 atrodo Correct.  It's my work around to getting parrot to compile NQP since I couldn't see a way to do through the embedding interface
15:41 Coke which? =-)
15:41 Coke NQP?
15:41 purl well, NQP is http://github.com/perl6/nqp-rx or not quite low-level enough for some purposes or Not Quite Perl 6
15:41 atrodo hll is set to "nqp"
15:42 NotFound $ winxed -e 'int a[] = [ 3, 7, 1, 9 ]; a.sort(); say(join(", ", a));'  -> 1, 3, 7, 9
15:42 NotFound Good :)
15:42 Coke atrodo: you're blowing away code after you declare sa. do you mean to do this?
15:43 atrodo No.  That'll teach me to simplify code for example reasons
15:47 NotFound atrodo: in t/src/embed.t there is an example of calling subs
15:51 Coke atrodo: so the problem with /that/ code is... that it prints a blank line?
15:52 Coke you probably want your nqp code to be something like " -> $arg { pir::say $arg }"
15:52 krunen joined #parrot
15:53 atrodo Coke> Correct.  I'm trying to figure out how to access the passed param from nqp
15:54 Coke so I'd do a PIR only example first. hang on.
15:56 atrodo Cool.
15:59 Coke can't find the load_language for nqp.
16:01 atrodo I had to mess with the path and file name of the nqprx.pbc to get my load_language to work
16:01 dalek parrot: r47536 | NotFound++ | trunk/t/src/embed.t:
16:01 dalek parrot: add a embed test for passing argument and returning a value to a PIR sub from C
16:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47536/
16:17 Coke (sorry, had to rebuild parrot...)
16:25 nopaste "coke" at 192.168.1.3 pasted "for atrodo" (16 lines) at http://nopaste.snit.ch/21152
16:25 Coke atrodo: that help?
16:26 atrodo Coke> That's what I was afraid of.
16:26 atrodo I'll be defining a lot of these code segments that will get compiled and I was hoping to avoid defining all of them as subs, but that might be what I have to do
16:29 nopaste "coke" at 192.168.1.3 pasted "atrodo - ok, here's an anonymous sub varietal" (16 lines) at http://nopaste.snit.ch/21153
16:29 patspam1 joined #parrot
16:30 Coke atrodo: there you go.
16:30 Coke that better?
16:30 atrodo Hold on, let me see if this magic incarnation works in my code
16:31 NotFound I think you can pass arguments to nqp "main", but must be a string array, as if they where command line arguments.
16:34 atrodo Coke> I'm very behind on Perl6, what's the -> do?
16:39 clinton joined #parrot
16:41 moritz it starts a lambda
16:41 moritz or "pointy block"
16:41 moritz or anonymous closure
16:41 moritz or whatever you want to call it
16:41 purl whatever you want to call it is, like, fine
16:42 atrodo Ah, so it's equivalent to "sub { }" in perl5?
16:42 moritz not quite, but close enough :-)
16:42 atrodo Got it
16:43 cotto_work joined #parrot
16:43 cotto_work good mornings
16:43 purl good mornings are when all my stocks are up in after hours trading
16:44 AzureStone joined #parrot
16:47 perlpilot joined #parrot
16:49 davidfetter joined #parrot
17:00 NotFound cotto_work: Have you sleep well? ;)
17:02 cotto_work definitely more coherent
17:02 NotFound cotto_work: thanks for your testing, anyway.
17:02 cotto_work whether my coherency is sufficient is still an open question
17:02 * davidfetter envies people who achieve any level of coherence
17:02 cotto_work sure.  When I played with it at home last night, it looks like it dtrt.
17:04 atrodo Coke> Thanks for the help.  Looks like my magical utopian world still hasn't appeared, but reality will serve me well enough for now
17:25 bubaflub joined #parrot
17:30 theory joined #parrot
17:35 whiteknight joined #parrot
17:37 Coke atrodo: glad to help. now if only someone would help me. =-)
17:38 perlpilot Coke: what do you need help with?
17:42 Coke perlpilot: I would like hacking on partcl to not suck. =-)
17:42 Coke I'm not sure that that is compliant with the current state of parrot, however.
17:44 Coke mikehh: I'm not sure if you were testing partcl, but 'partcl' (not partcl-nqp) should currently pass all tests against parrot head.
17:45 Coke msg mikehh I'm not sure if you were testing partcl, but 'partcl' (not partcl-nqp) should currently pass all tests against parrot head.
17:45 purl Message for mikehh stored.
18:03 Maddingue joined #parrot
18:04 dukeleto joined #parrot
18:04 dukeleto 'ello
18:04 Coke BOO
18:08 davidfetter hai dukeleto
18:08 dukeleto davidfetter: hola
18:09 davidfetter eggyknap asked, "So, that whole dynops break things deal seems to have died off. Is it resolved and I just missed it?"
18:09 davidfetter <-- ENOCLUE
18:11 dalek joined #parrot
18:12 dukeleto davidfetter: dynops are still a bit wonky, but it seems that the open/close opcodes will be removed soon
18:12 davidfetter k
18:13 dukeleto davidfetter: i made more progess on PL/Perl6 last night
18:13 davidfetter dukeleto, sweet!
18:13 dukeleto davidfetter: PL/Parrot can load perl6.pbc and is very close to running Perl 6 code
18:14 davidfetter CREATE OR REPLACE FUNCTION scarface() RETURNS TEXT LANGUAGE plperl6 AS $$say "Hello to my little friend!"$$;
18:14 dukeleto davidfetter: that isn't a bad test :)
18:14 davidfetter actually, "say" is probably *not* the right thing :(
18:15 davidfetter stdout isn't really available
18:15 dukeleto davidfetter: yeah, return it instead
18:16 davidfetter :)
18:17 dukeleto feather seems sick
18:18 dukeleto what should Filehandle.open do if io_ops are not loaded?
18:19 Coke dukeleto: work?
18:19 purl Work - the curse of the drinking class.  (Oscar Wilde)
18:19 Coke filehandle.open isn't using any of the IO ops under the covers, is it?
18:20 atrodo That'd be an entertaining chick/egg problem
18:22 darbelo It shouldn't be.
18:23 NotFound Coke: nope
18:23 NotFound The proof is that you can use it without the dynops being loaded.
18:23 dukeleto I thought that FileHandle.open used the open opcode, but perhaps I am wrong about that
18:24 Coke dukeleto: I tink FH.open uses the raw C.
18:24 Coke and I think the open op just dispatches to the method.
18:24 NotFound Winxed doesn't load any dynop, and uses files without any problem.
18:24 Coke so FH should work fine on its own. let us know if it doesn't.
18:24 dukeleto i just attempted to build trunk with -j4 and it failed on src/pmc/key.o
18:25 dukeleto i have been compiling with -j4 for a long time, so it must have broken recently
18:26 dukeleto this usually means there is a bug in Makefile dependencies, right?
18:29 darbelo dukeleto: Yes.
18:30 lucian joined #parrot
18:31 dalek joined #parrot
18:49 jan joined #parrot
18:51 Coke try running tools/dev/checkdepend.pl , see if there's anything obvious.
18:52 Coke (once you have completed make)
19:22 dalek joined #parrot
19:22 dalek parrot: r47537 | NotFound++ | trunk/t/src/embed.t:
19:22 dalek parrot: avoid repeating common code in embed tests
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47537/
19:22 dalek parrot: r47538 | NotFound++ | trunk/t/src/embed.t:
19:22 dalek parrot: cosmetic change to embed tests
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47538/
19:22 dalek parrot: r47539 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
19:22 dalek parrot: explicitly return SELF and some cleaning in FIA sort method
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47539/
19:22 dalek parrot: r47540 | NotFound++ | trunk/t/pmc/fixedintegerarray.t:
19:22 dalek parrot: test FIA sort
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47540/
19:22 dalek parrot: r47541 | NotFound++ | trunk (4 files):
19:22 dalek parrot: add the function Parrot_warn_deprecated and use it in a few places
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47541/
19:22 dalek parrot: r47542 | mikehh++ | trunk/src/warnings.c:
19:22 dalek parrot: fix codetest failure - add ASSERT_ARGS
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47542/
19:23 dalek parrot: r47543 | mikehh++ | trunk/src/pmc/fixedintegerarray.pmc:
19:23 dalek parrot: fix codetest failure - there should be at least one space between a C keyword and any subsequent open parenthesis
19:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47543/
19:23 dalek parrot: r47544 | mikehh++ | trunk/t/pmc/fixedintegerarray.t:
19:23 dalek parrot: fix codetest failure - trailing whitespace
19:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47544/
19:23 dalek TT #1661 closed by dukeleto++: Parrot crashes when clicking on Preferences
19:23 dalek TT #1661: http://trac.parrot.org/parrot/ticket/1661
19:23 dukeleto1 joined #parrot
19:23 PerlJam joined #parrot
19:23 dukeleto feather is back!
19:24 Util joined #parrot
19:24 dalek winxed: r499 | julian.notfound++ | trunk/t/ (2 files):
19:24 dalek winxed: move ord and chr tests to basic tests
19:24 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=499
19:24 dalek winxed: r500 | julian.notfound++ | trunk/Makefile:
19:24 dalek winxed: ooops, forgot to update Makefile
19:25 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=500
19:25 GeJ Bonjour everyone.
19:26 Coke Hola
19:27 NotFound mikehh++ thanks for catching my typos.
19:28 pmichaud joined #parrot
19:29 cotto_work pmichaud, if I give you a 28-line nqp script that succeeds or fails depending on the hash seed, is that sufficient to get the bug (if it exists) fixed?
19:30 cotto_work it's mostly a grammar with a tiny bit of driver code
19:32 dukeleto_ joined #parrot
19:32 dukeleto_ feather is down again. poopy pants.
19:32 mikehh NotFound: np - that's how I get my karma :-}
19:33 nopaste "cotto" at 192.168.1.3 pasted "possible nqp bug for pmichaud" (56 lines) at http://nopaste.snit.ch/21160
19:35 cotto_work That's holding up PIRATE progress fwiw.
19:36 cotto_work I guess I scared him off.  Sad face.
19:36 pmichaud joined #parrot
19:36 dalek joined #parrot
19:36 PerlPilot joined #parrot
19:37 dalek rakudo: 563cad0 | patrickas++ | CREDITS:
19:37 dalek rakudo: Fame and fortune for patrickas \o/
19:37 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
19:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​63cad09783fd4596041a262f4fef5a7ffff54d3
19:37 dalek rakudo: 3b29cd2 | patrickas++ | src/core/MAIN.pm:
19:37 dalek rakudo: named arguments are always shown first
19:37 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
19:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​b29cd2b5ee26279aa1e22b1480f779fc383bda4
19:40 dukeleto1 joined #parrot
19:41 Util joined #parrot
19:48 dalek rakudo: ec2694e | moritz++ |  (2 files):
19:48 dalek rakudo: make @*ARGS writable. This allows us to run S06-other/main.t, so do that
19:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​c2694e7218de7774ef036a3a1c29ee9ec301a01
19:56 cotto_work pmichaud: ping
19:59 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34306), fulltest) at r47544 - Ubuntu 10.04 i386 (g++ with --optimize)
19:59 mikehh t/op/exit.t - TODO passed:   6 in testf
20:00 mikehh again note that the TODO does not pass on amd64
20:03 bkuhn joined #parrot
20:03 Psyche^ joined #parrot
20:13 dalek TT #1676 closed by mikehh++: t/pmc/io.t fails make corevm/make coretest
20:13 dalek TT #1676: http://trac.parrot.org/parrot/ticket/1676
20:13 dalek TT #1669 closed by mikehh++: t/pmc/eval.t  and t/pmc/threads.t fail during 'make coretest'
20:13 dalek TT #1669: http://trac.parrot.org/parrot/ticket/1669
20:13 dalek TT #1666 closed by mikehh++: t/op/sprintf.t and t/pmc/sub.t fail during 'make coretest'
20:13 dalek TT #1666: http://trac.parrot.org/parrot/ticket/1666
20:22 masak joined #parrot
20:22 masak NotFound: ping
20:22 NotFound masak: pong
20:23 masak NotFound: I've just successfully made Str.encode use the new ByteBuffer.
20:23 NotFound Good
20:23 masak now I'm looking to do the same for Buf.decode.
20:23 dalek rakudo: c43bca7 | moritz++ |  (2 files):
20:23 dalek rakudo: print USAGE message to $*ERR, just because it feels right-isher
20:23 dalek rakudo: Also run new test main-usage.t
20:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​43bca73f2f97d0ab6284e292b0d98c1bacde1f1
20:23 masak in this, I have a small question related to PIR and the .pmc file.
20:24 masak what's the PIR equivalent of the 'VTABLE void init_int(INTVAL initial_size)' method?
20:24 NotFound new ['...'], i
20:24 masak thanks.
20:25 NotFound There are examples of all usages in t/pmc/bytebuffer.t
20:25 masak oh, goodie.
20:26 moritz purl: msg chromatic it would be super helpful if you could release Pod::PseudoPod::LaTeX with the latest patch (see my github clone)
20:26 purl Message for chromatic stored.
20:46 ambs joined #parrot
20:53 particle pmichaud: you may have missed this from ~80m ago: (12:32:52 PM) nopaste: "cotto" at 192.168.1.3 pasted "possible nqp bug for pmichaud" (56 lines) at http://nopaste.snit.ch/21160
20:53 particle ah, crap i'm in scrollbackland
20:54 particle ok, i'm back and that msg is still relevant
20:55 cotto_work I'll make sure it doesn't get missed. ;)
20:55 cotto_work testing now with latest nqp
20:56 cotto_work same deal
20:59 cotto_work writing a reliable test for that one will be fun
21:08 cotto_work clock?
21:08 purl cotto_work: LAX: Thu 2:08pm PDT / CHI: Thu 4:08pm CDT / NYC: Thu 5:08pm EDT / LON: Thu 10:08pm BST / BER: Thu 11:08pm CEST / IND: Fri 2:38am IST / TOK: Fri 6:08am JST / SYD: Fri 7:08am EST /
21:12 mikehh rakudo (c43bca7) builds on parrot r47544 - make test PASS, spectest_smolder -> #34308 (pugs r31188) PASS - Ubuntu 10.04 i386 (g++ with --optimize)
21:12 mikehh 19 TODO PASSes in 4 files
21:16 mikehh partcl (10737a0)  builds on parrot r47544 - make test PASS, make smolder -> #34309 - Ubuntu 10.04 i386 (g++ with --optimize)
21:16 mikehh Coke: ping
21:19 dalek parrot: r47545 | Chandon++ | branches/gsoc_threads (442 files):
21:19 dalek parrot: [gsoc threads] Merge from trunk; add coop_threads example.
21:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47545/
21:19 dalek parrot: r47546 | darbelo++ | branches/gsoc_nfg/src/string (2 files):
21:19 dalek parrot: Make sure we grow the table before merging.
21:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47546/
21:27 masak NotFound: when creating a new ByteBuffer and filling it with values, how advantageous is it to specify the length up front? put differently, how much overhead will it create if I just keep assigning from 0 to $N without giving the length?
21:28 masak joined #parrot
21:30 cotto_work masak: it looks like it tries to be smart about resizing so that setting the last element won't have much of a penalty
21:31 masak oki, good.
21:33 NotFound Smart is a bit exagerated... Just avoid to be too wasteful.
21:33 NotFound Should be tuned with real usage data.
21:34 masak so the ideal of frugality is to actually set the length at the beginning?
21:34 masak I was mostly wondering if it's worth it.
21:35 NotFound If you know it in advance, sure.
21:35 masak I do. I have a Perl 6 array of Ints.
21:36 NotFound Then no doubt, set it at creation.
21:39 Coke mikehh: pong
21:40 masak NotFound++ # this is exactly what I need for Str/Buf interconversion!
21:47 mikehh Coke: in partcl make smolder I got extra (doubled up) / and had to remove them and manually enter the curl
21:47 szabgabx joined #parrot
21:52 * davidfetter waves to gabor
21:52 davidfetter er, szabgabx*
21:52 szabgabx hi davidfetter
21:54 Coke mikehh: danke. I think I fixed that in partcl-nqp.
21:54 Coke I'll take care of it.
21:54 mikehh Coke: anyway it builds and make test passes (and makew smolder)
21:54 mikehh make
21:55 szabgabx people keep asking me about the status of Parrot
21:55 szabgabx and which languages has the most advanced compiler to parrot
21:55 szabgabx or if there is any language that has a full implemenation
21:56 cxreg lolcode?
21:56 purl well, lolcode is HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE or at http://lolcode.com/ or at https://svn.parrot.org/languages/lolcode/
22:00 NotFound sa
22:01 NotFound szabgabx: Winxed has a full implementation... because is itself its specification X-)
22:02 darbelo szabgabx: fperrad's lua is pretty complete.
22:03 Coke lua is the best choice, though I don't think it's using the current compiler toolkit.
22:04 Coke rakudo is probably the best for that.
22:04 darbelo Oh, yeah. I keep forgetting that.
22:04 bacek aloha, humans
22:04 bacek cotto++ # nqp bug hunting!
22:04 NotFound Let's start a languages fight!
22:05 mikehh well if it ain't bacek, belong land of oz
22:05 * darbelo throws an Objective C at NotFound
22:05 * NotFound counteratacks with a big Cobol!
22:06 * bacek putting FORTRAN on the table
22:07 mikehh hey we need DYNAMIC languages, in more than one sense of the word
22:08 mikehh I haven't tested cardinal recently - how's it going?
22:09 darbelo I think it was undergoing nqprx-ization.
22:18 Andy joined #parrot
22:31 Tene mikehh: it's been very abandoned for a while now
22:32 Tene treed has been very busy, and got stalled in the middle of a very large refactor due to problems with parrot
22:32 treed what now
22:32 purl hmmm... now is the time for the Kwisatz Haderach to arise and conquer America on a sandworm army
22:32 Tene (problems subclassing class)
22:32 tcurtis joined #parrot
22:32 treed Oh, god, yes.
22:33 treed I have two messages apparently.
22:33 treed bacek offers his help updating cardinal to nqp-rx
22:33 treed on may 21st
22:33 treed >_>
22:36 * mikehh need to reboot - bbiab
22:39 nopaste "cotto" at 192.168.1.3 pasted "more minimal test case for pmichaud" (48 lines) at http://nopaste.snit.ch/21172
22:41 whiteknight joined #parrot
22:45 * darbelo realizes he forgot to reconfig, again.
22:50 Chandon Why does t/pmc/timer.t pass timer parameters as a key, value *array* rather than a hash or something? That sort of makes sense if I pretend I'm reading perl5, but it seems like an odd API for a Parrot PMC.
22:53 snarkyboojum joined #parrot
22:56 mikehh joined #parrot
22:58 whiteknight Chandon: yeah, it's probably a little weird
22:59 whiteknight I've found a few issues in the scheduler/task API that were a little WTF
23:00 dalek parrot: r47547 | darbelo++ | branches/gsoc_nfg/src/string/api.c:
23:00 dalek parrot: Add misssing interps and casts.
23:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47547/
23:01 whiteknight ...if we accidentally have to clean some of it up soon, I don't think anybody will be too disappointed
23:03 cotto_work unless you make rakudo explode
23:03 darbelo ... or make particl exlode.
23:03 darbelo eh, partcl
23:03 NotFound We've already exploded enough things this month, please be pateient ;)
23:04 Tene I hear the US military is discussing using explosions to seal the oil leak in the gulf of mexico.
23:04 cotto_work or particle.  Definitely don't make him explode.
23:05 darbelo Making particles explode is risky stuff.
23:12 dalek dbm-dynpmcs: 2d9355b | darbelo++ | t/gdbmhash.t:
23:12 dalek dbm-dynpmcs: Remove diagnostic printerrs.
23:12 dalek dbm-dynpmcs: review: http://gitorious.org/dbm-dynpmcs/dbm-dynpmcs/c​ommit/2d9355b519074efb34dad3be83af2b7668a17c5e
23:14 nopaste joined #parrot
23:14 sorear opbots, names
23:16 dalek parrot: r47548 | tcurtis++ | branches/gsoc_past_optimizat​ion/t/library/pastpattern.t:
23:16 dalek parrot: Fix a bug in the test for .transform.
23:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47548/
23:33 dalek parrot: r47549 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
23:33 dalek parrot: Avoid creating empty grapheme tables. And fix an off by one error.
23:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47549/
23:47 pmichaud cotto_work, particle, others:  test case noted -- I'll look at it.
23:48 pmichaud technically, I don't think this test case is a bug, though.
23:49 pmichaud or, if it is, it's just a LTM bug that isn't likely to be fixed soon.
23:49 pmichaud actually, it can't even be an LTM bug.
23:49 pmichaud so, I'll claim it's not a bug.  :)
23:50 pmichaud or, in the last test instance, it's a bug because all of the results should've been NOK.
23:51 cotto_work can it at least be made deterministic?
23:51 pmichaud only if I somehow mark ordering-of-declaration in the rules.
23:51 pmichaud I haven't quite figured out how to do that yet.
23:52 pmichaud Perl 6 says that what makes it deterministic is the order in which the regexes are declared.  NQP doesn't implement that particular feature yet.
23:52 dalek winxed: r501 | julian.notfound++ | trunk/winxedst1.winxed:
23:52 dalek winxed: update an error message
23:52 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=501
23:52 dalek winxed: r502 | julian.notfound++ | trunk/t/basic/04for.t:
23:52 dalek winxed: basic tests for for
23:52 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=502
23:52 pmichaud it would require turning the methods hash for a class into an OrderedHash
23:53 pmichaud or otherwise having a useful sort criteria
23:53 pmichaud I *might* be able to use subid as a comparison -- they tend to be ordered.  But that seems icky.
23:53 cotto_work agreed
23:53 pmichaud looking
23:55 pmichaud yeah, subid might work.
23:55 pmichaud btw, it can be made deterministic if the :sym<a> and :sym<b> are made different lengths.
23:56 pmichaud nqp-rx has a heuristic cheat at the moment that uses the length of the name of the rule to break ties
23:56 pmichaud (longer names earlier)
23:56 cotto_work That's...
23:56 purl That's not portable.
23:56 cotto_work surprising.
23:56 purl i heard surprising was still surprising
23:56 pmichaud so, if :sym<a> were changed to :sym<aa>   it would be deterministic.
23:56 pmichaud well, it's done that way to give us *some* control over longest token matching to break ties.
23:57 pmichaud (correct, it's way outside of the Perl 6 spec; it's really supposed to be used only in cases of definite ties, such as this one.)
23:58 cotto_work as long as that's an officially supported feature, it sounds usable
23:58 pmichaud it's officially supported for now in nqp, yes.
23:58 pmichaud i.e., I'd put it through a deprecation cycle before changing it.
23:59 pmichaud so, in that last example, if you wanted to prefer the second rule over the first one, give it a longer name.
23:59 cotto_work I'm checking now to see if I can apply that to PIRATE

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

Parrot | source cross referenced