Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing infrastructure and bug fixes #82

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open

Testing infrastructure and bug fixes #82

wants to merge 17 commits into from

Conversation

mpenciak
Copy link
Contributor

@mpenciak mpenciak commented Mar 31, 2025

This PR does a lot (sorry reviewers!):

  • Removes the Arrays and TraitGenerics examples as these are just copies of the mtree_recover function from the Merkle and MerkleFromScratch examples
  • Changes the CI as discussed to run only once on PRs
  • Renames the CLI tool from cli to lampe
  • Changes the initial Lake project generated by Lampe as follows:
    • Adds an import to the Extracted module in the main library file
    • Removes proven-zk as a default lake dependency
    • Removes the Extracted build target from the generated lakefile, as the current lampe
      generation places the extracted files as a submodule of the main library
    • Fixes the generated lean-toolchain file to the version used by Lampe
  • Fixes the github runner running out of space by changing the testing script to build a lake-manifest.json file that points to an already-downloaded copy of mathlib.

In the course of fixing the above test infrastructure, a number of issues became apparent:

  • The Lean syntax was elaborating a terminal let expression incorrectly. Before the body of:
nr_def foo<>() -> Unit {
    let a = 3 : Field;
}

would expand to Expr.letIn ... fun v => Expr.var v (incorrectly), and Lean would point out the type error. The new syntax expands this to Expr.letIn ... fun _ => Expr.skip.
Also fixes other terminal non-returning expressions from being interpreted as returns.

  • Implements the std::mem::zeroed builtin
  • Implements the Field != builtin
  • Modifies the Experiments test/example to account for some open bugs on the Noir compiler (Catch unbound type variables earlier in compilation noir-lang/noir#7889) and (TBD)
  • Re-adds infrastructure to test the extractor. This is mostly just helpful for debugging during development, and generally any test of this form should eventually be moved to the Examples folder eventually.

@mpenciak mpenciak force-pushed the mp/cleanup branch 4 times, most recently from a1ac61d to 7208e85 Compare March 31, 2025 13:17
@mpenciak mpenciak force-pushed the mp/cleanup branch 3 times, most recently from 009679f to aca7b46 Compare March 31, 2025 16:16
@mpenciak mpenciak changed the title (wip) Testing infrastructure and bug fixes Apr 1, 2025
@mpenciak mpenciak requested review from kustosz and removed request for kustosz April 3, 2025 13:58
@mpenciak mpenciak requested review from piohei and kustosz April 3, 2025 13:58
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