benchmarks/prog/icfp2000_no_iostate/renderer.m:
Avoid a warning about an unused module in ther interface.
extras/curs/curs.m:
Delete an unused import.
extras/lex/lex.m:
Replace state variables that are not updated.
In C grades, uint32_to_string/1 is currently implemented by doing the
following:
1. Calling sprintf() to write the string into a buffer on the stack.
2. Calling strlen() on the buffer to determine the actual number of digits.
3. Allocate the appropriate amount of space on the heap.
4. Copying the string from the buffer on to the heap.
The benchmark included in this diff contains a number of alternative
implementations, all of which avoid much of the above overhead.
All of these implementations work by computing the required number of digits,
allocating space on the heap and then writing the digits into the string
backwards.
library/string.m:
Replace uint32_to_string with a faster implementation.
(This is alternative 1 in the benchmark program below.)
tests/hard_coded/Mmakefile:
tests/hard_coded/uint32_to_string.{m,exp}:
A test of uint32 to string.
benchmarks/progs/integer_to_string/uint32_conversion.m:
A program for benchmarking various uint32 to string conversion
implementations.
benchmarks/progs/tree234/tree234x.m:
benchmarks/progs/pic/mercury/utils.m:
Replace uses of is a synonym for unification.
benchmarks/progs/training_cars/*.m:
Delete implementation imports that shadow those in the interface.
benchmarks/progs/icfp2000_par/main.m:
benchmarks/progs/mandelbrot/mandelbrot.m:
benchmarks/tools/log_to_r/log_to_r.m:
extras/align_right/align_right.m:
extras/error/error.m:
extras/gator/evolve.m:
extras/moose/options.m:
samples/concurrency/midimon/midimon.m:
samples/diff/diff.m:
samples/muz/muz.m:
Conform to getopt.process_options now returning structured errors
instead of strings.
These are due to:
- differences between module and file names.
- redundant imports
- the recent change from math.domain_error -> exception.domain_error.
benchmarks/*/*.m:
extras/*/*.m:
As above.
benchmarks/progs/quicksort/qs_always_par.m:
benchmarks/progs/quicksort/qs_utils.m:
extras/moose/check.m:
extras/posix/samples/mdprof_cgid.m:
extras/xml/parsing.m:
samples/muz/zparser.m:
samples/muz/ztype_op.m:
As above -- the compiler now rejects determinism declarations on
non-predmode predicate declarations.
Replace a call to bitmap.new with bitmap.init.
This file-specific setting will override a default setting of expandtabs
in $HOME/.vimrc.
*/Makefile:
*/Mmakefile:
As above.
tests/hard_coded/.gitignore:
Don't ignore the purity subdir. This ignore must have been left over
from when purity.m was a test in hard_coded, not hard_coded/purity,
and it ignored an executable, not a directory.
library/library.m:
library/thread.future.m:
library/thread.m:
Add new future standard library module.
NEWS:
Announce the new addition.
library/thread.semaphore.m:
Add an impure interface to thread.semaphore.m. Semaphores are used to
implement our other concurrency primitives and an impure interface can
often be useful to implement things such as futures, which don't require
IO state threading. The impure interface predicate names are prefixed
with "impure_".
library/thread.semaphore.m:
NEWS:
Deprecate the impure init/1 function.
library/thread.mvar.m:
Conform to changes in semaphore.m.
benchmarks/progs/mandelbrot/mandelbrot.m:
Add future example to mandelbrot benchmark.
The mandelbrot benchmark can now be used to benchmark concurrency support
using either spawn or spawn_native. As before it can also use no
parallelism or the parallel conjunction operator.
benchmarks/progs/mandelbrot/mandelbrot.m:
As above.
benchmarks/progs/mandelbrot/bench.sh:
Update mandelbrot benchmarking script
Add a --parallel command line option to the mandelbrot benchmark that can be
given to use explicitly parallelised routines. This makes it easier to turn
on and off explicit parallelism, depending on your testing needs.
benchmarks/progs/mandelbrot/mandelbrot.m:
As above
This benchmark broke when unicode support was introduced. It was fixed
once, but somehow seems to have reverted to its broken version (maybe when
we imported from CVS?).
benchmarks/progs/mandelbrot/mandelbrot.m:
Re-fix the benchmark.
benchmarks/progs/compress/bmio.m:
benchmarks/progs/mandelbrot/mandelbrot.m:
As above.
benchmarks/progs/compress/*.m:
Update syntax used in these files: there are no
changes to any algorithms.