Skip to content

no_std migration #400

Description

@day01

Motivation

The initial no_std work established a working bare-metal baseline for the core crate, but it did not make the entire API available without std.

Several modules were still gated behind std even though they primarily required allocation rather than operating-system functionality. The nalgebra feature also enabled std unconditionally.

Scope

  • support core-only bare-metal builds
  • support floating-point operations through libm
  • migrate errors to core::error::Error
  • support rand without std
  • add bare-metal CI checks
  • move allocation-based APIs from std to alloc
  • migrate Categorical, Empirical and allocation-based statistics
  • make nalgebra work with no_std + alloc
  • verify representative calculations in a real no_std environment
  • document the supported feature combinations
  • migrate KDE to no_std + alloc (statrs#443, blocked by mrhooray/kdtree-rs#92)

Known limitation

KDE remains std-only on main. statrs#443 adds no_std + alloc support and is blocked by the merge and release of mrhooray/kdtree-rs#92. The draft currently pins the upstream Git revision and must switch to the released crates.io version before merge.

PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions