Skip to content

0.28.1

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Oct 15:45
· 22 commits to master since this release

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 repl and futhark eval can now run code available via a compiled
    server executable.

  • futhark test: auto output now works with script input.

Removed

  • The futhark script command has been removed.

Changed

  • FutharkScript has been replaced by ordinary Futhark. The magical builtins have
    been replaced by magical functions, e.g., $loadbytes is now io.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 literate no longer implicitly marks functions used in directives as
    entry points. Use entry when 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.

  • reduce and reduce_comm now 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 literate now handles indented comments. (#2521)

  • Various holes in alias analysis (#1675, #2531).