|
Parrot 1.3.0 "Andean Swift" released | parrot.org Set by moderator on 23 June 2009. |
|||
| Coke | cattle mutilations | 00:02 | |
| Austin | I sense a certain latent hostility here... | 00:03 | |
| Of course, after what happened in Pamplona the other day, your comment could be taken two ways.. | |||
| (Sometimes, sen~or, the bull, he wins.) | 00:04 | ||
| Coke | I was referring to _sneakers_ | 00:06 | |
| Whiteknight | hello #parrot | 00:07 | |
| Austin | I was referring to CNN. (edition.cnn.com/2009/WORLD/europe/0...nSTCVideo) | 00:08 | |
| But yours is good, too. | |||
| Hello, Whiteknight. | |||
| Cattle mutilations II: The Bulls Strike Back | |||
| Whiteknight | Good evening Austin | 00:10 | |
| Austin | Why ever is there an opcode for "downcase"? | ||
| Whiteknight, how modular were you saying the GC subsystem is? | |||
| 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. | ||
| Whiteknight | Austin: it's not nearly as modular as it should be | 00:12 | |
| but we don't know what changes need to be made to increase modularity until we have a second core | |||
| Austin | Coke: Of course Strings have methods. Maybe 'strings' don't, but 'Strings' do. | 00:13 | |
| NotFound | Whiteknight: we were talking about making a second core that does nothing. | 00:14 | |
| Austin | Whiteknight: ^^ what NotFound said. | ||
| "Infinite Memory GC" | |||
| Coke | Austin: I said strings, not Strings. | ||
| Austin | Coke: yeah. I know. | ||
| Coke: It still feels wrong. | 00:15 | ||
|
00:16
amuck joined
|
|||
| Coke | Austin: it would take, what, six opcodes to do it without an opcode? | 00:18 | |
| I'm not defending it, just pointing it out. | |||
| Austin | How 6? | 00:19 | |
| Whiteknight | A second core that does nothing should probably be easy enough to write | ||
| Austin | get_global /parrot/String/downcase; set args; get results; call | 00:20 | |
| Coke | Austin: P1 = new String; assign P1, S1. P1.'downcase'() . S1 = P1 | 00:21 | |
| so, 4 ish. | |||
| 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. | ||
| 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. | ||
| Whiteknight: Where would I go to find out how to write a new GC core? | |||
| Whiteknight | our current core is src/gc/gc_ms.c | 00:27 | |
| so you probably want to create src/gc/gc_inf.c, and try to implement the same interface | 00:28 | ||
| I'm going to throw together a prototype right now unless you've already started | 00:31 | ||
| Austin | I've got nothing. | 00:32 | |
| Although I think the GC should be a PMC. | 00:33 | ||
| But that comes later. | |||
| 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 | ||
| Austin | Sure, man. Three printfs, later. | 00:35 | |
| :) | |||
| Whiteknight | back during GSOC I proposed that GC should be a PMC too, so I know what you mean | ||
| okay, I have the prototype of the core | 00:38 | ||
| just need to integrate it and test it | |||
| brbrooks | Whiteknight: are you planning on commiting this new core? | 00:39 | |
| Austin | Nah. Nothing ever passes the tests the first time through. | 00:40 | |
| Whiteknight | brbrooks: maybe, it will be quite an instructive template | 00:41 | |
| It's messy right now and doesn't satisfy our codingstd or anything, so needs that fixed before committing | |||
| I'll package up a patch for interested people when it's done | |||
| Austin | You just deleted a bunch of stuff from the original MS gc. How can it not satisfy the coding std? | 00:43 | |
|
00:44
bacek joined
|
|||
| Austin | rehi, bacek | 00:45 | |
| I was just thinking of you. | |||
| Whiteknight | Well, I didn't copy+paste because that would have actually been more effort | ||
| bacek | Oh NOES | ||
| Austin | Whiteknight: what did you do? | ||
| bacek | Good localtime() | ||
| Whiteknight | I wrote an entirely new file from scratch | ||
| Austin | I think we should schedule an intervention for Whiteknight. | ||
| 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. | ||
| brbrooks | Whiteknight: that what i thought it would be good for ;) esp me | ||
| 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:49 | |
| Whiteknight | seriously, when you see how retardedly small this is you won't think it was such a big deal | 00:54 | |
| Austin | You're an engineer, right? | 00:55 | |
| Whiteknight | hah, segfault! | ||
| yeah | |||
| 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:56 | |
| 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:57 | ||
| 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:58 | ||
| 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 | ||
| So the engineer types up a new invoice: "Made chalkmark showing where to drill hole: $1. Knowing where to put chalkmark: $19,999.00" | |||
| Whiteknight | haha, nice | 01:00 | |
| I've heard variants of that joke before, always priceless | |||
| 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." | ||
| Whiteknight | right | 01:04 | |
| 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? | ||
| Austin | Ayup. | 01:06 | |
| brbrooks | meaning | ||
| Austin | No pooling, no kind of optimization or efficiency. Just stop the world, free() whatever isn't marked, and carry on. | ||
| brbrooks | what do you mean 'free() whatever isn't marked, and carry on." | 01:07 | |
|
01:11
allison joined
|
|||
| Austin | I could swear I typed up something after PVMW, but now I can't find anything. Drat. | 01:11 | |
| Oh well, maybe not. | 01:15 | ||
| brbrooks: You know the basics of what a GC does? | |||
| brbrooks | Yeah | 01:16 | |
| Austin | Okay. Half of that is "find garbage" and the other half is "manage memory blah blah optimal blah blah allocation" | 01:17 | |
| So the malloc/free GC would be just the first half. | |||
| Someone asks for memory, you call malloc. | 01:18 | ||
| You scan and find gargage -> call free. | |||
| Presto! Malloc/free GC. | |||
|
01:18
TiMBuS joined
|
|||
| brbrooks | So... the most basic 'stop the world' gc? | 01:19 | |
| 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. | ||
| 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. | ||
| brbrooks | yes, and im interested in what whiteknight's working on now cause that would be a good starting pt | 01:22 | |
| just making sure that it's a basic, basic stop the world gc | |||
| that you're talking about | |||
| 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). | ||
| Whiteknight | I'm getting a really weird failure right now that I'm trying to track down | 01:23 | |
| Austin | LOL | ||
| What failure, WK? | |||
| 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 | ||
| 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:25 | |
| 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:26 | |
| 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 | ||
| this is quite the good exercise! | |||
| Austin | Tomorrow night: situps. | 01:28 | |
| brbrooks | low coupling and high cohesion... sounds like a marriage gone sour | 01:29 | |
| Austin | :) | ||
| dalek | rrot: r40008 | bacek++ | trunk/src/pmc/hash.pmc: [cage] Initialize hash->container in Hash.init |
01:31 | |
| 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 | |
| new logic meaning new code instead of ripping out of gc_ms.c | |||
| Austin | Ayup. | 01:34 | |
| nopaste | "Whiteknight" at 69.248.162.161 pasted "new GC core patch" (169 lines) at 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 | ||
| 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 | ||
| (and some systems are checking for alive/dead status is very strange ways that I've never seen before) | |||
| anyway, I'm off to bed for the night. Talk to you gentlemen later | 01:39 | ||
| brbrooks | How crucial is it to be on the dev mailing list? Is there much on there that doesn't float around IRC? | 01:46 | |
| Austin | It's low-traffic, most stuff is on IRC, sadly. | 01:47 | |
| pmichaud | but one can always read the irclogs | 01:49 | |
| Austin | Of course. | ||
| purl | Indubitably. | ||
| 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 | |
| We need to pump him full of beer and discard some of those brain cells. | |||
| brbrooks | Austin: did you look at the patch? | ||
| Austin | I'm building it now. | ||
| 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? | ||
| pmichaud | PGE definitely needs one, yes. | ||
| Austin | What's the difference between $S0 and $P0 ? | ||
| bacek | one is $S0 is STRING* | 01:54 | |
| $P0 is PMC | |||
| Austin | Thanks, bacek. | ||
| dalek | rrot: r40009 | bacek++ | trunk/src/gc/mark_sweep.c: [cage] Mark HLL_info and HLL_namespace as alive. |
||
| pmichaud | the major downside to moving opcodes into methods is that as of now method calls in Parrot a REALLY SLOW | ||
| s/ a / are / | 01:55 | ||
| Austin | Yeah. | ||
| But is that because of dispatch, or call? | |||
| pmichaud | like mind-bogglingly slow-as-molasses geological-time-scales SLOW | ||
| either way, operations that are done frequently need to be opcodes | |||
| and case-insensitive compares are relatively frequent | |||
| and currently we do that by downcasing things | 01:56 | ||
| Austin | I'm not sure I agree with your premise. | ||
| pmichaud | (yes, that's not a completely valid way to do it. Parrot's a bit limited there.) | ||
| Austin | "Make it an opcode" isn't a universally useful way to improve performance. | ||
| pmichaud | at the moment, "make it a method" is definitely a way to degrade it | 01:57 | |
| Austin | Sure. | ||
| pmichaud | if you have some other option between the two, I'm all ears. | ||
| Austin | But I wondering about the dispatch versus call overhead for a reason (more) | ||
| pmichaud | it's the call overhead, primarily | ||
| Austin | Really? | 01:58 | |
| bacek whispering about testing GC failures in Rakudo on r40009 | |||
| pmichaud | Yes. | ||
| Austin | I thought about caching the lookup results in the pbc. | ||
| pmichaud | we already cache dispatch, yes. | ||
| but it's the call overhead, primarily. | |||
| Austin | I thought the call overhead looked pretty cheap. What's going on behind the scenes that costs so much? | ||
| pmichaud | the packing and unpacking of arguments | 01:59 | |
| also, method calls into C are really slow | |||
| you end up with a new interpreter | |||
| Austin | Ahh. | ||
| <boggle> | |||
| pmichaud | (or perhaps it's vice-versa. That's a maze of twisty issues I tend to not delve into) | ||
| at any rate, there's a huge amount of expense in going between PIR and C | |||
| which is one of the reasons that calling convention refactors is high on the priority list | 02:00 | ||
| if method dispatch could be made faster than opcodes, I'd be Really Happy. | |||
| Like mind-bogglingly happy. | |||
| 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. | ||
| pmichaud | I'd even go for "fast enough" | ||
| Austin | Well, there's the segfault, as advertised. | 02:02 | |
| pmichaud | bacek: you want me to try rakudo againt r40009? | ||
| Austin | Ooh, and it's in PGE.pbc. | ||
| bacek | pmichaud: yes. "./perl6 t/spec/S32-array/elems.rakudo" will be enough | ||
| pmichaud | bacek: 64 bit or 32 bit ? | 02:03 | |
| bacek | pmichaud: 32 if I read your latest mail properly | ||
| Coke | (GC should be a PMC) ... why? | ||
| pmichaud | bacek: why will elems.rakudo be enough, then? | ||
| bacek | [ cd] t/spec/S32-array/elems.rakudo ?? ?? ?? | 02:04 | |
| pmichaud | bacek: it's not nearly sufficient to test the files I report | ||
| one has to run a full spectest to know for sure | |||
| because every little change completely changes the impact on the spectests | |||
| bacek | of course. But running fullspec take some time | ||
| pmichaud | sure | ||
| but I can already tell you that S32-array/elems.rakudo was working as of r40000 | |||
| (tested that earlier) | 02:05 | ||
| bacek | *sigh* | ||
| pmichaud | actually, it was also working as of r40004 | ||
| bacek | I can't reproduce any of your errors on my box... | ||
| pmichaud | bacek: what os? | ||
| bacek | pmichaud: Debian/Lenny, 32bit | 02:06 | |
| pmichaud | yes, Debian seems to have a somewhat different spectest result than Kubuntu | ||
| bacek | different kernels, libc, phase of Moon, etc... | 02:07 | |
| pmichaud | anyway, I'll go ahead and run full 32-bit and 64-bit spectests against r40009 and see what we get. | 02:08 | |
| As of 40004 I was failing a test on 32-bit. | |||
| (I forget which one now) | |||
| Coke | rant. "object must be created by a class" | ||
| brbrooks | Whiteknight's patch segfaults PGE.pbc -> PGE.pir | 02:09 | |
| pmichaud | why would the 40009 patch be necessary, anyway? | ||
| 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. | ||
| pmichaud | unless HLL_namespace is actually "all of the hll namespaces" | ||
| 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... | ||
| bacek | pmichaud: afaiu HLL_namespace holding all HLLs | ||
| Austin | He's EST, like me. Near Philly, iirc. | ||
| pmichaud | PMC *HLL_namespace; /* cache of HLL toplevel ns */ | ||
| Looks like not. | |||
| 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 | ||
| bacek | there is also HLL_info | ||
|
02:12
patspam joined
|
|||
| Austin | What's in CA? | 02:13 | |
| brbrooks | internship | ||
| Austin | Paid? | ||
| purl | Paid is always good | ||
| brbrooks | yes | ||
| Austin | Sweet. | ||
| Where in CA are you? | |||
| brbrooks | the valley ~_~ | ||
| Austin | Okay. | 02:14 | |
| Be sure and ask for some good Peruvian restaurants. | |||
| brbrooks | north San Jose | ||
| pmichaud | bacek: did you see the note at src/hll.c:91 ? | ||
| Austin | (If you can eat seafood.) | ||
| pmichaud | brbrooks: going to OSCON? ;-) | 02:15 | |
| bacek | pmichaud: ahem... Why it's not marked? | ||
| pmichaud | bacek: I don't know. I just saw the comment. | ||
| I'm guessing because "it's constant" | |||
| bacek | This comment (adn idea behind) looks wrong to me. | 02:16 | |
| brbrooks | pmichaud: not worth the $$$... for a person in my position | ||
| pmichaud | brbrooks: agreed, although I'm wondering if you could get a pass somewhere/somehow :-) | ||
| bacek | HLL_info is OrderedHash. It creates keys in push_pmc. And they can get collected... | 02:17 | |
| 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 | |
| highly doubt the would be interested in financing OSCON registrations for interns | |||
| pmichaud | oh well. I'll wave to the north when I'm there :-) | 02:23 | |
| ...if I can figure out which way is north :-) | |||
| Austin | Where's OSCON this year? | ||
| purl | OSCON this year is quite cheap. < $1500 if you're speaking. | ||
| pmichaud | huh? | 02:24 | |
| Austin: San Jose, CA | |||
| Austin | Ah. | ||
| That would be north. | |||
| pmichaud | (speakers normally get free admission to oscon) | ||
| Austin | Tell that to purl. | ||
| pmichaud | purl, forget OSCON this year | ||
| purl | pmichaud: I forgot oscon this year | ||
| pmichaud | purl, I knew that you would. | ||
| purl | pmichaud: sorry... | ||
| 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:25 | |
| Austin | purl: Where's OSCON this year? | 02:26 | |
| purl | austin: no idea | ||
| Austin | good girl | ||
| purl | thanks Austin :) | ||
| brbrooks | Is purl a bot? | ||
| Infinoid | purl? | 02:27 | |
| purl | Infinoid? | ||
| bacek | very annoying bot | ||
| Infinoid | botsnack | ||
| purl | thanks Infinoid :) | ||
| 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" | ||
| purl | pmichaud: sorry... | ||
| pmichaud | and so the bot responded with what it knew that matched "oscon this year" | 02:29 | |
| example | |||
| my dog is brown | |||
| my dog | |||
| hmmm. | |||
| purl: my dog? | |||
| purl | somebody said your dog was brown | ||
| pmichaud | where's my dog? | ||
| purl | i heard your dog was brown | ||
| brbrooks | purl: 1+2.5 | ||
| purl | 3.5 | ||
| pmichaud | purl: forget my dog | ||
| purl | pmichaud: I forgot my dog | ||
| brbrooks | purl: how many ounces in a cup? | 02:30 | |
| purl | wish i knew, brbrooks | ||
| pmichaud | purl: convert 2 pounds to ounces | ||
| purl | 2 pounds is 32 ounces. | ||
| brbrooks | purl: what is your name | ||
| purl | i haven't a clue, brbrooks | ||
| pmichaud | purl: convert 1 cup to ounces | ||
| purl | I can't compare 0.000236584 meter^3 with 28.349523125 gram. | ||
| Austin | purl: e**2*pi | ||
| purl | Austin: huh? | ||
| pmichaud | purl: convert 1 cup to fluid ounces | ||
| purl | I don't know how to convert 1 cup to fluid ounces. | ||
| pmichaud | purl: convert 1 cup to floz | ||
| purl | 1 cup is 8 floz. | ||
| pmichaud | purl: convert 1 usd to eur | 02:31 | |
| purl | I don't know how to convert 1 usd to eur. | ||
| brbrooks | purl: $1 to eur | ||
| purl | brbrooks: what? | ||
| brbrooks | hmmm... neat | ||
| Austin | Woo-hoo! Pmichaud with the goto ftw! | 02:32 | |
| HLLCompiler::command_line requires a goto. | |||
| pmichaud | (I have no clue what Austin is babbling about :-) | 02:33 | |
| Austin | Recoding HLLCompiler.pir into Close. | ||
| pmichaud | oh. | ||
| Austin | The "command_line" function as-written requires a goto. | 02:34 | |
| (Because adverbs and args are not entangled, that I can see.) | |||
| 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? | ||
| purl | ACK! | ||
| Coke | Austin: I know where in **C** it's coming from. | ||
| Austin | Well, then. | ||
| Coke | that doesn't necessary map nicely to the several thousand lines of tcl I have here. | ||
| Austin | C -> opcode -> ack | ||
| Coke | nevermind. | 02:37 | |
| Austin | what tcl are you running? | ||
| Coke | just [parray] | 02:38 | |
| except that that pulls in the stdlib. | |||
| Austin | So you've got an objectPMC that is being new'ed. | 02:39 | |
| As in $P0 = new 'Object' | |||
| You know which line it is? | 02:40 | ||
| Coke | nope. | ||
| ack --nobinary "new.*Object" => nada. | 02:41 | ||
| Austin | I mean of the parray.tcl? | ||
| pmichaud | Coke: might be able to figure it out using gdb | ||
| Coke | no. that's why I'm trying to find the PIR in question - it may not even be loading parray.tcl yet. | ||
| 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 | ||
| Coke | checking... | ||
| purl | i think checking is just different | ||
|
02:42
janus joined
|
|||
| pmichaud | I suppose it takes too long to run Parrot with tracing enabled? | 02:45 | |
| Coke | I was close. assign. | ||
| so that doesn't really help. =-) | |||
| pmichaud: ... yes. | |||
| I was up to about 10m of -t4 output starting from 0. | |||
| PGE is a little... intensive in that regard. | |||
| pmichaud | yes. | 02:46 | |
| Austin | Coke: You might want to define a built-in that does a trace for you. | ||
| Coke | Austin: a built in what? | ||
| Austin | A tcl builtin | ||
| Coke | you mean for tcl? | ||
| Austin | Yep | ||
| parrot_trace 1 | |||
| parrot_trace 0 | |||
| or whatever | |||
| 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. | ||
| dalek | rrot: r40010 | bacek++ | trunk/src/pmc/pmcproxy.pmc: [cage] Use constant_pmc_new in PMCProxy in the same way as in Class |
||
| pmichaud | Nowadays we can just do Q:PIR { ... } :-) | ||
| Austin | Yeah, 4 = function calls. You want 1. | ||
| 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. | ||
| brbrooks | snap. they're bringing mechwarrior back | ||
| Austin | Isn't the G in GC for genetic? | ||
| brbrooks: the game, or what? | |||
| bacek | pmichaud: Just random checks. | ||
| Actually I'm worried about my keys_revamp branch. | 02:50 | ||
| Rakudo failing badly. Because of "GC issues" on this branch. | |||
| brbrooks | the game. it's already in development: www.youtube.com/watch?v=sl4eI3htAuA | ||
| bacek | So, instead of trying to figure out why I decided to clean as much as I can on trunk. | 02:51 | |
| 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:53 | |
| 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 | ||
| Austin | brbrooks: Doomed. | ||
| brbrooks | doomed? | ||
| purl | doomed is community.livejournal.com/so_very_doomed/ | ||
| pmichaud | 32-bit should be finished shortly. | ||
| Austin | They've been trying to make a PC version of that game since the 80's. | ||
| bacek | pmichaud: (r40010) I just made PMCProxy consistent with Class. | ||
| Austin | Doooooomed. | ||
| They need to make it a Sims game. "Skin your mech" | 02:55 | ||
| 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. | ||
| bacek | I've got idea... | ||
| 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 | |
| I didn't get that failure on 64-bit, though. Interesting. | |||
| bacek | Let's rename PObj_constant_FLAG in PObj_zombie_FLAG. It reflects current behaviour more precisely. | 02:58 | |
| "constant" PMC are get collected. But not sweepd. | |||
| Typical zombies... | |||
| Coke | Austin: if I enable trace 4 at the last possible point without modifying the standard library, I get: | ||
| ./mytcl -e 'inline PIR ".sub anon :anon\\ntrace 4\\n.end\\n"; parray' | |||
| # Back in sub 'tcl;&inline', env 80e6df8 | |||
| Object must be created by a class. | |||
| Infinoid | hmm | 02:59 | |
| Coke | so, not entirely helpful. which is why I was looking for something a little more targeted. | ||
| pmichaud | Coke: why trace 4 instead of trace 1? | ||
| Infinoid | brbrooks: mechwarrior on DS isn't bad | ||
| Coke | pmichaud: because at this point I'm just trying to narrow it down to a .sub? | ||
| running with "trace 1" now, but I expect this will take another 20m. | 03:00 | ||
| pmichaud | Coke: it's not 'tcl;&inline' ? | ||
| Coke | inline is the inline comand that turned on the trace. | ||
| Austin | Coke: Could that be the upvar confusing things? | ||
| pmichaud | oh, right. | ||
| Coke | trace 1 is running now, I'll leave it and hope for the best. | ||
| pmichaud | Coke: do you have a way of turning on trace 1 only after starting the parray stuff? | ||
| or is the error occurring before the parray processing? | 03:01 | ||
| Austin | Doesn't parray require an argument? | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "rakudo gc failure report, r40009" (20 lines) at nopaste.snit.ch/17229 | ||
| 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 | |
| austin:yes. | |||
| Austin | So this should be exercising only the first 2 or three lines, yes? | ||
| Coke | and that should autoload parray, invoke it, and give me my error about the wrong # of args. | ||
|
03:02
GeJ_ joined
|
|||
| pmichaud | summary for the nopaste -- as of r40009, Rakudo isn't exhibiting any errors that are -G related | 03:02 | |
| Austin | Coke: Does parray work if you pass it something? | 03:03 | |
| bacek | pmichaud: thanks a lot! | ||
| pmichaud | I'm not sure what the io error is, though. | ||
| Bisecting now. | |||
| Coke | Austin: mostly, yes. | 03:04 | |
| (pretty sure I have an extra newline in there somewhere) | |||
| Austin | So does this mean the problem lies in the scope of the "if {...}" at the top? | ||
| (plus maybe the upvar...) | 03:05 | ||
| Infinoid | Does anyone know what the current plan is with regards to the huge list of vtables we have? | 03:07 | |
| If we're still encouraging rampant expansion, I'd love to add some more to speed up common I/O operations | |||
| Coke | Infinoid: pretty sure it's | 03:08 | |
| "more of the same" | |||
| or, better put, "status quo" | |||
| Infinoid | great. I wasn't sure whether it was a limited resource (like ops) or not | ||
| Coke | .. wait, ops are limited resources? | ||
| 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. =-) | ||
| Infinoid | same here :) | ||
| 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 | |
|
03:10
patspam joined
|
|||
| 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. | ||
| Austin | Nopase the last 10 lines or so? | ||
| Did you try to catch the exception? | 03:12 | ||
| (Also, if -t1 is running on the same process as GDB, have you flushed the output?) | |||
| Coke | nopaste.snit.ch/17230 | 03:13 | |
| no, two separate instances. | 03:15 | ||
| 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 | ||
| you seem to be somewhat knowledgable about tcl. I'd be happy for another hacker. =-) | |||
| 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? =-) | ||
| Austin | But I remember thinking the up... functions were really cool. | ||
| No. | |||
| But a friend of mine was working for DEC before Compaq bought them, before HP bought them. | |||
| And they wrote their installers in tcl. | |||
| 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. =-) | ||
| 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)? | ||
| Coke | Infinoid: I hope so. =-) | ||
| checking. | |||
| purl | checking is, like, just different | ||
| Infinoid | no, checking is <reply> | 03:20 | |
| purl | okay, Infinoid. | ||
| Austin | checking. | ||
| checking... | |||
| checking | |||
| Infinoid | chiggida check | 03:21 | |
|
03:21
kid51 joined
|
|||
| Coke | Infinoid: surprisingly, yes. | 03:23 | |
| Austin | Next question: can you edit your trace call into parray.tcl? | ||
| (Start the trace after landing inside parray.) | 03:24 | ||
| bacek wrote mumbling mail about constants in Parrot... | |||
| Coke | Austin: Yes, I can do all this the hard way. =-) | 03:25 | |
| And I am. | |||
| That's not what I was asking in the beginning though. =-) | |||
| Austin | Sure. | ||
| But the trace stopping in open is suspicious. | |||
| Coke | I'm not sure I trust parrot's trace diagnostics there. I suspect it's not flushing the output. | 03:26 | |
| Austin | Any other opcode... | 03:27 | |
| You didn't override filehandle pmc with TclFilehandle, did you? | |||
| Coke | nope. | ||
| 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. | ||
| Austin | Okay. | ||
| Just me being out of date. | |||
| dalek | rrot: r40011 | jkeenan++ | branches/darwin2hints/config/init/hints/darwin.pm: Move some configuration information to %defaults. |
03:30 | |
| Austin | Riding that svn rev# pretty hard, aren't you? | 03:31 | |
| 39992 | 03:32 | ||
| Coke | it was "later than I needed" | ||
| whatever parrot happened to be when I last merged back a branch. | |||
| bacek | purl: next parrot release? | ||
| purl | next parrot release is scheduled begin of Nov ;-) | ||
| bacek | ouch... Useless bit | ||
| Coke | purl, forget next parrot release | ||
| purl | Coke: I forgot next parrot release | ||
| bacek | s/bit/bot/ | ||
| Coke | bit? | 03:33 | |
| purl | bit is either 0 or 1 | ||
| Austin | So does parray ever get reached? | ||
| Coke | shouldn't. | 03:34 | |
| purl | shouldn't is => undef be is => 'bare' to align with "normal" moose? | ||
| Coke | not the tcl source, anyway. | ||
| the wrapping parrot function should get invoked and then carp about the # of args. | |||
| (since we can't customize the "bad arguments" exception, we have to allow anything and then carp ourselves. | |||
| bacek | Who can add Parrot's release schedule to google calendar used on www.parrot.org? | ||
| Coke hides. | 03:35 | ||
| I'll do it. | |||
| cotto | Coke, it's a week from Tuesday. | ||
| bacek | purl: parrot next release is next release is 21 July 2009 | ||
| purl | OK, bacek. | ||
| cotto | bacek, testing purl for ltm? ;) | 03:36 | |
| bacek | heh :) | ||
| Coke | tuesday the 21st? | ||
| bacek | parrot next release? | ||
| purl | i heard parrot next release was next release is 21 July 2009 | ||
| bacek | Coke: looks like | 03:37 | |
| Coke | bacek: done | 03:38 | |
| bacek | Coke++ | ||
| Coke | no, parrot next release is 21 July 2009 | 03:39 | |
| purl | okay, Coke. | ||
| bacek failing to find difference | 03:41 | ||
| Coke | bacek : s/next release is/ | ||
| bacek | Ah! "was"/"is" | ||
| :) | |||
| Coke | no, you just duplicated the key. | ||
| I mean, was/is too, but that's not why I shortened it. | 03:42 | ||
| bacek | Yeah... Too much copy/pasting | ||
| dalek | rtcl: r527 | coke++ | trunk/runtime/tcllib.pir: Fix bug - map the String type properly in the _tcl HLL. |
03:44 | |
|
03:44
Andy joined
03:52
Theory joined
|
|||
| dalek | rrot: r40012 | jkeenan++ | branches/darwin2hints/t/steps/init/hints/darwin-01.t: More tests for corner cases. |
03:57 | |
|
04:31
Khisanth joined
04:49
Zak joined
|
|||
| cotto | mythryl? | 04:55 | |
| mythryl is mythryl.org/ | |||
| has anyone looked at that? | |||
|
05:02
Theory joined
|
|||
| Zak | Yes, cotto. It looks like ML with shell syntax. | 05:05 | |
| cotto | Zak, do you think it'd be worth learning as an ML-family language? | 05:14 | |
|
05:25
Ehtyar joined
|
|||
| Zak | cotto: It depends on why you want to learn it. | 05:42 | |
| 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. | |||
| cotto | It'd be more to learn a functional language than something ML-like. | 05:43 | |
| Zak | I'm rather fond of Clojure and Haskell. ML always felt a bit awkward to me. | 05:44 | |
| What languages are you currently comfortable with? | |||
| cotto | in the functional paradigm, none | 05:45 | |
| for procedural C, Perl, PHP (I know), Python | 05:46 | ||
| I did some functional programming in a college class, but not much since | |||
| Zak | You can do FP in Perl or Python. | 05:47 | |
| 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. | ||
| Tene | cotto: have you read Higher Order Perl? | ||
| cotto | Tene, about half-way through. It's amazing. | ||
| 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. | ||
| 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 | ||
| 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. | |||
| cotto | Haskell sounds nice (having gotten some publicity from Pugs). | 05:51 | |
| Can you recommend a good tutorial that introduces the concepts gently? | |||
| It's easy to find tutorials but also tricky to know which ones are worth pursing. | 05:52 | ||
| Maybe the O'Reilly book? | 05:53 | ||
| Zak | Learn you a Haskell is good, and very gentle. | 05:54 | |
| Real World Haskell is good (maybe a bit better), and slightly less gentle. | |||
| A Gentle Introduction to Haskell is not gentle. | |||
| cotto | That site reminds me of ypgtr | ||
| 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 / | ||
| Zak | There's also one where you write a Scheme interpreter in Haskell. | ||
| en.wikibooks.org/wiki/Write_Yoursel...rs/Parsing <-- not sure how good this is as an introductary tutorial, but it's a cool idea. | 05:56 | ||
| Err... drop the Parsing part from the URL. | 05:57 | ||
| cotto | I'll try to settle myself on Haskell. | ||
| Thanks for the tips. Zak++ | |||
| 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. | 05:59 | |
|
06:04
mikehh joined
|
|||
| Coke | note to self; when converting a while loop in C to PIR, don't forget to translate the trailing } to a goto. :| | 06:06 | |
| cotto | sounds like you had a very fast "loop" | 06:09 | |
| Coke | it finished quickly, ayup. | 06:13 | |
| I can't believe I'm translating this C /back/ into PIR (I translated it into C many moons ago.) | 06:14 | ||
| 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. | ||
| cotto | Do tell. We like craaazy new ideas. | 06:17 | |
| 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. | |||
| cotto | no | 06:19 | |
| Zak | Ok... this is going to take a bit of explaining then. | 06:20 | |
| In the languages that you're used to, classes can have methods. | |||
| cotto | yup | 06:21 | |
| so far, my eyes remain unglazed | |||
| Zak | When the runtime sees foo.bar(baz), it looks for a bar method for whatever class foo belongs to. | ||
| cotto | k | ||
| Is this similar to mmd? | |||
| Zak | With multimethods, classes do not have methods; functions do. To be specific, a subset of functions called generic functions do. | 06:22 | |
| mmd? | |||
| purl | rumour has it mmd is multi-method dispatch | ||
| Zak | Yes, looks like it. | ||
| Coke wishes again for a PIR formatter. | 06:23 | ||
| cotto: parrot has both multi-subs and multi-methods, IIRC. | |||
| 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. | ||
| cotto | Ok. that sounds a lot like what Perl6 does. | 06:25 | |
| afaiui | |||
| Zak | I've heard this somewhere. | ||
| cotto | which isn't very | ||
| chromatic posted a nice example that implements Paper, Rock, Scissors using that. | 06:26 | ||
| www.oreillynet.com/onlamp/blog/2008...lease.html | |||
| Zak | Clojure takes multimethods a step farther by allowing a user-specified dispatch function, so you could dispatch based on literally *anything* | 06:27 | |
| Usually, it's some characteristic of the arguments to your generic function, but it could be some bit of state or any combination... | |||
| 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:28 | ||
| 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 | ||
| time | |||
| 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. | ||
| cotto | You might head over there and ask. | ||
| I think perl6 has that too, but I forgot the term. | |||
| Coke | parrot supports overriding dispatch as well. | ||
| (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. | ||
| I should look up the email so I don't go misquoting him. | |||
| 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. | ||
| cotto | You could probably steal a lot from Rakudo. Everybody's doing it. | ||
|
06:34
davidius joined
|
|||
| 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" | ||
| And you can call &foo.unwrap( $cookie ) to remove that wrapper | 06:36 | ||
| Wrappers can be removed in a different order than they were applied, too | |||
| 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. | ||
| eternaleye, that's what i was thinking of. Thanks. | |||
| *I | 06:37 | ||
| Zak | eternaleye: that looks an awful lot like an around method. | ||
| Coke | (modify builtin functions) tcl wins. :| | 06:38 | |
| 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. | ||
| But in general, it sounds a lot like the sort of thing I want to do. What's method dispatch like? | 06:41 | ||
| 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 perlcabal.org/syn/ - they are the official spec, and I don't think I fully understand them yet | 06:44 | |
| dalek | rtcl: r528 | coke++ | trunk/ (5 files): Convert TclString's getListValue method from C to PIR. |
06:45 | |
| 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:47 | |
| 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:48 | |
| 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:50 | |
| It would also probably be mostly functional and look like Lisp. | 06:51 | ||
| cotto | My impression is that there are only a handful of languages that *aren't* smaller than Perl 6. ;) | 06:53 | |
| Firefox is disturbingly crashy of late. | |||
| 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. | 06:56 | |
| dalek | rtcl: r529 | coke++ | trunk/library/init.tcl: remove accidentally committed debug output |
07:05 | |
|
07:10
chromatic joined
|
|||
| cotto | time for sleep | 07:11 | |
| Coke | chromatic: kon ban wa | ||
| cotto | night all | ||
| Coke | someone should throw our JS implementation at code.google.com/p/sputniktests/wiki...ingSputnik | 07:17 | |
|
07:47
iblechbot joined
07:49
mokurai left
08:31
Ryan52 joined
08:53
barney joined
09:26
MoC joined
09:33
mikehh_ joined
|
|||
| mikehh | All tests PASS (pre/post config, smolder, fulltest) at r40012 - Ubuntu 9.04 amd64 | 09:55 | |
|
09:58
iblechbot_ joined
10:11
mikehh joined
11:51
Whiteknight joined
|
|||
| Infinoid | good morning | 11:53 | |
| purl | And good moroning to you, Infinoid. | ||
| 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 | ||
| are pipes working? | |||
| Infinoid | I haven't committed it yet | 11:55 | |
| 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 | |||
| 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 | ||
| ...other than converting all these METHODs to VTABLEs, I guess | |||
| 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 | ||
|
11:57
masak joined
|
|||
| Infinoid | so there is a definite difference between what's "right" and what's "fast", and it is confusing me :) | 11:58 | |
| Whiteknight | ok | ||
| why do you want to push functionality into Handle? | 11:59 | ||
| why not have that functionality in src/io/api.c or src/io/filehandle.c? | |||
| Infinoid | because things like buffering, basic I/O and all of that are not in any way file-specific | ||
| they apply equally well to sockets, pipes and ttys | 12:00 | ||
| the only ATTRs I left in filehandle.pmc were for the filename and seek position | 12:01 | ||
| the rest of the functionality is generally applicable and so I pushed it down into handle.pmc | 12:02 | ||
| Whiteknight | okay, I had done a lot of work like that before, but was doing it for a different reason | 12:04 | |
|
12:06
bacek joined
|
|||
| Infinoid | anyway, the features need to be at the Handle layer, but the code doesn't | 12:07 | |
| bacek waves from future | |||
| Infinoid | so now I have to undo some of the code movearound | ||
| hi bacek | |||
| bacek | hi Infinoid | ||
| Infinoid: git rebase -i HEAD~10 for undoing something is quite handy :) | |||
| 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 :) | ||
| the end result is that the ATTRs move and the methods move, but the backend API will stay more or less intact | 12:10 | ||
| and I'll be renaming a bunch of Parrot_io_*_filehandle() functions to Parrot_io_*_handle() | |||
| bacek | Hey! You've lost kittens! | ||
| Infinoid chews inconspicuously | 12:11 | ||
| Whiteknight | nice | ||
| 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:12 | |
| bacek | Whiteknight: how hard it will be to implement generational GC for parrot? For average developer? | 12:15 | |
| Whiteknight | I really don't know to be honest. | 12:17 | |
| bacek | How that? | 12:18 | |
| bacek just lost last hope... | |||
| Infinoid | we're talking about generational mark & sweep, right? | 12:27 | |
| bacek | Infinoid: for simplicity sake - yes | 12:28 | |
| 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:29 | |
| 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:30 | ||
| and then you'd only have to do partial mark, but still full sweep. Does that seem sane? | 12:31 | ||
| 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 | ||
| uh, s/collector/copying collector/ | |||
| bacek | Just save "collection" in PObj. | 12:33 | |
| In "mark" don't call VTABLE_mark for older PMCs | |||
| Infinoid | or don't call them as often... | 12:34 | |
| minefield GC: only mark some PMCs, at random, but still do full sweep | 12:35 | ||
| 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 | ||
| bacek | Parrot's GC with constant pool: You'll spend ~10-12 hours trying to understand why Rakudo crashing :/ | 12:38 | |
| 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"... | ||
| Infinoid | hmm, that's an interesting way of looking at it | 12:40 | |
| bacek | It's pretty accurate technical description of constant PMCs. | 12:41 | |
| 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/ | ||
| They can be changed | |||
| They can be swept. | |||
| But they still "alive" | |||
| Infinoid | ok, so it really means "zombie" or "tenured" or "immortal" | 12:43 | |
| bacek | And dead children falling from their dead bodies | ||
| Whiteknight | so colorful | 12:44 | |
| bacek | Hey! It's called tracing_children! | ||
| 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 | ||
| Infinoid | yeah. the GC code definitely has some API layering issues | ||
| Whiteknight | the MemoryPool management and compacting functions especially are terrible | 12:46 | |
| dalek | rrot: r40013 | whiteknight++ | trunk (7 files): [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 | |
| Whiteknight | they're very closely tied in to the MS collector, and can't really be reused for anything else | ||
| bacek | Huh. "compacting"??? | ||
| Whiteknight | the STRING pools are managed by a separate collection/compacting facility in src/gc/alloc_resources.c | 12:49 | |
| which is a nightmare of premature optimization and messy pointer logic | |||
| 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 | rrot: r40014 | whiteknight++ | trunk/src/gc/gc_inf.c: [gc] add a little bit more documentation to the gc_inf core explaining how to activate it |
||
| bacek | omg... Why I even open this file??? | 12:52 | |
|
12:53
riffraff joined
|
|||
| Whiteknight | what file? | 12:57 | |
| oh, alloc_resources.c? Yeah, it's a beast | |||
| but it "works", so long as you don't change anything or try to add a new GC core, or anything like that | 12:59 | ||
| 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:24 | |
| according to svn blame, I should talk to either simon, tewk or Infinoid. | 13:25 | ||
| Infinoid | hi, masak. trac.parrot.org/parrot/changeset/34947/ looks suspiciously like what you're after | 13:29 | |
| dalek | rrot: r40015 | whiteknight++ | trunk/src/gc/gc_inf.c: [gc] add some more helpful documentation to gc_inf to explain what each function is used for |
13:30 | |
| masak | Infinoid: hi. since I tried to change password for the trac page, it only gives me redirect loops. :/ | ||
| NotFound | Whiteknight++ | ||
| Whiteknight | bacek: it might be interesting to implement immutable strings like .NET and Java have, for performance and simplicity | ||
| 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 | ||
| make that get_PConfig() | |||
| masak | oki. | ||
| NotFound | Now that we have the infinite memory model we just need to invent the NaN memory model X-) | ||
| Infinoid volunteers to implement the nomemory model (doesn't successfully allocate, ever) | 13:32 | ||
| pmichaud | good morning, #parrot | 13:33 | |
| Infinoid | hi pm | 13:37 | |
| pmichaud | something broke Rakudo sockets in 32-bit; bisecting now | 13:38 | |
| Infinoid is pretty sure it wasn't him, as he's only breaking the io_cleanups branch | 13:40 | ||
| 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:41 | ||
| masak | if someone would be so kind as to commit these bitrot fixes to the DBDI example: gist.github.com/145637 | 13:43 | |
| Whiteknight | no, I was just trying to make sure a Handle wasn't created directly from PIR | 13:44 | |
| pmichaud | masak: committing | 13:51 | |
| purl | committing is so much effort! | ||
| masak | purl: no, committing is <reply> | ||
| purl | okay, masak. | ||
| pmichaud | looks like a typo in the patch, though | 13:52 | |
| + PERL6LIB=../../languages/rakduo $(PERL6) t/test.p6 | |||
| Whiteknight | committing? | 13:53 | |
| pmichaud | also, I'm getting an error when applying the patch | 13:54 | |
| hmmm. | |||
| masak | I got an error too. | ||
| pmichaud | oh, it's the tabs | 13:55 | |
| they seem to get lost in github | |||
| masak | :/ | ||
| pmichaud | or at least when I copy/paste them | ||
| checking | |||
| masak | they can be seen through some raw mode, IIRC. | ||
| pmichaud clicks "raw" | |||
| ah, that fixes it. | 13:56 | ||
| dalek | rrot: r40016 | pmichaud++ | trunk/ext/SQLite3 (2 files): [examples] Some patches to avoid bitrot from masak++ . |
13:57 | |
| masak | ok, so next problem: gist.github.com/145641 | 13:59 | |
| pmichaud: you don't get this error when you run 'make'? | |||
|
13:59
Andy joined
14:02
kid51 joined
|
|||
| pmichaud | masak: I didn't test it :-| | 14:06 | |
| 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 :-| | ||
| let's see if I can get something going on my other system | |||
| masak | oki, no rush. | 14:08 | |
| just curious to see if I can get the DBDI module working again. | 14:09 | ||
| dalek | rrot: r40017 | jkeenan++ | branches/darwin2hints (2 files): Refactor some code into internal sub _add_to_flags(), then write tests for it. This handles some more edge cases. |
14:10 | |
| Coke_zzz | Infinoid: hey, once you're doing making pipes work, you want to tackle them for partcl? =-) | 14:18 | |
| 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 | |||
| 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 | |||
| Coke | Infinoid: oh, mainly just a translation of the syntax here: www.tcl.tk/man/tcl8.5/TclCmd/exec.htm | 14:21 | |
| 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() | ||
| 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 | ||
| and reuse code where appropriate | |||
| 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 | ||
| does tcl support the handle redirection syntax on win32? | 14:25 | ||
| it looks like it's designed to just hand it off to the shell | |||
| NotFound | The stderr part will not be so hard, I think. | ||
| 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. | ||
| Infinoid | Right now we call dup(), which is like playing whack-a-mole. The stdout stuff will miss if stdin was closed | ||
| Parrot_dup2() was a minor addition, but at some point I needed to minimize the number of yaks I was shaving | 14:27 | ||
| s/was/should be/ | |||
| Coke | bah. something broke tcl's dispatch to shell anyway. :| | 14:29 | |
| (now ls gives: "Object must be created by a class"...) | |||
| pmichaud | masak: I get the same error as you. I have no idea what it means, or where it's coming from. | 14:30 | |
| 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 | ||
| ls | |||
| masak | aye. | 14:32 | |
| pmichaud | Looks like r39993 is the one that broke t/spec/S32-io/IO-Socket-INET.t in Rakudo (32-bit) | 14:42 | |
| *why* that breaks it, I have no idea. | 14:43 | ||
| Whiteknight | that's very weird | 14:45 | |
| pmichaud | I've confirmed it twice -- r39992 passes, r39993 fails. And only on 32-bit kubuntu. | 14:46 | |
| 64-bit it passes. | |||
| Coke sighs, as his recent conversion of C to PIR seems to have missed some edge cases in the spectests. | 14:55 | ||
| Whiteknight | pmichaud: and the only new test failure is in the sockets test? | 14:59 | |
| dalek | TT #828 created by whiteknight++: Separate out GC String Core | 15:01 | |
|
15:01
davidfetter joined
|
|||
| NotFound | $ perl t/harness t/spec/S32-io/IO-Socket-INET.t | 15:07 | |
| t/spec/S32-io/IO-Socket-INET....ok | 15:08 | ||
| All tests successful. | |||
| purl | ship that sucker | ||
| NotFound | Ubuntu 9.04 i386 | ||
| moderator | www.parrotcode.org/ | 15:11 | |
| 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:16 | |
| 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. | ||
| (with r40017) | |||
| retesting | 15:19 | ||
|
15:23
bacek joined
15:27
AndyA joined
|
|||
| 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
|
|||
| 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:40 | |
| dalek | rrot: r40018 | jkeenan++ | trunk/MANIFEST: Somebody forgot to update the MANIFEST. |
15:41 | |
| kid51 is out of coffee filters | |||
| kid51 thought he had a lifetime supply | |||
| What does this say about my life expectancy? | 15:42 | ||
| Infinoid | Coffee must be good for you | ||
| Coke needs to go brew another pot, danke for the reminder. | 15:44 | ||
| dalek | rrot: r40019 | jkeenan++ | branches/darwin2hints/config/init/hints/darwin.pm: Add documentation to package. |
16:00 | |
|
16:05
Psyche^ joined
16:26
Theory joined
|
|||
| dalek | rrot: r40020 | jkeenan++ | branches/darwin2hints/lib/Parrot/Test.pm: Correcting some hard tabs (coding standard error) inherited when branch was |
16:43 | |
|
16:56
chromatic joined
17:03
kid51 joined,
ruoso joined
|
|||
| moritz | re | 17:13 | |
|
17:33
mokurai joined
|
|||
| dalek | kudo: 38a7fea | moritz++ | src/setting/List.pm: List.rotate ... "suboptimal" |
17:40 | |
| kudo: 08928df | moritz++ | t/spectest.data: [t/spectest.data] run split.t; restore alphabetical order |
|||
| kudo: d6f9537 | moritz++ | src/setting/Any-str.pm: :all flag for Str.split |
|||
| kudo: 4403ec7 | moritz++ | t/spectest.data: test Array.rotate |
|||
|
17:44
einstein joined
|
|||
| einstein | hi | 17:47 | |
| i have got some question about the nqp language | |||
| 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 | |||
| 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 | |||
| moritz | einstein: I think pmichaud does... maybe send an email to the list? (parrot-dev@lists.parrot.org) | 17:48 | |
| sounds like a cool idea btw | |||
| 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 | 17:52 | |
| moritz | working code is always welcome ;-) | 18:03 | |
| NotFound | The alarm dynop has been deleted? | 18:32 | |
| Coke | NotFound: yes. | 18:57 | |
| it was in a file schedule for deletion since post 1.1 | 18:58 | ||
| "scheduled" | |||
| NotFound | Coke: the I suppose we can close all tickets realted to it ;) | ||
| Coke | if it needs to be saved, it can be resurrected. | ||
| but yah; I'd just close the other tickets and refer to the tt that removed it. | 18:59 | ||
| dalek | kudo: 0bca00c | masak++ | (3 files): implemented skeletal Buf type adds stubbed .encode and .decode methods to Str and Buf, respectively. |
19:02 | |
|
19:10
Whiteknight joined
|
|||
| dalek | kudo: d9bf358 | masak++ | t/spectest.data: [spectest.data] added t/spec/S32-str/encode.t |
19:20 | |
| jdv79 | einstein: you could put it up somewhere; gitub maybe. | 19:28 | |
| einstein | later this week i probably will put it up somewhere when i have added some more items | 19:32 | |
| dalek | rrot: r40021 | NotFound++ | trunk/src/thread.c: [cage] avoid a 'might be clobbered' warning by declaring the variable volatile |
19:35 | |
| kudo: f55d489 | moritz++ | src/builtins/any-list.pir: make one-item List.pick() return a scalar it only stores a single scalar. Since we don't have captures at the moment, this seems to be a sensible workaround for people using the result of @numbers.pick as array index. tann++ for bringing this to our attention again. |
19:37 | ||
|
19:42
szabgab joined
|
|||
| dalek | rrot: r40022 | NotFound++ | trunk/compilers/imcc (2 files): [cage] avoid some 'might be clobbered' warnings in imcc by declaring the variables volatile |
19:45 | |
| mikehh | Whiteknight: src/gc/gc_inf.c is causing codetest and manifest_tests failures | 20:12 | |
| Whiteknight | ah, i did forget to add it to the manifest | 20:15 | |
| NotFound | This was not fixed some commits ago? | ||
| parrot: r40018 | jkeenan++ | trunk/MANIFEST: | 20:16 | ||
|
20:23
chromatic joined
|
|||
| NotFound | luanumber.pmc has several unitialized const variables. | 20:30 | |
| mikehh | Whiteknight: sorry that was codetest and distro_tests | 20:31 | |
| Whiteknight | okay, let me look at it | 20:32 | |
|
20:32
kid51 joined
|
|||
| mikehh | I think the one test is duplicated in codetest and distro_tests | 20:33 | |
| t/distro/file_metadata.t | 20:35 | ||
| purl | t/distro/file_metadata.t is sad | ||
| NotFound | Uh, I don't understand why compiling C that problem is not warned | 20:36 | |
| s/C/with C | |||
| kid51 | mikehh Can you make a recommendation (e.g., TT) as to which one it should be in? | ||
| NotFound | Ah, yes, with C++ I was using --optimize | 20:37 | |
| 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:41 | |
| Notfound: do you find there is much difference compiling with g++ rather than gcc | 20:48 | ||
| NotFound | mikehh: it helps catch problems | 20:49 | |
| dalek | rrot: r40023 | whiteknight++ | trunk/src/gc (2 files): [gc] fix some codetest failures in the new file |
||
| mikehh | I was wondering - I haven't tried it - maybe I should | 20:50 | |
|
20:50
davidius joined
|
|||
| ttbot | whiteknight: Parrot trunk/ r40023 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/48933.txt | 20:50 | |
| mikehh | is there much difference with the generated code? | ||
| or any? | |||
| purl | i heard any was being done as a particular language feature | ||
| kid51 has coffee filters (5 hours later) | |||
| NotFound | mikehh: just use: perl Configure.pl --cc=g++ --cxx=g++ --link=g++ --ld=g++ | 20:51 | |
| mikehh | I'll give it a try | 20:52 | |
| 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. | ||
| kid51 | But on Linux/i386, I just use perl Configure.pl | ||
| mikehh | I nearly always add --optimize --test | ||
| 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 | ||
| s/let/let me check / | 20:55 | ||
| kid51 | NotFound: I add those options. When I was a Parrot noob I was having a lot of problems compiling. | 20:56 | |
| Coke showed me those options. It worked. It continues to work. So, out of force of habit, I continue on. | |||
| Whiteknight | I use a bunch of configure options now | 20:57 | |
| kid51 | I once made the mistake of trying to compile my own GCC | ||
| biiiig mistake | |||
| mikehh | he he - took me a whole day | ||
| kid51 | yup | ||
| 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. | ||
| Fortunately, at some point Apple upgraded Developer's Tools to include a gcc 4. I had been using gcc-3.3. | |||
| 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 | ||
| dalek | rrot: r40024 | whiteknight++ | trunk/src/gc/gc_inf.c: [gc] Actually fix errors, and avoid build errors. Whiteknight-- |
||
| mikehh | well let's see what happens | 21:00 | |
|
21:06
dukeleto joined
21:16
mtk joined,
mtk left
|
|||
| dalek | rrot: r40025 | jkeenan++ | branches/darwin2hints/t/steps/init/hints/darwin-01.t: Write test for one last condition. |
21:19 | |
|
21:22
mtk joined,
mtk left
|
|||
| mikehh | whiteknight: it's a sort of bootstrap build - it's incremental - it recompiles itself a few times | 21:25 | |
| Whiteknight | oh, wow | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "c++ fixes for lua" (350 lines) at nopaste.snit.ch/17231 | 21:34 | |
| 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:38 | |
| dalek | rrot: r40026 | NotFound++ | trunk/src/gc/gc_inf.c: [cage] metadata fixes |
21:43 | |
| NotFound | mikehh++ | ||
| Whiteknight | yeah, I need to do that after dinner | 21:44 | |
| 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
|
|||
| dalek | TT #830 created by gerd++: [PATCH] Configure.pl disable-rpath option | 21:49 | |
| rrot: r40027 | NotFound++ | trunk/src/gc/gc_inf.c: [cage] fix Id tag |
21:50 | ||
| moritz | 'make test' is all clean on latest parrot with latest clang+llvm | 21:52 | |
| (without libgmp, that is) | 21:53 | ||
| 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:05 | |
| Fixing this, a lot more of test can pass. | 22:06 | ||
| dalek | rrot: r40028 | Infinoid++ | branches/io_cleanups/src/pmc/pipe.pmc: Pipe needs a destroy function to free its attr structure. |
22:13 | |
| rrot: r40029 | Infinoid++ | branches/io_cleanups/src/pmc (5 files): Push FileHandle's flags, mode and encoding attrs into the base Handle class. |
|||
| rrot: r40030 | Infinoid++ | branches/io_cleanups (2 files): Convert open()'s pipe handling to return a PipeHandle object. |
|||
| rrot: r40031 | Infinoid++ | branches/io_cleanups (9 files): Pipehandle needs some extra infrastructure to clean up child processes properly. |
|||
| rrot: r40032 | Infinoid++ | branches/io_cleanups/src (3 files): Push buffering down into the Handle layer. Seek positions are passed through isn't possible to make seekable subclasses yet.) |
22:14 | ||
| rrot: r40033 | Infinoid++ | branches/io_cleanups/src/io/unix.c: Handle closed stdin/stdout/stderr on UNIX. |
|||
| NotFound | Infinoid: Are you hungry of karma? ;) | ||
| 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 nopaste.snit.ch/17232 | 22:15 | |
| "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 nopaste.snit.ch/17233 | |||
| Infinoid | No, I just won't have any more parrot time for a while, so I decided to flush out the queue. | ||
| 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 | ||
| Whiteknight | NotFound: that's not a "problem" because it's a known behavior and I'm not fixing it | 22:18 | |
| the core doesn't keep track of pointers in order to destroy them later | |||
| NotFound | Whiteknight: failed to check a close has caused us problems before. | ||
| Whiteknight | so it doesn't make sense to think that we would be able to finalize any PMCs | 22:19 | |
| NotFound: it's not a production core. It's not intended to be used for anything besides a demonstration | |||
| It's just a template for people to follow to make "real" cores later | |||
| 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 | ||
| it is just a teaching tool | |||
| 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 | ||
| mikehh | All tests PASS (pre/post config, smolder, fulltest) r40027 - Ubuntu 9.04 amd64 (built with g++) | 22:25 | |
| NotFound | Ooooops | 22:26 | |
| mikehh | sounds ominous | 22:27 | |
| dalek | rrot: r40034 | NotFound++ | trunk (2 files): [TGE] check the closing of output file |
||
|
22:27
dukeleto joined
|
|||
| NotFound | Please wait... | 22:28 | |
| dalek | rrot: r40035 | NotFound++ | trunk/include/parrot/settings.h: Revert accidental change of default GC |
22:30 | |
| Whiteknight | yay! I just built Parrot with clang/llvm | 22:32 | |
|
22:32
darbelo joined
|
|||
| NotFound | Ooooops solved | 22:34 | |
|
22:35
bacek joined
22:36
rg joined
|
|||
| Whiteknight | yeah, we don't want to accidentally set INF to be the default | 22:43 | |
| dalek | rrot: r40036 | whiteknight++ | trunk/PLATFORMS: [PLATFORMS] update platforms, amd64-gcc4.3.3 and amd64-clang |
22:44 | |
| rrot: r40037 | jkeenan++ | branches/darwin2hints/t/steps/init/hints/darwin-01.t: Set correct plan for testing. |
22:47 | ||
| NotFound | Whiteknight: what do you thing about the t/op/string.t failure with the GCIM | 22:51 | |
| ? | |||
| Whiteknight | GCIM? | ||
| NotFound | GC Infinite Memory | ||
| Whiteknight | oh, right | ||
| i didnt know that one was failing | |||
| no wait, I knew about it | 22:52 | ||
| NotFound | The collect opcode is erasing a string | ||
| Whiteknight | yeah, the string handling stuff is a goddamn mess | 22:55 | |
| 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 | ||
| Whiteknight | it's probably down again | 22:57 | |
| it goes down pretty often unfortunately | |||
| mikehh | it's been pretty good until today - for the last couple of weeks - maybe it's maintenance time | 22:58 | |
| dalek | rrot: r40038 | allison++ | trunk (2 files): [install] Install install_config.o as parrot_config.o in the installed |
23:01 | |
| rrot: r40039 | allison++ | trunk/tools/dev/pbc_to_exe.pir: [install] Change pbc_to_exe to use configured paths for accesing lib/ |
23:04 | ||
| NotFound | The other test failures with the GCIM looks reasonable. | 23:07 | |
| dalek | kudo: d153cdc | pmichaud++ | src/classes/Num.pir: Clean up Num.succ and Num.pred, which were infinite looping. |
23:13 | |
| kudo: 4024702 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to take advantage of latest gc cleanups. |
|||
| NotFound | I'm going to test if I can build rakudo with the GCIM | 23:15 | |
|
23:16
zak_ joined
|
|||
| NotFound | It builds and pass tests. Amazing. | 23:19 | |
| nopaste | "mikehh" at 86.148.252.18 pasted "building with gcc vs g++" (15 lines) at nopaste.snit.ch/17235 | 23:23 | |
| dalek | rtcl: r530 | coke++ | trunk/ (2 files): Fix a bug in list to string shimmering. to make sure we don't regress. (Noticed the failures running the spectests.) |
23:25 | |
| mikehh | NotFound++ | ||
| NotFound | A lot of spectest are passing, but I must kill it because it eats lots of memory | 23:26 | |
| mikehh | I think I will give it a try - maybe tomorrow - must set it up | 23:27 | |
| jdv79 | why is json in compilers and not languages? | 23:33 | |
| whoppix | jdv79, what? | 23:34 | |
| oh, you mean on parrot.org? | |||
| jdv79 | in trunk | 23:35 | |
| whoppix | ah. | 23:36 | |
| dalek | cnum-dynpmcs: r105 | darbelo++ | trunk/ (10 files): Put all the Makefile.in templates in the 'cfg' directory, use the 'build' |
23:42 | |
| rtcl: r531 | coke++ | wiki/ParrotIssues.wiki: This parrot bug has been resolved. |
23:45 | ||
| darbelo is resisting the urge to rewrite those bloody makefile templates. | 23:46 | ||
| Coke | nothing is really in languages/ anymore. | 23:52 | |
| compilers/ was always more of a "languages that ship with parrot" dir. | 23:53 | ||
| dalek | rtcl: r532 | coke++ | trunk/config/ (2 files): Re-enable build of 'tclsh' |
23:55 | |
| cnum-dynpmcs: r106 | darbelo++ | trunk/cfg/Makefile.in: Oops. Forgot to clean up the build dir. |
23:57 | ||