• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FEniCS / ffcx / 36319525927
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-900-9d775c4a4e4455d5de226b0977fb300c735b02d1
DEFAULT BRANCH: main
Ran 27 Sep 2026 12:39PM UTC
Jobs 1
Files 59
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Sep 2026 12:35PM UTC coverage: 87.966% (+0.01%) from 87.952%
36319525927

push

github

web-flow
jit: don't hash the mutable CFLAGS into the JIT module name (#895)

_compilation_signature hashed sysconfig's CFLAGS build variable. On macOS
setuptools rewrites that variable in place on every compile, in
_osx_support._override_all_archs, and the rewrite is not idempotent: its
regex requires trailing whitespace, so the "-arch" it appends at the end
of the string cannot be stripped next time. A second copy is appended, and
from then on each compile strips the first and appends another, growing the
string by one space every time.

Every compile therefore changed the value the next call hashed, so every
form got a fresh module name. Neither the on-disk cache nor the in-process
memo could be hit, and each form was regenerated and recompiled from
scratch. In a DOLFINx test calling form() 140 times on one form this meant
140 code generations and 140 compiler invocations, 208s against 1.4s, and
560 files left in the cache directory.

Use EXT_SUFFIX and get_platform() instead. Between them they cover
everything CFLAGS and SOABI did:

- EXT_SUFFIX gives implementation, Python version and ABI flags, and is
  defined on every platform, so the win32 branch is no longer needed.
- get_platform() gives the architecture, which EXT_SUFFIX omits on macOS,
  and the deployment target.

Neither is in _osx_support._UNIVERSAL_CONFIG_VARS, so neither is rewritten.
Dropping the SDK path and optimisation flags that CFLAGS carried also stops
an Xcode or SDK upgrade needlessly invalidating the whole cache.


Claude-Session: https://claude.ai/code/session_01E9KDSv5nDT5D7V83P1NKtY

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

1 of 1 new or added line in 1 file covered. (100.0%)

4839 of 5501 relevant lines covered (87.97%)

0.88 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36319525927.1 27 Sep 2026 12:39PM UTC 59
87.97
GitHub Action Run
Source Files on build 36319525927
  • Tree
  • List 59
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 63e918b3 on github
  • Prev Build on gh-readonly-queue/main/pr-893-9bcff2c2119f27f1385149ca789d0568263376f2 (#36233841927)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc