Bot releases are visible (Hide)
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] over 1 year ago
Published by github-actions[bot] over 1 year ago
Flattening/unflattening as the final operation in an entry point no
only forces a copy.
The opencl
backend no longer always fails on platforms that do
not support 64-bit integer atomics, although it will still fail if
the program needs them.
Various performance improvements to the compiler itself;
particularly the frontend. It should be moderately faster.
Code generation for f16
literals in CUDA backend (#1979).
Branches that return arrays differing in sign of their stride
(#1984).
Published by github-actions[bot] over 1 year ago
Arbitrary expressions of type i64
are now allowed as sizes. Work
by Lubin Bailly.
New prelude function resize
.
concat_to
and flatten_to
. They are oftenresize
is available.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.
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).
Published by github-actions[bot] over 1 year ago
Certain cases of noninlined functions in multicore
backend.
Defunctionalisation of match
where the constructors carry
functions (#1917).
Shape coercions involving sum types (#1918). This required
tightening the rules a little bit, so some coercions involving
anonymous sizes may now be rejected. Add expected sizes as needed.
Defunctionalisation somtimes forgot about sizes bound at top level
(#1920).
Published by github-actions[bot] over 1 year ago
futhark literate
(and FutharkScript in general) is now able to doAccumulators (produced by AD) had defective code generation for
intra-group GPU kernel versions. (#1895)
The header file generated by --library
contained a prototype for
an undefined function. (#1896)
Crashing bug in LSP caused by stray undefined
(#1907).
Missing check for anonymous sizes in type abbreviations (#1903).
Defunctionalisation crashed on projection of holes.
Loop optimisation would sometimes remove holes.
A potential barrier divergence for certain GPU kernels that fail
bounds checking.
A potential infinite loop when looking up aliases (#1915).
futhark literate
: less extraneous whitespace.
Published by github-actions[bot] over 1 year ago
The manifest file now lists which tuning parameters are relevant for
each entry point. (#1884)
A command tuning_params
has been added to the server protocol.
A somewhat obscure simplification rule could mess up use of memory.
Corner case optimisation for mapping over iota
(#1874).
AD for certain combinations of map
and indexing (#1878).
Barrier divergence in generated code in some exotic cases (#1883).
Handling of higher-order holes (#1885).
Published by github-actions[bot] over 1 year ago
f16.log1p
/f32.log1p
/f64.log1p
by nbos (#1820).
Better syntax errors for invalid use of !
.
futhark literate
now supports a $loadaudio
builtin function for loading
audio to Futhark programs (#1829).
You can now mix consumption and higher-order terms in slightly more
cases (#1836).
futhark pkg
now invokes Git directly rather than scraping
GitHub/GitLab. This means package paths can now refer to any Git
repository, as long as git clone
works. In particular, you can
use private and self-hosted repositories.
Significant reduction in compilation time by doing internal sanity
checks in separate thread.
New command: futhark eval
. Evaluates Futhark expressions
provided as command line arguments, optionally allowing a file
import (#1408).
script input
now allows the use of $loaddata
.
Datasets used in futhark test
and futhark bench
can now be named
(#1859).
New command futhark benchcmp
by William Due.
futhark_context_new_with_command_queue()
forfuthark_context_config_set_command_queue()
.Minor parser regression that mostly affects the REPL (#1822).
Parser did not recognise custom infix operators that did not have a
builtin operator as prefix (#1824).
GPU backends: expansion of irregular nested allocations involving
consumption (#1837, #1838).
CLI executables now handle entry points with names that are not
valid C identifiers (#1841).
Various oversights in the type checking of uniqueness annotations
for higher-order functions (#1842).
Invalid short-circuiting could cause compiler crashes (#1843).
Defunctionalisation could mess up sum types, leading to invalid code
generation by internalisation, leading to a compiler crash (#1847).
The #[break]
attribute now provides the right environment to
futhark repl
, allowing local variables to be inspected.
Simplification of concatenations (#1851).
Array payloads in sum types no longer need parens (#1853).
When a file is loaded with futhark repl
, local
declarations are
now available.
Missing alias propagation when pattern matching incompletely known
sum types (#1855).
reduce_by_index
and hist
were in some cases unable to handle
input sizes that do not fit in a 32-bit integer.
A fusion bug related to fusing across transpositions could result in
a compiler crash (#1858).
Published by github-actions[bot] almost 2 years ago
futhark literate
now supports an :audio
directive for producing audio
files from arrays of i8
(#1810).
futhark multicore
now parallelises copies (#1799).
futhark multicore
now uses an allocator that better handles large
allocations (#1768).
Some record field names could cause generation of invalid C API names (#1806).
Memory block merging was extremely and unnecessarily slow for
programs with many entry points.
Simplification mistake could lead to out-of-bounds reads (#1808).
futhark lsp
now handles some bookkeeping messages sent by Eglot.
Parser can now handle arbitrarily complex chaining of indexing and
projection.
Detect and complain about source files without .fut extension (#1813).
Overly conservative checking of whether a function parameter is
allowed by be consumed - it was disallowed if it contained any
scalars (#1816).
Published by github-actions[bot] almost 2 years ago
Slightly better type errors for sum types (#1792).
Better tracing output in interpreter (#1795).
Improved optimisation of code that uses zero-element arrays
(sometimes used for type witnesses).
Mishandling of bounds checks in parallel backends could cause
compiler crashes (#1791).
Mis-simplification of certain sequentialised scatters into
single-element arrays (#1793).
Invalid scatter
fusion would cause an internal compiler error
(#1794).
The code generator flipped the order of match
cases.
Simpification of concatenations (#1796).
Defunctionalisation error for fancy size programming (#1798).
Code generation for load-unbalanced reductions in multicore backend
(#1800).
Futhark now works on CUDA 12 (#1801).
mul_hi
and mad_hi
for signed integer types now actually do
signed multiplication (previously it was always unsigned).
Published by github-actions[bot] almost 2 years ago
Memory short circuiting now also applied to the multicore
backend.
Fixes for AD of scan
with nonscalar operators. Work by Lotte
Bruun and Ulrik Larsen.
Generalised histograms now supported in AD. Work by Lotte Bruun and
Ulrik Larsen.
OpenCL kernels now embed group size information, which can
potentially be used for better register allocation by the OpenCL
implementation.
A hole in the type checker that allowed one to sneak functions out
if conditionals (#1787).
futhark repl
: unsigned integers are now printed correctly.
A bug in the type-checking of match
(#1783).
Missing sequencing in type-checking of in-place let
expressions (#1786).
Crash in defunctionaliser caused by duplicate parameter names
(#1780).
Infelicities in multicore codegen for scans (#1777).