Releases: Wilfred/bfc
Releases · Wilfred/bfc
1.12.0
1.11.0
Fixed a crash on compiling empty programs at low optimisation levels.
The strip argument is now -s, consistent with other compilers, and
binaries are no longer stripped by default.
Stripping is now done during linking, rather than shelling out to
strip. This is faster and more robust.
Improved dead code elimination after multiply loops, e.g. [>++<-][-]
is equivalent to [>++<-].
1.10.0
Updated to LLVM 13.
Interface:
- Improved diagnostics display on warnings and errors.
- CLI argument parsing now uses the clap library. No arguments have
 changed, but help and argument parsing errors should be clearer.
1.7.0
Bug fixes:
- Fixed a rare crash on programs with a large number of instructions
 had no effect.
- Fixed a memory issue where programs with a large number of cells
 (which were stored on the stack) were misoptimised and
 segfaulted. Cell storage is now on the heap.
Optimisations:
- Stripping symbols from the output binary can now be controlled with
 --strip.
- Re-added a multiply loop optimisation. This was removed in 1.5.0 due to
 soundness bugs.
Usability:
- Added a --versionCLI argument.
1.6.0
1.5.0
Bug fixes:
- Fixed an optimisation that incorrectly removed instructions when
 both.and,instructions were present.
- Moved to LLVM 3.8, as LLVM 3.7 misoptimised some programs (see #8).
Usability:
- bfc now reports a helpful error on nonexistent targets.
- Improved wording of the warning message on multiply loops that
 access out-of-bounds cells.
- Added a --passesCLI argument to customise which bfc optimisation
 passes are run.
Now with precompiled binaries for users to play with!