#define __BSD_VISIBLE 1  needed on new FreeBSD to get MAP_ANON et al. from sys/mman.h
Blow the size up much much more -- as nothing uses the size here.
Blowing it up might help us find out if anything does accidentally
end up depending on the size. It'd be nifty if there was a way
to really prohibit using the size.
add "forktoomuch" test to thread tester, which may create zombie processes
Allow threads in state "pausing" to be woken up by signals,
specifically, SIGCHLD, and use the mechanism for allowing Process.Wait
to wake up instantly without busy-waiting.  Follows design notes as
published on the Modula-3 development mailing list, including care to
ensure signal handlers aren't nested unnecessarily.
Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly.

The purpose of this modification is to allow parallelization of the CM3 compiler.  The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend).
clean up and fix minor bug from earlier cleanup that made innocuous failures (e.g., of fgrep) fatal.
parallel back-end builds.

To enable, use -pb <n> flag, with n up to about ten (10) times the number of processors available, or set M3_PARALLEL_BACK in config files.

Any change in behavior relative to earlier versions with n = 1 (the default) would constitute a bug.
current TextReader from Caltech/Generation Capital repository, with bug fixes and enhancements
reset reader and writer positions (avoids overflows on systems with small integers for the position of readers and writers)
remove CVS Ids in keeping with CM3 repository practice
made sets of tests be in all caps.  Three sets are provided

   ALL    =  all tests coded in the program (including ones that legitimately misbehave)
   STD    =  all tests that "should work" without obvious misbehavior
   POSIX  =  STD,-lock (user threads may legitimately have fairness issues)
add ValueOfSIGSEGV: get value of SIGSEGV C header constant out in Modula-3 environment
Documentation of ThreadPosix implementation as the light of
understanding has finally shone on me and I wish to put down my
observations for posterity.

Also an implementation of catching of SEGV and conversion into a
RuntimeError instead.  Mechanism is documented in ThreadPosix.m3:
it is a hybrid of the SIGCHLD handling and what ThreadPosix already
does to produce Thread.Alerted on a wake-up.  Mechanism has been
tested and appears to work: the former behavior was to quit execution
unconditonally; now it is instead a catcheable exception.
revert this, with a comment that the signal handler gets overridden: this will make the signal print a message and crash under pthreads and raise a RuntimeError.E exception under user ("POSIX") threads now, as desired.
remove incorrect comments; Win32 is not broken
Reword comment. Win32 isn't broken -- as in the Windows OS,
but indeed the Modula-3 implementation here is completely broken
and likely doesn't do anything at all, except attempt to kill
a random process and raise an exception if that fails
(random as in possibly nonexistant, possibly another unrelated
process, or just barely possibly, the intended process.)
Bring back per-target jmpbuf size in all its gory..
at least for now..
add a little sleep clone, that also works on Windows,
for m3core/tests/thread to use
build_standalone
different Modula-3 compilers use different syntax for build_standalone; as this program is a test, not a part of the compiler, it is useful for it to be compilable on all.