From: John Cowan <>
Date: Tuesday, July 16, 2019 12:23 PM

Go ahead and make all editorial changes unless otherwise noted.

On Tue, Jul 16, 2019 at 11:00 AM <> wrote:

3.4 Processes:

The other two [spawn/spawn-path mode] values cause the procedure to return immediately with an unspecified object.

And that seems to be the case for file-spawn, which may or may not bee a good thing.... It seems to be a major omission to not allow the following process status and manipulation procedures access to the child process when the fork/exec dance allows it, and posix_spawn()/-spawnp() return the child process id through an argument pointer, and if your system doesn't have them, fork/exec.

That's a good point.  Bug me about it again later, if you would.

Will do.

file-spawn should have something appended to it to make it self-documenting like "-edit" or "-view".

I think that's too much proliferation of procedures.  A mode argument makes more sense to me.

Add a required end argument of 'view or 'edit?  I like to make things very explicit; along with setf, keyword arguments are what I miss most from Common Lisp.

Could, probably should add a kill procedure for process objects/pids....

This has been brought up before: it's signal-process.  Probably should mention kill here, as people are apparently confused by it.

Oops, of course.  I'll make that some sort of example in the signal-process description.

3.12  Terminal device control

The seconds time granularity of with-raw-mode is awfully high for human interaction use.  Change to milliseconds in the spec, with a note that nothing better than seconds is guaranteed?

Studies show that pauses less than 1 second while typing (or handwriting) are usually for purely physicall reasons like fatigue or writer's cramp.  Cognitively meaningful pauses are usually 2 seconds or more.

Emacs users like myself have a bunch of key cords wired into our brains.  I guess I'm not understanding precisely how to use with-raw-mode, or perhaps I want procedures that will just permanently put tty ports into raw, cooked, and there's always cbreak/rare mode.  I agree that wrapping the full glory of termios.h is beyond what's reasonable to ask of implementors today; I will look harder at the whole issue.

- Harold