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