Camelia, the Perl 6 bug

IRC log for #parrot, 2008-09-23

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:10 AndyA joined #parrot
00:14 confound joined #parrot
00:28 kid51 joined #parrot
00:44 TiMBuS joined #parrot
00:47 bacek joined #parrot
00:48 Zaba joined #parrot
00:50 cotto_work the more that I use busybox, the more I wish that t and y weren't next to eachother on my keyboard
01:05 dalek r31353 | coke++ | trunk:
01:05 dalek : [tcl] Fix recent update to exception handling
01:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31353
01:06 Tene coke++ # cleaning up after me
01:12 Zaba_ joined #parrot
01:13 dalek r31354 | coke++ | trunk:
01:13 dalek : [tcl] unTODO another test that recently started working.
01:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31354
01:14 Ontolog joined #parrot
01:54 Ontolog joined #parrot
02:02 petdance joined #parrot
04:00 Ontolog in PIR I want to do if has_count && count < 0 goto no_count
04:01 Ontolog do I really have to make a label and jump to it for each atomic condition?
04:01 Ontolog because as it stands now parrot is not accepting if has_count && count < 0 goto no_count
04:01 cotto_home yup
04:02 cotto_home there's some syntactic sugar, but having to deal with the low-level stuff is part of writing (parrot's) assembly
04:03 pmichaud no compound expressions in PIR
04:03 Ontolog i see
04:04 pmichaud but you can do it with
04:04 pmichaud $I0 = islt count, 0
04:04 pmichaud $I1 = istrue has_count
04:04 pmichaud $I2 = and $I0, $I1
04:04 pmichaud if $I2 goto no_count
04:04 Ontolog haha i guess that is slightly better than adding all sorts of lables
04:05 Ontolog *labels
04:05 Ontolog pmichaud: while you are here, I have a question about the behavior of LIMIT with split. According to Perl 5's docs, If LIMIT is unspecified or zero, trailing null fields are stripped (which potential users of "pop" would do well to remember).
04:05 Ontolog in the Perl 6 docs however it says null fields are not stripped
04:05 Ontolog but it is not clear if this special case with limit overrides that
04:07 pmichaud well, if limit is unspecified, then null fields are not stripped (per S29)
04:08 Ontolog so an explicit limit of 0, the null fields are not stripped
04:08 Ontolog ok makes it easier for me haha
04:08 Ontolog what is this istrue about?
04:09 Ontolog we can't just do and $I0, has_count ?
04:11 Ontolog in fact the opcode istrue is not even found
04:12 Zaba joined #parrot
04:13 cotto_home istrue expects a PMC as its input
04:13 Ontolog ahh
04:14 cotto_home you could do iseq has_count, 1
04:14 Ontolog i went back to using the labels anyway since we can't deal with count until we know has_count is true
04:22 pmichaud if has_count is already an int, then just use it and directly
04:22 pmichaud $I0 = islt count, 0
04:22 pmichaud $I1 = and has_count, $I0
04:22 pmichaud if $I1 goto no_count
04:28 Ontolog ah i see
04:31 Ontolog so an explicit limit of 0 should behave the same as if it was unspecified?
04:32 Ontolog so the string (or whatever) is split into as many pieces as possible and returned?
04:32 pmichaud right.
04:32 Ontolog cool just making sure
04:33 Tene Anyone know the best way to iterate over an RPA from C?
04:35 Tene Eh, nm.
04:35 cotto_home fine
04:35 tetragon joined #parrot
04:36 Tene I'm sure a for loop is fine.
04:36 pmichaud there's an example or two in src/pmc/codestring.pmc, I think.
04:36 pmichaud oops, never mind, I guess not.  :-(
04:37 pmichaud (that one is iterating by index + length of array, not using an iterator)
04:37 Tene This list should be small enough that iterating by hand should be fine.
04:38 Zaba_ joined #parrot
04:42 Zaba joined #parrot
04:59 Tene pmichaud: check out r31355
04:59 dalek r31355 | tene++ | exceptionmagic:
04:59 dalek : [exceptionhandler]
04:59 dalek : Add an attribute to hold a list of exception types to catch
05:00 dalek : Add a handle_types(types :slurpy) method to set the list of types to catch
05:00 dalek : Add a check against the types to catch in can_handle
05:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31355
05:07 Tene Let's see if I can post to parrot-dev successfully.
05:08 Tene It would be great to get that merged to trunk before #ps tomorrow.
05:12 Tene It might be nice to get some PIR sugar for setting up a typed EH.  Maybe a macro.
05:14 cotto_home did the range idea get nixed or were you thinking that it'd be part of the sugar?
05:15 Tene range is for severity, there's a list for exception types.
05:16 iblechbot joined #parrot
05:16 cotto_home right
05:16 Tene "push_eh label" is more concise than "$P0 = new 'ExceptionHandler'\n$P0.handle_t​ypes(.CONTROL_RETURN_\nset_addr $P0, label\npush_eh $P0"
05:17 Tene So something like .push_typed_eh(label, .CONTROL_RETURN) maybe
05:18 cotto_home sounds Canadian
05:19 confound take off, eh
05:19 confound ya hoser
05:27 cotto_home can pir macros be variadic?
05:27 Tene dunno
05:27 cotto_home I don't think so from looking at the pdd and tests
05:38 cotto_home since pir is supposed to be generated, isn't the only point of syntactic sugar like push_typed_eh to make writing tests easier?
05:42 Zaba joined #parrot
05:48 johbar joined #parrot
05:49 johbar moin
05:53 Tene cotto_home: we've still got a decent amount of hand-written PIR
06:06 Tene ... huh.  My message to parrot-dev awaits moderation.
06:06 Tene I must be subscribed... I'm getting messages.
06:08 uniejo joined #parrot
06:15 dalek r31356 | chromatic++ | trunk:
06:15 dalek : [OO] Removed unused function find_vtable_meth_ns().
06:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31356
06:16 uniejo joined #parrot
06:25 Zaba joined #parrot
06:27 bacek joined #parrot
06:53 bacek joined #parrot
08:03 Zaba joined #parrot
08:11 dalek r31357 | kjs++ | trunk:
08:11 dalek : [pirc/new] implement string re-use
08:11 dalek : + implement hashtable
08:11 dalek : + conversions from symbol lists to hashtables is next.
08:11 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31357
08:12 clunker3__ joined #parrot
08:12 braceta joined #parrot
08:12 Zaba joined #parrot
08:19 johbar hey
08:28 johbar is there something like a ebnf compiler which prints out syntax-trees?
08:29 moritz PGE does something very similar
08:29 moritz it uses Perl 6 regexes, which are a bit like EBNF
08:30 moritz for example you can build parrot, then 'cd languages/perl6/; make'
08:30 moritz then write something into test.t
08:30 moritz then run ../../parrot perl6.pbc --target=parse  test.t
08:30 moritz that will give you a parse tree of a Perl 6 program
08:31 moritz the grammar is in src/parser/grammar.pg
08:32 johbar ah nice. i'll have a look
08:33 johbar thanks
08:33 moritz you're welcome
08:34 moritz if you don't want to write your own Perl 6 code, the test suite has some
08:34 moritz for example t/00-parrot/01-literals.t
08:52 sheepmullet joined #parrot
09:02 bacek joined #parrot
09:16 iblechbot joined #parrot
09:28 dalek r31358 | moritz++ | trunk:
09:28 dalek : [rakudo] correct Str.split with $limit argument, Ontolog++
09:28 dalek : Patch courtesy by Chris Davaz
09:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31358
09:30 dalek r31359 | moritz++ | trunk:
09:30 dalek : [CREDITS] added Chris Davaz (Rakudo patches)
09:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31359
09:49 vhold joined #parrot
10:48 Zaba joined #parrot
10:49 pjcj joined #parrot
10:53 Whiteknight joined #parrot
11:16 kid51 joined #parrot
11:50 kj joined #parrot
11:53 Ontolog joined #parrot
12:07 masak joined #parrot
12:19 braceta joined #parrot
12:24 Wknight8111 joined #parrot
12:40 d4l3k_ joined #parrot
12:43 xiaoyafeng joined #parrot
12:49 Ontolog is there an html conversion of docs/book/* online?
12:49 Wknight8111 not that I am aware of, no
12:50 Wknight8111 it shouldn't be too hard to set up though, since it's all POD formatted
12:53 moritz Ontolog: there's one of the things in the pugs repo, but it's a bit out of date
12:53 moritz and the quality isn't all that good
12:53 * Wknight8111 is working on that too
12:53 Wknight8111 There is a lot to do with those books, they are both very out of date
12:54 moritz http://moritz.faui2k3.org/pugs/ # search for docs/tutorial/ch01_overview.pod
12:54 Ontolog it would be nice to have everything under doc/* automatically generated to html and up on a parrotcode.org/docs
12:54 Ontolog s/generated/converted/ ... lol
12:54 Wknight8111 We could probably put in a bug request or something.
12:55 Wknight8111 It would be a nice way for people to keep track of progress on it, that's for sure
12:55 moritz and it would be nice to have a location where both parts of the book are combined
12:55 PerlJam There's been progress?  ;)
12:56 Wknight8111 I've been working on the books pretty aggressively, yes
12:56 Wknight8111 Added about 3 new chapters to the parrot book already
12:56 diakopter [OT] ...[lack of] apologies in advance for the [OT] message.. please /msg me if you're interested in owning the perlblog.org domain name.  it's zero-currency to one I deem worthy, or even just willing to take it.
12:57 PerlJam Wknight8111: you should find self-contained pieces and publish them to perl.com (or perhaps parrot needs a corresponding "news outlet")
12:57 Wknight8111 There is parrotblog.org that is under-used, I think
12:57 Ontolog hmm
12:57 PerlJam Wknight8111: indeed!  I'd forgotten about it until you mentioned it.
12:57 Ontolog i think all the docs being in different places is really confusing
12:57 Ontolog it would be nice if it was all under parrotcode.org/docs
12:58 Wknight8111 Allison wants to have something publishable by the time 1.0 is released, so I've been trying to focus on that requirement.
12:58 moritz Ontolog: yes, taht's a real problem
12:58 Wknight8111 But yes, publishing to other venues as well would be a good idea
13:00 masak Ontolog++ # for not being satisfied with status quo
13:00 Ontolog maybe i'm a total bonehead but i can't find where to create a new ticket through the web interface at rt.perl.org
13:00 masak Wknight8111++ # for focusing on requirements
13:00 Ontolog masak++ got giving me such easy karma ;-)
13:01 masak karma is easy to give :)
13:01 purl is easy to give :) has neutral karma
13:01 Ontolog haha
13:01 masak and at least on of purl and me is stupid
13:01 masak s/on/one/
13:01 Wknight8111 Ontalog, send an email to parrot-bug@perl.org to create a new ticket
13:01 moritz Ontolog: you can't from the web interface, you need to send a mail to parrotbug@parrotcode.org
13:01 Wknight8111 sorry parrotbug@parrot.org
13:02 masak parrotbug
13:02 purl rumour has it parrotbug is mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/​trunk/docs/submissions.pod or see also "rakudobug"
13:10 gryphon joined #parrot
13:28 masak I haz a patch for ord and chr in Rakudo.
13:28 masak should I send it to rakudobug, or first extend it to handle list of things, not just the bare minimum?
13:28 moritz I CAN HAZ PATCH?
13:28 masak moritz: YES RLY!
13:29 moritz I hope that answers your question ;)
13:29 moritz commit(or patch) early, commit often
13:29 masak can't commit, so that leaves sending via rakudobug
13:30 masak http://rafb.net/p/QfqPIS11.html
13:30 moritz sendiing patches is the substitute action for non-commiters
13:30 masak aye :)
13:30 masak but I expect to be able to extend it during the day to handle lists and strings of more than one character
13:31 masak but already this level of functionality is very good news for my favorite Perl 6 application.
13:31 moritz I know ;)
13:31 moritz and the good news is that rakudo doesn't hang on parsing /spec/S29-conversions/ord_and_chr.t any more
13:32 moritz heh, your patch makes all these tests pass
13:33 moritz masak++
13:34 moritz running tests now...
13:35 moritz masak: if spectest_regression is successful, I can commit right away if you want
13:36 moritz masak: but you can open a ticket anway to increase your visibility for the other parrot hackers, thus increasing your chances of getting a commit bit ;)
13:36 masak moritz: hold on, be right with you
13:38 * Wknight8111 votes for masak's commit bit
13:39 moritz we could suggest that on today's #ps meeting (if you want, masak)
13:42 masak moritz: sure, why not? :)
13:43 masak just don't tell my two employers
13:43 * masak creates RT ticket
13:45 pmichaud masak haz sent cla?
13:45 masak pmichaud: no. I know it's needed, but how to actually do it?
13:45 moritz cla?
13:45 purl cla is Contributor License Agreement or http://www.perlfoundation.org/​contributor_license_agreement
13:45 moritz masak: print that thing, sign it...
13:46 moritz masak: send it to the address on that sheet...
13:46 masak oh, dead-tree style.
13:46 moritz masak: your employers have to know if the laws in $your_country grant them copyright to whatever you do (which some countries do)
13:46 masak moritz: good to know.
13:47 masak ok, I'll try to find a printer to connect to :)
13:49 masak t/spec/S29-conversions/ord_and_chr.t is woefully incomplete, btw
13:49 moritz masak: Patches welcome ;)
13:49 masak I'll try remedy that, too. before I go coding more on chr and ord
13:49 * masak likes to have failing tests before coding begins
13:49 moritz it doesn't test the form of chr() with slurpy argument list
13:50 masak indeed not.
13:50 masak also, it doesn't test the 'use graphemes' business
13:50 moritz which no implementation yet supports
13:51 masak nevertheless.
13:51 moritz rakudo currently works as if 'use codes' where in effect
13:51 moritz aye, needs tests
13:52 moritz but I don't know how to test ofr a grapheme ID, because it's not a common Unicode concept
13:53 moritz a test (in perl 5 pseudo syntax) might be ord("A\N[COMBINIG DIAERESIS]) == ord("Ä")
13:54 moritz and list(ord("a\N[weird]\N[combiners]")).elems == 1
13:54 masak moritz++ # I will use that.
13:55 masak (IRC logs)++ # but not right now.
13:55 moritz I think the Perl 6 syntax is actually \c[Character name]
13:57 masak aye.
13:58 moritz oh an in Perl 5 it's \N{...}, not \N[...]
13:59 moritz after writing the tests for Perl6::Str I should know ;)
14:10 Lorn joined #parrot
14:19 pjcj joined #parrot
14:23 NotFound What encoding actually assumes rakudo for strings in sources?
14:23 masak NotFound: UTF-8?
14:23 purl UTF-8 is probably the way of the future or Unicode Transformation Format 8 bit, a variable width encoding of Unicode or http://en.wikipedia.org/wiki/Utf-8
14:24 moritz yes, it does
14:28 Tene So, who controls auth on parrot-dev?
14:29 dalek r31360 | moritz++ | trunk:
14:29 dalek : [rakudo] implement chr() and ord(), and add tests to spectest_regression
14:29 dalek : Patch courtesy by Carl M�sak <cmasak at gmail dot com>, masak++
14:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31360
14:30 Tene I recieve mail from there, but my mail to there is pending moderation, 'cos it claims I'm not subscribed.
14:32 moritz Tene: allison does
14:33 Tene Ah, 'kay.  Thought so.
14:49 dalek r31361 | julianalbo++ | trunk:
14:49 dalek : exchange roles of elements and get_integer in FixedIntegerArray
14:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31361
14:59 cjfields joined #parrot
15:03 jhorwitz joined #parrot
15:10 sjansen joined #parrot
15:17 sjansen joined #parrot
15:31 hercynium joined #parrot
15:32 sjansen joined #parrot
15:34 Lorn_ joined #parrot
15:34 dalek r31362 | julianalbo++ | trunk:
15:34 dalek : replace elements and PMC_int_val with get_integer and add bounds checking to delete_keyed_int in ResizableIntegerArray
15:34 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31362
15:38 dalek r31363 | coke++ | trunk:
15:38 dalek : [tcl] - add a TODO'd test. Getting this test to pass will get us one step closer to running tcltest.tcl
15:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31363
15:38 dalek r31364 | Whiteknight++ | pdd27mmd:
15:38 dalek : [pdd27mmd] Add some notes about how to further unify functions when we get around to it, and a few comments explaining how some things are working.
15:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31364
15:43 braceta joined #parrot
15:50 braceta_ joined #parrot
15:56 dalek r31365 | moritz++ | trunk:
15:56 dalek : [rakudo] make chr() and ord() methods of Any, and moved chr() to be in
15:56 dalek : alphabetical order with the rest of the methods.
15:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31365
15:59 moritz pmichaud: should the patch in RT #59222 be applied? (with  s/isxdigit/isalnum/)
16:13 dalek r31366 | moritz++ | trunk:
16:13 dalek : [rakudo] implement Hash.pairs, cjfields++. Patch courtesy by Chris Fields.
16:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31366
16:14 iblechbot joined #parrot
16:33 dalek r31367 | moritz++ | trunk:
16:33 dalek : [rakudo] added S29-hash/pairs.t to spectest_regression
16:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31367
16:51 Hinrik joined #parrot
17:15 pmichaud moritz:  don't apply 31366 just yet, I need to review it more.
17:16 pmichaud sorry, I mistped -- don't apply 59222 just yet.
17:16 pmichaud (31366 is fine, although it's all about to be rewritten anyway based on references.txt that jonathan and I discussed last week :-)
17:18 moritz pmichaud: ok
17:30 Tene Bah.  I'm scheduled to start class again right at #ps time
17:31 cotto_work you don't really need to go to class
17:31 cotto_work that's just what they want you to believe
17:31 chromatic joined #parrot
17:33 moritz unless you happen to be the lecturer, of course ;)
17:37 pmichaud I never found that being the lecturer was a particularly strong reason to go to class.  :-P
17:37 chromatic Not if you can find a grad student.
17:38 ruoso joined #parrot
17:38 pmichaud (At one time I was well known for being "a little late" to my lectures. :-)
17:38 pmichaud I was also often unprepared, although nobody ever caught on to that fact.  :-P
17:38 PerlJam pm: you were "a little late" to my job interview the first time I was hired at CBI  :-)
17:39 pmichaud ...you had a job interview?  ;-)
17:40 PerlJam I seem to recall showing up at the appropriate time and no one knew where you were.  Then I hung out for the rest of the day bascially and didn't see you until the next day.
17:40 pmichaud I seem to remember something like that happening, yes.  Things were a bit hectic back then.
17:42 chromatic kj, is 113 a prime number?
17:47 Wknight8111 I think it might be, yes
17:48 chromatic It's the initial size of a hash table in pirc.  Just curious.
17:49 kj chromatic: dunno, it was a wild guess to be hones. gotta do that when there's no internet (at home)
17:50 cotto_work it's better than a subprime number
17:50 kj chromatic: but I wonder what works better for a hash algorithm: a prime number, or a number which is a power of 2
17:50 particle why? the government will bail out subprime hash tables.
17:50 kj I think imcc does the latter (init at 16)
17:50 chromatic The theory is that using a prime number of buckets in a hash table reduces the chance of collisions for keys.
17:51 kj ah, that's what i vaguely remember reading some day.
17:51 chromatic There are no common factors between key values and the number of buckets.
17:51 chromatic I saw it in the Kernighan/Pike book.  The Practice of Programming?
17:51 chromatic Yeah, that's the one.
17:51 particle i suspect perl 5.8.4's hv to be instructive
17:51 kj I think I read the Dragon book of compilers about this. Not sure.
17:51 particle *expect
17:51 PerlJam chromatic: there should not be any common factors  :)
17:52 chromatic Just 1.
17:52 kj anyway, I'm not even sure a hashtable is really faster
17:52 cotto_work premature optimization
17:52 purl premature optimization is, like, the root of all evil or when you make the mistake of optimising for speed when really you should optimise for maintainability and correctness, in the first instance. or unnecessary optimization is premature by definition. or hacking with tequila in preference to wine
17:53 kj cotto_work: well, not if I want to finish the thing :-)
17:53 chromatic Hmm, changing INITIAL_BUCKETS to 17 in src/hash.c makes miniparrot hang.
17:54 cotto_work nice\
17:54 cotto_work s/\//
17:55 Tene moritz: yes, I'm teaching the class
17:56 Tene kj: is ncigen supposed to work?  I see you listed as a maintainer.
17:56 kj Tene: i'm not ncigen's maintainer...
17:56 kj wasn't ncigen a GSoC project?
17:56 Tene Huh, okay, I'm insane today then.
17:56 kj where do you see me listed?
17:57 Tene kj == kjs?
17:57 PerlJam kj: i think it was a gsoc proj.
17:57 kj yes
17:57 Tene compilers/ncigen/MAINTAINER
17:57 kj but someone 's using 'kjs' on this server :-( So I switched to kj
17:57 chromatic Apparently something wants the number of buckets in a hash to be evenly divisible by 4.
17:58 PerlJam chromatic: that sounds really wrong
17:58 chromatic It sounds really collidey anyway.
17:58 chromatic expand_hash always doubles the size of the hash.
17:59 kj I wonder what's the break-even point where a hashtable is faster than a linked list...
17:59 chromatic It's average bucket length + amortized time of key creation.
18:00 particle tewk is the ncigen maintainer
18:01 kj ah. it seems the tewk-kjs confusion strikes again :-)
18:02 Tene kj: eh?
18:03 particle tene: tewk is the ncigen maintainer
18:03 pmichaud SEE!?  IT'S NOT JUST ME!!
18:03 pmichaud :-D
18:03 kj pmichaud: ha ha :-)
18:03 Tene Then why is kjs listed in compilers/ncigen/MAINTAINER?
18:04 kj Tene: well I wish I could claim that credit, but I can't
18:04 particle svn blame
18:04 purl rumour has it svn blame is just like p4 annotate, only better
18:04 PerlJam Tene: probably because some confused individual added it.
18:04 particle bet it was pmichaud
18:04 kj hehe
18:04 Tene no, it was tewk
18:04 pmichaud 30452       tewk N: Klaas-Jan Stol (kjs)
18:04 pmichaud 30452       tewk E: parrotcode@gmail.com
18:04 Tene tewk LIES
18:04 PerlJam He was trying to repel the blame.
18:05 Tene Looks like I'm posting my report early again. :(
18:05 particle tewk-- # silly programmer
18:05 PerlJam ah, it's #ps day again.
18:05 kj well, at *some* point I did work on languages/c a bit
18:05 * PerlJam prepares to lurk (assuming the kids and wife let me)
18:06 pmichaud tewk did something similar in r30493
18:06 pmichaud r30493 | tewk | 2008-08-23 13:36:47 -0500 (Sat, 23 Aug 2008) | 2 lines
18:06 pmichaud removed Patrick Michaud as author, shamefull attempt to send all bugs to pmichaud seems to have been discovered. :)
18:07 moritz lol
18:07 Tene Hah.  I'm first again.
18:07 Tene I'm so much cooler than EVERYONE ELSE HERE
18:07 Tene That's obviously what it means.
18:08 moritz TENE can haz c00nez
18:09 was kicked by particle: ETOOCOOLFORPARROT
18:09 Wknight8111 Yes! Tene caught a channel participation exception!
18:09 dalek r31368 | pmichaud++ | trunk:
18:09 dalek : [rakudo]: spectest-progress.csv update: 167 files, 3434 passing tests
18:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31368
18:09 Wknight8111 it's like a control flow exception, except it actually displaces the user!
18:10 particle catch that exception magic :P
18:11 dalek r31369 | kjs++ | trunk:
18:11 dalek : [ncigen] remove kjs as a maintainer.
18:11 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31369
18:26 chromatic 5 minutes until #ps
18:27 pmichaud btw, I'm getting 26 failed tests in spectest_regression
18:27 pmichaud 6 in S29-str/split-simple.t
18:27 moritz pmichaud: is your t/spec copy up-to-date?
18:27 moritz pmichaud: I have no failures here
18:27 pmichaud moritz: it should be.
18:27 pmichaud I'll run again.
18:28 moritz sometimes I get failures that disappear when run again
18:28 * moritz blames the GC
18:29 pmichaud yes, it appears there were some updates to t/spec since I started my build+test.  re-testing.
18:32 cotto_work joined #parrot
18:42 DietCoke joined #parrot
18:42 * DietCoke ~~
18:46 tewk Sorry for the confusion, that file came from c99 where kjs is a maintainer I believe.
18:49 chromatic Wknight8111, I sent in a patch ages ago.  Let me see if I can find it.
18:50 Wknight8111 a patch for a profiling runcore?
18:50 chromatic Wknight8111, "Profile PIR with Devel::DProf's dprofpp" on 25 March 2008.
18:51 Wknight8111 okay, let me look at that a little bit
18:51 Wknight8111 dont know when I would have the tuits to work on such a thing, but i can read up on it
18:51 chromatic In further research, the Callgrind format is the proper approach.
18:51 chromatic Though tracking in/out for sub calls and control flow is tricky in PIR.
18:51 tewk ~/srcs/parrot/languages/c99/MAINTAINER
18:52 tewk 25984        kjs N: Klaas-Jan Stol (kjs)
18:52 tewk 25984        kjs E: parrotcode@gmail.com
18:52 pmichaud no failures in latest spectest regression -- thanks.
18:54 Wknight8111 chromatic, where is that patch at? RT?
18:54 chromatic Just on the mailing list.
18:54 Wknight8111 oh, okay
18:55 Wknight8111 thanks
18:55 chromatic If you can't find it, I'll nopaste it or upload it.
18:56 Wknight8111 I'll find it, I'll dig around tonight
18:56 cognominal pmichaud, does your proposal allow for an eval that is not a closure? That's what we want for a interactive rakudo and what does pugs.
18:57 baest joined #parrot
18:59 cotto_work joined #parrot
19:02 tewk NotFound: I'm building it right now to find out how it handles Xlib.h
19:03 DietCoke win 3
19:05 moritz (cross-post with the list) is there a PIR function that lets me find a multi sub by name, and that later does dispatch based on the types of the arguments?
19:06 chromatic Provided there's only one MultiSub PMC in a namespace under a name, yes.
19:06 chromatic At least, until the MMD branch merges back in, in which case I'm not sure.
19:07 Wknight8111 Allison claims the MMD branch is merging in soon, like tonight if she has time
19:07 Wknight8111 The work I was doing on the PCCINVOKE stuff is on hold for now until we create a new branch specifically for calling convetion stuff
19:07 moritz chromatic: how?
19:08 chromatic find_global $Px, "name"
19:08 rurban_away joined #parrot
19:10 * DietCoke wonders if there's a find_hll_global variant.
19:10 moritz that seems to do it, thanks
19:10 moritz chromatic++
19:10 * DietCoke hopes we go through and make the opnames consistant before 1.0
19:11 Tene joined #parrot
19:11 moritz there's get_hll_global
19:11 Tene chromatic: have you recieved dmknopp's CLA yet?
19:12 chromatic Not yet.
19:12 Tene Huh.
19:12 Tene Okay, thanks.
19:12 chromatic Someone will probably check today or tomorrow.
19:13 NotFound Snail mail: http://www.boredomresearch.net/rsm/
19:13 johbar joined #parrot
19:15 Tene jhorwitz: Is three a ticket describing what you need with interpolated namespaces in rakudo?
19:15 jhorwitz probably
19:15 * jhorwitz rummages around
19:15 moritz isn't there even a patch in RT?
19:16 jhorwitz i believe i posted the patch from mod_parrot as a starting point
19:17 jhorwitz can't find the ticket in my inbox
19:17 * jhorwitz wonders if he posted just to the list...
19:17 chromatic Hm, not all tests on the MMD branch pass for me yet.
19:17 chromatic Pheme works though.
19:17 moritz I have some failures, and even 'make tests' in rakudo fails
19:18 jhorwitz Tene: #56700
19:18 chromatic Rakudo mostly passes for me.
19:18 jhorwitz Tene: i'm sure pmichaud has many thoughts on how to implement it
19:19 particle tias?
19:19 purl tias is Try It And See! or turnips in a sack
19:23 NotFound tias is also 'girls' in spanish slang
19:23 purl okay, NotFound.
19:24 DietCoke left #parrot
19:25 chromatic "Girls" and not "Aunts"?
19:26 NotFound chromatic: we are all crazy in Spain.
19:26 chromatic Apparently; yo soy tio chromatic!
19:27 NotFound chromatic: real meaning is aunt, but "tia buena" means "a nice girl", for example.
19:28 moritz nice aunt - my girlfriend would kill me for that name ;)
19:28 moritz (although she has two nephews)
19:29 moritz baaaah, multis are driving me mad
19:29 chromatic tu novia?
19:32 NotFound This is Spain's jargon, not exported to the other side of the ocean.
19:32 chromatic Then my modest preschool Spanish is no help!
19:33 cotto_work um... no comprendo
19:34 Zaba joined #parrot
19:37 NotFound cotto_work: don't worry, many spanish natives also doen't understand mr.
19:37 NotFound s/mr/me
19:44 tewk NotFound:  unsigned max_request_size; is valid C, I need to fix the parser to recognize unsigned all by itself.
19:46 tewk This is another area where longest token matching would have prevented this bug.
19:49 Tene tewk: a while back I heard someone say that ncigen was very complete, but it's failed on every header I've tried to feed it.
19:49 Tene Am I mistaken or am I doing it wrong?
19:50 NotFound Where are the problems, in ncigen itself or in c99?
19:52 tewk Parsing C is difficult, I followed the C99 grammar, but have had to make modifications for it to work with PGE.
19:53 NotFound And parsing libraries that use a lot of compilers predefined symbols is even worse.
19:53 NotFound headers of libraries, I mean.
19:53 tewk I had to modify rule builtin_type to force longest token matching, but whenever you modify a grammar you usually change its meaning, and I did in this case also.
19:54 tewk I use GCC to preprocess, so preprocessing is handled for me.  The parser actually parses quite a bit of GNC specific extensions.
19:56 tewk Most sane C programmers would use "unsigned int max_request_size;", but X is a very old code base so somewhere along it history someone used "unsigned max_request_size;"
19:56 NotFound That can be problematic by himself, gcc soemtimes converts common macros to gcc specific symbols.
19:58 tewk You have to scope your work, I wanted to do ncigen in a summer, you can write a gcc compatible preprocessor, parser, and have a life in one summer.
19:58 chromatic I don't think we promised you a life.
19:58 moritz lol
19:59 tewk NotFound: what do you mean by gcc specific symbols?
19:59 tewk s/can/can't/
19:59 cotto_work I was about to be really impressed.
20:02 tewk Maybe pmichaud could give me some tips on compilers/ncigen/src/parse​r/grammar.pg:builtin_type
20:02 tewk Note "int unsigned myint;" is also valid C
20:02 pmichaud find_global is deprecated, btw.
20:04 tewk I've been using llvm to do some simple static analysis, its so nice when someone else writes the preprocessor, parser, and ast generation for you.
20:04 tewk Tene: ncigen will parse sqlite3.h and postgres' spi.h
20:05 NotFound joined #parrot
20:06 Tene tewk: Okay.  Thanks.
20:07 Tene tewk: Also, we need to hang out and hack sometime.  You live pretty close to me, iirc.
20:09 pmichaud what's the question on builtin_type ?
20:10 tewk I'm about to just enumerate all the possible combinations of signed, unsigned, int, long, etc.
20:11 tewk pmichaud: There has got to be a better way, but I though you had told me that it would require longest token matching.
20:11 NotFound Don't forget long int
20:12 pmichaud where can I find the original c99 grammar?
20:12 Tene <[signed unsigned int long]>+
20:12 Tene ;)
20:12 tewk taken from n869.pdf
20:12 tewk google for n869.pdf
20:12 tewk http://std.dkuug.dk/JTC1/SC22/​WG14/www/docs/n869/n869.pdf.gz
20:13 cotto_work long long unsigned int long signed?
20:13 tewk documented at the top of grammar.pg
20:13 NotFound signedness must be before main type, if I remember well.
20:14 moritz Tene's regex would even match a single space ;)
20:14 tewk I originally implemented the grammar from the spec, but it would match just unsigned and return.
20:16 tewk I though I new c pretty well before I started to parse it, well I've learned a lot.
20:18 pmichaud the essential idea is
20:19 pmichaud rule declaration_specifiers { [ <storage_class_specifier> | <type_specifier> | <type_qualifier> | <function_specifier> ]+ }
20:19 dalek r31370 | julianalbo++ | trunk:
20:19 dalek : applied patches from RT#56468, bacek++
20:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31370
20:20 pmichaud token type_specifier { 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | '_Bool' | '_Complex' | '_Imaginary' }
20:25 tewk pmichaud: I'll give it a try.
20:30 clunker3__ joined #parrot
20:33 cjfields joined #parrot
20:34 cjfields_ joined #parrot
20:36 tewk pmichaud: do hyperoperators and junctions work in rakudo, I've got to give a lecture in a parallel programming class and I'd like to show them some perl6 stuff
20:37 tewk I need some interesting demos.
20:37 moritz tewk: Junctions do basically work
20:37 moritz rakudo: if 2 == any(1, 2, 3) { say "yes" } else { say "no" }
20:37 pmichaud hyperoperators don't work, no.
20:38 moritz pugs implements them a bit better
20:38 cotto_work joined #parrot
20:38 pmichaud for that we need some parsing support.
20:38 tewk Cool I'll use pugs for hyperoperators then, but I'll see what I can show with rakudo
20:38 moritz no polyglotbot?
20:38 pmichaud junctions "work" by cheating -- we don't really use autothreading dispatch yet.
20:39 pmichaud so they really only work for some of the relational ops.
20:39 tewk I just want to show the language constructs
20:39 NotFound tewk: show them pirric, will be nice to hear some ideas about using retro basic for parallel programming ;)
20:39 * moritz slaps NotFound ;)
20:39 tewk pirric?
20:40 NotFound tewk: examples/pir/pirric.pir
20:41 tewk We need QBasic emulation so I can pull out my old menu launchers
20:41 NotFound tewk: this is more retro than qbasic.
20:45 NotFound purl: pirric is PIR Retro basIC
20:45 purl OK, NotFound.
20:59 cjfields pmichaud: I have an additional patch for .trans which I plan on posting to RT.  However I have a quick question:
20:59 cjfields According to S05, the argument to .trans should be a List of Pairs.  So, should it accept a Hash (a bit more DWIM'my)?  Or should it be '$str.trans(%hash.pairs)'
21:01 cjfields I can adapt it for either case.
21:03 moritz afaict a hash is different from a list of pairs
21:03 moritz (although pugs things that Hash isa List)
21:04 moritz that's why the first example in S05 uses %mapping.pairs, I guess
21:05 dalek r31371 | julianalbo++ | trunk:
21:05 dalek : add MID$ function to pirric
21:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31371
21:06 cjfields yes, that's why I was hesitant about using a Hash (particularly when the spec is using %mapping.pairs.sort)
21:08 moritz it seems that .trans is much more generan than .subst
21:09 moritz except that .trans always does global replacement
21:09 cjfields Like .subst in parallel
21:09 cjfields (all changes made at once)
21:10 moritz .subst doesn't support constant strings, iirc
21:10 moritz Method 'shift' not found for invocant of class 'Sub'
21:10 moritz oops
21:10 moritz ./rakudo -e 'my $x = "a0b0c0d0"; my $c = 0; $x.trans(/\d/ => { ++$c }); say $x'
21:10 moritz that's what produces the above error message
21:11 moritz ah, it seems you don't do closures as RHS yet
21:11 cjfields not yet, but getting there.
21:11 moritz and neither regexes on the LHS
21:11 moritz well, it's a start ;)
21:12 moritz I think that .trans is a real beast to implement, and get right
21:12 cjfields I can probably add a 'not implemented' exception
21:12 * moritz thinks about writing some more tests
21:13 cjfields BTW, have you tried to check the type for Pair key/values?  It
21:13 cjfields 's illuminating...
21:14 clunker3__ joined #parrot
21:14 moritz the value's type seems to be preserved
21:14 moritz why?
21:14 cjfields unfortunately I'm not sure
21:15 moritz any examples?
21:17 cjfields perl6: my %x=(('a' => 1, 'b' => 2), 'c' => { say 'foo'}, /\d/ => 3); for %x.pairs -> $y {say $y.WHAT; say $y.key.WHAT; say $y.value.WHAT; say}
21:17 cjfields I think I broke it
21:20 moritz what did you break?
21:20 moritz I can't see what's wrong...
21:21 moritz the coercion to Hash casts all keys to Str
21:21 moritz that's why you get Str\nInt\n in the last case, not Block\nInt\n
21:21 moritz > say (/a/ => 1).key.WHAT
21:21 moritz Block
21:21 cjfields Hmm....
21:25 pmichaud cjfields:  .trans should accept a list (or a slurpy list)
21:26 pmichaud it shouldn't do anything special with hash -- in fact, it would never actually see a hash
21:26 pmichaud a hash in list context becomes a list of Pairs
21:27 cotto_work shiny.  the mmd branch is only failing 4 tests (and passing one todo'd) now
21:27 moritz pmichaud: maybe you sohuld turn our last discussion into a ticket...
21:27 pmichaud moritz: for FixedPMCArray and MultiSub?
21:27 moritz pmichaud: I guess so, yes
21:28 pmichaud yes, it's definitely a "deep Parrot" issue.
21:28 pmichaud I'll turn my example PIR code into a ticket.
21:29 * cjfields trying not to make a bad joke about 'deep Parrot'
21:31 cjfields I can fake the list context for a hash (just check type and directly convert to a List of Pairs)
21:31 pmichaud moritz: done.
21:32 moritz pmichaud: good.
21:32 pmichaud cjfields: yes, you can go ahead and do that for now -- but I hope to have list context fixed in the next day or so.
21:32 dalek r31372 | julianalbo++ | trunk:
21:32 dalek : pirric: store variables in Runner object, instead of making them globals
21:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31372
21:33 cjfields ok.  will post a patch to RT soonish.
21:36 Tene Is that anything like a 'deep crow'?
21:37 moritz Tene: you seem to be the Perl 6 exception guy... how close are we to last,next,redo control exceptions?
21:37 NotFound (bad jokes)++
21:37 moritz indeed
21:38 Tene Those aren't covered by what I'm doing right now, but...
21:38 Tene Looks like PCT needs to add support for them.
21:39 Tene As far as I know, they're not actually blocking on anything.
21:39 Tene Want me to look into that tonight?
21:40 pmichaud just time for me, and that someone indicate it's a big priority. :-)
21:40 Tene s/anything/anything parrot-related/
21:40 Tene pmichaud: Just need appropriate handlers generated by the PAST nodes, right?
21:40 moritz I can't say it's big priority, but it might real-world usage a lot
21:42 chromatic seen tetragon?
21:42 purl tetragon was last seen on purl 22 hours, 19 minutes and 52 seconds ago, saying: <private message>
21:43 chromatic Might be nice to fix some of her segfaults too.
21:44 pmichaud Tene: for simple next/last/redo, perhaps.
21:44 pmichaud however, the exceptions also need to be able to carry an indication of *which* loop they're manipulating -- e.g., for  "next LABEL"
21:45 Tene LABEL is a label on a loop, right?
21:46 pmichaud yes
21:46 Tene That shouldn't be too bad.
21:46 pmichaud possibly not.
21:46 Tene Is that syntax parsed right now?
21:46 pmichaud I don't think it is in Rakudo.
21:46 pmichaud anyway, if you want to give next,last,redo a shot, I'd be glad to review a patch :-)
21:47 pmichaud I'd be even more interested in having PCT use the new exception types filter, if you haven't done that already.
21:47 pmichaud I don't know if that was part of the branch you merged
21:49 pmichaud also, the implementation of if/unless/while/until/etc.  nodes needs to change a bit, so that we can pass the condition as an argument to the execution bodies
21:49 pmichaud so that might affect while/until somewhat.
21:49 pmichaud I was kinda hoping to get lexicals solved first before investing too much code into that.
21:50 Tene pmichaud: filter isn't merged.  waiting on review from allison.
21:50 Tene http://svn.perl.org/parrot/branches/ex​ceptionmagic/t/pmc/exceptionhandler.t
21:50 pmichaud okay.
21:51 pmichaud oops, time for dinner here -- bbl
21:51 Tene moritz: if you can give me an example of next/while/redo with labels and such, I'll work on it tonight.
21:53 moritz Tene: t/spec/S04-statements/{last,redo,next}.t
21:53 Tene Oh, clever.
21:53 Tene I'm not all here.  Trying to pay attention to students for another hour.
21:53 moritz laziness++
21:55 bacek morning everyone.
21:55 moritz good evening ;)
21:55 bacek moritz: :)
22:01 dalek r31373 | julianalbo++ | trunk:
22:01 dalek : add missing --without-... options to Configure --help output
22:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31373
22:21 hercynium joined #parrot
22:52 xiaoyafeng_ joined #parrot
23:05 dalek r31374 | moritz++ | trunk:
23:05 dalek : [rakudo] 5 more test files for spectest_regression
23:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31374
23:10 dalek r31375 | coke++ | trunk:
23:10 dalek : [tcl] provide a simple version of [namespace import]
23:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31375
23:18 dalek r31376 | moritz++ | trunk:
23:18 dalek : [rakudo] three more tests for spectest_regression
23:18 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31376
23:21 slightlyoff joined #parrot
23:24 slightlyoff joined #parrot
23:25 slightlyoff left #parrot
23:29 tetragon joined #parrot
23:42 Theory joined #parrot

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

Parrot | source cross referenced