[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] ikiwiki and monotone
From: |
Brian May |
Subject: |
Re: [Monotone-devel] ikiwiki and monotone |
Date: |
Thu, 12 Oct 2006 16:34:54 +1000 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) XEmacs/21.4.19 (linux) |
>>>>> "Brian" == Brian May <address@hidden> writes:
Nathaniel> This is about as efficient as anything you can do. The
Nathaniel> parsing bit is somewhat annoying -- unfortunately, I
Nathaniel> don't think that anyone has actually written a basic_io
Nathaniel> parser for perl yet. It's pretty straightforward to do
Nathaniel> (certainly easier than writing your average library
Nathaniel> binding ;-)), and if you did it then we could
Nathaniel> distribute it and no-one would ever have to do it
Nathaniel> again, but there it is. A useful thing to look at
Nathaniel> might be the python module that's part of the new
Nathaniel> viewmtn that Grahame just posted a link to today -- not
Nathaniel> perl, but perhaps similar enough in spirit.
Brian> If I get some spare time I might have a look. I haven't
Brian> written much python, but I am confident I will be able to
Brian> read it ;-).
Here is my first attempt, and a simple test script, for my version of
the stand-alone run function. Attached.
I don't like it. Not only does perl give a number of invalid warnings,
but it also seems very large and complicated.
Unfortunately, to the best of my knowledge, perl does not have any
high level API for receiving STDOUT and STDERR as separate streams
from a child process (unlike what seems possible in Python).
=== cut ===
address@hidden:~/tree/net.angrygoats.viewmtn$ ./testmtn
Name "mtn::standalone::CHILD_STDERR" used only once: possible typo at <rubbish>
line 19.
Name "mtn::standalone::CHILD_STDOUT" used only once: possible typo at <rubbish>
line 18.
Cannot close STDOUT pipe: Resource temporarily unavailable at mtn.pm line 61.
Cannot close STDOUT pipe: Resource temporarily unavailable at mtn.pm line 74.
mtn.pm
testmtn
=== cut ===
I replaced the characters under <rubbish> because they messed up
cut&paste under X. The warning is wrong, both values are used twice.
strace of the last warning shows:
=== cut ===
read(3, "mtn.pm\ntestmtn\n", 4096) = 15
read(3, 0x8173940, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
read(3, 0x8173940, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
close(3) = 0
write(2, "Cannot close STDOUT pipe at mtn."..., 44Cannot close STDOUT pipe at
mtn.pm line 61.
) = 44
waitpid(32756, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 32756
--- SIGCHLD (Child exited) @ 0 (0) ---
close(5) = 0
write(1, "mtn.pm\ntestmtn\n\n", 16mtn.pm
testmtn
) = 16
close(6) = 0
close(4) = 0
exit_group(0) = ?
Process 32755 detached
=== cut ===
So I think perl is performing a read(...) when I try to close(...) and getting
upset
that the read(...) failed even though the close(...) succeeded.
--
Brian May <address@hidden>
testmtn
Description: Text Data
mtn.pm
Description: Text Data
- Re: [Monotone-devel] Re: ikiwiki and monotone, (continued)
- Re: [Monotone-devel] Re: ikiwiki and monotone, Brian May, 2006/10/12
- Re: [Monotone-devel] ikiwiki and monotone, Brian May, 2006/10/12
- Re: [Monotone-devel] ikiwiki and monotone, Chad Walstrom, 2006/10/13
- [Monotone-devel] Re: ikiwiki and monotone, Bruce Stephens, 2006/10/13
- Re: [Monotone-devel] Re: ikiwiki and monotone, Nathaniel Smith, 2006/10/14
Re: [Monotone-devel] ikiwiki and monotone, Nathaniel Smith, 2006/10/11
Re: [Monotone-devel] ikiwiki and monotone, Daniel Carosone, 2006/10/11
Re: [Monotone-devel] ikiwiki and monotone, Nathaniel Smith, 2006/10/11
Re: [Monotone-devel] ikiwiki and monotone, Brian May, 2006/10/12
Re: [Monotone-devel] ikiwiki and monotone, Václav Haisman, 2006/10/11