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
--version
CLI 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
--passes
CLI argument to customise which bfc optimisation
passes are run.
Now with precompiled binaries for users to play with!