Skip to content

0.25.1

Compare
Choose a tag to compare
@github-actions github-actions released this 06 Jul 14:43

Added

  • Arbitrary expressions of type i64 are now allowed as sizes. Work
    by Lubin Bailly.

  • New prelude function resize.

Removed

  • The prelude functions concat_to and flatten_to. They are often
    not necessary now, and otherwise resize is available.

Changed

  • The prelude functions flatten and unflatten (and their
    multidimensional variants), as well as split, now have more
    precise types.

  • Local and anonymous (lambda) functions that must return unique
    results (because they are passed to a higher order function that
    requires this) must now have an explicit return type ascription that
    declares this, using *. This is very rare (in practice
    unobserved) in real programs.

Fixed

  • futhark doc produced some invalid links.

  • flatten did not properly check for claimed negative array sizes.

  • Type checker crash on some ill-typed programs (#1926).

  • Some soundness bugs in memory short circuiting (#1927, #1930).

  • Another compiler crash in block tiling (#1933, #1940).

  • Global arrays with size parameters no longer have aliases.

  • futhark eval no longer crashes on ambiguously typed expressions (#1946).

  • A code motion pass was ignorant of consumption constraints, leading
    to compiler crash (#1947).

  • Type checker could get confused and think unknown sizes were
    available when they really weren't (#1950).

  • Some index optimisations removed certificates (#1952).

  • GPU backends can now transpose arrays whose size does not fit in a
    32-bit integer (#1953).

  • Bug in alias checking for the core language type checker (#1949).
    Actually (finally) a proper fix of #803.

  • Defunctionalisation duplicates less code (#1968).