<ul>
<li>New <code>sleep ( ms -- )</code> word pauses current thread for a number of milliseconds.</li>
<li>New <code>with-datastack ( stack word -- stack )</code> combinator.</li>
-<li>New <code>cond ( conditions -- )</code> combinator. It behaves like a set of nested <code>ifte</code>s; see its documentation comment for details. Note that it does not compile.</li>
+<li>New <code>cond ( conditions -- )</code> combinator. It behaves like a set of nested <code>ifte</code>s, and compiles if each branch has the same stack effect. See its documentation comment for details.</li>
<li>Erlang/Termite-style concurrency library in <code>contrib/concurrency</code> (Chris Double).</li>
<li>Completely redid infix algebra in <code>conrib/algebra/</code>. Now, vector operations are possible
and the syntax doesn't use so many spaces. New way to write the quadratic formula:
\r
- flushing optimization\r
- compile-byte/cell: instantiating aliens\r
-- inference needs to be more robust with heavily recursive code\r
- fix fixnum<< and /i overflow on PowerPC\r
- simplifier:\r
- kill replace after a peek\r
#! { { [ X ] [ Y ] } { [ Z ] [ T ] } }
#! => X [ Y ] [ Z [ T ] [ ] ifte ] ifte
#! The last condition should be a catch-all 't'.
- [ first call ] find nip [ second call ] [ no-cond ] ifte ;
+ [ first call ] find nip dup
+ [ second call ] [ no-cond ] ifte ;
: with-datastack ( stack word -- stack )
datastack >r >r set-datastack r> execute