Camelia, the Perl 6 bug

IRC log for #parrot, 2009-07-12

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 Coke cattle mutilations
00:03 Austin I sense a certain latent hostility here...
00:03 Austin Of course, after what happened in Pamplona the other day, your comment could be taken two ways..
00:04 Austin (Sometimes, sen~or, the bull, he wins.)
00:06 Coke I was referring to _sneakers_
00:07 Whiteknight hello #parrot
00:08 Austin I was referring to CNN. (http://edition.cnn.com/2009/WORLD/europe/07/10/s​pain.pamplona.bulls.death/index.html#cnnSTCVideo)
00:08 Austin But yours is good, too.
00:08 Austin Hello, Whiteknight.
00:08 Austin Cattle mutilations II: The Bulls Strike Back
00:10 Whiteknight Good evening Austin
00:10 Austin Why ever is there an opcode for "downcase"?
00:10 Austin Whiteknight, how modular were you saying the GC subsystem is?
00:11 NotFound Austin: not so uncommon in San Fermín
00:11 Coke Austin: that's an excellent question to ask about many of our opcodes, but I'm guessing mainly because strings don't have methods.
00:12 Whiteknight Austin: it's not nearly as modular as it should be
00:12 Whiteknight but we don't know what changes need to be made to increase modularity until we have a second core
00:13 Austin Coke: Of course Strings have methods. Maybe 'strings' don't, but 'Strings' do.
00:14 NotFound Whiteknight: we were talking about making a second core that does nothing.
00:14 Austin Whiteknight: ^^ what NotFound said.
00:14 Austin "Infinite Memory GC"
00:14 Coke Austin: I said strings, not Strings.
00:14 Austin Coke: yeah. I know.
00:15 Austin Coke: It still feels wrong.
00:16 amuck joined #parrot
00:18 Coke Austin: it would take, what, six opcodes to do it without an opcode?
00:18 Coke I'm not defending it, just pointing it out.
00:19 Austin How 6?
00:19 Whiteknight A second core that does nothing should probably be easy enough to write
00:20 Austin get_global /parrot/String/downcase; set args; get results; call
00:21 Coke Austin: P1 = new String; assign P1, S1. P1.'downcase'() . S1 = P1
00:21 Coke so, 4 ish.
00:21 Austin Yeah. In the spirit of L1, I've been thinking about what really needs to be in C. My default answer is "not that!" and it's taken me a long ways.
00:22 NotFound Whiteknight: even if it can run few things, it can help isolate testing the interface from testing a second GC
00:22 Austin But there's a kind of chicken-and-egg problem with the GC and a couple of other systems.
00:22 Austin Whiteknight: Where would I go to find out how to write a new GC core?
00:27 Whiteknight our current core is src/gc/gc_ms.c
00:28 Whiteknight so you probably want to create src/gc/gc_inf.c, and try to implement the same interface
00:31 Whiteknight I'm going to throw together a prototype right now unless you've already started
00:32 Austin I've got nothing.
00:33 Austin Although I think the GC should be a PMC.
00:33 Austin But that comes later.
00:34 Austin One obvious think, Whiteknight, is that the IMM GC should be able to dump a summary of used memory at exit.
00:34 Whiteknight we can add that fancy-schmance kind of logic later
00:35 Austin Sure, man. Three printfs, later.
00:35 Austin :)
00:35 Whiteknight back during GSOC I proposed that GC should be a PMC too, so I know what you mean
00:38 Whiteknight okay, I have the prototype of the core
00:38 Whiteknight just need to integrate it and test it
00:39 brbrooks Whiteknight: are you planning on commiting this new core?
00:40 Austin Nah. Nothing ever passes the tests the first time through.
00:41 Whiteknight brbrooks: maybe, it will be quite an instructive template
00:41 Whiteknight It's messy right now and doesn't satisfy our codingstd or anything, so needs that fixed before committing
00:41 Whiteknight I'll package up a patch for interested people when it's done
00:43 Austin You just deleted a bunch of stuff from the original MS gc. How can it not satisfy the coding std?
00:44 bacek joined #parrot
00:45 Austin rehi, bacek
00:45 Austin I was just thinking of you.
00:45 Whiteknight Well, I didn't copy+paste because that would have actually been more effort
00:45 bacek Oh NOES
00:45 Austin Whiteknight: what did you do?
00:45 bacek Good localtime()
00:45 Whiteknight I wrote an entirely new file from scratch
00:45 Austin I think we should schedule an intervention for Whiteknight.
00:46 Whiteknight it's remarkably easy if the GC doesn't do anything fancy like "manage memory"
00:46 Austin Hey, it still has to provide some memory when asked for it.
00:46 brbrooks Whiteknight: that what i thought it would be good for ;) esp me
00:49 Austin This is how you know you've spent too much time in the GC - you write a new on while chatting in irc.
00:54 Whiteknight seriously, when you see how retardedly small this is you won't think it was such a big deal
00:55 Austin You're an engineer, right?
00:55 Whiteknight hah, segfault!
00:55 Whiteknight yeah
00:56 Austin You ever hear the joke about the guy who was an engineer at a plant for 40 years, then retired with a contract to provide support services?
00:57 Austin One day he gets a call: the Big Important Machine is overheating, and there's metal flakes in the oil, what do we do?
00:58 Austin So he goes in, looks over the machine, grabs a piece of chalk, and marks an 'X'. He says, "Drill a 1/32nd inch hole right here. It'll drip oil, so put in a quart of new oil every month."
00:59 Austin He submits a bill for $20,000 to the accounting department, but they send it back: "We need an itemized invoice of services you actually provided. I heard all you did was make a chalkmark and tell them to drill a hole."
00:59 Austin So the engineer types up a new invoice:  "Made chalkmark showing where to drill hole:   $1.    Knowing where to put chalkmark:   $19,999.00"
01:00 Whiteknight haha, nice
01:00 Whiteknight I've heard variants of that joke before, always priceless
01:00 Austin Yeah. So when we see how small the file is, it's going to go under "knowing which lines absolutely had to be there."
01:04 Whiteknight right
01:05 Austin brbrooks: There was talk at PVMW about creating a malloc/free GC. If you're interested in doing a GC module, that's the one to shoot for, I think.
01:05 brbrooks malloc/free GC?
01:06 Austin Ayup.
01:06 brbrooks meaning
01:06 Austin No pooling, no kind of optimization or efficiency. Just stop the world, free() whatever isn't marked, and carry on.
01:07 brbrooks what do you mean 'free() whatever isn't marked, and carry on."
01:11 allison joined #parrot
01:11 Austin I could swear I typed up something after PVMW, but now I can't find anything. Drat.
01:15 Austin Oh well, maybe not.
01:15 Austin brbrooks: You know the basics of what a GC does?
01:16 brbrooks Yeah
01:17 Austin Okay. Half of that is "find garbage" and the other half is "manage memory blah blah optimal blah blah allocation"
01:17 Austin So the malloc/free GC would be just the first half.
01:18 Austin Someone asks for memory, you call malloc.
01:18 Austin You scan and find gargage -> call free.
01:18 Austin Presto! Malloc/free GC.
01:18 TiMBuS joined #parrot
01:19 brbrooks So... the most basic 'stop the world' gc?
01:20 bacek Don't forget to link with ptmalloc. Otherwise it will not be bloody fast
01:20 Austin It trivializes half of the problem, but it offers value IF (IF IF IF) it gets written by somebody other than Whiteknight, and if it DOES NOT steal code from the existing GC.
01:21 Whiteknight right
01:21 Austin Because it becomes a test of the "modular-ness" of the GC interface, and it (ideally) implements a second whack at figuring out what's garbage and what's not.
01:22 brbrooks yes, and im interested in what whiteknight's working on now cause that would be a good starting pt
01:22 brbrooks just making sure that it's a basic, basic stop the world gc
01:22 brbrooks that you're talking about
01:22 Austin The one he's working on right now is mostly "return;"  I don't think that's much of a starting point (except in as much as he has the function names right).
01:23 Whiteknight I'm getting a really weird failure right now that I'm trying to track down
01:23 Austin LOL
01:23 Austin What failure, WK?
01:24 Austin Is that a "compile failure"? Or a "the system secretly depends on information being passed in recycled memory" failure?
01:24 Whiteknight ah, I figured it out. I wasn't initializing the pmc_ext pool properly
01:25 brbrooks Austin: I don't think that a basic version of the current GC w/o optimizations and fancy mm would test the api very much... but it would be benefitial for the other reasons mentioned
01:26 Austin brbrooks: It tests the PVM->GC interface to the extent that there's code behind it. If the interface has low coupling, there isn't much code needed. If fancy mm is needed to test the interface, the interface is probably broke.
01:27 Austin But yeah, getting stuff out of Whiteknight's head and into a PDD or the wiki is a valuable goal in itself.
01:27 Whiteknight haha, I fixed that last segfault and am now running into other failures
01:27 Whiteknight this is quite the good exercise!
01:28 Austin Tomorrow night: situps.
01:29 brbrooks low coupling and high cohesion... sounds like a marriage gone sour
01:29 Austin :)
01:31 dalek parrot: r40008 | bacek++ | trunk/src/pmc/hash.pmc:
01:31 dalek parrot: [cage] Initialize hash->container in Hash.init
01:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40008/
01:32 brbrooks yeah it could help with new logic and i could contrib to the docs... ive been reading the mm / gc docs and they're good, but i have a feeling they're missing stuff
01:32 brbrooks new logic meaning new code instead of ripping out of gc_ms.c
01:34 Austin Ayup.
01:37 nopaste "Whiteknight" at 69.248.162.161 pasted "new GC core patch" (169 lines) at http://nopaste.snit.ch/17228
01:37 Whiteknight ok, that's the new core as it stands now. I'm running into a weird assertion failure in the packfile system, but you should get an idea for what I added
01:38 Whiteknight the problem is that some systems are depending on the free/live flags being set by the GC, and that's not good
01:38 Whiteknight (and some systems are checking for alive/dead status is very strange ways that I've never seen before)
01:39 Whiteknight anyway, I'm off to bed for the night. Talk to you gentlemen later
01:46 brbrooks How crucial is it to be on the dev mailing list?  Is there much on there that doesn't float around IRC?
01:47 Austin It's low-traffic, most stuff is on IRC, sadly.
01:49 pmichaud but one can always read the irclogs
01:49 Austin Of course.
01:49 purl Indubitably.
01:52 Austin Patrick, I think we need to organize an intervention for Whiteknight. We were chatting about a trivial GC (does nothing except allocate) and he wrote one in about six minutes.
01:52 Austin We need to pump him full of beer and discard some of those brain cells.
01:52 brbrooks Austin: did you look at the patch?
01:52 Austin I'm building it now.
01:53 pmichaud (downcase opcode)  if we don't have a downcase opcode, then we need some way to do case-insensitive string compare
01:53 Austin Do we?
01:53 pmichaud PGE definitely needs one, yes.
01:53 Austin What's the difference between $S0 and $P0 ?
01:54 bacek one is $S0 is STRING*
01:54 bacek $P0 is PMC
01:54 Austin Thanks, bacek.
01:54 dalek parrot: r40009 | bacek++ | trunk/src/gc/mark_sweep.c:
01:54 dalek parrot: [cage] Mark HLL_info and HLL_namespace as alive.
01:54 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40009/
01:54 pmichaud the major downside to moving opcodes into methods is that as of now method calls in Parrot a REALLY SLOW
01:55 pmichaud s/ a / are /
01:55 Austin Yeah.
01:55 Austin But is that because of dispatch, or call?
01:55 pmichaud like mind-bogglingly slow-as-molasses geological-time-scales SLOW
01:55 pmichaud either way, operations that are done frequently need to be opcodes
01:55 pmichaud and case-insensitive compares are relatively frequent
01:56 pmichaud and currently we do that by downcasing things
01:56 Austin I'm not sure I agree with your premise.
01:56 pmichaud (yes, that's not a completely valid way to do it.  Parrot's a bit limited there.)
01:56 Austin "Make it an opcode" isn't a universally useful way to improve performance.
01:57 pmichaud at the moment, "make it a method" is definitely a way to degrade it
01:57 Austin Sure.
01:57 pmichaud if you have some other option between the two, I'm all ears.
01:57 Austin But I wondering about the dispatch versus call overhead for a reason (more)
01:57 pmichaud it's the call overhead, primarily
01:58 Austin Really?
01:58 * bacek whispering about testing GC failures in Rakudo on r40009
01:58 pmichaud Yes.
01:58 Austin I thought about caching the lookup results in the pbc.
01:58 pmichaud we already cache dispatch, yes.
01:58 pmichaud but it's the call overhead, primarily.
01:58 Austin I thought the call overhead looked pretty cheap. What's going on behind the scenes that costs so much?
01:59 pmichaud the packing and unpacking of arguments
01:59 pmichaud also, method calls into C are really slow
01:59 pmichaud you end up with a new interpreter
01:59 Austin Ahh.
01:59 Austin <boggle>
01:59 pmichaud (or perhaps it's vice-versa.  That's a maze of twisty issues I tend to not delve into)
01:59 pmichaud at any rate, there's a huge amount of expense in going between PIR and C
02:00 pmichaud which is one of the reasons that calling convention refactors is high on the priority list
02:00 pmichaud if method dispatch could be made faster than opcodes, I'd be Really Happy.
02:00 pmichaud Like mind-bogglingly happy.
02:01 pmichaud If I could have Parrot done over again, I'd request that it be optimized around method calls and dispatch.
02:01 Austin I doubt it will be faster than opcodes. But I think it could be fast enough.
02:01 pmichaud I'd even go for "fast enough"
02:02 Austin Well, there's the segfault, as advertised.
02:02 pmichaud bacek: you want me to try rakudo againt r40009?
02:02 Austin Ooh, and it's in PGE.pbc.
02:02 bacek pmichaud: yes. "./perl6 t/spec/S32-array/elems.rakudo" will be enough
02:03 pmichaud bacek: 64 bit or 32 bit ?
02:03 bacek pmichaud: 32 if I read your latest mail properly
02:03 Coke (GC should be a PMC) ... why?
02:03 pmichaud bacek: why will elems.rakudo be enough, then?
02:04 bacek [  cd] t/spec/S32-array/elems.rakudo                    ??   ??  ??
02:04 pmichaud bacek: it's not nearly sufficient to test the files I report
02:04 pmichaud one has to run a full spectest to know for sure
02:04 pmichaud because every little change completely changes the impact on the spectests
02:04 bacek of course. But running fullspec take some time
02:04 pmichaud sure
02:04 pmichaud but I can already tell you that S32-array/elems.rakudo was working as of r40000
02:05 pmichaud (tested that earlier)
02:05 bacek *sigh*
02:05 pmichaud actually, it was also working as of r40004
02:05 bacek I can't reproduce any of your errors on my box...
02:05 pmichaud bacek: what os?
02:06 bacek pmichaud: Debian/Lenny, 32bit
02:06 pmichaud yes, Debian seems to have a somewhat different spectest result than Kubuntu
02:07 bacek different kernels, libc, phase of Moon, etc...
02:08 pmichaud anyway, I'll go ahead and run full 32-bit and 64-bit spectests against r40009 and see what we get.
02:08 pmichaud As of 40004 I was failing a test on 32-bit.
02:08 pmichaud (I forget which one now)
02:08 Coke rant. "object must be created by a class"
02:09 brbrooks Whiteknight's patch segfaults PGE.pbc -> PGE.pir
02:09 pmichaud why would the 40009 patch be necessary, anyway?
02:10 pmichaud surely we don't expect the interpreter itself to be the only thing holding a reference to the hllnamespace and hllinfo
02:10 Austin brbrooks: I got the same thing. He'll probably have another patch tomorrow.
02:10 pmichaud unless HLL_namespace is actually "all of the hll namespaces"
02:11 brbrooks Cool... he said he was off to bed? What timezone is he in?
02:11 Austin (Or, you could begin your studies of the wily Neotoma Electricus...
02:11 bacek pmichaud: afaiu HLL_namespace holding all HLLs
02:11 Austin He's EST, like me. Near Philly, iirc.
02:11 pmichaud PMC *HLL_namespace;                       /* cache of HLL toplevel ns */
02:11 pmichaud Looks like not.
02:12 pmichaud I think it's a shortcut into the current HLL rather than having to go from the root every time.
02:12 brbrooks Ah... still early... im out in CA for the next 4 weeks
02:12 bacek there is also HLL_info
02:12 patspam joined #parrot
02:13 Austin What's in CA?
02:13 brbrooks internship
02:13 Austin Paid?
02:13 purl Paid is always good
02:13 brbrooks yes
02:13 Austin Sweet.
02:13 Austin Where in CA are you?
02:13 brbrooks the valley ~_~
02:14 Austin Okay.
02:14 Austin Be sure and ask for some good Peruvian restaurants.
02:14 brbrooks north San Jose
02:14 pmichaud bacek: did you see the note at src/hll.c:91 ?
02:14 Austin (If you can eat seafood.)
02:15 pmichaud brbrooks: going to OSCON?  ;-)
02:15 bacek pmichaud: ahem... Why it's not marked?
02:15 pmichaud bacek: I don't know.  I just saw the comment.
02:15 pmichaud I'm guessing because "it's constant"
02:16 bacek This comment (adn idea behind) looks wrong to me.
02:16 brbrooks pmichaud: not worth the $$$... for a person in my position
02:16 pmichaud brbrooks: agreed, although I'm wondering if you could get a pass somewhere/somehow :-)
02:17 bacek HLL_info is OrderedHash. It creates keys in push_pmc. And they can get collected...
02:19 brbrooks That would be sweet.  But Cisco is getting cheap these days... they just recently cut the supply of sodas / bottled water and dropped down to shittier coffee
02:19 brbrooks highly doubt the would be interested in financing OSCON registrations for interns
02:23 pmichaud oh well.  I'll wave to the north when I'm there :-)
02:23 pmichaud ...if I can figure out which way is north :-)
02:23 Austin Where's OSCON this year?
02:23 purl OSCON this year is quite cheap.  < $1500 if you're speaking.
02:24 pmichaud huh?
02:24 pmichaud Austin: San Jose, CA
02:24 Austin Ah.
02:24 Austin That would be north.
02:24 pmichaud (speakers normally get free admission to oscon)
02:24 Austin Tell that to purl.
02:24 pmichaud purl, forget OSCON this year
02:24 purl pmichaud: I forgot oscon this year
02:24 pmichaud purl, I knew that you would.
02:24 purl pmichaud: sorry...
02:25 brbrooks Yeah I feel like I have a good sense of direction, but SJ can feel quite disoriented... geographically and the way streets / highways are laid out
02:26 Austin purl: Where's OSCON this year?
02:26 purl austin: no idea
02:26 Austin good girl
02:26 purl thanks Austin :)
02:26 brbrooks Is purl a bot?
02:27 Infinoid purl?
02:27 purl Infinoid?
02:27 bacek very annoying bot
02:27 Infinoid botsnack
02:27 purl thanks Infinoid :)
02:28 brbrooks but a person too? came out of nowhere: "19:23 purl: OSCON this year is quite cheap.  < $1500 if you're speaking."
02:28 pmichaud purl recognized the phrase "oscon this year"
02:28 purl pmichaud: sorry...
02:29 pmichaud and so the bot responded with what it knew that matched "oscon this year"
02:29 pmichaud example
02:29 pmichaud my dog is brown
02:29 pmichaud my dog
02:29 pmichaud hmmm.
02:29 pmichaud purl: my dog?
02:29 purl somebody said your dog was brown
02:29 pmichaud where's my dog?
02:29 purl i heard your dog was brown
02:29 brbrooks purl: 1+2.5
02:29 purl 3.5
02:29 pmichaud purl: forget my dog
02:29 purl pmichaud: I forgot my dog
02:30 brbrooks purl: how many ounces in a cup?
02:30 purl wish i knew, brbrooks
02:30 pmichaud purl:  convert 2 pounds to ounces
02:30 purl 2 pounds is 32 ounces.
02:30 brbrooks purl: what is your name
02:30 purl i haven't a clue, brbrooks
02:30 pmichaud purl:  convert 1 cup to ounces
02:30 purl I can't compare 0.000236584 meter^3 with 28.349523125 gram.
02:30 Austin purl: e**2*pi
02:30 purl Austin: huh?
02:30 pmichaud purl:  convert 1 cup to fluid ounces
02:30 purl I don't know how to convert 1 cup to fluid ounces.
02:30 pmichaud purl:  convert 1 cup to floz
02:30 purl 1 cup is 8 floz.
02:31 pmichaud purl:  convert 1 usd to eur
02:31 purl I don't know how to convert 1 usd to eur.
02:31 brbrooks purl: $1 to eur
02:31 purl brbrooks: what?
02:31 brbrooks hmmm... neat
02:32 Austin Woo-hoo! Pmichaud with the goto ftw!
02:32 Austin HLLCompiler::command_line requires a goto.
02:33 pmichaud (I have no clue what Austin is babbling about :-)
02:33 Austin Recoding HLLCompiler.pir into Close.
02:33 pmichaud oh.
02:34 Austin The "command_line" function as-written requires a goto.
02:34 Austin (Because adverbs and args are not entangled, that I can see.)
02:36 Coke anyone care to suggest a fast way to figure out where in PIR my "object must be created by a class" is coming from?
02:36 Austin grep?
02:36 purl ACK!
02:36 Coke Austin: I know where in **C** it's coming from.
02:36 Austin Well, then.
02:36 Coke that doesn't necessary map nicely to the several thousand lines of tcl I have here.
02:36 Austin C -> opcode -> ack
02:37 Coke nevermind.
02:37 Austin what tcl are you running?
02:38 Coke just [parray]
02:38 Coke except that that pulls in the stdlib.
02:39 Austin So you've got an objectPMC that is being new'ed.
02:39 Austin As in $P0 = new 'Object'
02:40 Austin You know which line it is?
02:40 Coke nope.
02:41 Coke ack --nobinary "new.*Object" => nada.
02:41 Austin I mean of the parray.tcl?
02:41 pmichaud Coke: might be able to figure it out using gdb
02:41 Coke no. that's why I'm trying to find the PIR in question - it may not even be loading parray.tcl yet.
02:42 Coke pmichaud: that'll get me an opcode, anyway; bet you 30 bucks it's "clone"
02:42 pmichaud set a breakpoint on Parrot_Object_init and Parrot_Object_init_pmc
02:42 Coke checking...
02:42 purl i think checking is just different
02:42 janus joined #parrot
02:45 pmichaud I suppose it takes too long to run Parrot with tracing enabled?
02:45 Coke I was close. assign.
02:45 Coke so that doesn't really help. =-)
02:45 Coke pmichaud: ... yes.
02:45 Coke I was up to about 10m of -t4 output starting from 0.
02:45 Coke PGE is a little... intensive in that regard.
02:46 pmichaud yes.
02:46 Austin Coke: You might want to define a built-in that does a trace for you.
02:46 Coke Austin: a built in what?
02:46 Austin A tcl builtin
02:46 Coke you mean for tcl?
02:46 Austin Yep
02:46 Austin parrot_trace 1
02:46 Austin parrot_trace 0
02:46 Austin or whatever
02:47 Coke I can run inline PIR - enabling trace 4 had no effect
02:47 pmichaud Rakudo did that for a while via the parrot_trace() function.
02:47 dalek parrot: r40010 | bacek++ | trunk/src/pmc/pmcproxy.pmc:
02:47 dalek parrot: [cage] Use constant_pmc_new in PMCProxy in the same way as in Class
02:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40010/
02:47 pmichaud Nowadays we can just do  Q:PIR { ... }   :-)
02:47 Austin Yeah, 4 = function calls. You want 1.
02:49 pmichaud bacek: are you just making changes at random here or are you actually certain about the things you're shuffling around?
02:49 Austin Laugh.
02:49 brbrooks snap.  they're bringing mechwarrior back
02:49 Austin Isn't the G in GC for genetic?
02:49 Austin brbrooks: the game, or what?
02:49 bacek pmichaud: Just random checks.
02:50 bacek Actually I'm worried about my keys_revamp branch.
02:50 bacek Rakudo failing badly.  Because of "GC issues" on this branch.
02:50 brbrooks the game.  it's already in development: http://www.youtube.com/watch?v=sl4eI3htAuA
02:51 bacek So, instead of trying to figure out why I decided to clean as much as I can on trunk.
02:53 pmichaud I'd prefer to see a clearer explanation of what "constant PMC" means and when (not) to use it before we start switching a bunch of things around.
02:54 pmichaud anyway, no gc errors in r40009  64-bit
02:54 bacek I don't have this explanation... And constant_pmc_new looks like very-very premature optimisation
02:54 Austin brbrooks: Doomed.
02:54 brbrooks doomed?
02:54 purl doomed is http://community.livejournal.com/so_very_doomed/
02:54 pmichaud 32-bit should be finished shortly.
02:54 Austin They've been trying to make a PC version of that game since the 80's.
02:54 bacek pmichaud: (r40010) I just made PMCProxy consistent with Class.
02:54 Austin Doooooomed.
02:55 Austin They need to make it a Sims game. "Skin your mech"
02:56 brbrooks yeah im not sure how they're gonna make it interesting since the mechs move so slow... but damn that was a good game back when i was younger... had a joystick and everything...
02:56 Austin Laugh.
02:56 bacek I've got idea...
02:57 pmichaud I'm getting a failure in S32-io/IO-Socket-INET.t on 32-bit, but it doesn't seem to be -G related
02:57 pmichaud I didn't get that failure on 64-bit, though.  Interesting.
02:58 bacek Let's rename PObj_constant_FLAG in PObj_zombie_FLAG. It reflects current behaviour more precisely.
02:58 bacek "constant" PMC are get collected. But not sweepd.
02:58 bacek Typical zombies...
02:58 Coke Austin: if I enable trace 4 at the last possible point without modifying the standard library, I get:
02:58 Coke ./mytcl -e 'inline PIR ".sub anon :anon\ntrace 4\n.end\n"; parray'
02:58 Coke # Back in sub 'tcl;&inline', env 80e6df8
02:58 Coke Object must be created by a class.
02:59 Infinoid hmm
02:59 Coke so, not entirely helpful. which is why I was looking for something a little more targeted.
02:59 pmichaud Coke:  why trace 4 instead of trace 1?
02:59 Infinoid brbrooks: mechwarrior on DS isn't bad
02:59 Coke pmichaud: because at this point I'm just trying to narrow it down to a .sub?
03:00 Coke running with "trace 1" now, but I expect this will take another 20m.
03:00 pmichaud Coke: it's not 'tcl;&inline' ?
03:00 Coke inline is the inline comand that turned on the trace.
03:00 Austin Coke: Could that be the upvar confusing things?
03:00 pmichaud oh, right.
03:00 Coke trace 1 is running now, I'll leave it and hope for the best.
03:00 pmichaud Coke: do you have a way of turning on trace 1 only after starting the parray stuff?
03:01 pmichaud or is the error occurring before the parray processing?
03:01 Austin Doesn't parray require an argument?
03:01 nopaste "pmichaud" at 72.181.176.220 pasted "rakudo gc failure report, r40009" (20 lines) at http://nopaste.snit.ch/17229
03:02 Coke parray doesn't exist in a bare tcl - so that invokes [unknown] from the stdlib, which goes through a LOT of contortions to try to load it.
03:02 Coke austin:yes.
03:02 Austin So this should be exercising only the first 2 or three lines, yes?
03:02 Coke and that should autoload parray, invoke it, and give me my error about the wrong # of args.
03:02 GeJ_ joined #parrot
03:02 pmichaud summary for the nopaste -- as of r40009, Rakudo isn't exhibiting any errors that are -G related
03:03 Austin Coke: Does parray work if you pass it something?
03:03 bacek pmichaud: thanks a lot!
03:03 pmichaud I'm not sure what the io error is, though.
03:03 pmichaud Bisecting now.
03:04 Coke Austin: mostly, yes.
03:04 Coke (pretty sure I have an extra newline in there somewhere)
03:04 Austin So does this mean the problem lies in the scope of the "if {...}" at the top?
03:05 Austin (plus maybe the upvar...)
03:07 Infinoid Does anyone know what the current plan is with regards to the huge list of vtables we have?
03:07 Infinoid If we're still encouraging rampant expansion, I'd love to add some more to speed up common I/O operations
03:08 Coke Infinoid: pretty sure it's
03:08 Coke "more of the same"
03:08 Coke or, better put, "status quo"
03:08 Infinoid great.  I wasn't sure whether it was a limited resource (like ops) or not
03:08 Coke .. wait, ops are limited resources?
03:09 Infinoid the huge number of ops gets in the way of JIT.  otherwise, no
03:09 Coke ah. from my standpoint, we don't have JIT, so I tend to ignore it. =-)
03:09 Infinoid same here :)
03:10 Coke if I'm reading the -t1 output right, looks like I'm dying on "$I0 = defined $P0", where P0 is the result of an 'open' call.
03:10 patspam joined #parrot
03:11 Austin Well, that's unusual.
03:11 Coke hurm. output from -t1 and output from gdb don't seem to agree about where the error is.
03:11 Austin Nopase the last 10 lines or so?
03:12 Austin Did you try to catch the exception?
03:12 Austin (Also, if -t1 is running on the same process as GDB, have you flushed the output?)
03:13 Coke http://nopaste.snit.ch/17230
03:15 Coke no, two separate instances.
03:16 Coke in one, I enabled the t1 as late as possible (at least from the command line). in the other, I ran the parray unmolested.
03:16 Coke you seem to be somewhat knowledgable about tcl. I'd be happy for another hacker. =-)
03:17 Austin For very small values of somewhat. I toyed with it in the 90's.
03:17 Coke you didn't work at enron, did you? =-)
03:17 Austin But I remember thinking the up... functions were really cool.
03:17 Austin No.
03:17 Austin But a friend of mine was working for DEC before Compaq bought them, before HP bought them.
03:17 Austin And they wrote their installers in tcl.
03:18 Austin Jess told me he added a callback to the "progress" indicator, which was a Tk slider, so that you could drag the progress bar forward and it would skip operations.
03:18 Coke ... special. =-)
03:19 Austin I thought that was cool as hell, in a "be very careful what you ask for" way ..
03:19 Infinoid Coke: Does gdb die at the same point even when you run it with -t (within gdb)?
03:19 Coke Infinoid: I hope so. =-)
03:19 Coke checking.
03:19 purl checking is, like, just different
03:20 Infinoid no, checking is <reply>
03:20 purl okay, Infinoid.
03:20 Austin checking.
03:20 Austin checking...
03:20 Austin checking
03:21 Infinoid chiggida check
03:21 kid51 joined #parrot
03:23 Coke Infinoid: surprisingly, yes.
03:23 Austin Next question: can you edit your trace call into parray.tcl?
03:24 Austin (Start the trace after landing inside parray.)
03:24 * bacek wrote mumbling mail about constants in Parrot...
03:25 Coke Austin: Yes, I can do all this the hard way. =-)
03:25 Coke And I am.
03:25 Coke That's not what I was asking in the beginning though. =-)
03:25 Austin Sure.
03:25 Austin But the trace stopping in open is suspicious.
03:26 Coke I'm not sure I trust parrot's trace diagnostics there. I suspect it's not flushing the output.
03:27 Austin Any other opcode...
03:27 Austin You didn't override filehandle pmc with TclFilehandle, did you?
03:27 Coke nope.
03:29 Austin Hey, in your mappings function (tcllib.pir) it sets core_string to "get_class 'Float'". Is that right?
03:29 Coke nope. I have that fixed in a branch. moment.
03:29 Austin Okay.
03:29 Austin Just me being out of date.
03:30 dalek parrot: r40011 | jkeenan++ | branches/darwin2hints/config/init/hints/darwin.pm:
03:30 dalek parrot: Move some configuration information to %defaults.
03:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40011/
03:31 Austin Riding that svn rev# pretty hard, aren't you?
03:32 Austin 39992
03:32 Coke it was "later than I needed"
03:32 Coke whatever parrot happened to be when I last merged back a branch.
03:32 bacek purl: next parrot release?
03:32 purl next parrot release is scheduled begin of Nov ;-)
03:32 bacek ouch... Useless bit
03:32 Coke purl, forget next parrot release
03:32 purl Coke: I forgot next parrot release
03:32 bacek s/bit/bot/
03:33 Coke bit?
03:33 purl bit is either 0 or 1
03:33 Austin So does parray ever get reached?
03:34 Coke shouldn't.
03:34 purl shouldn't is => undef be is => 'bare' to align with "normal" moose?
03:34 Coke not the tcl source, anyway.
03:34 Coke the wrapping parrot function should get invoked and then carp about the # of args.
03:34 Coke (since we can't customize the "bad arguments" exception, we have to allow anything and then carp ourselves.
03:34 bacek Who can add Parrot's release schedule to google calendar used on www.parrot.org?
03:35 * Coke hides.
03:35 Coke I'll do it.
03:35 cotto Coke, it's a week from Tuesday.
03:35 bacek purl: parrot next release is next release is 21 July 2009
03:35 purl OK, bacek.
03:36 cotto bacek, testing purl for ltm? ;)
03:36 bacek heh :)
03:36 Coke tuesday the 21st?
03:36 bacek parrot next release?
03:36 purl i heard parrot next release was next release is 21 July 2009
03:37 bacek Coke: looks like
03:38 Coke bacek: done
03:38 bacek Coke++
03:39 Coke no, parrot next release is 21 July 2009
03:39 purl okay, Coke.
03:41 * bacek failing to find difference
03:41 Coke bacek : s/next release is/
03:41 bacek Ah! "was"/"is"
03:41 bacek :)
03:41 Coke no, you just duplicated the key.
03:42 Coke I mean, was/is too, but that's not why I shortened it.
03:42 bacek Yeah... Too much copy/pasting
03:44 dalek partcl: r527 | coke++ | trunk/runtime/tcllib.pir:
03:44 dalek partcl: Fix bug - map the String type properly in the _tcl HLL.
03:44 dalek partcl: Courtesy Austin++
03:44 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=527
03:44 Andy joined #parrot
03:52 Theory joined #parrot
03:57 dalek parrot: r40012 | jkeenan++ | branches/darwin2hints/t/ste​ps/init/hints/darwin-01.t:
03:57 dalek parrot: More tests for corner cases.
03:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40012/
04:31 Khisanth joined #parrot
04:49 Zak joined #parrot
04:55 cotto mythryl?
04:55 cotto mythryl is http://mythryl.org/
04:55 cotto has anyone looked at that?
05:02 Theory joined #parrot
05:05 Zak Yes, cotto. It looks like ML with shell syntax.
05:14 cotto Zak, do you think it'd be worth learning as an ML-family language?
05:25 Ehtyar joined #parrot
05:42 Zak cotto: It depends on why you want to learn it.
05:42 Zak If you're interested in learning a language from the ML family so that you know an ML dialect, you should probably learn Standard ML or OCaml.
05:43 cotto It'd be more to learn a functional language than something ML-like.
05:44 Zak I'm rather fond of Clojure and Haskell. ML always felt a bit awkward to me.
05:44 Zak What languages are you currently comfortable with?
05:45 cotto in the functional paradigm, none
05:46 cotto for procedural C, Perl, PHP (I know), Python
05:46 cotto I did some functional programming in a college class, but not much since
05:47 Zak You can do FP in Perl or Python.
05:48 cotto Yes, but it'd be better if that was the purpose of the language rather than one possibility among many
05:48 Zak There's a trend in functional languages to have very strong and expressive static type systems. These are as hard to learn as FP itself if you're used to dynamic, imperative languages.
05:48 Tene cotto: have you read Higher Order Perl?
05:48 cotto Tene, about half-way through.  It's amazing.
05:49 Tene srsly, very good book
05:49 Zak If you just want the FP part of it, you might give Clojure a try. Of course, you'll still have to get used to Lisp syntax, and interact with not-so-fun JVM libraries if you're trying to get work done.
05:50 Zak Haskell has been getting most of the FP attention lately, and it's an amazing language. Quite a challenge to learn, and you'll have to deal with a lot more new concepts than just FP.
05:50 Zak Which is not to say that it isn't worth the effort. It will expand your mind in ways you might have thought required drugs.
05:51 cotto Haskell sounds nice (having gotten some publicity from Pugs).
05:51 cotto Can you recommend a good tutorial that introduces the concepts gently?
05:52 cotto It's easy to find tutorials but also tricky to know which ones are worth pursing.
05:53 cotto Maybe the O'Reilly book?
05:54 Zak Learn you a Haskell is good, and very gentle.
05:54 Zak Real World Haskell is good (maybe a bit better), and slightly less gentle.
05:54 Zak A Gentle Introduction to Haskell is not gentle.
05:54 cotto That site reminds me of ypgtr
05:55 cotto clock?
05:55 purl cotto: LAX: Sat 10:55pm PDT / CHI: Sun 12:55am CDT / NYC: Sun 1:55am EDT / LON: Sun 6:55am BST / BER: Sun 7:55am CEST / IND: Sun 11:25am IST / TOK: Sun 2:55pm JST / SYD: Sun 3:55pm EST /
05:55 Zak There's also one where you write a Scheme interpreter in Haskell.
05:56 Zak http://en.wikibooks.org/wiki/Write_Y​ourself_a_Scheme_in_48_Hours/Parsing <-- not sure how good this is as an introductary tutorial, but it's a cool idea.
05:57 Zak Err... drop the Parsing part from the URL.
05:57 cotto I'll try to settle myself on Haskell.
05:57 cotto Thanks for the tips.  Zak++
05:59 Zak It and Clojure are my current favorite languages. I have a lot to learn about Haskell though. It's very different from anything you know.
06:04 mikehh joined #parrot
06:06 Coke note to self; when converting a while loop in C to PIR, don't forget to translate the trailing } to a goto. :|
06:09 cotto sounds like you had a very fast "loop"
06:13 Coke it finished quickly, ayup.
06:14 Coke I can't believe I'm translating this C /back/ into PIR (I translated it into C many moons ago.)
06:15 cotto Zak, what's your interest in Parrot?
06:15 Zak cotto: I have a crazy idea for a new programming language and Parrot seems like a good fit for it. I don't know if or when I'll get around to doing serious work on it though.
06:17 cotto Do tell.  We like craaazy new ideas.
06:18 Zak Are you at all familiar with multimethods as found in Common Lisp, Dylan and Clojure?
06:18 * Coke wonders if those tests-are-available messages are not considered spam by someone.
06:19 cotto no
06:20 Zak Ok... this is going to take a bit of explaining then.
06:20 Zak In the languages that you're used to, classes can have methods.
06:21 cotto yup
06:21 cotto so far, my eyes remain unglazed
06:21 Zak When the runtime sees foo.bar(baz), it looks for a bar method for whatever class foo belongs to.
06:21 cotto k
06:21 cotto Is this similar to mmd?
06:22 Zak With multimethods, classes do not have methods; functions do. To be specific, a subset of functions called generic functions do.
06:22 Zak mmd?
06:22 purl rumour has it mmd is multi-method dispatch
06:22 Zak Yes, looks like it.
06:23 * Coke wishes again for a PIR formatter.
06:23 Coke cotto: parrot has both multi-subs and multi-methods, IIRC.
06:24 Coke zak;though I'm not sure multi-method in parrot-land means what you just said.
06:24 Zak So with multimethods, typically one can dispatch on any or all the arguments type and/or value.
06:25 cotto Ok.  that sounds a lot like what Perl6 does.
06:25 cotto afaiui
06:25 Zak I've heard this somewhere.
06:25 cotto which isn't very
06:26 cotto chromatic posted a nice example that implements Paper, Rock, Scissors using that.
06:26 cotto http://www.oreillynet.com/onlamp/blog/20​08/04/multiple_dispatch_now_please.html
06:27 Zak Clojure takes multimethods a step farther by allowing a user-specified dispatch function, so you could dispatch based on literally *anything*
06:27 Zak Usually, it's some characteristic of the arguments to your generic function, but it could be some bit of state or any combination...
06:28 Zak Anyway, we have single-dispatch OO languages where everything is an object, and some (Ruby probably being the best known) where one can add fields and methods to classes and objects at runtime.
06:29 Zak What we don't have is a language where every function is generic and can have new methods defined for it at any tim.
06:29 Zak time
06:30 cotto Does Perl6 not do that?
06:30 Zak Common Lisp also has this nifty feature where you can add methods that run before, after or "around" (which is best described as before and optionally instead of) the standard method.
06:30 cotto You might head over there and ask.
06:30 cotto I think perl6 has that too, but I forgot the term.
06:30 Coke parrot supports overriding dispatch as well.
06:31 Coke (which perl6 does, as it's dispatch model isn't quite parrots)
06:31 Zak chromatic told me it does something kind of like it, but not quite on the level I'm describing.
06:31 Zak I should look up the email so I don't go misquoting him.
06:33 cotto but it does sound like Parrot would be a good platform for such a language
06:33 Zak It seems Perl6 has lexical overrides of global functions, but in practice that's not as convenient as before/after/around.
06:33 cotto You could probably steal a lot from Rakudo.  Everybody's doing it.
06:34 davidius joined #parrot
06:35 Zak It goes without saying that being able to modify the behavior of built-in functions like say... addition could be used for stupid, but I think it would also create opportunities to extend and improve existing code without making a mess.
06:35 eternaleye Zak: Perl 6 has .wrap() - sub foo() {True}; my $cookie = &foo.wrap: { say 'hi'; callsame; } foo # says "hi"
06:36 eternaleye And you can call &foo.unwrap( $cookie ) to remove that wrapper
06:36 eternaleye Wrappers can be removed in a different order than they were applied, too
06:36 cotto If Perl 6 gets as popular as Perl 5 it's going to take some serious discipline not to make a total mess, but the resultant code will be amazing.
06:36 cotto eternaleye, that's what i was thinking of.  Thanks.
06:37 cotto *I
06:37 Zak eternaleye: that looks an awful lot like an around method.
06:38 Coke (modify builtin functions) tcl wins. :|
06:39 eternaleye Zak: you can use 'callsame' to call the wrapped function with the same arguments, or 'callwith' to specify arguments. Similarly, 'nextsame' and 'nextwith' call the next-best-fit function/method in terms of dispatch suitability
06:39 Zak eternaleye: I think someone working on Perl6 has used Common Lisp.
06:41 Zak But in general, it sounds a lot like the sort of thing I want to do. What's method dispatch like?
06:44 eternaleye Well, Perl 6 has gradual typing, so you _may_ specify type constraints, but don't have to. Dispatch is based on required positional/named parameters, optional positional parameters, and types. I recommend reading the Synopses related to Subroutines at http://perlcabal.org/syn/ - they are the official spec, and I don't think I fully understand them yet
06:45 dalek partcl: r528 | coke++ | trunk/ (5 files):
06:45 dalek partcl: Convert TclString's getListValue method from C to PIR.
06:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=528
06:47 Zak eternaleye: it looks like Perl6 has more of what I want than I realized. This is actually making me excited about the language, when I previously didn't have much interest.
06:48 cotto Zak, you should hang out in #perl6 in FreeNode.  You wouldn't be the first to want something from Perl 6 without knowing it.
06:50 Zak cotto: I may start doing that. The language I have in mind is probably more focused and smaller than Perl6. It would strongly encourage users to make heavy use of multimethods.
06:51 Zak It would also probably be mostly functional and look like Lisp.
06:53 cotto My impression is that there are only a handful of languages that *aren't* smaller than Perl 6. ;)
06:53 cotto Firefox is disturbingly crashy of late.
06:56 Zak That may be. What I have in mind looks quite a bit like Clojure, but with every function generic (and no way to make one that isn't), the option to use mutable data structures (and get compiler warnings about their misuse), keyword arguments, before/after/around and probably some stuff I'm forgetting.
07:05 dalek partcl: r529 | coke++ | trunk/library/init.tcl:
07:05 dalek partcl: remove accidentally committed debug output
07:05 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=529
07:10 chromatic joined #parrot
07:11 cotto time for sleep
07:11 Coke chromatic: kon ban wa
07:11 cotto night all
07:17 Coke someone should throw our JS implementation at http://code.google.com/p/sput​niktests/wiki/RunningSputnik
07:47 iblechbot joined #parrot
07:49 mokurai left #parrot
08:31 Ryan52 joined #parrot
08:53 barney joined #parrot
09:26 MoC joined #parrot
09:33 mikehh_ joined #parrot
09:55 mikehh All tests PASS (pre/post config, smolder, fulltest) at r40012 - Ubuntu 9.04 amd64
09:58 iblechbot_ joined #parrot
10:11 mikehh joined #parrot
11:51 Whiteknight joined #parrot
11:53 Infinoid good morning
11:53 purl And good moroning to you, Infinoid.
11:54 Infinoid Whiteknight: So I went on a tear in the io_cleanups branch, but I'm not sure I went in the right direction
11:54 Whiteknight okay, I'l check it out
11:54 Whiteknight are pipes working?
11:55 Infinoid I haven't committed it yet
11:55 Infinoid Pipes are closer to working, but not all the way yet.  They'll work as soon as virtually all of the filehandle-specific stuff is pushed down into the handle layer
11:56 Infinoid The question is where to put the code.  In a way, I really hate all the Parrot_io_*_filehandle() functions, but that kind of interface is the only way to make I/O calls from C fast
11:56 Infinoid ...other than converting all these METHODs to VTABLEs, I guess
11:57 Infinoid I was initially trying to push this code into handle.pmc, but we're going to have to go through PCCINVOKE to get there, and it'll be slow.
11:57 masak joined #parrot
11:58 Infinoid so there is a definite difference between what's "right" and what's "fast", and it is confusing me :)
11:58 Whiteknight ok
11:59 Whiteknight why do you want to push functionality into Handle?
11:59 Whiteknight why not have that functionality in src/io/api.c or src/io/filehandle.c?
11:59 Infinoid because things like buffering, basic I/O and all of that are not in any way file-specific
12:00 Infinoid they apply equally well to sockets, pipes and ttys
12:01 Infinoid the only ATTRs I left in filehandle.pmc were for the filename and seek position
12:02 Infinoid the rest of the functionality is generally applicable and so I pushed it down into handle.pmc
12:04 Whiteknight okay, I had done a lot of work like that before, but was doing it for a different reason
12:06 bacek joined #parrot
12:07 Infinoid anyway, the features need to be at the Handle layer, but the code doesn't
12:07 * bacek waves from future
12:07 Infinoid so now I have to undo some of the code movearound
12:07 Infinoid hi bacek
12:07 bacek hi Infinoid
12:07 bacek Infinoid: git rebase -i HEAD~10 for undoing something is quite handy :)
12:08 bacek I use it a _lot_
12:08 Infinoid that's one of the base features of stgit and I use it heavily too, but I still have a bunch of editing to do :)
12:10 Infinoid the end result is that the ATTRs move and the methods move, but the backend API will stay more or less intact
12:10 Infinoid and I'll be renaming a bunch of Parrot_io_*_filehandle() functions to Parrot_io_*_handle()
12:10 bacek Hey! You've lost kittens!
12:11 * Infinoid chews inconspicuously
12:11 Whiteknight nice
12:12 Infinoid but it means I have a bit more work to do before I commit, and I doubt I'll get it done this weekend :(
12:15 bacek Whiteknight: how hard it will be to implement generational GC for parrot? For average developer?
12:17 Whiteknight I really don't know to be honest.
12:18 bacek How that?
12:18 * bacek just lost last hope...
12:27 Infinoid we're talking about generational mark & sweep, right?
12:28 bacek Infinoid: for simplicity sake - yes
12:29 Infinoid I've pretended to read a GC book a couple of times while bored in airport terminals, but I'm pretty clueless overall
12:30 Infinoid to make GMS parrot, I guess you'd need to expand the "mark" flag to specify which generation marked it, so you don't expire the older generation marks as much (and upgrade existing marks if necessary)
12:31 Infinoid and then you'd only have to do partial mark, but still full sweep.  Does that seem sane?
12:32 Infinoid the next problem is determining which generation an object is from, to decide whether to mark it or not.  since we aren't doing a collector, I'm not sure how to solve that
12:32 Infinoid uh, s/collector/copying collector/
12:33 bacek Just save "collection" in PObj.
12:33 bacek In "mark" don't call VTABLE_mark for older PMCs
12:34 Infinoid or don't call them as often...
12:35 Infinoid minefield GC: only mark some PMCs, at random, but still do full sweep
12:36 * bacek smell old #define TRUE FALSE joke
12:36 Infinoid scorched earth GC: if you mark everything in the arenas, you never have to sweep
12:38 bacek Parrot's GC with constant pool: You'll spend ~10-12 hours trying to understand why Rakudo crashing :/
12:39 Infinoid I was following the discussion about that, yesterday... sounds pretty broken
12:39 bacek constant pmcs are "hand crafted, poorly specified, ... implementation of 2 generations Generational GC"...
12:40 Infinoid hmm, that's an interesting way of looking at it
12:41 bacek It's pretty accurate technical description of constant PMCs.
12:42 Infinoid does "constant PMCs" really mean "you can't change them"?  or does it mean "you can't free them"?
12:42 bacek s/constant/zombie/
12:42 bacek They can be changed
12:42 bacek They can be swept.
12:42 bacek But they still "alive"
12:43 Infinoid ok, so it really means "zombie" or "tenured" or "immortal"
12:43 bacek And dead children falling from their dead bodies
12:44 Whiteknight so colorful
12:44 bacek Hey! It's called tracing_children!
12:45 Whiteknight as I've been working on this new GC core I'm starting to realize that the GC still needs a lot of cleanup work
12:45 bacek Parrot_gc_trace_children
12:45 Infinoid yeah.  the GC code definitely has some API layering issues
12:46 Whiteknight the MemoryPool management and compacting functions especially are terrible
12:47 dalek parrot: r40013 | whiteknight++ | trunk (7 files):
12:47 dalek parrot: [gc] add a new 'infinite memory' GC core, which is basically as simple a GC core as we can make. It is for demonstration purposes only, it should not be used for anything and actually fails some tests by design (timely destruction, closing/flushing of filehandles at finalization, etc).
12:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40013/
12:47 Whiteknight they're very closely tied in to the MS collector, and can't really be reused for anything else
12:47 bacek Huh. "compacting"???
12:49 Whiteknight the STRING pools are managed by a separate collection/compacting facility in src/gc/alloc_resources.c
12:49 Whiteknight which is a nightmare of premature optimization and messy pointer logic
12:50 Whiteknight That is actually one of the biggest areas that needs to be cleaned up right now for the GC API to be pluggable
12:50 dalek parrot: r40014 | whiteknight++ | trunk/src/gc/gc_inf.c:
12:50 dalek parrot: [gc] add a little bit more documentation to the gc_inf core explaining how to activate it
12:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40014/
12:52 bacek omg... Why I even open this file???
12:53 riffraff joined #parrot
12:57 Whiteknight what file?
12:57 Whiteknight oh, alloc_resources.c? Yeah, it's a beast
12:59 Whiteknight but it "works", so long as you don't change anything or try to add a new GC core, or anything like that
13:24 masak ext/SQLite3/Makefile.PL seems to have bit-rotted somewhat. it gives me 'Can't locate object method "slurp" via package "Parrot::Configure::Data" at Makefile.PL line 4.'
13:25 masak according to svn blame, I should talk to either simon, tewk or Infinoid.
13:29 Infinoid hi, masak.  https://trac.parrot.org/parrot/changeset/34947/ looks suspiciously like what you're after
13:30 dalek parrot: r40015 | whiteknight++ | trunk/src/gc/gc_inf.c:
13:30 dalek parrot: [gc] add some more helpful documentation to gc_inf to explain what each function is used for
13:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40015/
13:30 masak Infinoid: hi. since I tried to change password for the trac page, it only gives me redirect loops. :/
13:30 NotFound Whiteknight++
13:30 Whiteknight bacek: it might be interesting to implement immutable strings like .NET and Java have, for performance and simplicity
13:31 masak Infinoid: but I'll look at that commit locally instead.
13:31 Infinoid masak: urk.  ok, I think the method is called get_Pconfig() now
13:31 Infinoid make that get_PConfig()
13:31 masak oki.
13:31 NotFound Now that we have the infinite memory model we just need to invent the NaN memory model X-)
13:32 * Infinoid volunteers to implement the nomemory model (doesn't successfully allocate, ever)
13:33 pmichaud good morning, #parrot
13:37 Infinoid hi pm
13:38 pmichaud something broke Rakudo sockets in 32-bit; bisecting now
13:40 * Infinoid is pretty sure it wasn't him, as he's only breaking the io_cleanups branch
13:41 Infinoid Whiteknight: Is there an important reason to throw an exception from Handle.init()?  Otherwise there's a bunch of base class init I'd like to do there
13:43 masak if someone would be so kind as to commit these bitrot fixes to the DBDI example: http://gist.github.com/145637
13:44 Whiteknight no, I was just trying to make sure a Handle wasn't created directly from PIR
13:51 pmichaud masak:  committing
13:51 purl committing is so much effort!
13:51 masak purl: no, committing is <reply>
13:51 purl okay, masak.
13:52 pmichaud looks like a typo in the patch, though
13:52 pmichaud +  PERL6LIB=../../languages/rakduo $(PERL6) t/test.p6
13:53 Whiteknight committing?
13:54 pmichaud also, I'm getting an error when applying the patch
13:54 pmichaud hmmm.
13:54 masak I got an error too.
13:55 pmichaud oh, it's the tabs
13:55 pmichaud they seem to get lost in github
13:55 masak :/
13:55 pmichaud or at least when I copy/paste them
13:55 pmichaud checking
13:55 masak they can be seen through some raw mode, IIRC.
13:55 * pmichaud clicks "raw"
13:56 pmichaud ah, that fixes it.
13:57 dalek parrot: r40016 | pmichaud++ | trunk/ext/SQLite3 (2 files):
13:57 dalek parrot: [examples]  Some patches to avoid bitrot from masak++ .
13:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40016/
13:59 masak ok, so next problem: http://gist.github.com/145641
13:59 masak pmichaud: you don't get this error when you run 'make'?
13:59 Andy joined #parrot
14:02 kid51 joined #parrot
14:06 pmichaud masak: I didn't test it :-|
14:07 masak please do. and then please explain what the error means. :)
14:07 pmichaud I'm not exactly set up for it at the moment :-|
14:07 pmichaud let's see if I can get something going on my other system
14:08 masak oki, no rush.
14:09 masak just curious to see if I can get the DBDI module working again.
14:10 dalek parrot: r40017 | jkeenan++ | branches/darwin2hints (2 files):
14:10 dalek parrot: Refactor some code into internal sub _add_to_flags(), then write tests for it.  This handles some more edge cases.
14:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40017/
14:18 Coke_zzz Infinoid: hey, once you're doing making pipes work, you want to tackle them for partcl? =-)
14:19 Coke Infinoid: hey, once you're doing making pipes work, you want to tackle them for partcl? =-) (resend as real me)
14:19 * Coke has to remember to use /away instead of /nick foo_afk
14:20 Infinoid Coke: What does partcl need?  I was honestly hoping that the parrot base types would work for all HLLs without much extra work (I'm utterly clueless about the HLL layer of things)
14:20 * Infinoid is hoping to tackle nonblocking sockets and aio types of things next
14:21 Coke Infinoid: oh, mainly just a translation of the syntax here: http://www.tcl.tk/man/tcl8.5/TclCmd/exec.htm
14:22 Coke basically, I'm just being lazy. =-)
14:22 Infinoid we support a subset of that right now, specify "p" in the "flags" string you pass to open()
14:23 Coke Right now, I'm not supporting ANY of the shell-like syntax for [exec]. Just needed enough to get the autoloader to dispatch to the real shell.
14:23 Infinoid There's a lot more work we can do to the subprocess opening stuff.  My goal here was to separate the IPC use case from the subprocess use case
14:23 Infinoid and reuse code where appropriate
14:24 NotFound Coke: I think we need bidiretional pipes to be able to implement all that freatures.
14:24 Infinoid we don't support any of that fancy stderr and bidir stuff yet
14:25 Infinoid does tcl support the handle redirection syntax on win32?
14:25 Infinoid it looks like it's designed to just hand it off to the shell
14:25 NotFound The stderr part will not be so hard, I think.
14:26 Infinoid It would be easier if we had a Parrot_dup2().
14:26 Coke Infinoid: not sure if tcl supports that. there is a PORTABILITY section there, but it's quite long and all about windows.
14:26 Infinoid Right now we call dup(), which is like playing whack-a-mole.  The stdout stuff will miss if stdin was closed
14:27 Infinoid Parrot_dup2() was a minor addition, but at some point I needed to minimize the number of yaks I was shaving
14:27 Infinoid s/was/should be/
14:29 Coke bah. something broke tcl's dispatch to shell anyway. :|
14:29 Coke (now ls gives: "Object must be created by a class"...)
14:30 pmichaud masak: I get the same error as you.  I have no idea what it means, or where it's coming from.
14:31 masak good. then I feel less inept.
14:31 pmichaud my best guess at the moment (which isn't very good) is that it's coming from somewhere in compilers/ncigen
14:31 pmichaud ls
14:32 masak aye.
14:42 pmichaud Looks like r39993 is the one that broke t/spec/S32-io/IO-Socket-INET.t in Rakudo (32-bit)
14:43 pmichaud *why* that breaks it, I have no idea.
14:45 Whiteknight that's very weird
14:46 pmichaud I've confirmed it twice -- r39992 passes, r39993 fails.  And only on 32-bit kubuntu.
14:46 pmichaud 64-bit it passes.
14:55 * Coke sighs, as his recent conversion of C to PIR seems to have missed some edge cases in the spectests.
14:59 Whiteknight pmichaud: and the only new test failure is in the sockets test?
15:01 dalek TT #828 created by whiteknight++: Separate out GC String Core
15:01 davidfetter joined #parrot
15:07 NotFound $ perl t/harness t/spec/S32-io/IO-Socket-INET.t
15:08 NotFound t/spec/S32-io/IO-Socket-INET....ok
15:08 NotFound All tests successful.
15:08 purl ship that sucker
15:08 NotFound Ubuntu 9.04 i386
15:11 Topic for #parrotis now http://www.parrotcode.org/
15:16 mikehh manifest_tests FAIL - #   Failed test 'No need to regenerate MANIFEST' - All others PASS (pre/post config, smolder, fulltest) at r40017 - Ubuntu 9.04 amd64
15:18 dalek TT #829 created by pmichaud++: r39993 breaks t/spec/S32-io/IO-Socket-INET.t on Rakudo
15:18 pmichaud NotFound: hmmm, that's odd.  You're correct that it's now passing for me also.
15:18 pmichaud (with r40017)
15:19 pmichaud retesting
15:23 bacek joined #parrot
15:27 AndyA joined #parrot
15:28 dalek TT #829 closed by pmichaud++: r39993 breaks t/spec/S32-io/IO-Socket-INET.t on Rakudo
15:28 pmichaud I'm guessing that for r40017 I was seeing load issues (the test has an alarm timer on it)
15:30 iblechbot joined #parrot
15:40 Infinoid hmm.  $P0 = new 'Handle' doesn't call Handle.init(), and I can't seem to call it directly from pir, either.  I think I'm misunderstanding something really basic here
15:41 dalek parrot: r40018 | jkeenan++ | trunk/MANIFEST:
15:41 dalek parrot: Somebody forgot to update the MANIFEST.
15:41 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40018/
15:41 * kid51 is out of coffee filters
15:41 * kid51 thought he had a lifetime supply
15:42 kid51 What does this say about my life expectancy?
15:42 Infinoid Coffee must be good for you
15:44 * Coke needs to go brew another pot, danke for the reminder.
16:00 dalek parrot: r40019 | jkeenan++ | branches/darwin2hints/config/init/hints/darwin.pm:
16:00 dalek parrot: Add documentation to package.
16:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40019/
16:05 Psyche^ joined #parrot
16:26 Theory joined #parrot
16:43 dalek parrot: r40020 | jkeenan++ | branches/darwin2hints/lib/Parrot/Test.pm:
16:43 dalek parrot: Correcting some hard tabs (coding standard error) inherited when branch was
16:43 dalek parrot: created from trunk.
16:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40020/
16:56 chromatic joined #parrot
17:03 kid51 joined #parrot
17:03 ruoso joined #parrot
17:13 moritz re
17:33 mokurai joined #parrot
17:40 dalek rakudo: 38a7fea | moritz++ | src/setting/List.pm:
17:40 dalek rakudo: List.rotate
17:40 dalek rakudo: Don't know if that should go into Any or List, the current spec situation is
17:40 dalek rakudo: ... "suboptimal"
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​8a7fea4cbbd6c48b3e62cdb5ee7e790bea0a70b
17:40 dalek rakudo: 08928df | moritz++ | t/spectest.data:
17:40 dalek rakudo: [t/spectest.data] run split.t; restore alphabetical order
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​8928df70e4af4013eb0bfde02256262728ecf6e
17:40 dalek rakudo: d6f9537 | moritz++ | src/setting/Any-str.pm:
17:40 dalek rakudo: :all flag for Str.split
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​6f9537bf5c7777a5c58558d7d0d0c6dd2297a52
17:40 dalek rakudo: 4403ec7 | moritz++ | t/spectest.data:
17:40 dalek rakudo: test Array.rotate
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​403ec7476a630fc92cce9e1d057174e2396e964
17:44 einstein joined #parrot
17:47 einstein hi
17:47 einstein i have got some question about the nqp language
17:47 einstein I have been busy for a while with parrot and now made a nqp actions.pm which is compiled by nqp itself and added array and hash initializers taken from squaak
17:47 einstein For my own use i will make my own variation off nqp but i thougth you migth be interrested in some input from my for a better nqp, but i don't know who manages the nqp implementation in parrot
17:48 moritz einstein: I think pmichaud does... maybe send an email to the list? (parrot-dev@lists.parrot.org)
17:48 moritz sounds like a cool idea btw
17:52 einstein i did see their was some bootstrap code, but as far i can see this code does not pass the nqp test cases, but i will send a email to the parrot dev list
18:03 moritz working code is always welcome ;-)
18:32 NotFound The alarm dynop has been deleted?
18:57 Coke NotFound: yes.
18:58 Coke it was in a file schedule for deletion since post 1.1
18:58 Coke "scheduled"
18:58 NotFound Coke: the I suppose we can close all tickets realted to it ;)
18:58 Coke if it needs to be saved, it can be resurrected.
18:59 Coke but yah; I'd just close the other tickets and refer to the tt that removed it.
19:02 dalek rakudo: 0bca00c | masak++ |  (3 files):
19:02 dalek rakudo: implemented skeletal Buf type
19:02 dalek rakudo: The current implementation does not do anything useful, it just
19:02 dalek rakudo: adds stubbed .encode and .decode methods to Str and Buf, respectively.
19:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​bca00c45869ba2e67625733d05c3e5e712b1991
19:10 Whiteknight joined #parrot
19:20 dalek rakudo: d9bf358 | masak++ | t/spectest.data:
19:20 dalek rakudo: [spectest.data] added t/spec/S32-str/encode.t
19:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​9bf35808efdbf5590f56bdba9b4451bcc7151aa
19:28 jdv79 einstein: you could put it up somewhere; gitub maybe.
19:32 einstein later this week i probably will put it up somewhere when i have added some more items
19:35 dalek parrot: r40021 | NotFound++ | trunk/src/thread.c:
19:35 dalek parrot: [cage] avoid a 'might be clobbered' warning by declaring the variable volatile
19:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40021/
19:37 dalek rakudo: f55d489 | moritz++ | src/builtins/any-list.pir:
19:37 dalek rakudo: make one-item List.pick() return a scalar
19:37 dalek rakudo: Ideally this should always return a capture, which behaves like its payload if
19:37 dalek rakudo: it only stores a single scalar. Since we don't have captures at the moment,
19:37 dalek rakudo: this seems to be a sensible workaround for people using the result of
19:37 dalek rakudo: @numbers.pick as array index.
19:37 dalek rakudo: tann++ for bringing this to our attention again.
19:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​55d489c146e7153be8d2432cc739bfbc8448349
19:42 szabgab joined #parrot
19:45 dalek parrot: r40022 | NotFound++ | trunk/compilers/imcc (2 files):
19:45 dalek parrot: [cage] avoid some 'might be clobbered' warnings in imcc by declaring the variables volatile
19:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40022/
20:12 mikehh Whiteknight: src/gc/gc_inf.c is causing codetest and manifest_tests failures
20:15 Whiteknight ah, i did forget to add it to the manifest
20:15 NotFound This was not fixed some commits ago?
20:16 NotFound parrot: r40018 | jkeenan++ | trunk/MANIFEST:
20:23 chromatic joined #parrot
20:30 NotFound luanumber.pmc has several unitialized const variables.
20:31 mikehh Whiteknight: sorry that was codetest and distro_tests
20:32 Whiteknight okay, let me look at it
20:32 kid51 joined #parrot
20:33 mikehh I think the one test is duplicated in codetest and distro_tests
20:35 mikehh t/distro/file_metadata.t
20:35 purl t/distro/file_metadata.t is sad
20:36 NotFound Uh, I don't understand why compiling C that problem is not warned
20:36 NotFound s/C/with C
20:36 kid51 mikehh Can you make a recommendation (e.g., TT) as to which one it should be in?
20:37 NotFound Ah, yes, with C++ I was using --optimize
20:41 mikehh I think it usually solved by setting svn properties, which is why it was included in codetest although it was originnaly in distro_tests only
20:48 mikehh Notfound: do you find there is much difference compiling with g++ rather than gcc
20:49 NotFound mikehh: it helps catch problems
20:49 dalek parrot: r40023 | whiteknight++ | trunk/src/gc (2 files):
20:49 dalek parrot: [gc] fix some codetest failures in the new file
20:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40023/
20:50 mikehh I was wondering - I haven't tried it - maybe I should
20:50 davidius joined #parrot
20:50 ttbot whiteknight: Parrot trunk/ r40023 i386-linux-thread-multi make error http://tt.ro.vutbr.cz/file/cmdout/48933.txt
20:50 mikehh is there much difference with the generated code?
20:50 mikehh or any?
20:50 purl i heard any was being done as a particular language feature
20:50 * kid51 has coffee filters (5 hours later)
20:51 NotFound mikehh: just use: perl Configure.pl --cc=g++ --cxx=g++ --link=g++ --ld=g++
20:52 mikehh I'll give it a try
20:53 kid51 On Darwin/PPC, I use:  perl Configure.pl --cc=gcc --cxx=g++ --link=g++ --ld=g++
20:53 NotFound Uh, building with C and --optimize doesn't warn. I don't understand why.
20:53 kid51 But on Linux/i386, I just use perl Configure.pl
20:53 mikehh I nearly always add --optimize --test
20:54 NotFound kid51: using --cc=g++ it compiles the .c files as c++, which is helpful to catch some problems.
20:54 mikehh letI have all the necessary libraries
20:55 mikehh s/let/let me check /
20:56 kid51 NotFound:  I add those options.  When I was a Parrot noob I was having a lot of problems compiling.
20:56 kid51 Coke showed me those options.  It worked.  It continues to work.  So, out of force of habit, I continue on.
20:57 Whiteknight I use a bunch of configure options now
20:57 kid51 I once made the mistake of trying to compile my own GCC
20:57 kid51 biiiig mistake
20:57 mikehh he he - took me a whole day
20:57 kid51 yup
20:58 Whiteknight I need to go in and compile a new LLVM because apparently if I recompile I can use it to build Parrot
20:58 kid51 And I learned the hard way that that's one thing you really can't do better than your vendor.
20:58 kid51 Fortunately, at some point Apple upgraded Developer's Tools to include a gcc 4.  I had been using gcc-3.3.
20:59 Whiteknight why is GCC so hard to compile?
20:59 mikehh Well I was using Intrepid, I think, and I wanted to mve on to 4.3 - and now 4.4 is around - but I'll wait
20:59 dalek parrot: r40024 | whiteknight++ | trunk/src/gc/gc_inf.c:
20:59 dalek parrot: [gc] Actually fix errors, and avoid build errors. Whiteknight--
20:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40024/
21:00 mikehh well let's see what happens
21:06 dukeleto joined #parrot
21:16 mtk joined #parrot
21:16 mtk left #parrot
21:19 dalek parrot: r40025 | jkeenan++ | branches/darwin2hints/t/ste​ps/init/hints/darwin-01.t:
21:19 dalek parrot: Write test for one last condition.
21:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40025/
21:22 mtk joined #parrot
21:22 mtk left #parrot
21:25 mikehh whiteknight: it's a sort of bootstrap build - it's incremental - it recompiles itself a few times
21:25 Whiteknight oh, wow
21:34 nopaste "NotFound" at 213.96.228.50 pasted "c++ fixes for lua" (350 lines) at http://nopaste.snit.ch/17231
21:38 mikehh Whiteknight: src/gc/gc_inf.c is still failing t/distro/file_metadata.t and t/codingstd/svn_id.t - I think you have to set the svn properties
21:43 dalek parrot: r40026 | NotFound++ | trunk/src/gc/gc_inf.c:
21:43 dalek parrot: [cage] metadata fixes
21:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40026/
21:43 NotFound mikehh++
21:44 Whiteknight yeah, I need to do that after dinner
21:46 NotFound Whiteknight: forget it, I take care
21:46 purl NotFound, I didn't have anything matching it, i take care
21:46 skids joined #parrot
21:49 dalek TT #830 created by gerd++: [PATCH] Configure.pl disable-rpath option
21:50 dalek parrot: r40027 | NotFound++ | trunk/src/gc/gc_inf.c:
21:50 dalek parrot: [cage] fix Id tag
21:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40027/
21:52 moritz 'make test' is all clean on latest parrot with latest clang+llvm
21:53 moritz (without libgmp, that is)
22:05 NotFound Whiteknight: the Infinite Memory problem with JSON is showing a potential problem: not checking for errors on close output compilers/tge/tgc.pir
22:06 NotFound Fixing this, a lot more of test can pass.
22:13 dalek parrot: r40028 | Infinoid++ | branches/io_cleanups/src/pmc/pipe.pmc:
22:13 dalek parrot: Pipe needs a destroy function to free its attr structure.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40028/
22:13 dalek parrot: r40029 | Infinoid++ | branches/io_cleanups/src/pmc (5 files):
22:13 dalek parrot: Push FileHandle's flags, mode and encoding attrs into the base Handle class.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40029/
22:13 dalek parrot: r40030 | Infinoid++ | branches/io_cleanups (2 files):
22:13 dalek parrot: Convert open()'s pipe handling to return a PipeHandle object.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40030/
22:13 dalek parrot: r40031 | Infinoid++ | branches/io_cleanups (9 files):
22:13 dalek parrot: Pipehandle needs some extra infrastructure to clean up child processes properly.
22:13 dalek parrot: This includes a "make headerizer" run.
22:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40031/
22:14 dalek parrot: r40032 | Infinoid++ | branches/io_cleanups/src (3 files):
22:14 dalek parrot: Push buffering down into the Handle layer.  Seek positions are passed through
22:14 dalek parrot: when the base_type is FileHandle, and ignored otherwise.  (Yes, that means it
22:14 dalek parrot: isn't possible to make seekable subclasses yet.)
22:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40032/
22:14 dalek parrot: r40033 | Infinoid++ | branches/io_cleanups/src/io/unix.c:
22:14 dalek parrot: Handle closed stdin/stdout/stderr on UNIX.
22:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40033/
22:14 NotFound Infinoid: Are you hungry of karma? ;)
22:15 nopaste "infinoid" at 173.75.243.238 pasted "[PATCH] [HALFBAKED] [IO_CLEANUPS] push-methods-into-handle.patch: currently moves way too much code around, and adds extra PCC overhead for no good reason" (1195 lines) at http://nopaste.snit.ch/17232
22:15 nopaste "infinoid" at 173.75.243.238 pasted "[PATCH] [HALFBAKED] [IO_CLEANUPS] buffer-stdout.patch; turns on line-buffering for stdout, but causes some test failures, apparently line buffering does not work yet?" (25 lines) at http://nopaste.snit.ch/17233
22:15 Infinoid No, I just won't have any more parrot time for a while, so I decided to flush out the queue.
22:17 Whiteknight Infinoid++ Nice little commit marathon!
22:17 Infinoid That's the last week's worth of work; hopefully it will make I/O suck a little bit less
22:18 Whiteknight NotFound: that's not a "problem" because it's a known behavior and I'm not fixing it
22:18 Whiteknight the core doesn't keep track of pointers in order to destroy them later
22:18 NotFound Whiteknight: failed to check a close has caused us problems before.
22:19 Whiteknight so it doesn't make sense to think that we would be able to finalize any PMCs
22:19 Whiteknight NotFound: it's not a production core. It's not intended to be used for anything besides a demonstration
22:19 Whiteknight It's just a template for people to follow to make "real" cores later
22:20 NotFound Whiteknight: anyway, if fixing the problem has the secondary effect of allowing the IM test more things, double win
22:20 Whiteknight NotFound: if the win is easy enough, good. But if the INF core starts getting complicated, it has failed in it's primary purpose
22:20 Whiteknight it is just a teaching tool
22:21 NotFound Whiteknight: no, is a tge problem, not a IM problem. And the fix is easy, I'm about to commit it.
22:21 Whiteknight okay, awesome
22:25 mikehh All tests PASS (pre/post config, smolder, fulltest) r40027 - Ubuntu 9.04 amd64 (built with g++)
22:26 NotFound Ooooops
22:27 mikehh sounds ominous
22:27 dalek parrot: r40034 | NotFound++ | trunk (2 files):
22:27 dalek parrot: [TGE] check the closing of output file
22:27 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40034/
22:27 dukeleto joined #parrot
22:28 NotFound Please wait...
22:30 dalek parrot: r40035 | NotFound++ | trunk/include/parrot/settings.h:
22:30 dalek parrot: Revert accidental change of default GC
22:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40035/
22:32 Whiteknight yay! I just built Parrot with clang/llvm
22:32 darbelo joined #parrot
22:34 NotFound Ooooops solved
22:35 bacek joined #parrot
22:36 rg joined #parrot
22:43 Whiteknight yeah, we don't want to accidentally set INF to be the default
22:44 dalek parrot: r40036 | whiteknight++ | trunk/PLATFORMS:
22:44 dalek parrot: [PLATFORMS] update platforms, amd64-gcc4.3.3 and amd64-clang
22:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40036/
22:47 dalek parrot: r40037 | jkeenan++ | branches/darwin2hints/t/ste​ps/init/hints/darwin-01.t:
22:47 dalek parrot: Set correct plan for testing.
22:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40037/
22:51 NotFound Whiteknight: what do you thing about the t/op/string.t failure with the GCIM
22:51 NotFound ?
22:51 Whiteknight GCIM?
22:51 NotFound GC Infinite Memory
22:51 Whiteknight oh, right
22:51 Whiteknight i didnt know that one was failing
22:52 Whiteknight no wait, I knew about it
22:52 NotFound The collect opcode is erasing a string
22:55 Whiteknight yeah, the string handling stuff is a goddamn mess
22:56 Whiteknight I had to turn off the MemoryPool compactor to make this core work at all
22:56 mikehh I can't seem to connect to smolder.plusthree.com
22:57 Whiteknight it's probably down again
22:57 Whiteknight it goes down pretty often unfortunately
22:58 mikehh it's been pretty good until today - for the last couple of weeks - maybe it's maintenance time
23:01 dalek parrot: r40038 | allison++ | trunk (2 files):
23:01 dalek parrot: [install] Install install_config.o as parrot_config.o in the installed
23:01 dalek parrot: lib/ directory. Partial fix for TT #495.
23:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40038/
23:04 dalek parrot: r40039 | allison++ | trunk/tools/dev/pbc_to_exe.pir:
23:04 dalek parrot: [install] Change pbc_to_exe to use configured paths for accesing lib/
23:04 dalek parrot: components when running from an install. Resolves TT #495.
23:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40039/
23:07 NotFound The other test failures with the GCIM looks reasonable.
23:13 dalek rakudo: d153cdc | pmichaud++ | src/classes/Num.pir:
23:13 dalek rakudo: Clean up Num.succ and Num.pred, which were infinite looping.
23:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​153cdc8ab1df98df276d55bca8ca002251a206e
23:13 dalek rakudo: 4024702 | pmichaud++ | build/PARROT_REVISION:
23:13 dalek rakudo: Bump PARROT_REVISION to take advantage of latest gc cleanups.
23:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​0247027b8d418df485c51a683e5ab7193c36dc7
23:15 NotFound I'm going to test if I can build rakudo with the GCIM
23:16 zak_ joined #parrot
23:19 NotFound It builds and pass tests. Amazing.
23:23 nopaste "mikehh" at 86.148.252.18 pasted "building with gcc vs g++" (15 lines) at http://nopaste.snit.ch/17235
23:25 dalek partcl: r530 | coke++ | trunk/ (2 files):
23:25 dalek partcl: Fix a bug in list to string shimmering.
23:25 mikehh NotFound++
23:25 dalek partcl: Recent conversions of code from C to PIR were wrong - add in a few tests
23:25 dalek partcl: to make sure we don't regress. (Noticed the failures running the spectests.)
23:25 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=530
23:26 NotFound A lot of spectest are passing, but I must kill it because it eats lots of memory
23:27 mikehh I think I will give it a try - maybe tomorrow - must set it up
23:33 jdv79 why is json in compilers and not languages?
23:34 whoppix jdv79, what?
23:34 whoppix oh, you mean on parrot.org?
23:35 jdv79 in trunk
23:36 whoppix ah.
23:42 dalek decnum-dynpmcs: r105 | darbelo++ | trunk/ (10 files):
23:42 dalek decnum-dynpmcs: Put all the Makefile.in templates in the 'cfg' directory, use the 'build'
23:42 dalek decnum-dynpmcs: directory to store the built library.
23:42 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=105
23:45 dalek partcl: r531 | coke++ | wiki/ParrotIssues.wiki:
23:45 dalek partcl: This parrot bug has been resolved.
23:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=531
23:46 * darbelo is resisting the urge to rewrite those bloody makefile templates.
23:52 Coke nothing is really in languages/ anymore.
23:53 Coke compilers/ was always more of a "languages that ship with parrot" dir.
23:55 dalek partcl: r532 | coke++ | trunk/config/ (2 files):
23:55 dalek partcl: Re-enable build of 'tclsh'
23:55 dalek partcl: We need a more recent parrot to do it.
23:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=532
23:57 dalek decnum-dynpmcs: r106 | darbelo++ | trunk/cfg/Makefile.in:
23:57 dalek decnum-dynpmcs: Oops. Forgot to clean up the build dir.
23:57 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=106

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

Parrot | source cross referenced