Skip to content

Releases: diku-dk/futhark

0.2.0

19 Nov 07:12
Compare
Choose a tag to compare

Added

  • Run-time errors due to failed assertions now include a stack
    trace.

  • Generated OpenCL code now picks more sensible group size and count
    when running on a CPU.

  • scatter expressions nested in maps may now be parallelised
    ("segmented scatter").

  • Add num_bits/get_bit/set_bit functions to numeric module
    types, including a new float module type.

  • Size annotations may now refer to preceding parameters, e.g:

    let f (n: i32) (xs: [n]i32) = ...
    
  • futhark-doc: retain parameter names in generated docs.

  • futhark-doc: now takes -v/--verbose options.

  • futhark-doc: now generates valid HTML.

  • futhark-doc: now permits files to contain a leading documentation
    comment.

  • futhark-py/futhark-pyopencl: Better dynamic type checking in
    entry points.

  • Primitive functions (sqrt etc) can now be constant-folded.

  • Futlib: /futlib/vec2 added.

Removed

  • The built-in shape function has been removed. Use length or
    size parameters.

Changed

  • The from_i32/from_i64 functions of the numeric module type
    have been replaced with functions named i32/i64. Similarly
    functions have been added for all the other primitive types
    (factored into a new from_prim module type).

  • The overloaded type conversion functions (i32, f32, bool,
    etc) have been removed. Four functions have been introduced for
    the special cases of converting between f32/f64 and i32:
    r32, r64, t32, t64.

  • Modules and variables now inhabit the same name space. As a
    consequence, we now use x.y to access field y of record x.

  • Record expression syntax has been simplified. Record
    concatenation and update is no longer directly supported.
    However, fields can now be implicitly defined: {x,y} now creates
    a record with field x and y, with values taken from the
    variables x and y in scope.

Fixed

  • The != operator now works properly on arrays (#426).

  • Allocations were sometimes hoisted incorrectly (#419).

  • f32.e is no longer pi.

  • Various other fixes.

0.1.0

04 Oct 12:08
Compare
Choose a tag to compare

(This is just a list of highlights of what was included in the first
release.)

  • Code generators: Python and C, both with OpenCL.

  • Higher-order ML-style module system.

  • In-place updates.

  • Tooling: futhark-test, futhark-bench, futhark-dataset, futhark-doc.

  • Beginnings of a basis library, "futlib".