Skip to content

Building v1.10.0 from source fails with Clang 18 + libstdc++ 13 (native_calc_plan.cpp:231) #779

Closed

Description

@luisleo526

Building PineForge Engine v1.10.0 from source with Clang 18 and libstdc++ 13 fails on Linux (verified on arm64).

Compilers: Clang 18.1.3 (clang++-18) with the GCC 13 libstdc++ headers, CMake, Linux arm64 (Ubuntu 24.04).

Build command (the README's):

CC=clang-18 CXX=clang++-18 cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

Error, for both the pineforge and pineforge_kernel targets:

src/native_calc_plan.cpp:231:17: error: no matching member function for call to 'emplace'
    calc_group_.emplace();

The libstdc++ std::optional<pineforge::NativeExecutionConsumer::CalcGroup>::emplace overload is not viable because std::is_constructible_v<pineforge::NativeExecutionConsumer::CalcGroup> is not satisfied under Clang.

Not affected: GCC builds (GCC 11 or later, the compiler the CI uses) and the published prebuilt binaries.

Workaround: build with GCC (libstdc++ from GCC 11 or later, as the README lists), or use the prebuilt binaries.

The fix will ship in the next release.

🤖 Generated with Claude Code

Activity

  1. luisleo526 commented on Nov 7, 2026

    @luisleo526
    CollaboratorAuthor

    Update: the README's default build (tests ON) also fails with the same Clang 18 error in the test sources, at tests/test_native_state_continuation.cpp, for CurrentExecutionFrame and MarginLiquidation (same emplace / is_constructible failure).

    The workaround is the same: build with GCC (libstdc++ from GCC 11 or later) or use the prebuilt binaries. The fix covers both.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions