Skip to content

feat: add Nanvix cross-compilation infrastructure for pandas C extensions#1

Open
ppenna wants to merge 1 commit into
nanvix/v3.0.0.devfrom
feature/nanvix-port
Open

feat: add Nanvix cross-compilation infrastructure for pandas C extensions#1
ppenna wants to merge 1 commit into
nanvix/v3.0.0.devfrom
feature/nanvix-port

Conversation

@ppenna
Copy link
Copy Markdown

@ppenna ppenna commented May 14, 2026

Summary

Add build scripts for cross-compiling all 44 pandas Cython extension modules to i686-nanvix static libraries.

Contents

nanvix-port/build-nanvix.sh

  • Cross-compiles all Cython-generated .c files using i686-nanvix-gcc (Docker toolchain)
  • Produces dist/libpandas.a (54 object files, ~17MB)
  • Includes CPython and NumPy headers for compilation

.nanvix/

  • Build configuration (nanvix.toml) for integration with CPython build system

Modules compiled

44 extension modules covering:

  • pandas._libs: algos, arrays, groupby, hashing, hashtable, index, indexing, internals, interval, join, lib, missing, ops, ops_dispatch, pandas_datetime, pandas_parser, parsers, properties, reshape, sas, sparse, testing, writers
  • pandas._libs.tslibs: base, ccalendar, conversion, dtypes, fields, nattype, np_datetime, offsets, parsing, period, strptime, timedeltas, timestamps, timezones, tzconversion, vectorized
  • pandas._libs.window: aggregations, indexers
  • pandas._libs: tslib, byteswap, _ujson

Related PRs

@ppenna ppenna force-pushed the feature/nanvix-port branch from 77ceef0 to 47b2ce3 Compare May 14, 2026 14:00
@ppenna ppenna changed the base branch from main to nanvix/v3.0.0.dev May 14, 2026 14:01
@ppenna ppenna force-pushed the feature/nanvix-port branch 6 times, most recently from 8205329 to 537887f Compare May 14, 2026 15:33
…ions

Add build scripts, CI workflow, and zutils integration for cross-compiling
all 44 pandas Cython extension modules to i686-nanvix static libraries.

nanvix-port/build-nanvix.sh:
- Cross-compiles all .c files from Cython-generated sources
- Produces dist/libpandas.a (54 object files)
- Uses i686-nanvix-gcc from Docker toolchain

.nanvix/:
- nanvix.toml: package metadata pinned to v3.0.0.dev
- z.py: build script with setup/build/test/release/clean commands

.github/workflows/nanvix-ci.yml:
- Reusable workflow integration with nanvix/workflows
- Scheduled + push/PR triggers on nanvix/** branches

z, z.sh:
- Standard zutils entry points (bootstrap nanvix-zutil v0.8.2)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ppenna ppenna force-pushed the feature/nanvix-port branch from 537887f to 9d121ec Compare May 14, 2026 15:43
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.

1 participant