Added
-
The constructor for generated PyOpenCL classes now accepts a
command_queue
parameter (#480). -
Transposing small arrays is now much faster when using OpenCL
backend (#478). -
Infix operators can now be defined in prefix notation, e.g.:
let (+) (x: i32) (y: i32) = x - y
This permits them to have type- and shape parameters.
-
Comparison operators (<=, <, >, >=) are now valid for boolean
operands. -
Ordinary functions can be used as infix by enclosing them in
backticks, as in Haskell. They are left-associative and have
lowest priority. -
Numeric modules now have
largest
/smallest
values. -
Numeric modules now have
sum
,product
,maximum
, and
minimum
functions. -
Added
--Werror
command line option to compilers. -
Higher-order functions are now supported (#323).
-
Type inference is now supported, although with some limitations
around records, in-place updates, andunzip
. (#503) -
Added a range of higher-order utility functions to the prelude,
including (among others):val (|>) '^a '^b: a -> (a -> b) -> b val (<|) '^a '^b: (a -> b) -> a -> b val (|>>) '^a 'b '^c: (a -> b) -> (b -> c) -> a -> c val (<<|) '^a 'b '^c: (b -> c) -> (a -> b) a -> c
Changed
-
FUTHARK_VERSIONED_CODE
is nowFUTHARK_INCREMENTAL_FLATTENING
. -
The SOACs
map
,reduce
,filter
,partition
,scan
,
stream_red,
andstream_map
have been replaced with library
functions. -
The futlib/mss and futlib/lss modules have been rewritten to use
higher-order functions instead of modules.