diff --git a/CHANGES.html b/CHANGES.html index 5ab313438f..72a8f60cac 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -4,6 +4,15 @@
fixnum-shift
, fixnum/i
overflow.sort ( seq quot -- | quot: elt elt -- -1/0/1 )
combinator now works with any sequence, not just a list. The comparator also has to return a signed integer, not just a boolean. It is much faster than the old sorting algorithm.binsearch ( elt seq quot -- i | quot: elt elt -- -1/0/1 )
and binsearch ( elt seq quot -- elt | quot: elt elt -- -1/0/1 )
combinators perform a binary search on a sorted sequence.2each ( seq seq quot -- quot: elt -- elt )
combinatorjoin ( seq glue -- seq )
word. Takes a sequence of sequences, and constructs a new sequence with the glue in between each sequence. For example:
[ "usr" "bin" "grep" ] "/" join @@ -79,7 +90,7 @@ make-sbuf ==> SBUF" " make
sleep ( ms -- )
word pauses current thread for a number of milliseconds.with-datastack ( stack word -- stack )
combinator.cond ( conditions -- )
combinator. It behaves like a set of nested ifte
s, and compiles if each branch has the same stack effect. See its documentation comment for details.G:
syntax) in handbook.
+G:
syntax) in handbook.contrib/concurrency
(Chris Double).contrib/algebra/
. Now, vector operations are possible
and the syntax doesn't use so many spaces. New way to write the quadratic formula:
diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt
index 8b7b2844fe..dba004b987 100644
--- a/TODO.FACTOR.txt
+++ b/TODO.FACTOR.txt
@@ -48,24 +48,25 @@
+ compiler:
-- removing unneeded #label
- flushing optimization
-- compile-byte/cell: instantiating aliens
-- fix fixnum<< and /i overflow on PowerPC
-- simplifier:
- - kill replace after a peek
- - merge inc-d's across VOPs that don't touch the stack
-- intrinsic char-slot set-char-slot integer-slot set-integer-slot
+- fix fixnum/mod overflow on PowerPC
+- eliminate simplifier
+- intrinsic char-slot set-char-slot
- [ [ dup call ] dup call ] infer hangs
- declarations
- the invalid recursion form case needs to be fixed, for inlines too
-- #jump-f #jump-f-label
-- re-introduce #target-label => #target optimization
- recursion is iffy; if the stack at the recursive call doesn't match
up, throw an error
+- remove %fixnum-<=/>/>=, always use %jump-* form
+- remove %jump-t, use %jump-eq? f instead
+- kill dead code after 'throw'
+- better type inference
+ kernel:
+- better handling of random arrangements of html words when
+ prettyprinting
+- friendlier .factor-rc load error handling
- reader syntax for arrays, byte arrays, displaced aliens
- out of memory error when printing global namespace
- first time hash/vector is grown, set size to something big
diff --git a/boot.image.be32 b/boot.image.be32
index a5f1fd37b0..6f50f2703e 100644
Binary files a/boot.image.be32 and b/boot.image.be32 differ
diff --git a/boot.image.be64 b/boot.image.be64
index d3ef5199ad..bbe814c739 100644
Binary files a/boot.image.be64 and b/boot.image.be64 differ
diff --git a/boot.image.le32 b/boot.image.le32
index 3a70171459..2c69c30f59 100644
Binary files a/boot.image.le32 and b/boot.image.le32 differ
diff --git a/boot.image.le64 b/boot.image.le64
index 9412b76a39..3a1cb21fe9 100644
Binary files a/boot.image.le64 and b/boot.image.le64 differ
diff --git a/doc/handbook.tex b/doc/handbook.tex
index 6601294243..d78af4a014 100644
--- a/doc/handbook.tex
+++ b/doc/handbook.tex
@@ -2627,10 +2627,11 @@ Outputs \texttt{t} if the quotation yields true when applied to each element, ot
\ordinaryword{monotonic?}{monotonic?~( seq quot -- ?~)}
\texttt{quot:~element element -- ?}\\
}
-Tests if all elements of the sequence are equivalent under the relation. The quotation should be an equality relation (see \ref{equality}), otherwise the result will not be useful. This is implemented by vacuously outputting \verb|t| if the sequence is empty, or otherwise, by applying the quotation to each element together with the first element in turn, and testing if it always yields a true value. Usually, this word is used to test if all elements of a sequence are equal, or the same element:
+Applies the relation to successive pairs of elements in the sequence, testing for a truth value. The relation should be a transitive relation, such as a total order or an equality relation. Examples:
\begin{verbatim}
-[ = ] every?
-[ eq? ] every?
+[ = ] monotonic? ! is every element equal?
+[ eq? ] monotonic? ! is every element identical?
+[ < ] monotonic? ! is the sequence increasing?
\end{verbatim}
A pair of utility words test of every element in a sequence is true, or if the sequence contains at least one true element.
diff --git a/doc/makeglos b/doc/makeglos
new file mode 100755
index 0000000000..00723d0631
--- /dev/null
+++ b/doc/makeglos
@@ -0,0 +1,2 @@
+#!/bin/sh
+makeindex -s $1.ist -t $1.glg -o $1.gls $1.glo
diff --git a/library/alien/c-types.factor b/library/alien/c-types.factor
index 4e67313de4..c675641de9 100644
--- a/library/alien/c-types.factor
+++ b/library/alien/c-types.factor
@@ -95,137 +95,3 @@ SYMBOL: c-types
over "*" append over "*" append (typedef) (typedef) ;
global [ c-types nest drop ] bind
-
-[
- [ alien-unsigned-cell