This repository has been archived by the owner on Feb 28, 2023. It is now read-only.
Releases: kspalaiologos/asmbf
Releases · kspalaiologos/asmbf
Supplemental update to v1.5.4: move semantics, lods, stos, scas
This supplemental update to v1.5.4 features:
- more tests for move semantics; move semantics implemented for
le, mod, mov, ne, psh
. mbegin .. mend
construct (implicit move semantics inside the block).- bfstrip now doesn't strip unrecognized commands if bfmake flag
-q
is supplied. - move semantics for sub, rcl and sto.
- countless manual updates.
- bfmake preserves files on failed build.
- the makefile works on Mach/BSD (thanks to @sech1p)
- optimization for
mul reg, imm
- translation to and from trivial brainfuck substitutions (
subst.pl
) lods
,stos
,scas
(check the manual/discord server for more).- a
full
make target to build, install and test asm2bf. - change the apperiance of hello-fancy.asm in the examples directory.
- alias
_
to print inlib-bfm
- x64 Darwin binaries (@sech1p)
v1.5.4: bfvm rewrite, basic move semantics
This release fixes a few bugs and adds new features. Full changelog:
- fix:
tps
is nowvxcall
able. - feature:
u2s
ands2u
- casting between unsigned and signed numbers, both ways. - updated manual
- bfvm rewrite; real segmentation mode / scale factor support.
- fix:
cret
now works correctly. - move semantics support for
and
,add
,div
,eq
,lt
,gt
,jmp
,jnz
andjz
(introduced with^
before instruction name).
Bugfix release over v1.5.3
A hotfix for the following:
- bfvm reading 0xFF on EOF
- constpp undefined behaviour
- tab-separated mnemonic + operand combination resulting in an error.
v1.5.3: 2021 release
Consider this more of a bugfix/stability release, with most features originating from the first three months of 2021. Featuring:
- removing obsolete
generate_report
xlt
(1f85176)xge
,xle
optimizedxge
- multiline
constpp
macros - many new instructions implemented for
bfvm
- a new ucode compiler.
- bugfixes to bfadbg (more edge-case handling in edit mode)
- improved compatibility with weird systems
lbl imm
optimizationbfdata
andbflabel
performance improvements- SK calculus evaluator example
vxcall
patch;bfdata
addressing bugfixes.- merged
vxcall
andconstpp
,bfdata
andbflabels
. sle
now works correctly on an empty stack- multiple
bfvm
bugfixes bfmake
no longer requires-b
to go along-c
.bfvm
output is more portable- inline brainfuck is now supported by
bfvm
(although it's not optimized yet). - linear-bounded automata optimizer in Java (remotely useful for asm2bf programs).
v1.5.2: new build system, bugfixes
- optimized stores to
r4
(size) - a few more examples
gen_text
macrodp2, dup2, fdup
instructionsaxl
- approximate with low precisionsgeq, sgne
xgt, xle
- signed greater than & signed less or equal
v1.5.1: Tweaks and cleanups
This release features:
- rewritten bflabels / bfdata
- far pointers
- forward data declarations
- optimizing code label system
- tiny mode to bfasm (
-t
) - most compile-time switches present before are now available as runtime flags.
- performance graphs
#emit
macro[bits N]
construct preprocessed by bfdata.- automatic warnings about bitwidth exceeding.
bts
core instruction (emitted by[bits N]
).
v1.5.0: A milestone release - signed arithmetic.
This release brings us:
- basic signed arithmetic -
sgadd
,sgsub
,sgmul
,sgdiv
,sgmod
,sneg
(signed negation),abs
,sgn
(signum). - faster builds, better tests.
- asm2bf passes the magical amount of 35 000 lines of code, 130 instructions and 900 commits.
- enhanced error reporting.
- minor bugfixes
cbegin
andcend
blocks for conditional instructions!
Roadmap for future versions:
- conditional variants
- comparisons
- conditional pipeline primers (1st and 2nd kind) for the comparisons.
- signed floating point arithmetic.
- chebyshev coefficients & trigonometric function approximation.
- floating point & constant square root.
- floating point approximation (calculate
N
th decimal place).
build system changes, manual in the trunk
This version includes:
- refreshed bfstrip, with optional linebreak insertion in the file (wrap to width using
--with-line-width=n
while calling./configure
). - manual in the trunk
- reorganized microcode for bfasm
- smarter bfmake (detecing the installed bfasm version).
fcpush
,fcpop
,fcpsh
aliases.- lib-bfm stub changes
- bfvm jamming protector.
- fixed a single memory leak regarding
effective
- fixed two buffer overflows
- fix the
double-nocopy
switch
AiO release (800 commits)
A large release. Features:
- small size optimizations for
db
- escape sequences inside
txt
- better error reporting
- asm2bf manual with a complete instruction set outline
- many bfvm microcode patches
- redpower (the asm2bf bootable kernel loader)
- two new instructions (
fps/fpo
, for pushing and popping the flag register state) - a signed arithmetic polyfill draft,
- more examples
- autoconf migration.
Effective adress bugfixes; bfvm prototype.
This release features:
-c
switch forbfi
, which will count the amount of cycles taken by the brainfuck program.- Various changes regarding to effective adresses; stack-based ones; effective adress priming.
- stack gets / stack sets / stack length query (
O(N)
). vxcall
- bfvm prototype
- remove obsolete toolkit elements.
The documentation is currently being written.