Releases: google/emboss
Releases · google/emboss
v2025.1202.230212
Merge pull request #201 from reventlov/error_example_generator Error example generator
v2025.1202.230055
Merge pull request #202 from reventlov/fix_includes Fix some #includes
v2025.1003.000719
Update repo_token for releases Update the release workflow to use a new personal access token.
v2025.0204.163557
Update deprecated `assertRegexpMatches` to its new name. (#217)
v2025.0203.171022
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
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
Add `alignas` specifier to buffer in explicit alignment test. (#216) Also update workflow to emit test logs on failure.
v2024.1218.230943
Add docs for would-be contributors. (#213)
v2024.1218.215136
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
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.