Conversation
| // llvm configuration | ||
| const use_system_llvm = b.option(bool, "system-llvm", "Attempt to automatically detect and use system installed llvm") orelse false; | ||
| const enable_llvm = b.option(bool, "llvm", "Build roc with the llvm backend") orelse use_system_llvm; | ||
| const enable_llvm = !use_system_llvm; // removed build flag `-Dllvm`, we include LLVM libraries by default now |
There was a problem hiding this comment.
removed -Dllvm -- this does increase the compilation times if you are doing things that doesn't need it like running snapshots, or unit tests... I feel it is simpler to default to having it. Maybe we have a flag -Dno-llvm if we still want slimmer builds for other things... or we could probably change the build script to not build llvm if we are just building the snapshots etc.
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
|
@lukewilliamboswell Claude fixed "Run Test Platforms (Unix)" but I'm not sure if the fix is in line with what you had in mind: Segmentation Fault Fix ReportSummaryThe segmentation fault was caused by a target ABI mismatch between:
This created an ABI incompatibility where the generated platform shim expected GNU calling conventions but the embedded roc interpreter shim used musl conventions, resulting in a jump to address The FixI modified the code in Changes Made
ResultThe fix ensures both LLVM compilation and linking use the same ABI ( |
…play everything for arm64 linux errors
|
I'm going to check out this flaky CI issue: EDIT: this is ziglang/zig#21316 |
See ziglang/zig#21316 (comment) Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
Added support for multiple entrypoints in Roc platforms, allowing platforms to expose multiple functions that can be called by the host (e.g.,
init!,render!,update!).Key Changes in this PR
providesto decouple host entrypoint symbol namesprovides { init!: "init_entrypoint", update!: "update_entrypoint" }syntaxextractEntrypointsFromPlatformto parse platform provides and extract function namesextractPlatformSpecFromAppfor to extract from app headersAdded
exportsfield in ModuleEnv to track the exported definitions for an app modulePlatform Host Shim Generation
platform_host_shim.zigwhich generates an LLVM bitcode shim that translate between the host's entrypoints and the pre-built interpreter's single entrypoint.builder.zigmodule for roc cli to compiling LLVM bitcode to object fileentry_idx -> def_idx -> expr_idx-Dllvmbuild flag (LLVM now included by default)ZigLLVMInitializeAllTargets()function to zig_llvm wrapperintplatform to demonstrate multi-entrypoint functionality.