Skip to content

fix(meson): force-include Cap'n Proto MSVC interface guard - #398

Open
HaoZeke wants to merge 2 commits into
TheochemUI:mainfrom
HaoZeke:fix/win-msvc-capnp-fi
Open

fix(meson): force-include Cap'n Proto MSVC interface guard#398
HaoZeke wants to merge 2 commits into
TheochemUI:mainfrom
HaoZeke:fix/win-msvc-capnp-fi

Conversation

@HaoZeke

@HaoZeke HaoZeke commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

MSVC windows.h defines interface, which breaks Cap'n Proto templates. The feedstock was putting /FI msvc_capnp_guard.h in CXXFLAGS; Meson 1.12 feeds those flags into the cl.exe sanity compile, a drive-letter include becomes /FID:/..., and setup dies with "Compiler cl.exe cannot compile programs."

add_project_arguments('/FI', ...) after project() applies the force-include only to the real compile. Same guard as conda-forge/eon-feedstock#30 (0001-win-msvc-capnp-fi-after-project.patch). After the next tarball the feedstock can drop that patch.

The remaining win-64 activation work (clear GNU LDFLAGS so cl does not see -Wl,... / D8021; clang_rt / flang_rt LIBPATH) stays on the feedstock. That is compiler-activation, not eOn source.

Test plan

windows.h defines interface and breaks Cap'n Proto templates.
Putting /FI in CXXFLAGS makes Meson 1.12's cl.exe sanity check
see /FID:/... and report that cl.exe cannot compile programs.
add_project_arguments after project() applies /FI only to the
real compile.
@codecov-commenter

codecov-commenter commented Aug 17, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

Benchmark Results

Note

All benchmarks unchanged

Count
⚪ Unchanged 8
8 unchanged benchmark(s)
Benchmark Before After Ratio
bench_eonclient.TimeMinimizationLJCluster.peakmem_minimization_lbfgs 39M 39M ~1x
bench_eonclient.TimeMinimizationLJCluster.time_minimization_lbfgs 23.7±0ms 21.8±0ms ~0.92x
bench_eonclient.TimeNEBMorsePt.peakmem_neb 38.9M 38.9M ~1x
bench_eonclient.TimeNEBMorsePt.time_neb 206±0ms 207±0ms ~1.01x
bench_eonclient.TimePointMorsePt.peakmem_point_evaluation 39M 38.9M ~1x
bench_eonclient.TimePointMorsePt.time_point_evaluation 10.4±0ms 10.4±0ms ~1x
bench_eonclient.TimeSaddleSearchMorseDimer.peakmem_saddle_search_dimer 39M 39M ~1x
bench_eonclient.TimeSaddleSearchMorseDimer.time_saddle_search_dimer 59.6±0ms 60.1±0ms ~1.01x
Details
  • Base: be4ed4f1
  • Head: 9ce90d81
  • Runner: ubuntu-22.04
Raw asv-spyglass output
All benchmarks:

| Change   | Before   | After    |   Ratio | Benchmark (Parameter)                                                  |
|----------|----------|----------|---------|------------------------------------------------------------------------|
|          | 39M      | 39M      |    1    | bench_eonclient.TimeMinimizationLJCluster.peakmem_minimization_lbfgs   |
|          | 23.7±0ms | 21.8±0ms |    0.92 | bench_eonclient.TimeMinimizationLJCluster.time_minimization_lbfgs      |
|          | 38.9M    | 38.9M    |    1    | bench_eonclient.TimeNEBMorsePt.peakmem_neb                             |
|          | 206±0ms  | 207±0ms  |    1.01 | bench_eonclient.TimeNEBMorsePt.time_neb                                |
|          | 39M      | 38.9M    |    1    | bench_eonclient.TimePointMorsePt.peakmem_point_evaluation              |
|          | 10.4±0ms | 10.4±0ms |    1    | bench_eonclient.TimePointMorsePt.time_point_evaluation                 |
|          | 39M      | 39M      |    1    | bench_eonclient.TimeSaddleSearchMorseDimer.peakmem_saddle_search_dimer |
|          | 59.6±0ms | 60.1±0ms |    1.01 | bench_eonclient.TimeSaddleSearchMorseDimer.time_saddle_search_dimer    |

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants