|
Parrot 1.2.0 released | parrot.org/ | Weekly Priority: Profiling | Parrot VM Workshop, Pittsburgh, June 20-21 Set by moderator on 7 June 2009. |
|||
| dalek | rrot: r39541 | Util++ | trunk/src/string: [codingstd] Ignore *.str in src/string |
00:11 | |
|
00:13
amuck joined
00:18
mikehh joined
|
|||
| dalek | tracwiki: v19 | coke++ | BranchDescriptions | 00:20 | |
| tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff | |||
|
00:32
bacek joined
00:45
Whiteknight joined
|
|||
| dalek | TT #762 created by ingmar++: parrot_config --dump: libparrot_linkflags, rpath_blib contain references ... | 00:51 | |
| Coke wonders how tcl is parsing [expr {{-0x1234}}] | 01:07 | ||
| that would be a helpful thing if someone is bored. =-) | |||
| dalek | rtcl: r485 | coke++ | trunk/runtime/builtin/ (2 files): These functions should return a copy of the value, not the PMC itself. |
01:10 | |
|
01:28
f0rk joined
01:57
Theory joined
|
|||
| amuck | I'm trying to install the svn version of parrot but I keep getting permission denied errors due to the lib/parrot directory being created with 000 permissions | 02:35 | |
| I also get warnings about Argument "/opt/local/lib/parrot/1.2.0-devel/languages/pge" isn't numeric in mkdir at /Library/Perl/Updates/5.8.8/File/Path.pm line 165. | 02:36 | ||
| Is this an issue with a known fix? | |||
| Infinoid | How exactly are you configuring and building parrot? | 02:44 | |
| amuck | perl Configure.pl --prefix=/opt/local | 02:45 | |
| make | |||
| make install | |||
|
03:20
donaldh joined
03:46
davidfetter joined
04:01
bacek_ joined
04:34
Zak joined
04:50
Andy joined
04:55
Zak joined
05:44
viklund_ joined
|
|||
| cotto | bacek++ for working to make Keys sane. | 06:16 | |
| Parrot needs more sanity. | |||
|
06:24
cognominal joined
06:37
viklund_ joined
07:03
Hunger joined
|
|||
| dalek | rrot: r39542 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser/actions.pm: [pmcc] Build short signature for MULTI. Override virtual param type with PMC* when needed. |
07:04 | |
| rrot: r39543 | bacek++ | branches/pmc_pct/compilers/pmcc/src/builtins.pir: [pmcc] Add Hash.keys into builtins |
|||
| rrot: r39544 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm: [pmcc] Preliminary stub for MULTIs handling. |
|||
| bacek | cotto: It almost works | 07:05 | |
|
07:09
viklund_ joined
|
|||
| cotto | pmc_pct? That's awesome! | 07:16 | |
| (for a second I thought you were referring to the Key refactor, which would have made my head asplode) | |||
| I know that in pmc2c the RO variant VTABLEs require some state from parent PMCs. Did you find a way around that? | 07:18 | ||
| nm. you're just referring to MULTIs | |||
|
07:20
donaldh joined
|
|||
| cotto | bacek, why not add a C-level 'keys' method to Hash? | 07:20 | |
| (other than ease of implementation, which is compelling enough) | 07:21 | ||
| bacek | I'm not very keen to change PMCs in pmc_pct branch. | 07:22 | |
| Just to reduce hassle on merge | |||
| cotto | perfectly reasonable | 07:23 | |
| bacek | (And I'm going to rewrite all Keys/Iterators anyway :) | ||
| cotto | for which your name will be called great | 07:24 | |
| That code needs some tough love. | 07:25 | ||
| bacek | indeed... | ||
| purl | indubitably | ||
| cotto | What motivated you to take on that particular ball of cruft? | 07:26 | |
| bacek | My sense of beauty. | 07:28 | |
| And totally unsatisfied sense of perfection. | |||
| dalek | rrot: r39545 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser/actions.pm: [pmcc] Build long signature for MULTIs. |
07:30 | |
| cotto | so you generally avoid imcc then ;) | 07:31 | |
| bacek | yes :) | 07:32 | |
| I've got my prototype for emitting PBC from PIR :) | |||
| cotto | That explains that. | 07:33 | |
|
07:34
patspam joined
|
|||
| cotto | Sometimes I wish I could look into the future to see what Parrot 3.5 will look like, to see if all the crazy stuff that's being discussed now will come to pass. | 07:34 | |
| but if I could actually look into the future, I'd probably be able to find something more profitable to look at. | |||
| bacek | :) | 07:39 | |
| cotto | on that note, paulgraham.com/hundred.html is an interesting article about what programming lanuages will look like in 100 years. | 07:41 | |
| bacek | I can predict what on this page. Everything will be DSL on top of Lisp? :) | 07:43 | |
|
08:08
bacek_ joined
08:29
barney joined
08:31
mikehh joined
|
|||
| dalek | rrot: r39546 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser/actions.pm: Remove debug "say" |
09:10 | |
| rrot: r39547 | bacek++ | branches/pmc_pct/compilers/pmcc/src/builtins.pir: Remove debug "say" |
|||
| rrot: r39548 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm: [pmcc] Generate full set of required constants. |
|||
| rrot: r39549 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser/actions.pm: Store almost full MULTI name in PAST. |
|||
| rrot: r39550 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm: Change generate_signature method to accept desired name. Implement emitting multis. |
|||
| purl | dalek: that doesn't look right | ||
| rrot: r39551 | bacek++ | branches/pmc_pct/compilers/pmcc/t/08-multi.t: [t] Add tests for emitting MULTIs bodies. |
|||
| bacek | msg cotto It's your turn now :) I've finished MULTIs handling (fsvo "finished" and "handling") | 09:13 | |
| purl | Message for cotto stored. | ||
| dalek | rrot: r39552 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm: [pmcc] Generate _temp_multi_func_list almost the same as pmc2c. |
09:14 | |
| rrot: r39553 | bacek++ | branches/pmc_pct/compilers/pmcc/t/08-multi.t: [t] Add more tests for MULTIs |
|||
| rrot: r39554 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm: [pmcc] Swap generate_multis and generate_passes. Add TODO comment for cotto++ |
|||
| bacek | karma bacek | 09:20 | |
| purl | bacek has karma of 609 | ||
| bacek | erm... | 09:21 | |
| clock? | 09:23 | ||
| purl | bacek: LAX: Sun 2:23am PDT / CHI: Sun 4:23am CDT / NYC: Sun 5:23am EDT / LON: Sun 10:23am BST / BER: Sun 11:23am CEST / IND: Sun 2:53pm IST / TOK: Sun 6:23pm JST / SYD: Sun 7:23pm EST / | ||
| dalek | rrot: r39555 | bacek++ | branches/tt761_keys_revamp: Branch for cleanup Keys/Iterators implementation as described in TT#761 |
09:31 | |
| bacek | Anyone here? | 09:57 | |
| purl | look around and see, you dolt | ||
| bacek | stupid girl... | ||
| dalek | rrot: r39556 | bacek++ | branches/tt761_keys_revamp/src/pmc/arrayiterator.pmc: [pmc] Add stripped version of Iterator as ArrayIterator. |
10:14 | |
| rrot: r39557 | bacek++ | branches/tt761_keys_revamp/t/native_pbc (4 files): Regenerate native PBCs |
10:18 | ||
| rrot: r39558 | bacek++ | branches/tt761_keys_revamp/t/pmc/pmc.t: [t] Add ArrayIterator to untestable without initialisation. |
|||
| rrot: r39559 | bacek++ | branches/tt761_keys_revamp/t/pmc/iterator.t: [t] Use pop instead of shift for reverse iterator. |
|||
| rrot: r39560 | bacek++ | branches/tt761_keys_revamp/src/pmc (6 files): [pmc] Migrate all *Array*.get_iter to ArrayIterator |
|||
| rrot: r39561 | bacek++ | branches/tt761_keys_revamp (2 files): [core] Add pmc_reuse_init similar to pmc_reuse but with initing reused pmc. |
|||
| rrot: r39562 | bacek++ | branches/tt761_keys_revamp/src/pmc/iterator.pmc: [pmc] When we try to instanciate Iterator for Array fall to ArrayIterator. |
|||
|
10:27
flexibeast joined
11:20
donaldh joined
11:29
Whiteknight joined
|
|||
| moderator | Topic for #parrot is: Parrot 1.2.0 released | parrot.org/ | Weekly Priority: Testing for 1.3.0! | Parrot VM Workshop, Pittsburgh, June 20-21 | 11:32 | |
| Whiteknight | I'm seeing a new failure this morning on t/manifest/03-regenerate_skip.t | 12:39 | |
| Failed test 'No need to regenerate MANIFEST.skip' | 12:40 | ||
| dalek | rrot: r39563 | Infinoid++ | trunk/MANIFEST.SKIP: [cage] regenerate MANIFEST.SKIP. |
12:50 | |
| Infinoid | Whiteknight: That should fix it | 12:52 | |
| Whiteknight | awesome, Infinoid++ | 12:53 | |
|
12:54
DanielC joined
|
|||
| Whiteknight | yes, appears fixed. Awesome! | 12:54 | |
| DanielC | I think there is a weird bug in the JSON library. Easiest way to explain is to try running this test: pastebin.com/m428594f4 | 12:55 | |
| Infinoid is doing fulltest in x86-32 | |||
| DanielC | The test fails if you assign Hash keys in a non-alphabetical order. | 12:56 | |
| Whiteknight | wow, that is a weird error | ||
| are we sure the test is testing the right things? | |||
| Infinoid | does json really guarantee hash insertion order? (I don't think Hash does) | 12:57 | |
| DanielC | Infinoid: I am sure it doesn't. The order should not matter. | ||
| Infinoid | oh, I see, the values are switched? | 12:59 | |
| DanielC | It doesn't matter. What matters is that the keys are assigned in a different order. | 13:00 | |
| If you set $P0["b"] = 1 and $P0["a"] = 2 after, the error remains. | |||
| Infinoid | From the error message "# Mismatch at [a]: expected 1, received 2" I would have assumed it was comparing $P0["a"] with $P1["a"] | 13:01 | |
| DanielC | yeah | 13:02 | |
| It should compare $P1["a"] to $P0["a"] but it doesn't seem to. | |||
| Infinoid | and if I print $P0["a"] and $P1["a"], I get 1 and 1 | ||
| DanielC | wtf? | 13:03 | |
| Infinoid | I'm suspecting an issue with is_deeply | ||
| DanielC | oh, sorry | ||
| DanielC mis-read something :) | |||
| yeah, the issue might be in is_deeply | |||
| Infinoid | "This only handles comparisons of array-like structures. It shouldn't be too hard to extend it for hash-like structures, too." -- the is_deeply pod | 13:05 | |
| DanielC | Yeah, when I print all the values of $P0 and $P1 the numbers look right. | ||
| ah!!!! | 13:06 | ||
| Infinoid | Guess we should open a ticket for that :) | ||
| DanielC | So is_deeply doesn't work for hashes. | ||
| Thank you very much. | |||
| Infinoid | (I don't really want to break Test::More before tuesday's release) | ||
| is_deeply doesn't work for hashes, yet. But it really *should*, hopefully we can fix that soon | 13:07 | ||
| DanielC | Hopefully. | ||
|
13:10
kid51 joined
|
|||
| Whiteknight | Infinoid: can you check t/examples/pod.t? | 13:11 | |
| I | |||
| I'm getting a few failures there now that were probably hidden by the MANIFEST.SKIP test failure | |||
| Infinoid | Failed 9/400 subtests | 13:18 | |
|
13:18
skids joined
|
|||
| Infinoid | but I have to go soon, hopefully back later this morning | 13:18 | |
| Infinoid hates the fulltest sequencing | 13:19 | ||
| Coke | I have an issue with my ternary operator, trying to figure out if it's a problem with the PGE optable stuff or my code. 3>2?2***3:66 gives an RPA error, even though 2***3 by itself gives an expected failure. | 13:29 | |
| dalek | rtcl: r486 | coke++ | trunk/runtime/builtin/ (2 files): If we were doing things as early as possible, then our value would we're waiting until the end to run all the code. |
13:35 | |
| Infinoid | DanielC: ping | 13:37 | |
| nopaste | "infinoid" at 65.18.171.17 pasted "[PATCH] Test/More.pir should handle hash comparisons without relying on Iter ordering" (63 lines) at nopaste.snit.ch/16909 | 13:40 | |
|
13:56
burmas joined
15:20
donaldh joined
15:53
iblechbot joined
16:18
barney joined
16:22
Psyche^ joined
16:25
Theory joined
16:32
gaurav joined
|
|||
| dalek | rtcl: r487 | coke++ | trunk/ (4 files): move the compile* .subs into their own file. |
16:38 | |
| rtcl: r488 | coke++ | trunk/tools/gen_builtins.pl: alphabetize these includes |
|||
|
16:38
burmas left
|
|||
| Coke | hurm. I can have a PMC that has functions defined in PIR, no? | 16:42 | |
| (just shove them in the appropriate namespace?) | |||
|
16:48
whoppix joined
|
|||
| pmichaud | Coke: Yes -- Rakudo and PGE do that quite a bit. | 16:49 | |
| at least for normal methods. I don't know if you can do vtable functions that way. | |||
| Coke | this is plain methods. | 17:06 | |
| trying to make my code a little more object oriented. | 17:07 | ||
| odd. getting Class '[ 'parrot' ; 'Getopt::Obj' ]' not found | |||
| (pretty sure I didn't change /that/ code. :P) | |||
| (ah. .hll marker screwed it up) | 17:09 | ||
| Coke grumbles. | 17:44 | ||
|
18:11
DanielC joined
|
|||
| DanielC | How do you delete a file? There doesn't seem to be an "unlink" function in PIR. | 18:11 | |
|
18:50
bacek joined
19:20
donaldh joined
19:26
jan joined
|
|||
| davidfetter | who's going to pittsburgh this week? | 20:08 | |
| f0rk | not making it there until monday :( | 20:09 | |
|
20:29
viklund_ joined
|
|||
| Util | davidfetter: coming in Friday | 20:50 | |
| davidfetter | Util, cool :) | ||
| so am i :) | |||
|
21:04
AchaBacha joined
|
|||
| Util | davidfetter: great! I do not see you on yapc10.org/yn2009/wiki?node=Parrot%...hop%202009 ; are you coming in early for a different reason? | 21:20 | |
| davidfetter | oops. forgot to sign up | 21:21 | |
| where's the sign-up? | |||
| Util | DanielC: I think you would call `unlink` from the os PMC, but it is not implemented yet. | 21:22 | |
| DanielC | Util: Ok | 21:23 | |
| Infinoid | hmm! Apparently, I'm only 5 hours from Pittsburgh | ||
| Util | davidfetter: the link I pasted is the signup; register on the wiki, then edit the page to add yourself. | ||
| Infinoid: Road trip! | 21:24 | ||
| purl | well, road trip is more fun =) | ||
| Infinoid | Of course, I was only 5 hours from San Francisco last year, and I didn't make it to PDS last year either | ||
| I think 2 hours is my "easy" driving threshold | 21:25 | ||
| davidfetter | hrm | 21:28 | |
| i signed in and edited | |||
| i guess i'll try less clever | |||
| Util | DanielC: from the looks of the other os.pmc methods (and `man 2 unlink`), I think it would be easy-ish to implement. Not volunteering, though; no tuits available. | ||
| DanielC | Util: Ok. Just so I know, where can I find os.pmc ? | 21:29 | |
| Infinoid | parrot trunk/src/pmc/ | ||
| DanielC | thanks | ||
| Util | davidfetter: try [user:2895] ; that will link to you, while displaying your name. | 21:33 | |
| davidfetter | done | 21:34 | |
| how'd you find that? | |||
| Util | the number-instead-of-name technique, or the wiki page? | 21:37 | |
| davidfetter | my number | ||
| DanielC | Util: os.pmc seems to already have a template for "rm" | ||
| Util | You are listed at the bottom of the page as the last user to change the page. Also, I could have done a user search. | 21:38 | |
| davidfetter | ah | ||
| <-- n00b | |||
| Util | DanielC: Oh! I missed it, narrowly searching only for `unlink`. | 21:39 | |
|
21:39
zak_ joined
|
|||
| Util | DanielC: See t/pmc/os.t for an example of usage. | 21:40 | |
| DanielC | Thanks. | ||
| I tried just using it the obvious way but I got an error ("could not fin sub rm"). | 21:41 | ||
| DanielC looks at the test | |||
| ah... | 21:42 | ||
| $P1 = new ['OS'] ... $P1."rm"($S1) | |||
| mikehh | t/op/debuginfo has TODO passes in make smoke and make -k fulltest - all PASS except t/examples/pod.t in examples_tests | 21:43 | |
| DanielC | Util: It works!! | 21:44 | |
| Util: Thanks. | |||
| Util | glad to help | ||
| mikehh | Ubuntu 9.04 i386 at r39563 | ||
| Util | mikehh++ for smoking :) FYI, `make fulltest_all` is the equiv-to `make -k fulltest`, with benchmarks moved to run last. | 21:46 | |
| Infinoid | DanielC: r39564 has your fix | 21:48 | |
| DanielC | Infinoid: Thanks! | ||
| dalek | rrot: r39564 | Infinoid++ | trunk (2 files): [Test/More.pir] is_deeply can compare hashes, but depends on insertion order. Thus, after comparing the number of entries, we should base the rest of the comparison on *one* Iter, not two in parallel. I think we still need more work to handle undef values properly, but this is a step in the right direction. While we're at it, add a test. |
21:49 | |
| mikehh | Util: Yeah - used to run that but I find make -k fulltest is a little quicker | 21:51 | |
| not that much though - I let it run while doing a cpu[;e of oyjer things | 21:53 | ||
| couple of other | |||
|
21:55
Whiteknight joined
|
|||
| mikehh | I haven't been able to get a decent keyvoard that fits my fingers properly since my grandson spilt Coke on my old favourite | 21:55 | |
| Coke as in Coca-Cola not a certain Will :-} | 21:56 | ||
| you see I keep hitting v instead of b, ; instead of l etc, etc... | 21:58 | ||
| Infinoid | silly soda companies, polluting the namespace | ||
| mikehh | certainly polluted my old keyboard :-} | 21:59 | |
| I had that one for years and now can't an equivalent anywhere - have tried about 6 now :-{ | 22:02 | ||
| Infinoid | I was fortunate enough to get used to a certain type of cheap but decent ones that have been cloned by 5 or 6 noname companies | 22:04 | |
| ...and then bought a 10-pack of them | |||
| I hope it's been carried over from PS/2 to USB... haven't had to check yet | 22:05 | ||
|
22:22
ZeroForce joined
|
|||
| Coke yawns. | 22:31 | ||
|
22:33
rg joined
|
|||
| Infinoid | Is Undef a singleton? | 22:33 | |
| Whiteknight | PMCNULL is | 22:35 | |
| at least, I think it is | |||
| Infinoid | Yeah, that makes sense | 22:36 | |
| Undef is a real PMC tho | |||
| Oh, wow, with a real set_pmc method. That's gonna make singletons ... unlikely | 22:37 | ||
| Coke | I believe that's so that you could do $P0 = new 'Undef'; morph $P0, 'some random thing' | 22:48 | |
|
22:53
ZeroForce1 joined
23:03
bacek joined
|
|||
| dalek | TT #763 created by Infinoid++: Test/More.pir's is_deeply() needs work with hash corner cases | 23:04 | |
| bacek | good morning | 23:05 | |
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
| Infinoid | ohai | 23:06 | |
| GeJ | Good morning everyone | 23:07 | |
| dalek | rrot: r39565 | bacek++ | trunk/src/string/api.c: [core] Applying patch from TT#758 to improve Parrot_str_to_num. |
23:16 | |
|
23:18
patspam joined
23:21
donaldh joined
|
|||
| bacek | Infinoid: looks like openbsd/hppa requires explicit cast to double from int... | 23:23 | |
| Infinoid | pmichaud: I'd love to get your opinion on TT #763, if you've got a spare tuit to toss at it | ||
| bacek: Wow, that sounds like a pretty broken platform | 23:24 | ||
| bacek | is_deeply(%a,%b) { for %a.keys { return 0 unless exists %b{$_} and %a{$_} == %b{$_} }; for %b.keys { return 0 unless exists %a{$_} }; return 1} | 23:27 | |
| This is how I understand is_deeply should work | |||
| (I didn't check Test::More.pir though) | |||
| Infinoid | Test::More.pir's hash handling isn't well tested, and actually the POD said it only handles arrays, not hashes | 23:29 | |
| I fixed up the existing hash code to work, and updated the POD | |||
| and then I started looking for more corner cases based on some comments in #perl6 about how tricky it was to get it fully correct | 23:30 | ||
| That ticket is intended as a starting point for discussion | |||
| So your is_deeply does treat !exists as distinct from !defined | 23:31 | ||
| bacek | indeed. | ||
| I think "key3 => undef" not equal to absence of "key3" | 23:32 | ||
| Infinoid | According to pmichaud, parrot returns PMCNULL in the !exists case, so assuming is_deeply can handle that (and Undef) without crashing, we can make that work | ||
| bacek | Parrot's Hash returns Undef. I'm not sure that returning Null will not brake something | ||
| Infinoid | I haven't tested any of this, just going by what others have said | 23:34 | |
| [10:35] <@pmichaud> Actually, looking up non-existent keys in hashes normally returns NULL (in Parrot) | 23:35 | ||
| If you're seeing Undef, maybe it's fixed up somewhere between the C layer and the PIR layer | |||
| GeJ | bacek: running make fulltest on FreeBSD against your latest patch. Will try with the FLOATVAL cast right after it. | 23:36 | |
| bacek | Ah. pmichaud is right. It actually returns Null. | ||
| GeJ: thanks. | |||
| dalek | rtcl: r489 | coke++ | trunk/ (3 files): - rename TclString.get_list to TclString.getListValue() - add a :multi variant to let the TclString version avoid creating a new PMC. |
||
| bacek need more coffee | 23:37 | ||
| Coke_afk | bacek: I'm pretty sure we've already switched between Undef and NULL for hashes at /least/ once. | 23:41 | |
| Infinoid | I don't want to switch it, I just want to understand it | 23:43 | |
| bacek | Coke: yes. It returns PMCNULL now. | ||
| Infinoid | and to make is_deeply() work with it :) | ||
| bacek | Infinoid: actually "exists %b{$_}" equals to "%b{$_} ~~ Null" :) | 23:44 | |
| Infinoid | Great. That gives me something I can check from PIR | 23:45 | |
| So if I can get is_deeply printing nulls and undefs properly, the right behavior should just fall out | 23:46 | ||
| Coke | bah. I finally gave up doing a wholesale switch and having massive failures and am now doing incremental changes. next time, just start there. Oy. | ||
| Infinoid | Switching what, Coke? | 23:47 | |
| Coke | I have a 'toList' :multi in partcl. Trying to switch it to a method. | 23:48 | |
| bacek | .oO( Migrate partcl to PCT? ) |
||
| Coke | no, but I'd love to have that patch if you have the tuits. =-) | ||
| Infinoid: was just lamenting that I should know that small, incremental changes are better. =-) | 23:49 | ||
| bacek | time to go to $dayjob... | 23:51 | |
| dalek | rtcl: r490 | coke++ | trunk/ (2 files): Switch toList to no longer be a :mult - add a version to the builtin String. |
||
| Coke | bah. getting test failures in 'make TEST_JOBS=3 test' in partcl, but not in 'make test' or 'prove -f some/failing/test' | 23:57 | |
| Infinoid | race condition from multiple tests creating the same tmpfile? (just a guess) | 23:58 | |
| Coke | Infinoid: could be. care to check my tempfile logic? | ||
| code.google.com/p/partcl/source/bro...est/Tcl.pm | 23:59 | ||
| I'm just using tempfile(). | |||