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