Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-11-10 | opt: Assert that we don't do disabled optimizations | Tavian Barnes | |
2020-11-09 | opt: Predicates aren't true when they're false | Tavian Barnes | |
This unfortunate typo was mostly harmless; since the predicates were always assumed to be true, they wouldn't conflict. The exception is -user/-group, which set -nouser/-nogroup to false for users/groups that exist. Even -O0 wasn't enough to suppress the bug, due to a missing optlevel check fixed in the previous commit. Fixes: 305ee902874b49351f4916e303c293523f11570b | |||
2020-11-09 | opt: Check optlevel before removing unreachable expressions | Tavian Barnes | |
2020-11-09 | Use two newlines for all pre-eval warnings | Tavian Barnes | |
2020-09-27 | Rename struct cmdline to bfs_ctx | Tavian Barnes | |
The API remains similar, with some added accessor functions for lazy initialization of the pwcache and mtab. | |||
2020-07-29 | bftw: Rename bftw_typeflag to bftw_type, and make it not a bitmask | Tavian Barnes | |
2020-06-07 | opt: Warn when no side effects are reachable | Tavian Barnes | |
2020-06-07 | opt: Dump the command line before optimizing with -D opt | Tavian Barnes | |
2020-06-07 | parse: Prohibit actions inside -exclude | Tavian Barnes | |
2020-06-07 | Implement -exclude, a special form for convenient exclusions | Tavian Barnes | |
Fixes #8. | |||
2020-06-07 | opt: Make sure facts_when_impure sees *all* impure literals | Tavian Barnes | |
2020-06-02 | diag: Unify debug printing | Tavian Barnes | |
2020-05-22 | opt: Add missing #include <unistd.h> | Tavian Barnes | |
2020-05-22 | opt: Track data flow information about predicates | Tavian Barnes | |
This allows us to optimize things like -sparse -o -not -sparse <==> -true and -sparse -a -not -sparse <==> -false | |||
2020-03-23 | opt: Avoid dangling pointers in de_morgan() | Tavian Barnes | |
If optimize_{and,or}_expr() relocates expr, we need to update the parent expr or else we might return garbage. It seems impossible to actually trigger this bug right now, since the {and,or} optimizations are symmetric, but it could be hit if the simplifications in de_morgan() expose more information than was known previously. | |||
2019-04-15 | Release 1.41.4 | Tavian Barnes | |
2019-03-21 | opt: Optimize redundant comma expressions | Tavian Barnes | |
2019-03-20 | opt: Replace -a -false/-o -true with -not when possible | Tavian Barnes | |
2019-02-09 | Add some documentation comments | Tavian Barnes | |
2019-02-04 | opt: Optimize -samefile together with -inum | Tavian Barnes | |
2019-02-01 | opt: Apply data flow optimizations to more numeric ranges | Tavian Barnes | |
2019-01-02 | color: Check format strings + args for cfprintf() | Tavian Barnes | |
%{cc} is now ${cc} to avoid warnings about an unrecognized format specifier, and %P and %L are now %pP and %pL to make them look more like standard format strings. | |||
2018-09-24 | Update copyright dates | Tavian Barnes | |
2018-08-18 | opt: Re-run optimizations after reordering expressions | Tavian Barnes | |
This catches new data flow inferences that can be made after swapping the children of an expression. | |||
2017-12-15 | Keep track of required FDs per-expr | Tavian Barnes | |
2017-09-17 | opt: More -O4 tweaks | Tavian Barnes | |
2017-09-17 | opt: Use the standard LLONG_MAX instead of the nonstandard LONG_LONG_MAX | Tavian Barnes | |
2017-09-17 | opt: Fix -depth with arguments bigger than INT_MAX | Tavian Barnes | |
2017-09-17 | opt: Move some aggressive optimizations back to -O4 | Tavian Barnes | |
2017-09-17 | opt: Have data flow analysis respect always_{true,false} | Tavian Barnes | |
2017-09-16 | opt: Implement some data flow optimizations | Tavian Barnes | |
2017-09-16 | opt: Separate optimization from parsing | Tavian Barnes | |