Releases: TuringLang/Libtask.jl
v0.9.17
Libtask v0.9.17
Further improve performance by dropping unused Refs from the tape entirely.
Merged pull requests:
- Delete unused refs from the tuple argument entirely (#221) (@penelopeysm)
v0.9.16
Libtask v0.9.16
Improve performance by removing unnecessary set_ref_at! / get_ref_at calls.
Merged pull requests:
- Eliminate dead refs (#220) (@penelopeysm)
- Improve implementation of reference elimination (#222) (@penelopeysm)
- py/perf (#223) (@penelopeysm)
Closed issues:
- Improve performance by not keeping unnecessary refs (#193)
v0.9.15
Libtask v0.9.15
Improve Libtask's handling of non-const global variables.
Previously, usage of non-const globals in a TapedTask would cause Libtask to throw an "Unbound GlobalRef not allowed in value position" error.
They should now work, and you can mutate global variables between calls to consume.
Merged pull requests:
- Fix non-const global variables (#219) (@penelopeysm)
Closed issues:
- Unbound GlobalRef not allowed in value position (#211)
v0.9.14
Libtask v0.9.14
Added the Libtask.might_produce_if_sig_contains method.
Merged pull requests:
- Implement
Libtask.might_produce_if_sig_contains(#218) (@penelopeysm)
Closed issues:
- Mark ALL functions that take
DynamicPPL.Modelas an argument, anywhere, as produceable? (#217)
v0.9.13
Libtask v0.9.13
Fix a bug where SSA registers in throw_undef_if_not expressions were not being correctly handled.
This affected TapedTasks where the underlying function had variables that were conditionally defined.
Also adds an internal function, Libtask.generate_ir, which is useful for debugging.
This is not part of the public API; however if you are developing Libtask it is a useful function for quickly inspecting the IR that Libtask generates, both pre- and post-optimisation.
Merged pull requests:
- Fix throw_undef_if_not error (#216) (@penelopeysm)
Closed issues:
- Libtask doesn't gracefully handle sometimes-defined variables (#204)
v0.9.12
Libtask v0.9.12
Added a new method, Libtask.get_taped_globals(tt::TapedTask).
This method extracts the taped globals stored inside tt.
Note that this is distinct from the existing method Libtask.get_taped_globals(::Type{T}) where {T}.
That method is meant for being called inside a TapedTask, and it extracts the taped globals from the task that it is currently inside.
This PR also improves the error message for the latter method.
When calling Libtask.get_taped_globals(::Type{T}) where {T} outside of a TapedTask, this now throws a Libtask.NotInTapedTaskError (which can be specifically caught) and shows a better error message.
Merged pull requests:
- Add a new method for
get_taped_globals; improve the error message when wrongly calling the old method (#215) (@penelopeysm)
Closed issues:
v0.9.11
Libtask v0.9.11
When constructing a TapedTask with a method that will error when run (e.g. method doesn't exist, or is ambiguous) a more helpful error is shown.
Merged pull requests:
- Remove trailing whitespace (#210) (@mhauru)
- Clean up benchmarks folder and CI (#213) (@penelopeysm)
- Improve error when method is ambiguous or nonexistent (#214) (@penelopeysm)
Closed issues:
v0.2.2
Libtask v0.2.2
This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.
v0.9.10
v0.9.9
Libtask v0.9.9
Remove manual opaque closure optimisation functions in favour of setting the world age and letting the compiler do more work for us, and providing it with some more type information. This changes no functionality, and shouldn't change performance either, but simplifies code.
Merged pull requests: