Greetings.
I think that current-subprocess-custodian-mode may have some error in its
argument-checking.
If I evaluate the following in DrRacket:
(parameterize ((current-subprocess-custodian-mode #f))
(subprocess (current-output-port)
(current-input-port)
(current-error-port)
"/usr/bin/vi"
fn))
I get an error "current-subprocess-custodian-mode: expects argument of type
<'interrupt, 'kill, or #f>; given: #f".
Either I'm grievously misreading that, or else something's being
overprotective. A quick look around the collects/ tree doesn't turn up any
.rkt code for this procedure, so I'm afraid I can't track it down further.
----
Now, some other experiments indicate that this won't do what I want anyway,
since (current-*-port) aren't file-stream-port? ports.
What I _want_ to do here is basically execv(3) vi from a Racket program. I
can't find such a thing, and the above is an attempt to see how far I could get
using 'subprocess' (hoping the vi child would be left with the parent FDs still
attached to the terminal, and letting the parent terminate), but the limitation
to file-stream-port? suggests it's not intended for this, which doesn't
astonish me. I can broadly see how a naive exec would cause trouble within a
system like racket, but is this in fact unsupported? Or am I just missing it?
(the underlying motivation is that scsh appears to have entered a... quiescent
phase, and it occurred to me to rewrite a couple of scsh scripts, that I depend
on, in Racket).
Thanks for any pointers.
Best wishes,
Norman
--
Norman Gray : http://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK
____________________
Racket Users list:
http://lists.racket-lang.org/users