|
www.parrot.org | Parrot 1.6.0 "half-pie" released: The JIT is dead! | Testing priorities: Exception and MultiSub Set by moderator on 20 September 2009. |
|||
|
00:01
jhelwig joined
00:02
Ryan52 joined
|
|||
| dalek | rrot: r41485 | darbelo++ | trunk/src/dynpmc/gdbmhash.pmc: Remove another strstart use from the gdbm dynpmc. Looks like I missed this the last time I was here. |
00:15 | |
|
00:24
joeri left
|
|||
| chromatic | Whiteknight, I yanked the high priority marking out of mark_special. All tests pass. | 00:27 | |
| darbelo | Ship it! | ||
| Whiteknight | are we leaking memory? | ||
| because some things were only marked that way, like metadata | 00:28 | ||
| chromatic | Metadata still gets marked. | ||
| Whiteknight | okay | 00:29 | |
| last time I was trying to remove it I was too naive | |||
| chromatic | I didn't remove that linked list of marking in mark_special. | 00:31 | |
| I don't know what it is or why it's there, but it's still there. | |||
| Whiteknight | ok | 00:37 | |
| I'll stare at it tomorrow, if nobody beats me to it. It will be gone then | |||
| chromatic | Hm, removing gc_mark_ptr causes segfaults. | 00:44 | |
| Whiteknight | yeah, there's something happening in there that I don't quite understand yet | 00:45 | |
| and I'm increasingly certain that this was a major cause of errors in my GSOC work | |||
| because I didn't really use that pointer or the next_for_GC stuff | 00:46 | ||
| chromatic | It's in Parrot_gc_trace_children(). | ||
| Whiteknight | yeah | ||
| chromatic | I threw a return 0; at the start and now only two tests fail, no crashes. | ||
| Whiteknight | right, there's something getting marked in there that isn't being marked anywhere else | 00:47 | |
| or, something else is happening there that I don't understand | |||
| chromatic | I think it's the former. | 00:48 | |
| Whiteknight | it marks metadata and calls VTABLE_mark | 00:50 | |
| and it sets PObj_custom_gc flag | |||
| so if we do all three of those things in mark_special we should be able to get rid of the linked list | |||
|
00:51
payload joined
|
|||
| Whiteknight | oh and pt_gc_mark_root_finished, which is something I am not familiar with | 00:51 | |
| chromatic | It doesn't do anything. | ||
| Whiteknight | all the better. | 00:52 | |
| dalek | rrot: r41486 | chromatic++ | trunk/src/gc/mark_sweep.c: [GC] Removed high priority marking from mark_special() in the GC, as it didn't |
00:54 | |
| darbelo | The only call I see to Parrot_gc_trace_children is in gc_ms_trace_active_PMCs. With how_many < 0 | 00:55 | |
| cconstantine_ | I'm trying to get a simple language going. What does it mean when I get a "No object result" from the interpreter? | ||
| "No result object", sorry | |||
| chromatic | I wish the GC didn't have vestigial remnants of plans written long ago and never completed. | 00:56 | |
| Whiteknight | cconstantine_: where do you see that? nopaste your code? | ||
| darbelo | cconstantine_: You ussually get that when your grammar isn't calling any actions. | ||
| jrtayloriv | cconstantine_, I quote from the wikibook: "Make sure each action method is invoked (check each rule for a "{*}" marker), and that there is an action method for that rule, and that "make" is used to set the appropriate PAST node." | ||
| cconstantine_ | the language is called 'reason'... when I do a ./reason from the commandline I get a prompt. I get that result to any input (even stuff that shouldn't parse) | 00:57 | |
| treed | I shall make a competing language called rhyme. | 00:58 | |
| cconstantine_ | my 'language' so far is a slight modification of the default created language | ||
| treed | And when scripts can't find either, they shall report "Cannot execute: No rhyme or reason" | ||
| cconstantine_ | treed: it's named after my cat | ||
| treed | Ah. | ||
| jrtayloriv | cconstantine_, Can you paste up the grammar.pg and actions.pm? | ||
| cconstantine_ | I had Reason and Logic | ||
| jrtayloriv: yes | |||
| treed | Who were probably rather unreasonably and lacking in logic, as cats tend to be. | ||
| cconstantine_ | logic was pretty dump | 00:59 | |
| dumb | |||
| is there a prefered pastebin? | |||
| treed | the parrot svn tree comes with a tool | ||
| I forget where it is | |||
| jrtayloriv | cconstantine_, try nopaste.snit.ch/ | 01:00 | |
| chromatic | alias pnp='perl /home/chromatic/dev/parrot/tools/dev/nopaste.pl -n chromatic -t' | 01:01 | |
| pnp "This is a great description of a patch. ALL SHALL APPLY." my_spectacular.patch | 01:02 | ||
| cconstantine_ | pastebin.com/d5ace6093 | ||
| and I'm using the default say builtin | |||
| chromatic: does that automatically paste a link in this channel? | 01:07 | ||
| darbelo | cconstantine_: yup. The web interface does too. | ||
| chromatic | Yes. | ||
| cconstantine_ | fantastic | ||
| and attaches the .patch presumably | |||
| chromatic | Exactly. | ||
| darbelo | using nopaste.snit.ch/parrot will autoselect the channel for you. | 01:08 | |
| cconstantine_ | Tene: Mind if I steal your grammar? I mean borrow | 01:11 | |
|
01:19
patspam joined
|
|||
| darbelo | I think I've got it! | 01:32 | |
| Whiteknight: ping | |||
| Whiteknight | pong | ||
| darbelo | Found out wht's the interaction between Parrot_gc_trace_children and the mark_special linked list | 01:33 | |
| Whiteknight | I think I already know most of it, and I thik chromatic has already deleted it, but do tell | ||
| nopaste | Someone at 200.49.154.173 pasted "Surprisingly non-segfaulty patch." (48 lines) at nopaste.snit.ch/18063 | 01:34 | |
| darbelo | mark_special constructs a liked list of special pmcs. Adding one on every call. | 01:35 | |
| Whiteknight | right | 01:36 | |
| and when we mark, we loop over that list | |||
| darbelo | when Parrot_gc_trace_children gets called it loops over that list marking metadata an clearing flags. | 01:37 | |
| Whiteknight | right | ||
| darbelo | If you do the flag clearing and metadata marking instead of adding to the list, you don't have a list, nor a need for one since everything get's marked *now* instead of queued for later. | 01:38 | |
| Which is what nopaste.snit.ch/18063 | 01:39 | ||
| does with little segfaulting and only two failed tests. | |||
| Whiteknight | that's what I was thinking, just hadn't tried it yet | ||
| if it works, submit the patch | |||
| darbelo | # Failed test 'timely destruction' | ||
| # at t/pmc/io.t line 56. | |||
| Whiteknight | stupid timely destruction nonsense | 01:40 | |
| darbelo | I've got to head out in a bit but I'll keep hacking on it for a few minutes to see if I can beat this into shape. | 01:43 | |
| Whiteknight | yeah, I'm heading to bed myself now too | ||
| darbelo | Hope you don't dream of segfaults. | 01:44 | |
| xkcd.com/371/ | |||
| Whiteknight | haha, goodnight | 01:45 | |
| dukeleto | 'ello | 01:46 | |
| darbelo | Die! Die! Die! You dammned intruding pointer! | 01:53 | |
|
01:57
rhr joined
|
|||
| dalek | rrot: r41487 | darbelo++ | branches/remove-next_for_GC: Create a branch for removing next_for_GC and associated cleanups. |
01:59 | |
| rrot: r41488 | dukeleto++ | trunk (3 files): [t][TT #1064] Test that documents difference between and , brianwisti++ |
|||
| dukeleto | damn you, shell interpolation | 02:01 | |
| dalek | TT #1064 closed by dukeleto++: [PATCH] test documenting difference between $I1 and $I01 | 02:04 | |
|
02:19
jhelwig joined
|
|||
| cconstantine_ | Is there anyway to tell PAST::Op to do a 'call' with tail recursion? | 02:26 | |
|
02:41
janus joined
02:53
rhr joined
02:55
rg joined
|
|||
| dalek | rtcl: r745 | coke++ | trunk/ (3 files): improve smolder support. |
03:38 | |
|
04:13
Austin joined
|
|||
| Austin | good morning, #parrot | 04:14 | |
|
04:29
darbelo joined
|
|||
| darbelo | Okay, the disk failure save that struct, but not anymore! | 04:29 | |
| diakopter | purl: | 04:30 | |
| purl | diakopter: what? | ||
| diakopter | what | ||
|
04:34
Austin joined
|
|||
| darbelo | c'mon dalek I want my karma. | 04:41 | |
|
04:42
zerhash joined,
petdance joined
|
|||
| Tene | purl: msg japhb Added stat, split, join, fscat to Glue.pir | 04:44 | |
| purl | Message for japhb stored. | ||
| darbelo | Tene++ | 04:45 | |
| Tene | Ooo... we need mktemp | ||
| darbelo | Tene: All yours. I'm killing parrot data structures. :) | 04:46 | |
| Tene | I'm gonna look into getting some basic fetch stuff working. | 04:47 | |
| cconstantine_ | Is there anyway to get a tailcall into the AST? | ||
| Tene | cconstantine_: you can take whatever you like from steme. don't I have a license in there? | 04:48 | |
| cconstantine_ | there isn't, I kinda sorta already did ;) | ||
| Tene | There is. COPYING. | ||
| cconstantine_ | ah | ||
| Tene | MIT/X11 iirc | ||
| cconstantine_ | it's pretty open, thanks | 04:49 | |
| right, so steme has a PAST::Op for call, but it's just a call | |||
| Tene | why are you caring about tailcalls? | 04:50 | |
| cconstantine_ | so I don't have to worry about making loops | ||
| Tene | loops? | ||
| purl | loops are BAD, mmmmkay? :) | ||
| cconstantine_ | well, typically you have loops or recursion | ||
| darbelo | parrot uses continuation passing style. You get what you want fo free. | 04:51 | |
| Tene | cconstantine_: looks like there's PAST::Op.new(:pirop('tailcall')) | ||
| cconstantine_ | I tried a simple tail-recursive function and it failed wth an out-of-stack error | ||
| Austin | Probably you should go with the loop. | ||
| It's PCT's job to turn it into a tailcall for you. | 04:52 | ||
| cconstantine_ | my goal is to be as purely function as possible | ||
| Austin | (Which it won't. But it should.) | ||
| darbelo | cconstantine_: you ran out of stack with tailcall? | ||
| cconstantine_ | darbelo: no, with call | ||
| Tene | cconstantine_: just change :pirop('call') to :pirop('tailcall') on the relevant nodes. | ||
| cconstantine_ | Tene: thanks, trying now | 04:53 | |
| Tene | cconstantine_: eventually, PCT should do that for you, but it doesn't yet. | ||
| darbelo | I thought it already was. My bad. | ||
| Tene | darbelo: I don't know for sure... you could check by compiling a program with --target=post | 04:54 | |
| it would be done at the past->post phase. | |||
| cconstantine_ | yeah, if anything I can see tailcall *requiring* tailcall optimization (so a programmer could know if they break a required tailcall) | ||
| darbelo | Boy is make fulltest long. | 04:55 | |
| Also, is dalek alive? | |||
| Austin | It's amazing how peaceful #parrot is when you /ignore dalek. | 04:59 | |
| darbelo | Austin: But without dalek we have no karma! I want my karma! | 05:01 | |
| Austin | karma darbelo? | ||
| purl | darbelo has karma of 331 | ||
| darbelo | see! see! I need more! | ||
| Austin | See? You have plenty of karma. And purl doesn't ignore dalek, so it stays up to date. | ||
| darbelo++ | 05:02 | ||
| There, have a scooby snack. | |||
| darbelo | Wait. You have dalek on /ignore ? | ||
| Austin | Yep. | ||
| Tene | darbelo++ | 05:03 | |
| darbelo | Ah. you didn't notice he's down then. Nevermind. | ||
| Austin | :) | ||
| Tene | but... but how do you find out about commits? | ||
| Austin | I make them. | ||
| Tene | hehe | ||
| Austin++ | |||
| Austin | Or I svn update when it's convenient. | ||
| (Once a month, whether I need it or not.) | 05:04 | ||
| japhb | Tene, darbelo: Thanks for the parrot-plumage commits! | ||
| Tene: Don't forget to add yourself to CREDITS | |||
| Tene | japhb: did I miss any string or fs stuff (besides file tests)? | 05:05 | |
| japhb | Tene, was just looking at diffs | 05:06 | |
| Tene | japhb: I actually can't find any difference between catfile and catdir in File::Spec, except catfile accepted an additional string argument to join onto the end, so I just made that optional. Does that look good to you? | 05:08 | |
| japhb | Tene: It's fine with me; as long as there is a semantic difference at the API layer, I'm cool. The real test will be VMS anyways, and I don't think any of us have that platform around the house .... | 05:09 | |
| darbelo | I think I can set up (emulated) OpenBSD vax | ||
|
05:10
dalek joined
|
|||
| darbelo | not exactly VMS but still oddball enough to shake a few bugs. | 05:10 | |
| japhb | Tene, darbelo: Not having looked at the Parrot OS object before (and gotta run in a few minutes, so can't right now), it looks pretty full-featured. Anything significant we're not already wrapping? | ||
| darbelo, the more the merrier. I'd rather shake design bugs out early, while they're cheap. | 05:11 | ||
| Tene | cwd, rm, symlink, link, umask, chroot, readdir, rename | ||
| japhb | We've got cwd. | ||
| darbelo | Haven't fully looked at Tene's patches yet, but I think we're pretty much covered. | ||
| japhb | As for the others, I think we will need some of them (especially readdir and rename), but it looks like we've got a decent start. | 05:12 | |
| What does Windows do with the stuff like symlink and umask that don't translate directly? | |||
| darbelo | Throw an exception. | 05:13 | |
| japhb | ah so. | ||
| Tene | ew, rm just calls rmdir, which requires the directory to be empty. :P | ||
| japhb | ? | ||
| That's ... goofy. | |||
| Tene | eh, not too unusual. | ||
| there's no standard function to do a recursive delete. | 05:14 | ||
| darbelo | I've looked at the OS PMC code There's #ifndef WIN32 all over. | ||
| Tene | So everyone always has to make yet another directory tree walker. | ||
| japhb | It would be nice to have rm_rf available | ||
| dalek | TT #1065 created by Austin_Hastings++: PGE should emit inline PIR with Grammar namespace | ||
| japhb | actually .... | ||
|
05:14
jrtayloriv joined
|
|||
| japhb | Making a directory walker is not a bad idea. | 05:14 | |
| darbelo | It's bound to be useful. | 05:15 | |
| japhb | .oO( "But *my* wheel is new and shiny!" ) |
||
| darbelo, Anything that Parrot avoids implementing on Win32 at all (throws an exception or is a null op), there's a pretty good bet we can ignore for now. | 05:16 | ||
| darbelo | Then we're pretty much done OS-wise. | ||
| Tene | japhb: any reason I can't start prototyping a 'fetch' command? | ||
| japhb | Tene, please do. Your choice, SVN or git, I think we've had calls for both of them. Though probably more of the latter. :-) | 05:17 | |
| Tene | Hmm... | ||
| japhb | Looking through the diffs, I think there's a couple little cleanups to do, but nothing to worry about for now. | ||
| darbelo | If your use case is blizkost, I'd go for git. | ||
| japhb | darbelo, That was *my* use case. But I'm not going to try to force anything on volunteers. :-) | 05:18 | |
| darbelo | But Austin made a .json for close, so svn is covered too. | ||
| Oh yeah, thet rminds me... | |||
| japhb waves a fried chicken in the general direction of his project management books | |||
| darbelo | Austin: ping | ||
| Tene | japhb: is there any reason that you have a 'fetch' item with a command invocation instead of a just a git url and a type => 'git' oslt? | 05:19 | |
| Austin | darbelo: pong | ||
| japhb | Tene, I've got to run in a couple. Would you mind just adding a directory walker, and an rm_rf implementation, to TASKS? | ||
| darbelo | Your makefile contains stuff that make BSD make cry. | ||
| Austin | Can you provide details? (ticket?) | 05:20 | |
| cconstantine_ | Tene: I'm having a hard time converting the simple method in actions.pm from steme to generate a tailcall, it appears to be calling the first argument as if it were the func | ||
| Austin | cconstantine_: nopaste? | ||
| purl | i guess nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl | ||
| japhb | Tene, Because that night I practically fell asleep trying to get a draft of that metadata out. There will be stupidities. Feel free to apply actual awake brains to them. | ||
| If I totally disagree, we can discuss. | |||
| darbelo | And (as with all products of mk_language_shell) contains definitions that become circular if the ":=" in the template gets translated to "=". | ||
| japhb | I'm a "better forgiveness than permission" guy with coders I trust. (Thank god for real VCS systems, makes that attitude much easier to justify.) | 05:21 | |
| And since we're on version 0, no userbase to yell at us yet. | 05:22 | ||
| :-) | |||
| OK, any last questions before I derez? | |||
| Tene | japhb: g'night | 05:23 | |
| cconstantine_ | g'night | ||
| nopaste.snit.ch/18064 | |||
| Tene | cconstantine_: you're going to want to somehow abstract out a list or block of s-exps, and then inspect the final one to see if it's a PAST::Op(:pirop('call')), and if so, s/call/tailcall/ on the last one only. | ||
| japhb | OK, g'night then. | ||
| Tene | cconstantine_: get what I'm saying? | ||
| cconstantine_ | Tene: not really, but the looks of the IR a call and tailcall are very similar, why can't I just 'tailcall' instead of 'call' | 05:24 | |
| Tene | cconstantine_: because if you tailcall everything, then you'll only be able to invoke the first statement in a list... | 05:25 | |
| Austin | cconstantine_: (1) You can call $cmd.isa(PAST::Var) directly; (2) if you pass a Var containing a function name, it's okay- Parrot returns the sub, it clls it, you win. This is how calling across namespaces works. | ||
| darbelo | msg Whiteknight _next_for_GC is dead, the remove-next_for_GC passes all of make test and make fulltest for me. | ||
| purl | Message for whiteknight stored. | ||
| darbelo | And now it's time for me to sleep. | ||
|
05:25
darbelo left
|
|||
| Tene | "tailcall" means "I'm completely done with everything in the current context, so just re-use this stack frame", essentially. | 05:26 | |
| cconstantine_ | so it doesn't check if the stack is safe to clobber? | ||
| Tene | cconstantine_: .tailcall is *telling* it that it's safe. | ||
| That's what it means. | |||
| cconstantine_ | ah | ||
| Tene | You should only set it on something that's actually in a tail position. | 05:27 | |
| Tha's why you'll need to abstract out "list of statements", so that you can inspect and possibly modify just the last one. | 05:28 | ||
| cconstantine_ | hmmm | ||
| this almost seems like an optimization pass duty instead of a PAST building task | |||
| Tene | cconstantine_: Yes, like I said, the PAST compiler *should* optimize this, but currently doesn't. | 05:29 | |
| cconstantine_ | so, grit my teeth and hope it gets better? | ||
| Tene | cconstantine_: look at the else {} branch that both 'lambda' and 'let' have in common. That's what you'd abstract out. | 05:30 | |
| and then re-use it elsewhere. | |||
| cconstantine_ | yeah | ||
| Tene | cconstantine_: 1) Do it in PAST instead of POST. 2) loop instead of recurse. 3) update the PAST compiler. | ||
| cconstantine_ | POST? | 05:31 | |
| purl | POST is Parrot Opcode Syntax Tree or for changing data and uncacheable | ||
| Tene | or 4) Harass pmichaud to put it on his long tasklist and then just wait. | ||
| cconstantine_ | hehe | ||
| Tene | Yes, run your compiler with --target=post | ||
| it's lower-level than PAST, and corresponds to actual ops. | |||
| PAST->POST->PIR->PBC | 05:32 | ||
| eventually, we'll want to add an optimization stage after each of the first two | |||
| and write infrastructure to go straight from POST to PBC without going through PIR, etc. | |||
| cconstantine_ | --target=post looks very useful | ||
| Tene | cconstantine_: you can also write your own compiler stages, so you could investigate writing your own optimizaer stage. | 05:33 | |
| There are no examples of doing that yet, afaik. | |||
| cconstantine_ | k | ||
| Tene | but the infrastructure *should* be in place, and you should be able to look at the existing HLLCompiler code to see how to do it. | ||
| So, no, there are no simple solutions yet. :) | 05:34 | ||
| cconstantine_ | this is a hell of a lot simpler than anything I saw in llvm, so I'm still happy :) | ||
| Tene | :) I'm glad. | ||
| cconstantine_ | thanks for all the help | 05:35 | |
| Tene | Austin: where is the .json for close for plumage? | 05:44 | |
| purl: close? | |||
| purl | somebody said close was close file (or pipe or socket) handle or bad on sockets, use shutdown() instead or horseshoes or grenades or nuclear weapons or code.google.com/p/close/ | ||
| Austin | code.google.com/p/close/source/brow...Close.json | 05:45 | |
|
06:01
kyle_l5l_ joined
|
|||
| Tene | Austin: for that to work with plumage ATM, you'll need to remove the trailing comma on line 38 | 06:02 | |
| Austin | Committed. | ||
| @157 removes comma | 06:03 | ||
| Tene | Austin: mind if I add a copy of it to the plumage repo for testing? | ||
| Austin | In the interests of due diligence, have you provided a signed Contributor Licensing Agreement to the Parrot Foundation? | 06:04 | |
| Tene | I have. | ||
| Austin | Then you may. | ||
| (Since I have not. :) | |||
| dalek | ose: r157 | Austin++ | trunk/plumage/Close.json: Removed trailing comma (Tene++) |
||
| Tene | purl: msg japhb basic fetch implemented for git and svn repos. Will work on HTTP soon. | 06:06 | |
| purl | Message for japhb stored. | ||
| Tene | purl: msg whiteknight Daily IO cleanups task list reminder. :) | 06:07 | |
| purl | Message for whiteknight stored. | ||
| Tene | Austin: your Configure.pl script is marked executable but doesn't have a shebang line. | 06:14 | |
| Austin: did you not know that I'm a parrot committer? I'm curious why you asked about my CLA. | 06:15 | ||
| Austin | Because of the discussion the other day during which much was made of plumage requiring cla's for commit. | ||
| Tene | Ah, I didn't notice that discussion. | 06:19 | |
| dalek | ose: r158 | Austin++ | wiki/Cian (4 files): Removed x bits |
06:33 | |
| kyle_l5l_ | argh, freeze/thaw makes me sad. | 06:35 | |
| Tene | Austin: is Close supposed to be able to compile successfully right now? | 06:41 | |
| Austin | Nope. | ||
| Tene | Ok. :) | ||
| why are you stripping annotations? | 06:42 | ||
| Austin | They tended to produce bogus output. | ||
| Tene | 'kay | ||
| Austin | (Of course, if they worked that would be a whole different ball of wax..) | 06:43 | |
|
07:01
TiMBuS joined
07:09
fperrad joined
|
|||
| dalek | TT #1066 created by Austin_Hastings++: Add %(...) expression to NQP | 07:33 | |
| TT #995 closed by NotFound++: segfault in ?? (directory_destroy) | 07:43 | ||
|
08:06
chromatic joined
|
|||
| dalek | a: 8d6f9e7 | fperrad++ | t/pmc/function_hll.t: fix test |
08:07 | |
| mikehh | messages | 08:57 | |
|
09:06
wayland76 joined
|
|||
| wayland76 | Is my build supposed to say this? parrot-1.6.0/blib/lib/libparrot.so: undefined reference to `clock_gettime' | 09:06 | |
| On Fedora 11 | 09:07 | ||
| It was in this line: gcc -o miniparrot src/main.o src/null_config.o -L/home/wayland/Science/Computer/src/rpm/BUILD/parrot-1.6.0/blib/lib -lparrot -licuuc -licudata -lpthread -lm -lcurses -lm -lgmp -lreadline -Wl,-E | |||
|
09:16
bacek joined
|
|||
| bacek | o hai | 09:21 | |
| Austin | good day, bacek | 09:37 | |
| fperrad | ping NotFound | 10:08 | |
| purl | I can't find NotFound in the DNS. | ||
| NotFound | pon | ||
| g | |||
| fperrad | NotFound, since r41427-41442, I've many failures in t/pmc/nci.t on Windows (see Smolder) | 10:09 | |
| NotFound | fperrad: 32 or 64? | 10:10 | |
| fperrad | win32 | ||
| NotFound | Odd | ||
| fperrad: BTW, did you see my last nopaste for lua? | 10:11 | ||
| "Lua fixes for C++ build" (350 lines) at nopaste.snit.ch/18062 | 10:12 | ||
| fperrad | NotFound, remove many const | 10:14 | |
| NotFound | fperrad: they are in fact no const | ||
|
10:21
tokuhirom____ joined
10:24
JimmyZ joined
10:40
tokuhirom_____ joined
|
|||
| dalek | rrot: r41493 | NotFound++ | trunk/config/gen/platform/generic/hires_timer.c: [config] Verify clock_getttime availability in generic platform, use gettimeofday if not |
10:46 | |
| rrot: r41494 | NotFound++ | trunk (2 files): [nci] better checks and more informative panic messages in callbacks |
11:07 | ||
|
11:18
tokuhirom______ joined
11:20
tokuhirom_______ joined
11:33
Whiteknight joined
11:34
iblechbot joined
|
|||
| Whiteknight | good saturday, parrot | 11:37 | |
|
11:39
MoC joined
11:40
joeri joined,
AndyA joined
|
|||
| Austin | morning, whiteknight | 11:43 | |
| Whiteknight | hello Austin | ||
| what are you up to today? | 11:45 | ||
| Austin | I'm blogging about the Whitespace Hack, and I'm chasing some startup issues in Close. | 11:46 | |
| Whiteknight | oh nice | 11:48 | |
|
11:59
JimmyZ joined
|
|||
| NotFound | fperrad: wih r41494 win32 with Strawberry doesn't fail nci for me | 12:04 | |
| t/pmc/float.t TODO passed: 44 | 12:05 | ||
|
12:08
quek joined
|
|||
| fperrad | NotFound, I've failures with r41492, win32, Strawberry, mingw gcc 3.4, & make realclean | 12:08 | |
| smolder.plusthree.com/app/public_pr...ails/28099 | |||
| NotFound | fperrad: try r41494 | 12:12 | |
| dalek | kudo: e33d20e | moritz++ | docs/release_guide.pod: [docs] mention smolder reports in release_guide.pod |
12:19 | |
| NotFound | Uh, I was testing without --optimize. With it, fails. | 12:21 | |
| PacoLinux | I have a working parrot again in Haiku, thanks NotFound++ | 12:39 | |
|
12:41
sri joined
|
|||
| Whiteknight | Tene; ping | 12:45 | |
| dalek | tracwiki: v16 | whiteknight++ | IOTasklist | 12:46 | |
| tracwiki: Add lots of TODO cleanup notes for Tene++ and anybody else who is interested | |||
| tracwiki: trac.parrot.org/parrot/wiki/IOTask...ction=diff | |||
| rrot: r41495 | NotFound++ | trunk/src/interp/inter_cb.c: [nci] simplify callback signature parsing and fix cstring free |
12:59 | ||
| Whiteknight | purl msg Tene check out the IOTasklist page on the wiki. I've expanded it just for you :) | 13:02 | |
| purl | Message for tene stored. | ||
|
13:04
darbelo joined
13:06
allison joined
|
|||
| dalek | tracwiki: v1 | allison++ | CallingConventionsOverview | 13:08 | |
| tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff | |||
| darbelo | Nothin' like a good ol' castle-stormin' in a Saturday mornin' | 13:10 | |
| dalek | tracwiki: v2 | allison++ | CallingConventionsOverview | 13:12 | |
| tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff | |||
| tracwiki: v3 | allison++ | CallingConventionsOverview | |||
| tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff | |||
|
13:12
ruoso joined
13:28
payload joined
|
|||
| fperrad | NotFound, NCI not ok with r41494 (see smolder.plusthree.com/app/public_pr...ils/28112) | 13:30 | |
| dalek | tracwiki: v4 | allison++ | CallingConventionsOverview | 13:32 | |
| tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff | |||
| allison airport->home | 13:35 | ||
| dalek | tracwiki: v5 | allison++ | CallingConventionsOverview | ||
| tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff | |||
| darbelo | pmichaud: can you nopaste the output of prove -v t/op/io.t | 13:36 | |
| or try a build with --buildframes=0 | 13:37 | ||
| Whiteknight | allison++ | 13:47 | |
| dalek | rrot: r41496 | pmichaud++ | branches/pct-rx (10 files): [pct-rx] First pieces of code for the PCT-based regex implementation. |
||
| Austin | Mmmm...corrupted filesystem | 13:53 | |
| NotFound | With --buildframes=0 nci.t pass | 13:54 | |
| darbelo | Even optimized? | 13:57 | |
| NotFound | Yes | ||
| darbelo | Makes sense, the frame bulder is made of distilled JIT ugly. | 13:58 | |
| We could disable it for win32 (like we do for darwin) if we can't fix this before the release. | 13:59 | ||
| But if it's a --optimize only failure I'd guess at an incorrect compiler annotation. | |||
| NotFound | The --optimize difference makes no sense... let me check if there is some NULLNESS nonsense. | 14:00 | |
| darbelo | There used to be a CATCH_NULL #define there or something like that, I think it might be related. | 14:01 | |
|
14:08
quek left
|
|||
| Whiteknight | allison: ping | 14:14 | |
| dalek | a: c6c1703 | fperrad++ | src/pmc/lua (5 files): check type in VTABLE set_pmc, |
14:15 | |
| a: d71af84 | fperrad++ | src/POSTGrammar.tg: fix double free (in 223-iterator.t) |
|||
| a: c3091a8 | fperrad++ | src/pmc/luatable.pmc: LuaTable : - overload VTABLE assign_pmc |
|||
| a: ae01b4e | fperrad++ | (3 files): Fix C++ build |
|||
| Whiteknight | irclogs? | 14:16 | |
| purl | i heard irclogs was irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| dalek | rrot: r41497 | mikehh++ | trunk/config/gen/platform/generic/hires_timer.c: codetest failure - incorrect indenting in preprocessor directive |
14:21 | |
| darbelo | Whiteknight: ping | ||
| Whiteknight | pong | ||
| darbelo | Did you see the remove-next_for_GC branch? | 14:22 | |
| I thought it was sane when I did it, but I'd like someone more familiar with GC to check. | |||
| There's a few more cleanups to be made there too, but I want to sanity-check them first too. | 14:24 | ||
| Whiteknight | I haven't seen it, I'll check it out a little later today | 14:25 | |
| darbelo | It's passing fulltest test for me, but I've already learned the hard way how much that means ;) | 14:30 | |
|
14:32
Psyche^ joined
|
|||
| Whiteknight | okay, checking out now | 14:33 | |
| mikehh | all tests PASS (pre/post-config, smoke, fulltest) at r41497 - Ubuntu 9.04 amd64 | 14:36 | |
| Whiteknight | purl msg allison: since returns are just invokes on a continuation, shouldn't we be able to unify the arg passing and returns passing functions? It's mentioned in PDD03 somewhere. Is that off the roadmap or is it part of a later refactor? | ||
| purl | Message for allison stored. | ||
| jonathan thought a lot of the code paths were fairly unified. | 14:37 | ||
| well, ish :-) | |||
| I seem to remember there was one common function that did arg passing that set things up a little differently for the rest basede upon if it was a return or a pass. | |||
| IIRC it differed in error checking semantics | |||
| Austin | This one's for you, Andrew. close-parrot.blogspot.com/2009/09/w...-hack.html | 14:44 | |
| Teh googel hates me, and randomly converted some of my <'s to html tags, while leaving some others as text. :( | 15:01 | ||
| Fixed now. | |||
| JimmyZ | pipp is gone again? | 15:05 | |
| :( | |||
|
15:09
cconstantine joined
|
|||
| Whiteknight | Austin: You didn't have to take a knife to your naughty bits to work on Parrot? | 15:13 | |
| I thought that was the only way to get a CLA | |||
| Austin | Now you see why I'm not a committer. | 15:14 | |
| (Lack of commitment...) | |||
| Whiteknight | Austin: excellent post! | 15:20 | |
| Austin | Thank you. | 15:21 | |
| I'd give a speech, but I'm afraid Kanye would interrupt me. | |||
| fperrad | seen NotFound | 15:25 | |
| purl | NotFound was last seen on #parrot 1 hours, 25 minutes and 54 seconds ago, saying: The --optimize difference makes no sense... let me check if there is some NULLNESS nonsense. | ||
| NotFound | pong | 15:26 | |
| fperrad | NotFound, NCI ok with r41496 & --optimize & --buildframes=0 (see smolder.plusthree.com/app/public_pr...ils/28118) | 15:27 | |
| Whiteknight has to go away now. Later | 15:28 | ||
|
15:44
kid51 joined
15:57
_dolmen_ joined
16:15
theory joined
|
|||
| pmichaud | ...how hard would it be to allow other word characters besides digits after $I... ? | 16:32 | |
| i.e., instead of just $I0, $I1, I2, etc, could we have $Ilen, $Pfoo, $Ssource, etc? | 16:33 | ||
| I can come up with some places where that would be really useful. | |||
|
17:33
iblechbot joined
17:35
cconstantine joined
17:37
mokurai joined
|
|||
| jrtayloriv | pmichaud, Why not .local? Does it do something different? | 17:40 | |
| dalek | rrot: r41498 | rblasch++ | trunk/config/gen/makefiles (3 files): [config] Embed Microsoft application manifest in DLLs. |
17:52 | |
|
17:53
davidfetter joined
|
|||
| NotFound | I think the t/pmc/nci.t problem in win32 is this: my @todo = $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/ ? | 17:56 | |
| The reason to TODO it was not really the jit but the buildframes | 17:57 | ||
| pmichaud | jrtayloriv: when generating code, I can't always use .local because there's a chance I'll conflict with a register someone else has defined | 18:07 | |
| i.e., if my code generates ".local int len" and the surrounding PIR has already defined a "len" to mean something else, we have a conflict. | 18:08 | ||
| also, it seems weird to have to write | |||
| .local int len | |||
| len = a + b | |||
| jrtayloriv | OK, I see. And yes, it would be nice to have the shorter way of writing available. | ||
| pmichaud | right | ||
| given something like | |||
| .local int len | |||
| len = a + b | 18:09 | ||
| str = substr target, pos, len | |||
| it would be nicer to write | |||
| $Ilen = a + b | |||
| str = substr target, pos, $Ilen | |||
| since I'm only going to use that register for two line. | |||
| *lines. | |||
| anyway, it was just an idle thought. it's generated code, so it's not too big a deal for me to be doing $I27563 | 18:10 | ||
| it's just harder to read the generated code to figure out what is going on | |||
|
18:11
chromatic joined
18:14
szabgab joined
|
|||
| darbelo | chromatic: If I wanted to benchmark GC performance after removing next_for_GC, what would you recomend? | 18:20 | |
| I think smaller PMCs will improve performace, but there were some comments about better cache locality on the linked list stuff. | 18:23 | ||
| chromatic | I benchmark Rakudo startup. | 18:24 | |
| Use Callgrind and Cachegrind. | |||
| darbelo | A rakudo 'hello world' is a gc-intensive application? | 18:25 | |
| chromatic | It allocates ~2,992,000 PMCs and ~2,871,000 STRINGs. | 18:26 | |
| It runs the GC 67 times. | |||
| darbelo | Ouch. | ||
| chromatic | Sorry, 65. | ||
| darbelo | Oh that's better then :) | 18:27 | |
| chromatic | I'm accounting for Parrot's overhead in those measurements and just noticed that two of those happened during Parrot global destruction. | 18:28 | |
| We'll see more benefit from shrinking the STRING struct now. | 18:29 | ||
| darbelo | Any particular calgrind incantaion I should look into? | 18:30 | |
| chromatic | alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes' | 18:31 | |
| alias chg='time valgrind --tool=cachegrind --branch-sim=yes' | |||
|
18:35
darbelo joined
18:39
zerhash joined
|
|||
| cconstantine | so, in pir I'm trying to create a FixedPMCArray.. how do I specify it's size? | 18:46 | |
| chromatic | Assign to it after creating it. | 18:47 | |
| Assign *an integer* to it after creating it. | 18:48 | ||
| cconstantine | I did... and it's giving me an index out of bounds error | ||
| Tene | $P0 = new ...; $P0 = 5 | ||
| cconstantine | ah, not $P0[0] = some-val | ||
| thanks :) | |||
| Tene | np | ||
| chromatic | How horrible is it to suggest that we store buflen, strlen, and hashval as the first three INTVAL-sized chunks of a STRING's... oh, that hurts COW. | 18:50 | |
| cconstantine | hopefully I get comfortable enough in PIR to stop asking these stupid questions | ||
| darbelo | Hmm, now I see the point against working on installed parrots. Means lots of rebuilding to compare branches. | 18:53 | |
| Thank the gods for parallel make. | 18:54 | ||
| Tene | cconstantine: we all go through that phase. :) | 18:56 | |
| darbelo | chromatic: how likely are we to benefit from inmutable STRINGs | 18:59 | |
|
19:03
cotto_w0rk joined
|
|||
| cconstantine | As long as I go *through* it, and not stay in it :) | 19:04 | |
|
19:06
jrtayloriv joined
|
|||
| darbelo | Hmm. L2i miss rate and mispred rate went up in the branch. | 19:06 | |
| chromatic | darbelo, immutable STRINGs will help a fair amount. Right now we have to make a lot of COW STRINGs because they *may* get modified somewhere else. | 19:07 | |
| nopaste | "jrtayloriv" at 69.205.162.163 pasted "Why am I getting this error?" (63 lines) at nopaste.snit.ch/18066 | ||
| cconstantine | darbelo: pure functional languages would probably only use those | 19:09 | |
| darbelo | chromatic: you calculate your performance %s based on the I refs counts, right? | 19:10 | |
|
19:20
rhr joined
|
|||
| nopaste | "darbelo" at 190.3.138.65 pasted "Profiling data on trunk vs remove-next_for_GC branch" (80 lines) at nopaste.snit.ch/18067 | 19:26 | |
| chromatic | Yes. | 19:32 | |
|
19:32
yanger joined
|
|||
| darbelo | ~1% improvement is not a very big optimization, I'd say. | 19:33 | |
| chromatic | No, but getting rid of unused code helps. | ||
| yanger | Is it true that parrot ir will be translated to llvm ir? | 19:34 | |
| chromatic | We're considering that for a JIT backend, yanger. | 19:35 | |
| yanger | I see , thanks. Is there any code I can see of this being done in the srcs? | 19:38 | |
| darbelo | Hmm. Maybe I can drive those mispred rates back down. | 19:39 | |
| chromatic | We don't have any code for it in the main repo yet, yanger. | 19:40 | |
| yanger | @chromatic, is there a dev source? If not any date?,You also mentioned 'considered',are there any reasons for rejecting it as a backend? | 19:43 | |
|
19:44
jsut_ joined
|
|||
| chromatic | We're working on a proof of concept right now. | 19:44 | |
| moritz | we don't yet know how well it will work | ||
| chromatic | Ergh, no GH pull requests for Rakudo. | 19:45 | |
| yanger | thanks everyone | 19:49 | |
| dalek | rrot: r41499 | NotFound++ | trunk/t/pmc/fixedstringarray.t: [t] 100% cover FSA |
20:06 | |
|
20:07
rhr joined
|
|||
| kudo: a65ece5 | chromatic++ | src/pmc/ (3 files): [PMC] Changed GC markings to use PMC/STRING specific marking functions, rather major potential for compile-time correctness. |
20:11 | ||
| NotFound | chromatic: you can delete the if | 20:12 | |
| chromatic | Which if? | 20:17 | |
| purl | Which if is wireless and which if is wired? | ||
| dalek | kudo: 834929c | chromatic++ | build/PARROT_REVISION: Bumped up PARROT_REVISION to r41447 to take advantage of improved marking |
||
| purl | functions are surrounded by "sub { ... }". | ||
| NotFound | chromatic: the checks for nullness before marking | 20:21 | |
| chromatic | I wasn't sure about those. The *_fun() forms had NULLOK on the pointers when I looked at them last. | 20:22 | |
| NotFound | chromatic: the _fun had the checks for NULL, and the macros also | 20:24 | |
| chromatic | Let's dump them from the macros then, except for the very fast core string mark. | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "chromatic: like this?" (9 lines) at nopaste.snit.ch/18069 | 20:34 | |
| chromatic | Looks solid. | 20:37 | |
| I *think* I had a check for liveness in the PMC/NDEBUG case before the function call, but I can't find it now. | 20:38 | ||
| mikehh | all tests PASS (pre/post-config, smoke (#28129), fulltest) at r41499 - Ubuntu 9.04 amd64 | 20:46 | |
| partcl r745 builds on parrot r41499 - make test PASS (smolder #28131) - ubuntu 9.04 amd64 | 20:47 | ||
| dalek | rrot: r41500 | NotFound++ | trunk/include/parrot/gc_api.h: [gc] simplify mark alive macros |
||
|
20:57
cogno joined
21:05
kid51 joined
|
|||
| kid51 reads trac.parrot.org/parrot/wiki/Callin...nsOverview | 21:14 | ||
| mikehh | rakudo (834929c) builds on parrot r41499 - make test / make spectest (up to 28432) PASS - Ubuntu 9.04 amd64 | 21:16 | |
|
21:17
cconstantine_ joined
|
|||
| dalek | rrot: r41501 | darbelo++ | branches/remove-next_for_GC/src/gc (3 files): We don't need Parrot_gc_trace_children anymore. Move what's left of it into it's only caller and kill it. |
21:19 | |
| darbelo | I guess I'll have to live with a 1% speedup. Job's done here. | 21:20 | |
| mikehh | rakudo make spectest_smolder -> #28134 | 21:23 | |
| chromatic | 2.324% for my Rakudo benchmark. | 21:24 | |
| darbelo | chromatic: branch or trunk? | 21:25 | |
| chromatic | Branch. | 21:27 | |
| darbelo | I guess the gc is better tuned on x86. | 21:28 | |
| chromatic | 32 bit as well. | 21:30 | |
|
21:53
mokurai joined
|
|||
| dalek | rrot: r41502 | NotFound++ | trunk/t/pmc/null.t: [t] cover Null.is_same |
21:57 | |
|
22:10
PacoLinux joined
|
|||
| dalek | TT #1067 created by jkeenan++: t/pmc/objects.t: premature death on Darwin/PPC | 22:19 | |
| kid51 | NotFound, chromatic: Could you please look at TT 1067? You have made recent commits in the part of src/gc/api.c reported in the test failure. Thanks. | 22:23 | |
| NotFound | CAN I HAZ BACKTRACE? ;) | 22:24 | |
| kid51 | What's the specific command I should run to get that? | 22:25 | |
| NotFound | In Darwin? No idea. | ||
| darbelo | gdb <program> <coredumpfile> ? | 22:26 | |
| the bt | |||
| *then* bt | |||
| NotFound | darbelo: provided that it dumps core by default, I suppose. | 22:27 | |
| darbelo | Oh, yeah. I forgot that. | 22:29 | |
| NotFound | In linux with bash shell you usually need to have executed 'ulimit -c unlimited' before | ||
| (or some appropiate value instead of unlimited) | 22:30 | ||
| dalek | rrot: r41503 | darbelo++ | branches/remove-next_for_GC (18 files): Sync branch with trunk. |
22:33 | |
| kid51 notes in passing that we have 2 test files with names that are too similar to each other: t/pmc/object.t and t/pmc/objects.t. Screws up tab expansion. | 22:34 | ||
| NotFound | There is some reason to have push_integer in FixedBooleanArray? Is supposed to have fixed size, isn't it? | ||
| bacek | NotFound: kill it. (Or move to RBA if it doesn't have it) | 22:38 | |
| NotFound | At first look I suppose it was to be used by deriveds, but Resizable has his own. | 22:39 | |
| bacek | btw, good morning :) | ||
| NotFound | Good night ;) | ||
|
22:40
mokurai joined
|
|||
| kid51 | I'm not sure what .pir or .pasm file I would run in gdb to get a backtrace for TT 1067. | 22:49 | |
| dalek | rrot: r41504 | NotFound++ | trunk/src/pmc/fixedbooleanarray.pmc: [pmc] kill FBA.push_integer |
||
| NotFound | kid51: ./parrot t/pmc/objects.t | 22:50 | |
| nopaste | "kid51" at 68.237.0.178 pasted "t/pmc/objects.t failure on Darwin/PPC: backtrace" (60 lines) at nopaste.snit.ch/18070 | 22:55 | |
| dalek | TT #1068 created by jkeenan++: Rename test files whose names are too similar | 23:07 | |
| NotFound | kid51: looks like it can be a mistake in stack tracing, but locating the variable implied can be hard. | 23:12 | |
| kid51 | Should I try to bisect to identify the offending revision? | 23:18 | |
| Smolder reports to the rescue! | 23:20 | ||
| smolder.plusthree.com/app/public_pr.../28036/181 | |||
| Last good test on Darwin/PPC was 41447. Failure occurred between 41448 and 41461. | 23:21 | ||
| NotFound | kid51: uh.... inspiring, pmc_reuse may have something to do. | 23:22 | |
| kid51 | Failures seem specific to PPC; Darwin/i386 passing. | ||
| NotFound | That stacktrace looks nonsensical | ||
| darbelo | Okay. That's all I'm going to get out of remove-next_for_GC. | 23:24 | |
|
23:25
mokurai joined
|
|||
| darbelo | Anyone care to review/+1 it? | 23:26 | |
| jrtayloriv | I've got a few (very possibly stupid) questions about PCT. Anyone mind taking a stab at them? First off, can I do something like this --> pastebin.com/d70bd990 <-- to initialize lexical symbols for my builtins in the PAST::Block that I created in method TOP? | 23:34 | |
| NotFound | darbelo: didn't chromatic already checked it? | 23:39 | |
| jrtayloriv | oops, meant to use .lex, not .const --> pastebin.com/d3c80e118 | 23:40 | |
|
23:49
mokurai joined
|
|||
| darbelo | NotFound: Oh. You are right. Sorry, my brain must've left for cofee and left my body at the keyboard. | 23:51 | |