|
Please mentor for SoC | parrotcode.org/ | YAPC::NA talks deadline is Sat Mar 15 | tinyurl.com/2pmnlq Set by moderator on 8 March 2008. |
|||
| Coke | purl, msg chromatic If I'm not here at parrot-sketch-thirty, feel free to run the meeting. | 00:53 | |
| purl | Message for chromatic stored. | ||
| kid51 | Coke: Can you discuss YAPC at parrotsketch (assuming you're there): www.nntp.perl.org/group/perl.perl6....43704.html | 00:56 | |
| shorten | kid51's url is at xrl.us/bhhgh | ||
| Coke | Sure. I'll write up a report, even if I'm not there. | 00:58 | |
| kid51 | Thanks. | 01:02 | |
| svnbotl | r26302 | chromatic++ | trunk: | 01:24 | |
| : [src] Sped up parrot_mark_hash() by around 13%. This is a minor gain, but a | |||
| : few minor gains in GC pay off over time. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26302 | |||
| r26303 | chromatic++ | trunk: | 01:30 | ||
| : [GC] Sped up Parrot_dod_sweep() by about 13% by some minor code reorganization. | |||
| : I also removed the assertion, as it doesn't make any sense there and was | |||
| : leftover debugging code I accidentally checked in a while back. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26303 | |||
|
01:31
Ademan joined
|
|||
| svnbotl | r26304 | chromatic++ | trunk: | 01:49 | |
| : [GC] Sped up compact_pool() by about 5%. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26304 | |||
| r26305 | chromatic++ | trunk: | 02:03 | ||
| : [src] Sped up get_new_pmc_header() by about 6%. This meant moving an exception | |||
| : check from get_new_pmc_header() to new_pmc_header(). The latter never returns | |||
| : NULL anyway, so there's no reason to check its return value for NULL in the | |||
| : former. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26305 | |||
|
02:13
Psyche^ joined
02:18
kid51 joined
|
|||
| svnbotl | r26306 | chromatic++ | trunk: | 02:22 | |
| : [oops] Reverted changes accidentally included in r26305. In particular, the | |||
| : test changes don't make any sense until the PDD 17 branch lands. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26306 | |||
|
02:31
jhorwitz joined
|
|||
| davidfetter waves to jhorwitz | 02:50 | ||
| jhorwitz migrates a database with one hand and waves with the other | 02:51 | ||
| jhorwitz needs a third hand | |||
| davidfetter | heh | 02:52 | |
| migrating it from what to where? | |||
| jhorwitz | moving a mysql db from one server to another | ||
| davidfetter | k | ||
| jhorwitz | in other words, i'm copying files. :-P | ||
| davidfetter | yeah, that's their paradigm | 02:53 | |
| there are others ;) | |||
| jhorwitz | i miss those... | ||
| davidfetter: how goes things? | 02:56 | ||
| davidfetter | oops | 03:05 | |
|
04:28
Theory joined
|
|||
| svnbotl | r26307 | allison++ | pdd17pmc: | 04:47 | |
| : [pdd17pmc] Bringing the pdd17pmc branch up-to-date with trunk r26306. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26307 | |||
|
05:00
x___ joined
06:26
teknomunk joined
07:18
katie_d joined
07:22
uniejo joined
08:07
iblechbot joined
08:29
AndyA joined
|
|||
| svnbotl | r26308 | fperrad++ | pdd17pmc: | 08:51 | |
| : [Lua] | |||
| : - fix tonumber() & tobase() in PMC LuaString | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26308 | |||
| Tene looks for documentation on parrot io layers in an attempt to understand open() in parrotio.pmc | 09:17 | ||
|
09:21
kj joined
09:38
ruoso joined
10:23
svnbotl joined
|
|||
| lathos | allison++ # PMC merge | 10:31 | |
|
11:14
rdice joined
11:38
kj joined
|
|||
| cognominal | jonathan? | 11:55 | |
| purl | i heard jonathan was at jnthn@jnthn.net or Jonathan Worthington or the dotnet guy or c, according to coke | ||
|
12:09
Coke joined
12:12
iblechbot joined
|
|||
| Coke notices that he doesn't have an email for r26308. That's going to take a whle to percolate through... | 12:28 | ||
| svnbotl | r26311 | fperrad++ | trunk: | 12:33 | |
| : [Lua] | |||
| : - fix merge | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26311 | |||
|
12:41
kj joined
|
|||
| Coke | allison: ping | 12:52 | |
| pmichaud: ping | 12:57 | ||
|
13:01
gryphon joined
13:21
rhr joined
13:28
katie_d joined
13:34
skids joined
|
|||
| svnbotl | r26312 | coke++ | trunk: | 13:47 | |
| : [tcl] | |||
| : The target we were aiming for has been released; simplify the docs. | |||
| : Eliminate the trial {expand} syntax: now only spelled {*}. | |||
| : {*} was broken some time back and still needs fixing. | |||
| Coke | someone verify my time math, #PS (1830 UTC) is at 1430 EDT? | 13:53 | |
| lathos | Yes. | 14:06 | |
| simon@forty-five ~ % TZ=US/Eastern date | 14:07 | ||
| Tue Mar 11 10:06:53 EDT 2008 | |||
| simon@forty-five ~ % TZ=UTC date | |||
| Tue Mar 11 14:06:55 UTC 2008 | |||
| kj | Coke: i'll be gone at #ps time; shall I pm you my report? | ||
| Coke | kj: Go ahead and just post it into the channel. | 14:08 | |
| kj | oki | ||
| Coke | lathos: danke. I did not think of that obvious solution. | 14:30 | |
| Coke wanders away to find more koohii | |||
|
14:34
jhorwitz joined
|
|||
| particle hands jhorwitz an old arm he's not using anymore | 14:39 | ||
| jhorwitz grabs his welding tools | 14:40 | ||
|
14:45
po_boy joined
|
|||
| svnbotl | r26313 | coke++ | trunk: | 14:50 | |
| : [tcl] | |||
| : Note to self: when removing a syntax, remove all *uses* of the syntax | |||
| : as well. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26313 | |||
| lathos | I have an ARM, but still no cross-compiling Parrot. | ||
| PerlJam | lathos: what about miniparrot? | 14:53 | |
| Coke | miniparrot isn't very | 14:54 | |
| particle | the problem is the config system | ||
| PerlJam | assuming the idea behind miniparrot is to get parrot with "just" a C compiler, then miniparrot becomes a good bootstrap path | 15:01 | |
|
15:01
peeps[work] joined
|
|||
| Coke | Anyone bored? Tcl is having a PAST issue that could use some tender care. =-) | 15:06 | |
| svnbotl | r26314 | coke++ | trunk: | 15:09 | |
| : [tcl] | |||
| : Shave about 0.2s off each invocation of source lib/test_more.tcl when running | |||
| : against a partcl test. (as opposed to one of the 8.5 tests) | |||
| : (Defer loading of 'what to skip' unless we actually care.) | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26314 | |||
|
15:09
davidfetter joined
|
|||
| svnbotl | r26315 | jkeenan++ | trunk: | 15:34 | |
| : Applying most recent (Mar 10 2008) patch submitted by Matt Kraai in rt.perl.org/rt3/Ticket/Display.html?id=51300. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26315 | |||
| r26316 | coke++ | trunk: | 15:53 | ||
| : [tcl] | |||
| : "Resolve" RT #45659. | |||
| : Avoid auto-morph using evil hack, which: | |||
| : * allows us to reclaim some TODO'd tests... | |||
|
16:04
cotto_work joined
16:10
iblechbot joined
16:27
teknomunk_ joined
16:39
cosimo joined
16:41
marmic joined
16:50
mj41 joined
|
|||
| Coke | svnbotl, why do you hate america? | 16:53 | |
| (trimming log msgs) | |||
|
17:07
Theory joined
|
|||
| spinclad makes witty distinction between america and Perl 6 | 17:11 | ||
| svnbotl gets throttled after 5 or 6 lines -- sleeping between lines not working yet, it seems | 17:14 | ||
| davidfetter picks an irreverent track from the "team america: world police" soundtrack | |||
| cognominal | can obama win against mac cain. Is he able to change anything? | ||
| spinclad | re able to change: yes, same as anyone else | 17:17 | |
| cognominal | with a venal congress? | 17:18 | |
| may be he could take lessig as an adviser | 17:19 | ||
| spinclad declines this debate | 17:20 | ||
| cognominal | :) | 17:21 | |
| Tene | parrotio.pmc doesn't have a set_pmc() function. | ||
| I'm trying to implement some IO stuff for rakudo, and trying to go about it in the same way I see the other builtins in src/classes/*.pir working | 17:22 | ||
| That is, subclass an existing pmc | |||
| Coke | what would set_pmc do there? | 17:24 | |
| Or is this just some boilerplate that needs set_pmc ? | |||
| Coke looks at the one of those pir files. | 17:25 | ||
| pmichaud | alas, I will probably miss #parrotsketch again this week | 17:26 | |
| Coke | pmichaud: no problemo. If you have a report, feel free to paste it in. | ||
| Tene | purl: pastebin | ||
| purl: nopaste | |||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating | ||
| pmichaud | my report is simply that I worked on closing out old tickets, especially RT#48028 (converting P6Regex to Perl6Regex) | ||
| nopaste | "tene" at 166.70.38.237 pasted "open()" (8 lines) at nopaste.snit.ch/12470 | 17:27 | |
|
17:28
rgrjr joined
17:29
rdice joined
|
|||
| Tene | With 'List' being set up as a subclass of ParrotIO | 17:36 | |
| pmichaud | do the synopses discuss Perl 6 IO yet? | 17:42 | |
| PerlJam | pmichaud: I don't think so (other than to say such a built-in class exists) | 17:43 | |
| Coke | tene: OOC, have you done an update since the pdd17 merge? | 17:44 | |
| TimToady | there's a draft of S16 in pugs/docs/Perl6/Spec/IO.pod | ||
| pmichaud | ah | ||
| follow the draft :-) | |||
| TimToady++ | |||
| TimToady | I am unlikely to make the phone call tomorrow, btw | 17:45 | |
| Tene | Coke: no, not yet. I should. | ||
| TimToady | having tranfusions later today, and endoscopy sometime tomorrow, most likely | ||
| particle | TimToady: good to know, i'll make sure it gets relayed | ||
| pmichaud | I will probably miss it also -- I forgot about the time change when scheduling this week | ||
| TimToady | particle: thanks | 17:46 | |
| pmichaud | (I didn't forget about the time change for parrotsketch, but did for the call) | ||
| particle | if you put the phone on mute, we can minute the endoscopy | ||
| Coke | <shudder> | ||
| particle | 'sokay, TimToady will be asleep | ||
| TimToady | mostly... | 17:47 | |
| one can remember it vaguely sometimes | |||
| pmichaud | I think we should get TimToady's report anyway, and leave it to everyone to infer what should happen from the silence :-) | ||
| TimToady | I have too much experience with this already... | ||
| pmichaud | yes, I'm getting far more experience with health care than I ever wanted :-| | 17:48 | |
| particle | i've got plenty of experience myself, TimToady | 17:49 | |
| you can expect you'll be the butt of all our jokes tomorrow, though | 17:50 | ||
| TimToady | well, hopefully the stomach endoscopy will be sufficient | ||
| just as soon they stop there... | |||
| particle | i know we all hope it'll be okay in the end | 17:51 | |
| TimToady | not fair to get into a punning war with someone who's effectively at about 12,000 ft altitude... | ||
| particle | ok, i'll be at 12000 feet next week. let's talk :) | 17:52 | |
| TimToady | that would put me up at about 24000, which would not be pretty | 17:53 | |
| pmichaud | I'll probably be at 6000 or 7000 feet next week | ||
| particle | pmichaud: where to? | 17:54 | |
| purl | to is Tonga Islands | ||
| particle | TimToady: that's pretty near the death zone | ||
| maybe you should try scuba therapy | |||
| TimToady | I don't think a scuba would fit. | 17:55 | |
|
17:55
barney joined
|
|||
| Tene | I don't know if it's my C that's rusty or if I just don't understand the parrot guts yet. | 17:56 | |
| TimToady | if the guts are leaking red stuff it's probably not rust... | ||
| nopaste | "tene" at 166.70.38.237 pasted "broken IO for rakudo" (109 lines) at nopaste.snit.ch/12471 | 18:07 | |
| Tene | assign_pmc() there was cargo-culted from assign_pmc() in sub.pmc and from clone() in parrotio.pmc | 18:09 | |
| It results in a double free on termination if you actually use it. | |||
| And probably some other horrible things. | |||
|
18:10
purl joined
18:15
chromatic joined
|
|||
| Coke | uhoh. You've summoned the sleepth chromatic. | 18:17 | |
| "sleepth"!? fingers, you need better autocorrection. | |||
| Tene | Quick, hide the segfaults! | ||
| chromatic | #ps in 5 | 18:25 | |
| Tene | Okay, yeah, the main problem is that I suck at C. | 18:26 | |
| I need to fix this. | |||
| chromatic | #ps time | 18:30 | |
|
18:36
Psyche^ joined
18:45
IllvilJa joined
|
|||
| Coke | holy inconvenient timing, batman. | 18:51 | |
| chromatic | I blame society. | 18:52 | |
| Tene | particle: just tell me what I need to do and I'll see what I can do with it. | 18:59 | |
| Coke | tene: ww. | ||
| chromatic: it's a fair cop | |||
| Tene | Coke: expand that please | ||
| spinclad | purl, ww? | ||
| purl | ww is wrong window | ||
| particle | tene: will do. i'll get in touch with jmcadams and we'll start the process rolling on the list | 19:00 | |
| Coke | or not. just seemed like were just having that convo in #ps. | ||
| Tene | Coke: seemed like time to move it out of that channel. | ||
|
19:03
Ron joined
|
|||
| Coke | fairnuff | 19:03 | |
| cotto_work | allison, do you know the time and building when you're speaking at the MS campus yet? | 19:04 | |
| allison | cotto: the time is 10am, I don't know the building yet, and John Lam was on vacation last week. Will check again. | 19:05 | |
| Coke | second!allInFavor!Aye! *scatter* | 19:11 | |
| spinclad | Coke: ww | ||
| Coke | no, it was intentional. =-) | ||
| but thank you. | |||
| spinclad | standing vote to adjourn! | ||
|
19:14
b2gills joined,
buchetc joined
|
|||
| Coke | ... I used to run meetings for my fraternity in college; I still have the opening speech memorized. I want those brain cells back. (the three sharp taps of the gavel signify the three-fold purpose of this meeting...) | 19:15 | |
| chromatic | I read two pages in Roberts Rules once. | ||
| Coke | barney: I found it takes the longest to make sure News is up to date if others haven't done it piecework before the release. | 19:17 | |
| I'd block out ... meh, 2 hours? (less if you have a fast machine to run 'make fulltest' on.) | |||
| barney | That's good. I can check the changelogs on the weekend. | 19:18 | |
| On tuesday I probably can leave $WORK early. | |||
| Coke | Yah; I used to do a 'svn log' since last release and try to keep it up to date on a weekly basis, but it's a PITA. | 19:19 | |
| nice when all that work happens in a branch and you get one summary commit to trunk. =-) | |||
| barney | allison++ | ||
| spinclad | do we have a good blurb on the pdd17 changes to point to? (other than the pdd itself) | 19:22 | |
| (do we need one) | |||
| s/)/?)/ | |||
| Coke | I think the news bullet point can be "implemented PDD17" - we can write up something more for the press release, though. | 19:23 | |
| chromatic | I'm not sure people reading the press release who aren't already on this channel right now will care. | ||
| Coke | I tend to agree, but I also know I undervalue marketing. | 19:24 | |
| allison | we can do a quick set of bullet points to include in release messages | 19:25 | |
| (or just mention the top 3 features in the one bullet point) | 19:26 | ||
| particle | stick it in NEWS | ||
| Coke | chromatic: ... damnit, I seem to be fresh out of segfaults for you. | 19:27 | |
| in an effort to get you more, I'm re-running the official tcl test suite. | |||
| rgrjr | barney: fwiw, i took the whole tuesday off $work, and was glad i did. | 19:28 | |
| barney: it took 11H, after writing news. next time faster, i hope. | |||
| Coke | URK. | ||
| skids | chromatic: no go on smoke on PA-RISC -- won't even get all the way through make. Something about casts changing alignment requirements (scads of same warning). Have yet to delve. | 19:29 | |
|
19:29
gryphon joined
|
|||
| barney will get an early start from European timezone | 19:31 | ||
| chromatic wonders if there's an alignment problem in PObj, Buffer, STRING, and PMC. | |||
| nopaste | "barney" at 84.58.154.103 pasted "deprecated PIR syntax ?" (35 lines) at nopaste.snit.ch/12473 | 19:40 | |
| spinclad | allison: in pdd17:77 and :79, C<u> should be C<cache>? | 19:41 | |
| chromatic | barney, the first two should be deprecated. | ||
| spinclad, yes. | 19:42 | ||
| allison | spinclad: yes | ||
| Coke | allison: src/pmc/object.pmc has a double /* /* and some commented out code. | 19:43 | |
| er, allison & chromatic . | |||
| chromatic | Line? | 19:44 | |
| allison | while resolving conflicts last night, I also noted src/pmc/namespace.pmc has an extra comment open on line 551 | 19:45 | |
| chromatic | Coke, in the freeze() entry? | ||
| Coke | chromatic: yes. | 19:46 | |
| Saw the compiler warning, wasn't sure if the right thing to do was rip out the entire entry. | |||
| jonathan | hi all - sorry I missed #ps and for general not being around. Had folks visiting for the last week, and $DAYJOB is busy... | 19:49 | |
| Coke | jonathan: if you have a report, feel free to paste it into #ps. | ||
| jonathan: and no worries. | |||
| chromatic | Coke, that looks like Allison's code. I only remember fixing the PBC tests after she kept changing freeze/thaw. | ||
| jonathan | Coke: Not really, I've done nothing Parrot/Rakudo related for the last week. | ||
| Saw someone reverted one of my patches, though. ;-) | 19:50 | ||
| allison | chromatic: line#? | ||
| jonathan: was that does does_pmc? | |||
| chromatic | src/pmc/object.pmc:605 | 19:51 | |
| jonathan | allison: Yeah. | 19:52 | |
|
19:52
gbacon joined
|
|||
| jonathan | I put it in to get smartmatch on roles working in Rakudo. | 19:52 | |
| I thought I'd covered all the bases and nothing was failing...alas, it seems not. | |||
| cognominal | jonathan, can you review and check in my patch rt.perl.org/rt3/Public/Bug/Display.html?id=51350 | 19:53 | |
| I corrected and extended your stuff about pairs | 19:54 | ||
| allison | coke: it's been like that as long as we've been running on the new object stuf | ||
| see r22180, where we reintegrated the pdd15oo branch | |||
| cognominal | I am trying to do a lexical self to be able to access it in inner block but so far I fail | 19:55 | |
| allison | also, looking at the code, it wouldn't work under the current implementation | ||
| jonathan | cognominal: Great, thanks; will take a look shortly I hope; kinda snowed under right now. :-( | ||
| Coke | allison: then by all means lets rip it out. | ||
| allison | VTABLE_elements doesn't return the number of slots in the attribute data array | ||
| coke: yes, delete it | |||
| Coke | k. I'm on it. | ||
| jonathan | allison: Did the does stuff end up back in when the pdd17 branch was merged? | 19:56 | |
| I read it was fixed in the branch... | |||
| allison | jonathan: yes, it's there now | ||
| jonathan | OK, great. | ||
| b2gills | I wonder if anyone has information about cross compiling a WIN32 parrot on a linux distribution, I already have the MingW GCC. | 19:57 | |
| Coke needs to update the binary search app to allow the ability to ignore certain versions as not counting. | |||
| jonathan | Will hopefully be back and looking at more stuff shortly...like after this week's $DAYJOB madness ends. | ||
|
19:58
buchet joined
20:04
jrt4 joined
|
|||
| spinclad | pdd17: does C<resolves> take one argument, an element to resolve, or does it declare all conflicting elements resolved? | 20:04 | |
| Coke | b2gills: I don't think anyone has done a cross compile yet. | ||
| I know lathos is trying so he can run parrot on the iPhone. | 20:05 | ||
| spinclad | (a question for the list, i'll take it there) | ||
| b2gills | I want to make it so that parrot won't lock up when doing the wspawn test on Win9x | 20:08 | |
| Coke tries to remember to only ever run coretest. Oy. | 20:09 | ||
| Infinoid | the whole "Parrot for small platforms" thing from PDD01 is vapor, right? it says its not a requirement of the 1.0 release. | 20:11 | |
| spinclad | pdd17: other modifiers apparently taking an argument: provides, hll, maps. | 20:14 | |
| Coke | short version: yes, vapor. | 20:15 | |
| long version: but we wannnnnna! | |||
| Infinoid | yeah, it sounds like fun :) | ||
| Coke | There is a google calendar for parrot. Need to share it amongst more people for editing to make it useful. | 20:16 | |
| Infinoid | chromatic's answer was better than mine :) | 20:18 | |
| spinclad | pdd17:238: 'attribue' | 20:21 | |
| 239: 'throught' | |||
| (conservation of 't's) | 20:22 | ||
| Tene | But what symmetry does that conservation law come from? | 20:23 | |
| chromatic | patch: **** Only garbage was found in the patch input. | ||
|
20:23
peeps[work] joined
|
|||
| spinclad | Tene: phase shift of 2pi*hbar across each t | 20:24 | |
| or better, isomorphism under shift of t | 20:27 | ||
| (hm. conservation of time: invariance under shift in energy) | 20:31 | ||
| Tene harasses someone to look at the parrotio.pmc part of nopaste.snit.ch/12471 | 20:33 | ||
| svnbotl | r26317 | bernhard++ | trunk: | 20:34 | |
| : #42769: Remove unneeded type names from PIR | |||
| : Avoid deprecated PIR syntax. | |||
| r26318 | coke++ | trunk: | |||
| : [codingstd] | |||
| : Eliminate method that had a completely commented out body. | |||
| : Found because the compiler warned about the /* /* */ comment. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26318 | |||
| chromatic | Tene, it looks compilable. | ||
| I don't understand the base_type comparison completely. | |||
| Tene | I copied it from one of the other pmcs. I end up with a corruption or double free on exit after using an IO object with that patch. | 20:35 | |
| chromatic | I'm not surprised. | 20:36 | |
| One of those PMCs will free its PMC data before the other does. | |||
| Tene | That's what I thought. | 20:37 | |
| So I need to memcpy it, but I'm still trying to figure out what exactly I'm copying, and so what size to copy. | 20:38 | ||
| chromatic | The naive approach is to clone the other PMC, assign the pointers, and then unset any custom destroy flag on the PMC. | ||
| On the clone, I mean. | 20:39 | ||
| The GC will reclaim it during the next sweep, but it won't free its PMC data. | |||
| It's fine for multiple PMCs to share pointers, as long as only one ever tries to free it. | |||
| (Of course, if we only ever allocated memory from GCable pools, we wouldn't have this problem. We'd have at least two different problems.) | 20:40 | ||
|
20:43
marmic joined
|
|||
| svnbotl | r26319 | coke++ | trunk: | 20:44 | |
| : [codingstd] | |||
| : Remove unused variables. | |||
| diff: parrotvm.org/svn/parrot/revision/?rev=26319 | |||
| Coke | I'm guessing we want to eventually remove all #if 0 blocked out code, also. | 20:47 | |
| nopaste | "tene" at 166.70.38.237 pasted "broken IO for rakudo" (112 lines) at nopaste.snit.ch/12475 | 20:50 | |
| Tene | Hm, should have changed the title. | 20:51 | |
| pmichaud | shouldn't 'open' be a method? | ||
| (warning: haven't read synopsis draft yet) | 20:52 | ||
| Tene | pmichaud: there's also a method | ||
| pmichaud | ah. In general 'open' (the sub) should call the method | ||
| but there are exceptions. anyway, I've been aiming to try to make most things method-based | 20:53 | ||
| Tene | pmichaud: and what would it be calling the method on if there's no object yet? | ||
| pmichaud | does open() return an IO object? | ||
| Tene | Do I need to call anything other than PObj_active_destroy_CLEAR to unset custom destroy flags? | 20:54 | |
| pmichaud: I thought so, but I'm not certain. Perhaps I should check before I spend more time on this. | 20:55 | ||
| pmichaud | the IO.pod draft says that most items are methods on an IO handle, and corresponding global functions are really exported versions of the method | 20:56 | |
| however, it also says: my $fh = open($filename); | |||
| so... I dunno | |||
| maybe 'open' falls outside of 'most items' | 20:57 | ||
| Tene | Probably does. I see 'open' as more of a constructor. | ||
| pmichaud | (constructors/creators are often that way) | ||
| Tene | I'm still getting a double free with PObj_active_destroy_CLEAR on a clone... maybe that's not clearing what I need to clear. | 21:02 | |
| No, that's the same operation I'm seeing elsewere in src/ | 21:11 | ||
| chromatic | Look at copy in src/ops/set.ops | 21:12 | |
| Tene | That's where I copied it from. | 21:13 | |
| chromatic | Is there something freeable in PMC_struct_val too? | 21:14 | |
| Tene | I don't know. I should probably find out what that is, anyway. | 21:15 | |
| chromatic | Look in the mark() vtable entry. | 21:16 | |
| Tene | Parrot_default_mark is saying that it uses a default mark(), yes? | 21:19 | |
| chromatic | Does this PMC not have a separate mark? | ||
| Tene | It does not. | ||
| chromatic | Then it's probably not that. | 21:20 | |
| Can you get a backtrace of the double free? | |||
| nopaste | "tene" at 166.70.38.237 pasted "broken IO for rakudo" (28 lines) at nopaste.snit.ch/12476 | 21:23 | |
| Tene | Ack, forgot to change the title again | ||
| chromatic | Maybe assign NULL to PMC_data and PMC_struct_val in the clone instead of clearing the destroy flag. | 21:25 | |
| Tene | Looks like still a double free. Let's see if it's the same bt. | 21:29 | |
| Yeah, still through PIO_destroy, which is in src/io/io.c and is called by parrotio's destroy() | 21:33 | ||
| PMC_data0() ? | |||
| chromatic | What's the actual pointer that causes the double free? | 21:35 | |
| Tene | (ParrotIO *)PMC_data0(pmc); | 21:36 | |
| Which is called on the pmc being destroyed. | 21:38 | ||
|
21:42
sjansen joined
|
|||
| chromatic | ... which is in PMC_ext | 21:42 | |
| jrt4 | I'm looking in Parrot_readbc() right now, and when it calls Packfile_new(), PackFile_set_header() sets up the packfile header, but then, when we get into Packfile_unpack() it memcpy()s the header info from the PBC into the Packfile header again, overwriting what we put in the header in Packfile_new(). Why is it setting up the header twice? | 21:43 | |
| chromatic | It's the same as PMC_data, but it evaluates to 0. | ||
| Tene | Looks like I still get a double free when I set clone->pmc_ext = NULL | 21:45 | |
| ... oh, the problem is that ParrotIO's clone() just copies pointers. | 21:49 | ||
| chromatic | Ah. | ||
| I assumed it did the right thing. | |||
| jrt4, no idea. leo might know. | 21:54 | ||
| jrt4 | chromatic: OK, thanks. | 21:55 | |
|
21:57
kj joined
22:11
davidfetter joined
|
|||
| Tene | segfaults yay! | 22:21 | |
|
22:27
teknomunk_ joined
22:49
Limbic_Region joined
22:53
kid51 joined
|
|||
| Tene | So, it's the IO stream that's getting double-free'd. | 22:53 | |
| A copy of an IO object probably should share the same IO stream, though, right? | 22:54 | ||
| chromatic | Probably. | 22:56 | |
| purl | Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder. | ||
| Tene | So ParrotIO's destroy() is flush()ing and close()ing the stream, then calling PIO_destroy() on it. | 22:59 | |
| chromatic | Should we dup the stream, or will that help? | 23:02 | |
| Tene | What happens when you close() a dup'd fd? | 23:05 | |
| chromatic | Well you can have multiple fds open to the same file, so I assume the kernel knows what to do. | 23:06 | |
| Tene | Okay, so we probably need to dup the stream on clone. | 23:07 | |
| ewilhelm | but multiple fd's is a result of multiple opens, no? | 23:12 | |
| chromatic | I'm not sure the kernel cares. | 23:13 | |
| fds persist across fork() too. | 23:14 | ||
|
23:19
skids joined
|
|||
| Tene | Does PIO_dup in src/io/io.c sound sane? | 23:28 | |
| chromatic | It does, if it works. | 23:29 | |
| I *think* it will work. | 23:30 | ||
| IO is not my gig though. | |||
| Tene | That's what 'make test' is for. :) | 23:32 | |
| I'm unsure if I need to do anything special to handle network sockets. | 23:38 | ||
| chromatic | Not on Unix. | 23:42 | |
| Infinoid | sockets behave the same as files | ||
| what kind of clone() are you doing? are you spawning a thread, or doing a fork()? | |||
| duplicating the data structure? | 23:45 | ||
|
23:47
wknight8111 joined
|
|||
| Tene | Infinoid: dup'ing a stream for ParrotIO's clone() | 23:47 | |
| Infinoid | ok. (I was confused by the linux syscall of the same name, upon which fork() and pthread_create() are implemented.) | 23:48 | |
| in that case, you definitely want to do a dup(), but note that duplicated fds generally have weird behavior | |||
| dup() and dup2() on linux result in 2 fds that behave interchangeably... doing a seek on one affects the other | 23:49 | ||
| and you probably should flush any pending output before doing the dup, otherwise it'll end up being written twice | 23:50 | ||
| Tene | that weird behavior is exactly what we want. | 23:51 | |
| Infinoid | the kernel does some refcounting magic and only destroys its data structures once the last fd is closed. | 23:52 | |
| nopaste | "tene" at 166.70.38.237 pasted "PIO_dup" (21 lines) at nopaste.snit.ch/12477 | 23:53 | |
| Infinoid | I can't speak for the portability of dup() | 23:54 | |
| chromatic | I'd use PMC_data_typed() instead of PMC_data0(), and you can remove the curlies... otherwise looks fine, pending Infinoid's concern. | ||
| man dup here says " SVr4, 4.3BSD, POSIX.1-2001." | 23:55 | ||
| Infinoid | yeah | ||
| I have no idea how to do this on win32 | 23:56 | ||
| chromatic | That's one reason I keep the Perl 5 sources around. | 23:57 | |