Added
-
The GPU loop tiler can now handle loops where only a subset of the
input arrays are tiled. Matrix-vector multiplication is one
important program where this helps (#1145). -
The number of threads used by the
multicore
backend is now
configurable (--num-threads
and
futhark_context_config_set_num_threads()
). (#1162)
Fixed
-
PyOpenCL backend would mistakenly still streat entry point
argument sizes as 32 bit. -
Warnings are now reported even for programs with type errors.
-
Multicore backend now works properly for very large iteration
spaces. -
A few internal generated functions (
init_constants()
,
free_constants()
) were mistakenly declared non-static. -
Process exit code is now nonzero when compiler bugs and
limitations are encountered. -
Multicore backend crashed on
reduce_by_index
with nonempty target
and empty input. -
Fixed a flattening issue for certain complex
map
nestings
(#1168). -
Made API function
futhark_context_clear_caches()
thread safe
(#1169). -
API functions for freeing opaque objects are now thread-safe
(#1169). -
Tools such as
futhark dataset
no longer crash with an internal
error if writing to a broken pipe (but they will return a nonzero
exit code). -
Defunctionalisation had a name shadowing issue that would crop up
for programs making very advanced use of functional
representations (#1174). -
Type checker erroneously permitted pattern-matching on string
literals (this would fail later in the compiler). -
New coverage checker for pattern matching, which is more correct.
However, it may not provide quite as nice counter-examples
(#1134). -
Fix rare internalisation error (#1177).