Camelia, the Perl 6 bug

IRC log for #parrot, 2009-09-26

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 jhelwig joined #parrot
00:02 Ryan52 joined #parrot
00:15 dalek parrot: r41485 | darbelo++ | trunk/src/dynpmc/gdbmhash.pmc:
00:15 dalek parrot: Remove another strstart use from the gdbm dynpmc. Looks like I missed this the last time I was here.
00:15 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41485/
00:24 joeri left #parrot
00:27 chromatic Whiteknight, I yanked the high priority marking out of mark_special.  All tests pass.
00:27 darbelo Ship it!
00:27 Whiteknight are we leaking memory?
00:28 Whiteknight because some things were only marked that way, like metadata
00:28 chromatic Metadata still gets marked.
00:29 Whiteknight okay
00:29 Whiteknight last time I was trying to remove it I was too naive
00:31 chromatic I didn't remove that linked list of marking in mark_special.
00:31 chromatic I don't know what it is or why it's there, but it's still there.
00:37 Whiteknight ok
00:37 Whiteknight I'll stare at it tomorrow, if nobody beats me to it. It will be gone then
00:44 chromatic Hm, removing gc_mark_ptr causes segfaults.
00:45 Whiteknight yeah, there's something happening in there that I don't quite understand yet
00:45 Whiteknight and I'm increasingly certain that this was a major cause of errors in my GSOC work
00:46 Whiteknight because I didn't really use that pointer or the next_for_GC stuff
00:46 chromatic It's in Parrot_gc_trace_children().
00:46 Whiteknight yeah
00:46 chromatic I threw a return 0; at the start and now only two tests fail, no crashes.
00:47 Whiteknight right, there's something getting marked in there that isn't being marked anywhere else
00:47 Whiteknight or, something else is happening there that I don't understand
00:48 chromatic I think it's the former.
00:50 Whiteknight it marks metadata and calls VTABLE_mark
00:50 Whiteknight and it sets PObj_custom_gc flag
00:50 Whiteknight 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 #parrot
00:51 Whiteknight oh and pt_gc_mark_root_finished, which is something I am not familiar with
00:51 chromatic It doesn't do anything.
00:52 Whiteknight all the better.
00:54 dalek parrot: r41486 | chromatic++ | trunk/src/gc/mark_sweep.c:
00:54 dalek parrot: [GC] Removed high priority marking from mark_special() in the GC, as it didn't
00:54 dalek parrot: do anything particularly interesting with a stop-the-world collector.
00:54 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41486/
00:55 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?
00:55 cconstantine_ "No result object", sorry
00:56 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?
00:56 darbelo cconstantine_: You ussually get that when your grammar isn't calling any actions.
00:56 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."
00:57 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:58 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
00:58 treed And when scripts can't find either, they shall report "Cannot execute: No rhyme or reason"
00:58 cconstantine_ treed: it's named after my cat
00:58 treed Ah.
00:58 jrtayloriv cconstantine_, Can you paste up the grammar.pg and actions.pm?
00:58 cconstantine_ I had Reason and Logic
00:58 cconstantine_ jrtayloriv: yes
00:58 treed Who were probably rather unreasonably and lacking in logic, as cats tend to be.
00:59 cconstantine_ logic was pretty dump
00:59 cconstantine_ dumb
00:59 cconstantine_ is there a prefered pastebin?
00:59 treed the parrot svn tree comes with a tool
00:59 treed I forget where it is
01:00 jrtayloriv cconstantine_, try http://nopaste.snit.ch/
01:01 chromatic alias pnp='perl /home/chromatic/dev/parrot/tools/dev/nopaste.pl -n chromatic -t'
01:02 chromatic pnp "This is a great description of a patch.  ALL SHALL APPLY."  my_spectacular.patch
01:02 cconstantine_ http://pastebin.com/d5ace6093
01:02 cconstantine_ and I'm using the default say builtin
01:07 cconstantine_ chromatic: does that automatically paste a link in this channel?
01:07 darbelo cconstantine_: yup. The web interface does too.
01:07 chromatic Yes.
01:07 cconstantine_ fantastic
01:07 cconstantine_ and attaches the .patch presumably
01:07 chromatic Exactly.
01:08 darbelo using http://nopaste.snit.ch/parrot will autoselect the channel for you.
01:11 cconstantine_ Tene: Mind if I steal your grammar?  I mean borrow
01:19 patspam joined #parrot
01:32 darbelo I think I've got it!
01:32 darbelo Whiteknight: ping
01:32 Whiteknight pong
01:33 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
01:34 nopaste Someone at 200.49.154.173 pasted "Surprisingly non-segfaulty patch." (48 lines) at http://nopaste.snit.ch/18063
01:35 darbelo mark_special constructs a liked list of special pmcs. Adding one on every call.
01:36 Whiteknight right
01:36 Whiteknight and when we mark, we loop over that list
01:37 darbelo when Parrot_gc_trace_children gets called it loops over that list marking metadata an clearing flags.
01:37 Whiteknight right
01:38 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:39 darbelo Which is what http://nopaste.snit.ch/18063
01:39 darbelo does with little segfaulting and only two failed tests.
01:39 Whiteknight that's what I was thinking, just hadn't tried it yet
01:39 Whiteknight if it works, submit the patch
01:39 darbelo #   Failed test 'timely destruction'
01:39 darbelo #   at t/pmc/io.t line 56.
01:40 Whiteknight stupid timely destruction nonsense
01:43 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
01:44 darbelo Hope you don't dream of segfaults.
01:44 darbelo http://xkcd.com/371/
01:45 Whiteknight haha, goodnight
01:46 dukeleto 'ello
01:53 darbelo Die! Die! Die! You dammned intruding pointer!
01:57 rhr joined #parrot
01:59 dalek parrot: r41487 | darbelo++ | branches/remove-next_for_GC:
01:59 dalek parrot: Create a branch for removing next_for_GC and associated cleanups.
01:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41487/
01:59 dalek parrot: r41488 | dukeleto++ | trunk (3 files):
01:59 dalek parrot: [t][TT #1064]  Test that documents difference between  and , brianwisti++
01:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41488/
02:01 dukeleto damn you, shell interpolation
02:04 dalek TT #1064 closed by dukeleto++: [PATCH] test documenting difference between $I1 and $I01
02:19 jhelwig joined #parrot
02:26 cconstantine_ Is there anyway to tell PAST::Op to do a 'call' with tail recursion?
02:41 janus joined #parrot
02:53 rhr joined #parrot
02:55 rg joined #parrot
03:38 dalek partcl: r745 | coke++ | trunk/ (3 files):
03:38 dalek partcl: improve smolder support.
03:38 dalek partcl: Patch Courtesy fperrad++.
03:38 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=745
04:13 Austin joined #parrot
04:14 Austin good morning, #parrot
04:29 darbelo joined #parrot
04:29 darbelo Okay, the disk failure save that struct, but not anymore!
04:30 diakopter purl:
04:30 purl diakopter: what?
04:30 diakopter what
04:34 Austin joined #parrot
04:41 darbelo c'mon dalek I want my karma.
04:42 zerhash joined #parrot
04:42 petdance joined #parrot
04:44 Tene purl: msg japhb Added stat, split, join, fscat to Glue.pir
04:44 purl Message for japhb stored.
04:45 darbelo Tene++
04:45 Tene Ooo... we need mktemp
04:46 darbelo Tene: All yours. I'm killing parrot data structures. :)
04:47 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?
04:48 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 ;)
04:48 Tene There is.  COPYING.
04:48 cconstantine_ ah
04:48 Tene MIT/X11 iirc
04:49 cconstantine_ it's pretty open, thanks
04:49 cconstantine_ right, so steme has a PAST::Op for call, but it's just a call
04:50 Tene why are you caring about tailcalls?
04:50 cconstantine_ so I don't have to worry about making loops
04:50 Tene loops?
04:50 purl loops are BAD, mmmmkay? :)
04:50 cconstantine_ well, typically you have loops or recursion
04:51 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'))
04:51 cconstantine_ I tried a simple tail-recursive function and it failed wth an out-of-stack error
04:51 Austin Probably you should go with the loop.
04:52 Austin 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
04:52 Austin (Which it won't. But it should.)
04:52 darbelo cconstantine_: you ran out of stack with tailcall?
04:52 cconstantine_ darbelo: no, with call
04:52 Tene cconstantine_: just change :pirop('call') to :pirop('tailcall') on the relevant nodes.
04:53 cconstantine_ Tene: thanks, trying now
04:53 Tene cconstantine_: eventually, PCT should do that for you, but it doesn't yet.
04:53 darbelo I thought it already was. My bad.
04:54 Tene darbelo: I don't know for sure... you could check by compiling a program with --target=post
04:54 Tene it would be done at the past->post phase.
04:54 cconstantine_ yeah, if anything I can see tailcall *requiring* tailcall optimization (so a programmer could know if they break a required tailcall)
04:55 darbelo Boy is make fulltest long.
04:55 darbelo Also, is dalek alive?
04:59 Austin It's amazing how peaceful #parrot is when you /ignore dalek.
05:01 darbelo Austin: But without dalek we have no karma! I want my karma!
05:01 Austin karma darbelo?
05:01 purl darbelo has karma of 331
05:01 darbelo see! see! I need more!
05:01 Austin See? You have plenty of karma. And purl doesn't ignore dalek, so it stays up to date.
05:02 Austin darbelo++
05:02 Austin There, have a scooby snack.
05:02 darbelo Wait. You have dalek on /ignore ?
05:02 Austin Yep.
05:03 Tene darbelo++
05:03 darbelo Ah. you didn't notice he's down then. Nevermind.
05:03 Austin :)
05:03 Tene but... but how do you find out about commits?
05:03 Austin I make them.
05:03 Tene hehe
05:03 Tene Austin++
05:03 Austin Or I svn update when it's convenient.
05:04 Austin (Once a month, whether I need it or not.)
05:04 japhb Tene, darbelo: Thanks for the parrot-plumage commits!
05:04 japhb Tene: Don't forget to add yourself to CREDITS
05:05 Tene japhb: did I miss any string or fs stuff (besides file tests)?
05:06 japhb Tene, was just looking at diffs
05:08 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:09 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 #parrot
05:10 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?
05:11 japhb 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
05:11 japhb We've got cwd.
05:11 darbelo Haven't fully looked at Tene's patches yet, but I think we're pretty much covered.
05:12 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 japhb What does Windows do with the stuff like symlink and umask that don't translate directly?
05:13 darbelo Throw an exception.
05:13 japhb ah so.
05:13 Tene ew, rm just calls rmdir, which requires the directory to be empty. :P
05:13 japhb ?
05:13 japhb That's ... goofy.
05:13 Tene eh, not too unusual.
05:14 Tene 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.
05:14 Tene So everyone always has to make yet another directory tree walker.
05:14 japhb It would be nice to have rm_rf available
05:14 dalek TT #1065 created by Austin_Hastings++: PGE should emit inline PIR with Grammar namespace
05:14 japhb actually ....
05:14 jrtayloriv joined #parrot
05:14 japhb Making a directory walker is not a bad idea.
05:15 darbelo It's bound to be useful.
05:15 japhb .oO( "But *my* wheel is new and shiny!" )
05:16 japhb 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.
05:16 Tene japhb: any reason I can't start prototyping a 'fetch' command?
05:17 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...
05:17 japhb Looking through the diffs, I think there's a couple little cleanups to do, but nothing to worry about for now.
05:17 darbelo If your use case is blizkost, I'd go for git.
05:18 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.
05:18 darbelo Oh yeah, thet rminds me...
05:18 * japhb waves a fried chicken in the general direction of his project management books
05:18 darbelo Austin: ping
05:19 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
05:19 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?
05:19 darbelo Your makefile contains stuff that make BSD make cry.
05:20 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
05:20 Austin cconstantine_: nopaste?
05:20 purl i guess nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
05:20 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.
05:20 japhb If I totally disagree, we can discuss.
05:20 darbelo And (as with all products of mk_language_shell) contains definitions that become circular if the ":=" in the template gets translated to "=".
05:21 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:22 japhb And since we're on version 0, no userbase to yell at us yet.
05:22 japhb :-)
05:22 japhb OK, any last questions before I derez?
05:23 Tene japhb: g'night
05:23 cconstantine_ g'night
05:23 cconstantine_ http://nopaste.snit.ch/18064
05:23 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.
05:23 japhb OK, g'night then.
05:23 Tene cconstantine_: get what I'm saying?
05:24 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:25 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.
05:25 darbelo msg Whiteknight _next_for_GC is dead, the remove-next_for_GC passes all of make test and make fulltest for me.
05:25 purl Message for whiteknight stored.
05:25 darbelo And now it's time for me to sleep.
05:25 darbelo left #parrot
05:26 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?
05:26 Tene cconstantine_: .tailcall is *telling* it that it's safe.
05:26 Tene That's what it means.
05:26 cconstantine_ ah
05:27 Tene You should only set it on something that's actually in a tail position.
05:28 Tene 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
05:28 cconstantine_ this almost seems like an optimization pass duty instead of a PAST building task
05:29 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?
05:30 Tene cconstantine_: look at the else {} branch that both 'lambda' and 'let' have in common.  That's what you'd abstract out.
05:30 Tene and then re-use it elsewhere.
05:30 cconstantine_ yeah
05:30 Tene cconstantine_: 1) Do it in PAST instead of POST.  2) loop instead of recurse.  3) update the PAST compiler.
05:31 cconstantine_ POST?
05:31 purl POST is Parrot Opcode Syntax Tree or for changing data and uncacheable
05:31 Tene or 4) Harass pmichaud to put it on his long tasklist and then just wait.
05:31 cconstantine_ hehe
05:31 Tene Yes, run your compiler with --target=post
05:31 Tene it's lower-level than PAST, and corresponds to actual ops.
05:32 Tene PAST->POST->PIR->PBC
05:32 Tene eventually, we'll want to add an optimization stage after each of the first two
05:32 Tene and write infrastructure to go straight from POST to PBC without going through PIR, etc.
05:32 cconstantine_ --target=post looks very useful
05:33 Tene cconstantine_: you can also write your own compiler stages, so you could investigate writing your own optimizaer stage.
05:33 Tene There are no examples of doing that yet, afaik.
05:33 cconstantine_ k
05:33 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.
05:34 Tene 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 :)
05:34 Tene :) I'm glad.
05:35 cconstantine_ thanks for all the help
05:44 Tene Austin: where is the .json for close for plumage?
05:44 Tene purl: close?
05:44 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 http://code.google.com/p/close/
05:45 Austin http://code.google.com/p/close/sour​ce/browse/trunk/plumage/Close.json
06:01 kyle_l5l_ joined #parrot
06:02 Tene Austin: for that to work with plumage ATM, you'll need to remove the trailing comma on line 38
06:02 Austin Committed.
06:03 Austin @157 removes comma
06:03 Tene Austin: mind if I add a copy of it to the plumage repo for testing?
06:04 Austin In the interests of due diligence, have you provided a signed Contributor Licensing Agreement to the Parrot Foundation?
06:04 Tene I have.
06:04 Austin Then you may.
06:04 Austin (Since I have not. :)
06:04 dalek close: r157 | Austin++ | trunk/plumage/Close.json:
06:04 dalek close: Removed trailing comma (Tene++)
06:04 dalek close: review: http://code.google.com/p/close/source/detail?r=157
06:06 Tene purl: msg japhb basic fetch implemented for git and svn repos.  Will work on HTTP soon.
06:06 purl Message for japhb stored.
06:07 Tene purl: msg whiteknight Daily IO cleanups task list reminder. :)
06:07 purl Message for whiteknight stored.
06:14 Tene Austin: your Configure.pl script is marked executable but doesn't have a shebang line.
06:15 Tene 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.
06:19 Tene Ah, I didn't notice that discussion.
06:33 dalek close: r158 | Austin++ | wiki/Cian (4 files):
06:33 dalek close: Removed x bits
06:33 dalek close: review: http://code.google.com/p/close/source/detail?r=158
06:35 kyle_l5l_ argh, freeze/thaw makes me sad.
06:41 Tene Austin: is Close supposed to be able to compile successfully right now?
06:41 Austin Nope.
06:41 Tene Ok. :)
06:42 Tene why are you stripping annotations?
06:42 Austin They tended to produce bogus output.
06:42 Tene 'kay
06:43 Austin (Of course, if they worked that would be a whole different ball of wax..)
07:01 TiMBuS joined #parrot
07:09 fperrad joined #parrot
07:33 dalek TT #1066 created by Austin_Hastings++: Add %(...) expression to NQP
07:43 dalek TT #995 closed by NotFound++: segfault in ?? (directory_destroy)
08:06 chromatic joined #parrot
08:07 dalek lua: 8d6f9e7 | fperrad++ | t/pmc/function_hll.t:
08:07 dalek lua: fix test
08:07 dalek lua: review: http://github.com/fperrad/lua/commit/8d​6f9e71a83e6a002eaa8bcc152d72ad0b42b927
08:57 mikehh messages
09:06 wayland76 joined #parrot
09:06 wayland76 Is my build supposed to say this?    parrot-1.6.0/blib/lib/libparrot.so: undefined reference to `clock_gettime'
09:07 wayland76 On Fedora 11
09:07 wayland76 It was in this line: gcc -o miniparrot src/main.o src/null_config.o -L/home/wayland/Science/Computer/s​rc/rpm/BUILD/parrot-1.6.0/blib/lib -lparrot -licuuc -licudata -lpthread -lm   -lcurses -lm -lgmp -lreadline  -Wl,-E
09:16 bacek joined #parrot
09:21 bacek o hai
09:37 Austin good day, bacek
10:08 fperrad ping NotFound
10:08 purl I can't find NotFound in the DNS.
10:08 NotFound pon
10:08 NotFound g
10:09 fperrad NotFound, since r41427-41442, I've many failures in t/pmc/nci.t on Windows (see Smolder)
10:10 NotFound fperrad: 32 or 64?
10:10 fperrad win32
10:10 NotFound Odd
10:11 NotFound fperrad: BTW, did you see my last nopaste for lua?
10:12 NotFound "Lua fixes for C++ build" (350 lines) at http://nopaste.snit.ch/18062
10:14 fperrad NotFound, remove many const
10:14 NotFound fperrad: they are in fact no const
10:21 tokuhirom____ joined #parrot
10:24 JimmyZ joined #parrot
10:40 tokuhirom_____ joined #parrot
10:46 dalek parrot: r41493 | NotFound++ | trunk/config/gen/platform/generic/hires_timer.c:
10:46 dalek parrot: [config] Verify clock_getttime availability in generic platform, use gettimeofday if not
10:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41493/
11:07 dalek parrot: r41494 | NotFound++ | trunk (2 files):
11:07 dalek parrot: [nci] better checks and more informative panic messages in callbacks
11:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41494/
11:18 tokuhirom______ joined #parrot
11:20 tokuhirom_______ joined #parrot
11:33 Whiteknight joined #parrot
11:34 iblechbot joined #parrot
11:37 Whiteknight good saturday, parrot
11:39 MoC joined #parrot
11:40 joeri joined #parrot
11:40 AndyA joined #parrot
11:43 Austin morning, whiteknight
11:43 Whiteknight hello Austin
11:45 Whiteknight what are you up to today?
11:46 Austin I'm blogging about the Whitespace Hack, and I'm chasing some startup issues in Close.
11:48 Whiteknight oh nice
11:59 JimmyZ joined #parrot
12:04 NotFound fperrad: wih r41494 win32 with Strawberry  doesn't fail nci for me
12:05 NotFound t/pmc/float.t TODO passed: 44
12:08 quek joined #parrot
12:08 fperrad NotFound, I've failures with r41492, win32, Strawberry, mingw gcc 3.4, & make realclean
12:08 fperrad http://smolder.plusthree.com/app/pu​blic_projects/report_details/28099
12:12 NotFound fperrad: try r41494
12:19 dalek rakudo: e33d20e | moritz++ | docs/release_guide.pod:
12:19 dalek rakudo: [docs] mention smolder reports in release_guide.pod
12:19 dalek rakudo: Also move the 2009-09 release to the list of old releases
12:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​33d20eed6ea97806c30e5f7cced25ef908519d6
12:21 NotFound Uh, I was testing without --optimize. With it, fails.
12:39 PacoLinux I have a working parrot again in Haiku, thanks NotFound++
12:41 sri joined #parrot
12:45 Whiteknight Tene; ping
12:46 dalek tracwiki: v16 | whiteknight++ | IOTasklist
12:46 dalek tracwiki: Add lots of TODO cleanup notes for Tene++ and anybody else who is interested
12:46 dalek tracwiki: https://trac.parrot.org/parrot/wiki/I​OTasklist?version=16&amp;action=diff
12:59 dalek parrot: r41495 | NotFound++ | trunk/src/interp/inter_cb.c:
12:59 dalek parrot: [nci] simplify callback signature parsing and fix cstring free
12:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41495/
13:02 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 #parrot
13:06 allison joined #parrot
13:08 dalek tracwiki: v1 | allison++ | CallingConventionsOverview
13:08 dalek tracwiki: https://trac.parrot.org/parrot/wiki/CallingC​onventionsOverview?version=1&amp;action=diff
13:10 darbelo Nothin' like a good ol' castle-stormin' in a Saturday mornin'
13:12 dalek tracwiki: v2 | allison++ | CallingConventionsOverview
13:12 dalek tracwiki: https://trac.parrot.org/parrot/wiki/CallingC​onventionsOverview?version=2&amp;action=diff
13:12 dalek tracwiki: v3 | allison++ | CallingConventionsOverview
13:12 dalek tracwiki: https://trac.parrot.org/parrot/wiki/CallingC​onventionsOverview?version=3&amp;action=diff
13:12 ruoso joined #parrot
13:28 payload joined #parrot
13:30 fperrad NotFound, NCI not ok with r41494 (see http://smolder.plusthree.com/app/pu​blic_projects/report_details/28112)
13:32 dalek tracwiki: v4 | allison++ | CallingConventionsOverview
13:32 dalek tracwiki: https://trac.parrot.org/parrot/wiki/CallingC​onventionsOverview?version=4&amp;action=diff
13:35 * allison airport->home
13:35 dalek tracwiki: v5 | allison++ | CallingConventionsOverview
13:35 dalek tracwiki: https://trac.parrot.org/parrot/wiki/CallingC​onventionsOverview?version=5&amp;action=diff
13:36 darbelo pmichaud: can you nopaste the output of prove -v t/op/io.t
13:37 darbelo or try a build with --buildframes=0
13:47 Whiteknight allison++
13:47 dalek parrot: r41496 | pmichaud++ | branches/pct-rx (10 files):
13:47 dalek parrot: [pct-rx]  First pieces of code for the PCT-based regex implementation.
13:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41496/
13:53 Austin Mmmm...corrupted filesystem
13:54 NotFound With --buildframes=0 nci.t pass
13:57 darbelo Even optimized?
13:57 NotFound Yes
13:58 darbelo Makes sense, the frame bulder is made of distilled JIT ugly.
13:59 darbelo We could disable it for win32 (like we do for darwin) if we can't fix this before the release.
13:59 darbelo But if it's a --optimize only failure I'd guess at an incorrect compiler annotation.
14:00 NotFound The --optimize difference makes no sense... let me check if there is some NULLNESS nonsense.
14:01 darbelo There used to be a CATCH_NULL #define there or something like that, I think it might be related.
14:08 quek left #parrot
14:14 Whiteknight allison: ping
14:15 dalek lua: c6c1703 | fperrad++ | src/pmc/lua (5 files):
14:15 dalek lua: check type in VTABLE set_pmc,
14:15 dalek lua: throws an exception if not equal
14:15 dalek lua: review: http://github.com/fperrad/lua/commit/c6​c1703bb6631fdd178a002f3ec698f72fe3abf2
14:15 dalek lua: d71af84 | fperrad++ | src/POSTGrammar.tg:
14:15 dalek lua: fix double free (in 223-iterator.t)
14:15 dalek lua: assign is not sane with table
14:15 dalek lua: review: http://github.com/fperrad/lua/commit/d7​1af847d2e043e6098a0d42e4f812977db63a2f
14:15 dalek lua: c3091a8 | fperrad++ | src/pmc/luatable.pmc:
14:15 dalek lua: LuaTable :
14:15 dalek lua: - remove unsane VTABLE set_pmc
14:15 dalek lua: - overload VTABLE assign_pmc
14:15 dalek lua: review: http://github.com/fperrad/lua/commit/c3​091a82e3c0f846c66dccde9d188cd30e341588
14:15 dalek lua: ae01b4e | fperrad++ |  (3 files):
14:15 dalek lua: Fix C++ build
14:15 dalek lua: (Courtesy of NotFound)
14:15 dalek lua: review: http://github.com/fperrad/lua/commit/ae​01b4e7c14baaafa43fac476e737ef0661c62d9
14:16 Whiteknight irclogs?
14:16 purl i heard irclogs was http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
14:21 dalek parrot: r41497 | mikehh++ | trunk/config/gen/platform/generic/hires_timer.c:
14:21 dalek parrot: codetest failure - incorrect indenting in preprocessor directive
14:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41497/
14:21 darbelo Whiteknight: ping
14:21 Whiteknight pong
14:22 darbelo Did you see the remove-next_for_GC branch?
14:22 darbelo I thought it was sane when I did it, but I'd like someone more familiar with GC to check.
14:24 darbelo There's a few more cleanups to be made there too, but I want to sanity-check them first too.
14:25 Whiteknight I haven't seen it, I'll check it out a little later today
14:30 darbelo It's passing fulltest test for me, but I've already learned the hard way how much that means ;)
14:32 Psyche^ joined #parrot
14:33 Whiteknight okay, checking out now
14:36 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?
14:36 purl Message for allison stored.
14:37 * jonathan thought a lot of the code paths were fairly unified.
14:37 jonathan well, ish :-)
14:37 jonathan 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.
14:37 jonathan IIRC it differed in error checking semantics
14:44 Austin This one's for you, Andrew. http://close-parrot.blogspot.co​m/2009/09/whitespace-hack.html
15:01 Austin Teh googel hates me, and randomly converted some of my <'s to html tags, while leaving some others as text. :(
15:01 Austin Fixed now.
15:05 JimmyZ pipp is gone again?
15:05 JimmyZ :(
15:09 cconstantine joined #parrot
15:13 Whiteknight Austin: You didn't have to take a knife to your naughty bits to work on Parrot?
15:13 Whiteknight I thought that was the only way to get a CLA
15:14 Austin Now you see why I'm not a committer.
15:14 Austin (Lack of commitment...)
15:20 Whiteknight Austin: excellent post!
15:21 Austin Thank you.
15:21 Austin I'd give a speech, but I'm afraid Kanye would interrupt me.
15:25 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.
15:26 NotFound pong
15:27 fperrad NotFound, NCI ok with r41496 & --optimize & --buildframes=0 (see http://smolder.plusthree.com/app/pu​blic_projects/report_details/28118)
15:28 * Whiteknight has to go away now. Later
15:44 kid51 joined #parrot
15:57 _dolmen_ joined #parrot
16:15 theory joined #parrot
16:32 pmichaud ...how hard would it be to allow other word characters besides digits after $I... ?
16:33 pmichaud i.e.,  instead of just  $I0, $I1, I2, etc, could we have $Ilen, $Pfoo,  $Ssource, etc?
16:33 pmichaud I can come up with some places where that would be really useful.
17:33 iblechbot joined #parrot
17:35 cconstantine joined #parrot
17:37 mokurai joined #parrot
17:40 jrtayloriv pmichaud, Why not .local? Does it do something different?
17:52 dalek parrot: r41498 | rblasch++ | trunk/config/gen/makefiles (3 files):
17:52 dalek parrot: [config] Embed Microsoft application manifest in DLLs.
17:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41498/
17:53 davidfetter joined #parrot
17:56 NotFound I think the t/pmc/nci.t problem in win32 is this: my @todo = $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/ ?
17:57 NotFound The reason to TODO it was not really the jit but the buildframes
18:07 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:08 pmichaud 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 pmichaud also, it seems weird to have to write
18:08 pmichaud .local int len
18:08 pmichaud len = a + b
18:08 jrtayloriv OK, I see. And yes, it would be nice to have the shorter way of writing available.
18:08 pmichaud right
18:08 pmichaud given something like
18:08 pmichaud .local int len
18:09 pmichaud len = a + b
18:09 pmichaud str = substr target, pos, len
18:09 pmichaud it would be nicer to write
18:09 pmichaud $Ilen = a + b
18:09 pmichaud str = substr target, pos, $Ilen
18:09 pmichaud since I'm only going to use that register for two line.
18:09 pmichaud *lines.
18:10 pmichaud 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 pmichaud it's just harder to read the generated code to figure out what is going on
18:11 chromatic joined #parrot
18:14 szabgab joined #parrot
18:20 darbelo chromatic: If I wanted to benchmark GC performance after removing next_for_GC, what would you recomend?
18:23 darbelo I think smaller PMCs will improve performace, but there were some comments about better cache locality on the linked list stuff.
18:24 chromatic I benchmark Rakudo startup.
18:24 chromatic Use Callgrind and Cachegrind.
18:25 darbelo A rakudo 'hello world' is a gc-intensive application?
18:26 chromatic It allocates ~2,992,000 PMCs and ~2,871,000 STRINGs.
18:26 chromatic It runs the GC 67 times.
18:26 darbelo Ouch.
18:26 chromatic Sorry, 65.
18:27 darbelo Oh that's better then :)
18:28 chromatic I'm accounting for Parrot's overhead in those measurements and just noticed that two of those happened during Parrot global destruction.
18:29 chromatic We'll see more benefit from shrinking the STRING struct now.
18:30 darbelo Any particular calgrind incantaion I should look into?
18:31 chromatic alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes'
18:31 chromatic alias chg='time valgrind --tool=cachegrind --branch-sim=yes'
18:35 darbelo joined #parrot
18:39 zerhash joined #parrot
18:46 cconstantine so, in pir I'm trying to create a FixedPMCArray.. how do I specify it's size?
18:47 chromatic Assign to it after creating it.
18:48 chromatic Assign *an integer* to it after creating it.
18:48 cconstantine I did... and it's giving me an index out of bounds error
18:48 Tene $P0 = new ...; $P0 = 5
18:48 cconstantine ah, not $P0[0] = some-val
18:48 cconstantine thanks :)
18:48 Tene np
18:50 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
18:53 darbelo Hmm, now I see the point against working on installed parrots. Means lots of rebuilding to compare branches.
18:54 darbelo Thank the gods for parallel make.
18:56 Tene cconstantine: we all go through that phase. :)
18:59 darbelo chromatic: how likely are we to benefit from inmutable STRINGs
19:03 cotto_w0rk joined #parrot
19:04 cconstantine As long as I go *through* it, and not stay in it :)
19:06 jrtayloriv joined #parrot
19:06 darbelo Hmm. L2i miss rate and mispred rate went up in the branch.
19:07 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 http://nopaste.snit.ch/18066
19:09 cconstantine darbelo: pure functional languages would probably only use those
19:10 darbelo chromatic: you calculate your performance %s based on the I refs counts, right?
19:20 rhr joined #parrot
19:26 nopaste "darbelo" at 190.3.138.65 pasted "Profiling data on trunk vs remove-next_for_GC branch" (80 lines) at http://nopaste.snit.ch/18067
19:32 chromatic Yes.
19:32 yanger joined #parrot
19:33 darbelo ~1% improvement is not a very big optimization, I'd say.
19:33 chromatic No, but getting rid of unused code helps.
19:34 yanger Is it true that parrot ir will be translated to llvm ir?
19:35 chromatic We're considering that for a JIT backend, yanger.
19:38 yanger I see , thanks. Is there any code I can see of this being done in the srcs?
19:39 darbelo Hmm. Maybe I can drive those mispred rates back down.
19:40 chromatic We don't have any code for it in the main repo yet, yanger.
19:43 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:44 jsut_ joined #parrot
19:44 chromatic We're working on a proof of concept right now.
19:44 moritz we don't yet know how well it will work
19:45 chromatic Ergh, no GH pull requests for Rakudo.
19:49 yanger thanks everyone
20:06 dalek parrot: r41499 | NotFound++ | trunk/t/pmc/fixedstringarray.t:
20:07 dalek parrot: [t] 100% cover FSA
20:07 rhr joined #parrot
20:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41499/
20:11 dalek rakudo: a65ece5 | chromatic++ | src/pmc/ (3 files):
20:11 dalek rakudo: [PMC] Changed GC markings to use PMC/STRING specific marking functions, rather
20:11 dalek rakudo: than the generic PObj one.  This adds a minor improvement in performance and a
20:11 dalek rakudo: major potential for compile-time correctness.
20:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​65ece545061b25acd049a309e49f84e8b2fcf8a
20:12 NotFound chromatic: you can delete the if
20:17 chromatic Which if?
20:17 purl Which if is wireless and which if is wired?
20:17 dalek rakudo: 834929c | chromatic++ | build/PARROT_REVISION:
20:17 dalek rakudo: Bumped up PARROT_REVISION to r41447 to take advantage of improved marking
20:17 dalek rakudo: functions.
20:17 purl functions are surrounded by "sub { ... }".
20:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​34929c4eed71778e6234955b35e7bc5b32fcda3
20:21 NotFound chromatic: the checks for nullness before marking
20:22 chromatic I wasn't sure about those.  The *_fun() forms had NULLOK on the pointers when I looked at them last.
20:24 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.
20:34 nopaste "NotFound" at 213.96.228.50 pasted "chromatic: like this?" (9 lines) at http://nopaste.snit.ch/18069
20:37 chromatic Looks solid.
20:38 chromatic 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:46 mikehh all tests PASS (pre/post-config, smoke (#28129), fulltest) at r41499 - Ubuntu 9.04 amd64
20:47 mikehh partcl r745 builds on parrot r41499 - make test PASS (smolder #28131) - ubuntu 9.04 amd64
20:47 dalek parrot: r41500 | NotFound++ | trunk/include/parrot/gc_api.h:
20:47 dalek parrot: [gc] simplify mark alive macros
20:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41500/
20:57 cogno joined #parrot
21:05 kid51 joined #parrot
21:14 * kid51 reads https://trac.parrot.org/parrot/​wiki/CallingConventionsOverview
21:16 mikehh rakudo (834929c) builds on parrot r41499 - make test / make spectest (up to 28432) PASS - Ubuntu 9.04 amd64
21:17 cconstantine_ joined #parrot
21:19 dalek parrot: r41501 | darbelo++ | branches/remove-next_for_GC/src/gc (3 files):
21:19 dalek parrot: 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 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41501/
21:20 darbelo I guess I'll have to live with a 1% speedup. Job's done here.
21:23 mikehh rakudo make spectest_smolder -> #28134
21:24 chromatic 2.324% for my Rakudo benchmark.
21:25 darbelo chromatic: branch or trunk?
21:27 chromatic Branch.
21:28 darbelo I guess the gc is better tuned on x86.
21:30 chromatic 32 bit as well.
21:53 mokurai joined #parrot
21:57 dalek parrot: r41502 | NotFound++ | trunk/t/pmc/null.t:
21:57 dalek parrot: [t] cover Null.is_same
21:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41502/
22:10 PacoLinux joined #parrot
22:19 dalek TT #1067 created by jkeenan++: t/pmc/objects.t:  premature death on Darwin/PPC
22:23 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:24 NotFound CAN I HAZ BACKTRACE? ;)
22:25 kid51 What's the specific command I should run to get that?
22:25 NotFound In Darwin? No idea.
22:26 darbelo gdb <program> <coredumpfile> ?
22:26 darbelo the bt
22:26 darbelo *then* bt
22:27 NotFound darbelo: provided that it dumps core by default, I suppose.
22:29 darbelo Oh, yeah. I forgot that.
22:29 NotFound In linux with bash shell you usually need to have executed 'ulimit -c unlimited' before
22:30 NotFound (or some appropiate value instead of unlimited)
22:33 dalek parrot: r41503 | darbelo++ | branches/remove-next_for_GC (18 files):
22:33 dalek parrot: Sync branch with trunk.
22:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41503/
22:34 * 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?
22:38 bacek NotFound: kill it. (Or move to RBA if it doesn't have it)
22:39 NotFound At first look I suppose it was to be used by deriveds, but Resizable has his own.
22:39 bacek btw, good morning :)
22:39 NotFound Good night ;)
22:40 mokurai joined #parrot
22:49 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 parrot: r41504 | NotFound++ | trunk/src/pmc/fixedbooleanarray.pmc:
22:49 dalek parrot: [pmc] kill FBA.push_integer
22:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41504/
22:50 NotFound kid51: ./parrot t/pmc/objects.t
22:55 nopaste "kid51" at 68.237.0.178 pasted "t/pmc/objects.t failure on Darwin/PPC: backtrace" (60 lines) at http://nopaste.snit.ch/18070
23:07 dalek TT #1068 created by jkeenan++: Rename test files whose names are too similar
23:12 NotFound kid51: looks like it can be a mistake in stack tracing, but locating the variable implied can be hard.
23:18 kid51 Should I try to bisect to identify the offending revision?
23:20 kid51 Smolder reports to the rescue!
23:20 kid51 http://smolder.plusthree.com/app/pu​blic_projects/tap_stream/28036/181
23:21 kid51 Last good test on Darwin/PPC was 41447.  Failure occurred between 41448 and 41461.
23:22 NotFound kid51: uh.... inspiring, pmc_reuse may have something to do.
23:22 kid51 Failures seem specific to PPC; Darwin/i386 passing.
23:22 NotFound That stacktrace looks nonsensical
23:24 darbelo Okay. That's all I'm going to get out of remove-next_for_GC.
23:25 mokurai joined #parrot
23:26 darbelo Anyone care to review/+1 it?
23:34 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 --> http://pastebin.com/d70bd990 <-- to initialize lexical symbols for my builtins in the PAST::Block that I created in method TOP?
23:39 NotFound darbelo: didn't chromatic already checked it?
23:40 jrtayloriv oops, meant to use .lex, not .const --> http://pastebin.com/d3c80e118
23:49 mokurai joined #parrot
23:51 darbelo NotFound: Oh. You are right. Sorry, my brain must've left for cofee and left my body at the keyboard.

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

Parrot | source cross referenced