Skip to content

v1.11.1

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Sep 14:32
· 168 commits to main since this release

Bug fixes

  • GH-1831: Fix optimizer regression.

    We were no longer marking types as used that are referenced through a type name.

  • GH-1823: Don't qualify magic linker symbols with C++ namespace.

    We need them at their original values because that's what the runtime lbirary is hard-coded to expect.

  • Fix use of move'd from variable.

    Function parameters still shadown members in C++. This is a fixup of c3abbbe.

  • Fix undefined shifts of 32bit integer in toInt().

    1U is 32bit on a 64bit system and shifting it by more than 31 bits is undefined. The following does currently produce -4294967296 instead of -1:

    b"\xff\xff\xff\xff".to_int(spicy::ByteOrder::Big)
  • Fix to_uint(ByteOrder) for empty byte ranges.

    to_uint() and to_int() for empty byte ranges throw when attempting to convert printable decimals to integers. Do the same for the byte order versions. The assumption is that it is really an error when the user calls to_int() or to_uint() on an empty byte range.

  • GH-1817: Prevent null ptr dereference when looking on nodes without Scope.

  • GH-1815: Disallow expanding limited Views again with limit.

    The documented semantics of View::limit are that it creates a new view with equal or smaller size. In contrast to that we would still have allowed to expand views with more calls limit again as well.

    This patch changes the implementation of View::limit so it can only ever make a View smaller.

    We also tweak the implementation of the check for consumed &size when used together with &eod: if the &size was already nested in a limited view a larger &size value could previously extend the view so the &eod effectively was ignored. Since we now do not extend the View anymore we need to only activate the check for consumed &size if &eod was not specified since in this case the user communicated that they are fine with consuming less data.

  • GH-1810: Fix nested look-ahead switches.

  • Remember normalized paths when checking for duplicate files in driver.

    While we ignore duplicate files it was still possible to erroneously add the same file multiple times to a compilation. Catch this trivial case.

  • GH-1462: Remember files processed by the driver.

    We did this previously but stopped doing it with #1462.

  • Remove a few value copies.

  • GH-1813: Fix equality implementation of module UID.

    We already computed a unique ID value for each module to allow declaring the same ID name multiple times; we however did not consistently use that value in the implementation of module::UID equality and hash operators which is addressed by this patch.