- update to the latest
polonius-engine
- update to the latest
polonius-engine
- update the test parser to add the new facts related to subset errors
- update, deduplicate, and remove some dependencies
- remove
--ignore-region-live-at
, as theregion_live_at
is now gone from the inputs and is always calculated! - add a CLI option
--ignore-region-live-at
which ignores those facts and recompute them using Polonius even if provided. - missing
region_live_at.facts
is no longer an error. - consistently use the logging crate for error and warning logging.
Add a CLI option --dump-liveness-graph
to dump a Graphviz file with a
(reduced) liveness-related graph for debugging.
- adopt latest polonius-engine
- extensions to the parser to incorporate syntax for the new facts
- adopt latest polonius-engine
- integrate the latest engine
- add graphviz output
- preliminary work towards a friendly front-end format
- compute subset errors in all variants, allows the
Hybrid
variant to be the default again - more terminology work, on the relation names, to improve clarity
- fix an issue in tracking paths and subpaths in move/init analysis
- finish moving to the new terminology
- implement move tracking
- remove some of the input facts not needed for testing
- adopt a new terminology for the Atoms, and begin documenting everything in a book
- use a new API to refer to the Atom types via associated types
- compute new errors: illegal subset relation errors, where for example
a
fn foo<'a, 'b>
might require'a: 'b
annotations to be valid. - more work towards supporting initialization facts and errors
- more work towards defining different phases where each can have its own input facts or produce errors
- add the initialisation-tracking inputs
child
,path_belongs_to_var
,initialized_at
,moved_out_at
, andpath_accessed_at
, as well as the newAtom
MovePath
to the type ofAllFacts
to capture move paths. - remove the
var_maybe_initialized_on_exit
input, as it is now calculated by Polonius. - remove the
region_live_at
input fact, as it is now calculated by Polonius.
- add the input
var_initialized_on_exit
which indicates if a variable may be initialized at a given point and is used to compute drop-liveness.
- Polonius now performs liveness analysis to calculate
region_live_at
, if it isn't present (#104) - extend the type of
AllFacts
andOutput
withVariable
- new facts:
var_defined
,var_used
,var_drop_used
,var_uses_region
, andvar_drops_region
Output
now has avar_live_at
, and avar_drop_live_at
field
- add a naive hybrid algorithm that first executes the location-insensitive analysis and falls back to the full analysis as needed (#100)
- extend tests to cover the location-insensitive analysis
- invert loan and point arguments in loc insensitive check
- adopt the new datafrog 2.0 dependency (#95)
- some deduplicated dependencies and other improvements (#93, #91, #90)
- adopt the new datafrog 1.0 dependency and optimize with leapfrog joins (#88)
- bug: fixed bug in
DatafrogOpt
algorithm (#84) - now builds on Rust 2018 beta (#84)
- optimization: remove symmetries in
subset
relation (#78)
- add a new algorithm that permits comparing naive and optimized
- avoid
Cow
forerrors_at
- renamed field from
potential_errors
toerrors
- added
Output
mode
- made default more lenient