github diku-dk/futhark v0.20.1
0.20.1

latest releases: nightly, v0.25.16, v0.25.15...
2 years ago

Added

  • The #[trace] and #[break] attributes now replace the trace
    and break functions (although they are still present in
    slightly-reduced but compatible form).

  • The #[opaque] attribute replaces the opaque function, which is
    now deprecated.

  • Tracing now works in compiled code, albeit with several caveats
    (mainly, it does not work for code running on the GPU).

  • New wasm and wasm-multicore backends by Philip Lassen. Still
    very experimental; do not expect API stability.

  • New intrinsic type f16, along with a prelude module f16.
    Implemented with hardware support where it is available, and with
    f32-based emulation where it is not.

  • Sometimes slightly more informative error message when input of
    the wrong type is passed to a test program.

Changed

  • The ! function in the integer modules is now called not.

  • ! is now builtin syntax. You can no longer define a function
    called !. It is extremely unlikely this affects you. This
    removes the last special-casing of prefix operators.

  • A prefix operator section (i.e. (!)) is no longer permitted
    (and it never was according to the grammar).

  • The offset parameter for the "raw" array creation functions in the
    C API is now int64_t instead of int.

Fixed

  • i64.abs was wrong for arguments that did not fit in an i32.

  • Some f32 operations (**, abs, max) would be done in double
    precision on the CUDA backend.

  • Yet another defunctorisation bug (#1397).

  • The clz function would sometimes exhibit undefined behaviour in
    CPU code (#1415).

  • Operator priority of prefix - was wrong - it is now the same as
    ! (#1419).

  • futhark hash is now invariant to source location as well as
    stable across OS/compiler/library versions.

  • futhark literate is now much better at avoiding unnecessary
    recalculation.

  • Fixed a hole in size type checking that would usually lead to
    compiler crashes (#1435).

  • Underscores now allowed in numeric literals in test data (#1440).

  • The cuda backend did not use single-pass segmented scans as
    intended. Now it does.

Don't miss a new futhark release

NewReleases is sending notifications on new releases.