Skip to content

v1.14.2

Choose a tag to compare

@github-actions github-actions released this 06 Jul 11:32

Bug fixes

  • Update release workflow

    We previously dropped publishing of binary artifacts, but hadn't updated
    the release workflow for that yet. This patch does that, and also
    performs a bunch of bumps and pins of actions that workflow uses.

    (cherry picked from commit 30cf38e)

  • Fix Fiber constructor clobbering shared stack.

    Previously, when constructing a Fiber with type SharedStack, we'd
    initialize the underlying fiber with the global shared stack. This
    isn't safe: The fiber_init() call writes to the shared stack, but
    there's no guarantee that the shared stack isn't being used by
    another fiber when this happens.

    Circumvent this by moving the underlying fiber initialization into
    __fiber_switch_trampoline(), where it is guaranteed that the previously
    executing fiber has saved() the shared stack so that it is now free
    to be used by a different fiber. Use the nullptr fiber_stack() return
    as the indicator, that the initialization still needs to happen.

    (cherry picked from commit 9b0cfac)

  • GH-2414: Allow disabling of building of benchmarks

    We have a reoccurring and hard to diagnose issue with the
    google/benchmark dependency failing to detect the regex backend, #2414.
    Since the benchmarks and their dependencies are not needed during
    regular use, add a configure option --disable-benchmarks and a CMake
    variable SPICY_ENABLE_BENCHMARKS to allow turning benchmarks off.

    (cherry picked from commit 5b54b99)

  • Avoid underflow in atoi_n

    We had previously fixed some overflows in this function, but missed a
    case when extracting INT64_MIN. We were already parsing the absolute
    value with enough range, but could underflow when negating it for the
    final result since the negation was done in the target type which did
    not have enough range.

    With this patch we instead perform the negation in the unsigned type
    which has enough range, and only cast to the target type after.

    (cherry picked from commit 9645a0b)

  • Handle overflows in atoi_n

    (cherry picked from commit d2f46cc)

  • Handle overflows when checking whether an integer can coerce to real.

    We were already handling the loss of precision, but not overflow.

    (cherry picked from commit df9a655)