Repository navigation
Added
-
Attributes may now also reference variables in scope, by prefixing a name with
$. There is no builtin use for this feature. -
The "uniqueness" terminology for in-place updates has now been completely
replaced with the notions of "consumption" and "freshness". -
futhark bench: JSON files now contain metadata about the configuration and
execution environment (#2381). Work by Yifan Chen. -
New attribute:
cpu_function. -
Support for ISPC 1.31 (and that is now also the minimum version). (#2557)
-
futhark replandfuthark evalcan now run code available via a compiled
server executable. -
futhark test:auto outputnow works withscript input.
Removed
- The
futhark scriptcommand has been removed.
Changed
-
FutharkScript has been replaced by ordinary Futhark. The magical builtins have
been replaced by magical functions, e.g.,$loadbytesis nowio.loadbytes.
Obviously only works in interpreted code. Futhark is not an exact
functionality match for FutharkScript, but most things should be able to work. -
futhark literateno longer implicitly marks functions used in directives as
entry points. Useentrywhen you actually want compiled entry points. -
The consumption/aliasing system has been reimplemented. The main change is
that annotated freshness on functions now takes precedence even if a more
fresh type is inferred - some existing programs may need*added to their
return type. Beyond that, the system should generally just be more flexible.
Fixed
-
Python input reading no longer hangs on an unsuffixed
0, an unsuffixed
hexadecimal integer, or a line comment at EOF. -
File names are now always encoded as UTF-8. Non-UTF-8 locales are not
supported. -
Propagation of flattening attributes in some cases.
-
GPU code generation now supports reductions with more than 25 operators.
-
reduceandreduce_commnow produce alias-free results. -
AD is now supported for scans with array operators (#2208). Work by Yifan Chen.
-
AD operators now return alias-free results.
-
Shared memory histograms no longer occasionally exceed the shared memory
limit when chunking the buckets. -
Tiling would produce invalid code in some cases.
-
Mishandling of abstract types could lead to compiler crash. (#2538)
-
Conversion of floating-point numbers to integers would trigger UB whenever the
number was too large to fit in the integer. (#2543) -
Horizontal fusion of multi-dimensional histograms. (#2555)
-
OpenCL profiling reports on macOS no longer undercount event durations by
about 42x: Apple's OpenCL reports Mach time units, not nanoseconds. -
Internalisation of reduce_by_index_3d with array-valued elements. (#2554)
-
A compiler crash caused by size-polymorphic recursive functions. (#2569)
-
Overzealous copy removal in conjunction with AD could result in a compiler
crash. (#2567) -
Short-circuiting of function parameters failed to take layout into account.
(#2568) -
futhark literatenow handles indented comments. (#2521)