0.3.0
Added
-
A comprehensible error message is now issued when attempting to
run a Futhark program on an OpenCL that does not support the
types used by the program. A common case was trying to use
double-precision floats on an Intel GPU. -
Parallelism inside of a branch can now be exploited if the branch
condition and the size of its results is invariant to all
enclosing parallel loops. -
A new OpenCL memory manager can in some cases dramatically
improve performance for repeated invocations of the same entry
point. -
Experimental support for incremental flattening. Set the
environment variableFUTHARK_VERSIONED_CODE
to any value to try
it out. -
futhark-dataset
: Add-t
/-type
option. Useful for
inspecting data files. -
Better error message when ranges written with two dots
(x..y
). -
Type errors involving abstract types from modules now use
qualified names (less "expected 't', got 't'", more "expected
'foo.t', got 'bar.t'"). -
Shorter compile times for most programs.
-
futhark-bench
: Add--skip-compilation
flag. -
scatter
expressions nested inmap
s are now parallelised. -
futlib: an
fft
module has been added, thanks to David
P.H. Jørgensen and Kasper Abildtrup Hansen.
Removed
-
futhark-dataset
: Removed--binary-no-header
and
--binary-only-header
options. -
The
split
language construct has been removed. There is a
library functionsplit
that does approximately the same.
Changed
-
futlib: the
complex
module now produces a non-abstractcomplex
type. -
futlib: the
random
module has been overhauled, with several new
engines and adaptors changed, and some of the module types
changed. In particular,rng_distribution
now contains a numeric
module instead of an abstract type. -
futlib: The
vec2
andvec3
modules now represent vectors as
records rather than tuples. -
futlib: The
linalg
module now has distinct convenience functions
for multiplying matrices with row and column vectors. -
Only entry points defined directly in the file given to the
compiler will be visible. -
Range literals are now written without brackets:
x...y
. -
The syntax
(-x)
can no longer be used for a partial application
of subtraction. -
futhark-test
andfuthark-bench
will no longer append.bin
to
executables. -
futhark-test
andfuthark-bench
now replaces actual/expected
files from previous runs, rather than increasing the litter.
Fixed
-
Fusion would sometimes remove safety checks on e.g.
reshape
(#436). -
Variables used as implicit fields in a record construction are now
properly recognised as being used. -
futlib: the
num_bits
field for the integer modules inmath
now
have correct values.