Skip to content

Releases: google/emboss

v2025.1202.230212

02 Dec 23:02
41c1b64

Choose a tag to compare

Merge pull request #201 from reventlov/error_example_generator

Error example generator

v2025.1202.230055

02 Dec 23:00
dee7693

Choose a tag to compare

Merge pull request #202 from reventlov/fix_includes

Fix some #includes

v2025.1003.000719

03 Oct 00:07

Choose a tag to compare

Update repo_token for releases

Update the release workflow to use a new personal access token.

v2025.0204.163557

04 Feb 16:35
2104ce4

Choose a tag to compare

Update deprecated `assertRegexpMatches` to its new name. (#217)

v2025.0203.171022

03 Feb 17:10
5901d12

Choose a tag to compare

Fix ASAN failure in `array.rend()`. (#219)

The iterator constructor used `array[index]` to initialize an internal
cached view (necessary so that `operator->` can return a pointer), which
caused pointer arithmetic overflow when `index` was -1 -- as in the case
of `rend()`.

This change uses a checked `array.at(index)` method to get a null view
when `index` is out of bounds.

I considered changing `array[index]` to return a null view for
out-of-bounds indexes, but user code may be inadvertently relying on
that behavior, so I am leaving it out of this bug fix.

v2024.1221.181843

21 Dec 18:18
1827594

Choose a tag to compare

Handle very large `.emb` files. (#215)

This change switches parse tree handling to use iteration (with an
explicit stack) instead of recursion, which:

*   Allows large (>~1000 entity) `.emb` files to be formatted.
*   Allows very large (>~16k entity) `.emb` files to be compiled.

The difference in sizes in the previous code was due to `module_ir.py`
hackily increasing the recursion limit: while this more or less worked,
it was a little dangerous (it ran the risk of blowing out the C stack,
depending on platform) and only increased the limit.  This change
removes the limit entirely (at least, up to the available memory on the
system).

v2024.1219.234851

19 Dec 23:48
615a955

Choose a tag to compare

Add `alignas` specifier to buffer in explicit alignment test. (#216)

Also update workflow to emit test logs on failure.

v2024.1218.230943

18 Dec 23:09
bb45c18

Choose a tag to compare

Add docs for would-be contributors. (#213)

v2024.1218.215136

18 Dec 21:51
75bdc4c

Choose a tag to compare

Add error message for obscure case with parameters. (#214)

Prior to this change, if a user omitted the length of an integer
parameter *and* used that parameter as an argument to an operator or
function, the compiler with throw an `AttributeError` instead of
providing a useful message.

This is because the check that integer runtime parameters have an
explicit size happened later than the function in `expression_bounds.py`
that tried to use the size.

This change moves the check earlier (incidentally spliting
`check_constraints` into `check_constraints` and
`check_early_constraints`), and also gives it a better error message.

v2024.1205.195338

05 Dec 19:53
35220b7

Choose a tag to compare

Fix tests under `bazel test -c opt`. (#212)

With certain versions of GCC, `bazel test -c opt ...` failed, apparently
due to a compiler bug.

This change:

1.  Adds a workaround for the GCC bug.
2.  Enables the workaround on versions of GCC known to have the bug.
3.  Documents the bug (in comments).
4.  Enables testing with `-c opt` as part of the commit hook.

Note that the versions covered by #2 are a little wider than may be
technically necessary.  As of the time of writing, this affects all
released versions of GCC from 12.1 through 14.1, but the GCC fix has
been backported to the 12.X and 13.X branches.  It may be possible
to reduce the workaround's scope once those are released.