Added
-
Incremental flattening is now performed by default. Use
attributes to constrain and direct the flattening if you have
exotic needs. This will likely need further iteration and
refinement. -
Better code generation for
reverse
(and the equivalent explicit
slice). -
futhark bench
now prints progress bars. -
The
cuda
backend now supports similar profiling as theopencl
option, although it is likely slightly less accurate in the
presence of concurrent operations. -
A preprocessor macro
FUTHARK_BACKEND_foo
is now defined in
generated header files, where foo is the name of the backend
used. -
Non-inlined functions (via
#[noinline]
) are now supported in GPU
code, but only for functions that exclusively operate on
scalars. -
futhark repl
now accepts a command line argument to load a
program initially. -
Attributes are now also permitted on declarations and specs.
-
futhark repl
now has a:nanbreak
command (#839).
Removed
-
The C# backend has been removed (#984).
-
The
unsafe
keyword has been removed. Use#[unsafe]
instead.
Changed
-
Out-of-bounds literals are now an error rather than a warning.
-
Type ascriptions on entry points now always result in opaque types
when the underlying concrete type is a tuple (#1048).
Fixed
-
Fix bug in slice simplification (#992).
-
Fixed a typer checker bug for tracking the aliases of closures
(#995). -
Fixed handling of dumb terminals in futhark test (#1000).
-
Fixed exotic monomorphisation case involving lifted type
parameters instantiated with functions that take named parameters
(#1026). -
Further tightening of the causality restriction (#1042).
-
Fixed alias tracking for right-operand operator sections (#1043).