Started 1 yr 2 mo ago
Took 18 min on xdarwin

Failed Build #86 (Feb 24, 2011 4:54:17 AM)

Changes
  1. 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. (detail)
  2. Bring back per-target jmpbuf size in all its gory..
    at least for now.. (detail)
  3. 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. (detail)
  4. remove CVS Ids in keeping with CM3 repository practice (detail)
  5. remove incorrect comments; Win32 is not broken (detail)
  6. 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. (detail)
  7. add ValueOfSIGSEGV: get value of SIGSEGV C header constant out in Modula-3 environment (detail)
  8. add "forktoomuch" test to thread tester, which may create zombie processes (detail)
  9. 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. (detail)
  10. 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.) (detail)
  11. current TextReader from Caltech/Generation Capital repository, with bug fixes and enhancements (detail)
  12. 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) (detail)
  13. 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. (detail)
  14. reset reader and writer positions (avoids overflows on systems with small integers for the position of readers and writers) (detail)

Started by an SCM change