fix(ci): skip mimalloc FFI and disable isolation for Miri (#621)

- Add cfg(not(miri)) guards to mimalloc module, global allocator, and
  allocator-memory-limits code paths so Miri falls back to the default
  system allocator instead of calling unsupported FFI functions.
- Set MIRIFLAGS="-Zmiri-disable-isolation" in the workflow so tests
  that perform file I/O can run under Miri.
- Skip units/parse tests under Miri due to Float-vs-BigInt Number
  representation mismatch with Miri's soft-float emulation.

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
Anand Krishnamoorthi
2026-03-11 15:13:51 -05:00
committed by GitHub
parent b8e15f46f3
commit ee3dff9a3d
9 changed files with 34 additions and 19 deletions

View File

@@ -353,7 +353,7 @@ impl Value {
match serde_json::from_str::<Value>(json) {
Ok(value) => Ok(value),
Err(err) => {
#[cfg(feature = "allocator-memory-limits")]
#[cfg(all(feature = "allocator-memory-limits", not(miri)))]
{
// Re-validate allocator limits when serde parsing fails to surface LimitError.
match crate::utils::limits::check_global_memory_limit() {
@@ -362,7 +362,7 @@ impl Value {
}
}
#[cfg(not(feature = "allocator-memory-limits"))]
#[cfg(any(miri, not(feature = "allocator-memory-limits")))]
{
Err(anyhow!(err))
}