2022-09-11
- Internal maintenance.
2020-01-28
- Performance improvements for dot syntax (
.
).
2019-11-03
- Hex syntax extension: The new string macro allows arbitrary text content
inside quotes like
"foo bar"
which produces a UTF-8 encoded byte sequence representing the quoted string content. - Hex syntax extension: In repetition macros, multiplicative suffixes may now
be added to quantifiers like
(00){2M}
, producing 2 MiB of NULL bytes.
2019-09-29
- Performance improvements for range macros.
2019-06-24
- The hex macro syntax has been extended to make random byte sequences possible:
An alternative macro like
(00|ff|3333)
randomly produces one of00
,ff
or3333
. A range macro like(0c-0f)
randomly produces one of0c
,0d
,0e
or0f
. The special range macro.
produces one random byte.
2018-10-21
-
With the new CLI option
--plain
(or-p
), hex code without surrounding Markdown is accepted as input, allowing quick tests like this:$ echo '(00ff){42} 0a' | lb --plain
-
The new CLI option
--version
prints the current version number. -
It is now possible to create really large files. For example, hex code like
(41){5368709000}
, resulting in 5 GB of data, can be compiled regardless of the available RAM. (It may take some time though.) Prior to this release, this would cause memory errors. -
Error messages have been improved.
2018-09-05
- Initial release.
The lb
tool uses semantic versioning which is summarized as follows:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Semantic versioning requires software to declare a public API. The public API of
lb
is defined by two components:
- The command line interface syntax (switches, options, arguments).
- The hex string language understood by
lb
(hex characters, macros, comments).