Added
-
Run-time errors due to failed assertions now include a stack
trace. -
Generated OpenCL code now picks more sensible group size and count
when running on a CPU. -
scatter
expressions nested inmap
s may now be parallelised
("segmented scatter"). -
Add
num_bits
/get_bit
/set_bit
functions to numeric module
types, including a newfloat
module type. -
Size annotations may now refer to preceding parameters, e.g:
let f (n: i32) (xs: [n]i32) = ...
-
futhark-doc
: retain parameter names in generated docs. -
futhark-doc
: now takes-v
/--verbose
options. -
futhark-doc
: now generates valid HTML. -
futhark-doc
: now permits files to contain a leading documentation
comment. -
futhark-py
/futhark-pyopencl
: Better dynamic type checking in
entry points. -
Primitive functions (sqrt etc) can now be constant-folded.
-
Futlib: /futlib/vec2 added.
Removed
- The built-in
shape
function has been removed. Uselength
or
size parameters.
Changed
-
The
from_i32
/from_i64
functions of thenumeric
module type
have been replaced with functions namedi32
/i64
. Similarly
functions have been added for all the other primitive types
(factored into a newfrom_prim
module type). -
The overloaded type conversion functions (
i32
,f32
,bool
,
etc) have been removed. Four functions have been introduced for
the special cases of converting betweenf32
/f64
andi32
:
r32
,r64
,t32
,t64
. -
Modules and variables now inhabit the same name space. As a
consequence, we now usex.y
to access fieldy
of recordx
. -
Record expression syntax has been simplified. Record
concatenation and update is no longer directly supported.
However, fields can now be implicitly defined:{x,y}
now creates
a record with fieldx
andy
, with values taken from the
variablesx
andy
in scope.