Skip to content
This repository has been archived by the owner on Feb 28, 2023. It is now read-only.

Releases: kspalaiologos/asmbf

Supplemental update to v1.5.4: move semantics, lods, stos, scas

04 May 13:03
Compare
Choose a tag to compare

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 in lib-bfm
  • x64 Darwin binaries (@sech1p)

v1.5.4: bfvm rewrite, basic move semantics

12 Apr 08:40
a0e646d
Compare
Choose a tag to compare

This release fixes a few bugs and adds new features. Full changelog:

  • fix: tps is now vxcallable.
  • feature: u2s and s2u - 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 and jz (introduced with ^ before instruction name).

Bugfix release over v1.5.3

30 Mar 14:14
Compare
Choose a tag to compare

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

20 Mar 19:05
Compare
Choose a tag to compare

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 optimized
  • xge
  • 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 optimization
  • bfdata and bflabel performance improvements
  • SK calculus evaluator example
  • vxcall patch; bfdata addressing bugfixes.
  • merged vxcall and constpp, bfdata and bflabels.
  • 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

10 Dec 06:50
84db9bb
Compare
Choose a tag to compare
  • optimized stores to r4 (size)
  • a few more examples
  • gen_text macro
  • dp2, dup2, fdup instructions
  • axl - approximate with low precision
  • sgeq, sgne
  • xgt, xle - signed greater than & signed less or equal

v1.5.1: Tweaks and cleanups

25 Nov 08:02
Compare
Choose a tag to compare

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.

13 Oct 19:01
Compare
Choose a tag to compare

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 and cend 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 Nth decimal place).

build system changes, manual in the trunk

04 Oct 15:14
Compare
Choose a tag to compare

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)

02 Oct 20:16
357c84d
Compare
Choose a tag to compare

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.

07 Aug 05:20
f274676
Compare
Choose a tag to compare

This release features:

  • -c switch for bfi, 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.