Skip to content

Conversation

@moperacz
Copy link
Contributor

@moperacz moperacz commented Oct 24, 2025

Summary

  • add full-pyodide-packages feature that lets the build script download and verify the full Pyodide 0.29.0 bundle, wiring the extracted cache into PyRuntimeConfig::default() when hosts opt in
  • expose PyRuntimeConfig::set_pyodide_package_dir (and helpers) so embedders can configure the cache path programmatically, and update the package resolver to honour overrides before env vars
  • extend the CLI with assets stage for staging full/core Pyodide bundles (checksums, force overwrite, archive reuse) and document the three supported cache provisioning paths
  • ship .cargo/config.toml pointing RUSTY_V8_MIRROR at the PIC-enabled V8 142.0.0 release so downstream builds link cleanly without extra env plumbing; document the mirror and keep overrides available
  • teach the build script to emit stub assets when DOCS_RS=1, add the docsrs feature/metadata, and enable doc_auto_cfg so crates.io/docs.rs builds succeed without network access
  • refresh public docs to cover the new automation options, V8 mirror guidance, and cache override API

Testing

  • cargo fmt -p aardvark-core
  • cargo fmt -p aardvark-cli
  • RUSTY_V8_MIRROR=/Users/misiek/Documents/projects/boa/tmp/v8-142.0.0 cargo test -p aardvark-core
  • RUSTY_V8_MIRROR=/Users/misiek/Documents/projects/boa/tmp/v8-142.0.0 cargo test -p aardvark-cli
  • RUSTY_V8_MIRROR=/Users/misiek/Documents/projects/boa/tmp/v8-142.0.0 cargo test --workspace

Follow-ups

  • publish the PIC-enabled V8 142.0.0 archive referenced by the mirror and rerun CI without the local RUSTY_V8_MIRROR
  • consider a CI-friendly smoke test for aardvark-cli assets stage (behind a feature flag to avoid network requirements)

Copilot AI review requested due to automatic review settings October 24, 2025 22:05
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR configures the V8 build to use position-independent code (PIC) by default, enabling downstream shared library integrations (such as Elixir NIFs) to link against V8 without encountering relocation errors.

Key Changes:

  • Sets force_pic=true in V8's GN build arguments via cargo configuration
  • Documents the new build configuration and its purpose

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.cargo/config.toml Adds environment variable to force PIC in V8 builds
docs/dev/environment.md Documents the PIC configuration and new EXTRA_GN_ARGS environment variable

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@moperacz moperacz requested a review from Copilot October 25, 2025 20:01
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 26 out of 27 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@moperacz moperacz changed the title Force PIC in V8 build configuration Automate Pyodide cache staging and prep docs.rs builds Oct 25, 2025
@moperacz moperacz merged commit a5f2aa5 into master Oct 25, 2025
1 check failed
@moperacz moperacz deleted the fix_pic branch October 25, 2025 20:06
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