You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Native Windows ARM64 wrapper builds select llvm-lib.exe, which treats /Brepro as an input filename and fails with /Brepro: no such file or directory. Clear the ARM64 archiver flags while retaining /Brepro for the x64 MSVC archiver. LLVM's COFF archiver already writes deterministic archives by default.
Validation: reproduced the unsupported-flag failure with LLVM using an ARM64 Windows COFF object, then successfully wrote two byte-identical libraries without the flag after changing the object's filesystem timestamp. Sourcing .envrc clears an inherited ARM64 /Brepro value and preserves the x64 flag. Shell syntax and applicable prek checks pass. LLVM's implementation explicitly enables deterministic output: https://github.com/llvm/llvm-project/blob/main/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp.
Summary by CodeRabbit
Chores
Updated build settings for native ARM64 Windows builds. The build no longer passes an unsupported option to the library tool; application behavior is unchanged.
No actionable comments were generated in the recent review.
Walkthrough
The .envrc configuration now leaves ARFLAGS_aarch64_pc_windows_msvc empty. A new comment states that native ARM64 llvm-lib is deterministic by default and does not support /Brepro.
Changes: ARM64 Archiver Configuration
Layer / File(s)
Summary
Update the ARM64 archiver flag .envrc
ARFLAGS_aarch64_pc_windows_msvc is now empty. A comment documents that native ARM64 llvm-lib is deterministic by default and does not support /Brepro.
BoundaryML/baml#5489: Addresses MSYS2 conversion of the MSVC archiver variables, in the same ARM64 archiver flag flow.
Suggested reviewers:codeshaunted
Merge Risk: Minimal · up to 0e9b2
The ARM64 archiver configuration is ready to merge with no identified actionable risk.
Architecture risk: Low · up to 0e9b2
The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.
Changed systems: None identified.
Architecture concerns
No architecture-level concerns identified.
Review details
Before / after behavior
observed — Modified behavior in .envrc: The ARM64 MSVC archiver flags change from /Brepro to an empty value; a comment identifies native ARM64’s llvm-lib as deterministic by default and without /Brepro support.
Pre-merge checks: 5
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title "ci: leave deterministic LLVM ARM64 archives flag-free" matches the main change. The .envrc change clears ARFLAGS_aarch64_pc_windows_msvc so the native ARM64 llvm-lib archiver no longer rece…
Docstring Coverage
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title "ci: leave deterministic LLVM ARM64 archives flag-free" matches the main change. The .envrc change clears ARFLAGS_aarch64_pc_windows_msvc so the native ARM64 llvm-lib archiver no longer receives /Brepro, which it treats as an input filename and rejects. The x64 MSVC flag is kept, and the title's use of "ci:" fits a change to build configuration. The title is specific and concise, though it names the ARM64 archive behavior rather than the failure it fixes.
Full details: Docstring Coverage
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Finishing Touches
Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Warning
Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.
A rabbit checks the flags with care, Finds /Brepro is not for there. The ARM64 setting clears its space, While llvm-lib keeps its steady pace. The burrow hums; the build runs clean.
CodeRabbit Verify
Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: 7a205740-cc36-4097-959a-c86f2c817071
Commits
Reviewing files that changed from the base of the PR and between 5437493 and 0e9b2d6.
Files selected for processing: 1
.envrc
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 4 remain after this review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native Windows ARM64 wrapper builds select
llvm-lib.exe, which treats/Breproas an input filename and fails with/Brepro: no such file or directory. Clear the ARM64 archiver flags while retaining/Breprofor the x64 MSVC archiver. LLVM's COFF archiver already writes deterministic archives by default.This is the remaining archiver failure exposed after #5489 stopped MSYS2 from converting the flags into paths. Failure example: https://github.com/BoundaryML/baml/actions/runs/41558436389/job/125663254593.
Validation: reproduced the unsupported-flag failure with LLVM using an ARM64 Windows COFF object, then successfully wrote two byte-identical libraries without the flag after changing the object's filesystem timestamp. Sourcing
.envrcclears an inherited ARM64/Breprovalue and preserves the x64 flag. Shell syntax and applicable prek checks pass. LLVM's implementation explicitly enables deterministic output: https://github.com/llvm/llvm-project/blob/main/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp.Summary by CodeRabbit