Overview

See the documentation: /doc/index.html

hg
--
> hg commit -m '...put comments hereÉ'
> hg push


Notes to me
-----------

- include gmake executable?
- TCC and DMC compiler links and information?
- pthread required to build demo_4.c on Windows

http://www.cs.utk.edu/~plank/plank/classes/cs360/360/notes/Setjmp/lecture.html

Caveats
-------
- currently, the library assumes a coroutine never returns
- setjmp doesn't save floating point environment
- setjmp invocation must be done in the context described in the standard 


ANSI C99 Standard text
----------------------
jmp_buf
-------
The environment of a call to the setjmp macro consists of information
sufficient for a call to the longjmp function to return execution to the correct
block and invocation of that block, were it called recursively. It does not include
the state of the floating-point status flags, of open files, or of any other component
of the abstract machine.

The setjmp macro
----------------
An invocation of the setjmp macro shall appear only in one of the following contexts:

Ń the entire controlling expression of a selection or iteration statement;
Ń one operand of a relational or equality operator with the other operand an integer
  constant expression, with the resulting expression being the entire controlling
  expression of a selection or iteration statement;
Ń the operand of a unary ! operator with the resulting expression being the entire
  controlling expression of a selection or iteration statement; or
Ń the entire expression of an expression statement (possibly cast to void).

If the invocation appears in any other context, the behavior is undefined.

The longjmp function
---------------------
All accessible objects have values, and all other components of the abstract machine
have state, as of the time the longjmp function was called, except that the values of
objects of automatic storage duration that are local to the function containing the
invocation of the corresponding setjmp macro that do not have volatile-qualified type
and have been changed between the setjmp invocation and longjmp call are indeterminate.