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

feat(experimental): Parse match expressions #7243

Merged
merged 7 commits into from
Feb 3, 2025
Merged

feat(experimental): Parse match expressions #7243

merged 7 commits into from
Feb 3, 2025

Conversation

jfecher
Copy link
Contributor

@jfecher jfecher commented Jan 30, 2025

Description

Problem*

Working towards #988

Summary*

Add parser, formatter, lsp support for match expressions

Additional Context

Still can't use these in a program, we panic in the monomorphizer for them. Just pushing these somewhat trivial changes before the chunkier changes of compiling match expressions to a decision tree, checking for completeness, redundancy, then monomorphizing etc.

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@jfecher jfecher requested a review from a team January 30, 2025 19:54
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: b6acd60 Previous: a9e9850 Ratio
noir-lang_noir_sort_ 1 s 0 s +∞
noir-lang_eddsa_ 2 s 1 s 2

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

@jfecher
Copy link
Contributor Author

jfecher commented Jan 31, 2025

(ready for review now)

Copy link
Collaborator

@asterite asterite left a comment

Choose a reason for hiding this comment

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

Looks good!

@jfecher jfecher enabled auto-merge February 3, 2025 12:42
@jfecher jfecher added this pull request to the merge queue Feb 3, 2025
Merged via the queue into master with commit 97073b2 Feb 3, 2025
101 checks passed
@jfecher jfecher deleted the jf/parse-match branch February 3, 2025 13:09
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 4, 2025
…_make_arrays` (noir-lang/noir#7264)

chore: early check type equality in try_unify (noir-lang/noir#7263)
feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261)
feat(experimental): Parse match expressions (noir-lang/noir#7243)
feat(experimental): Implement zeroed for enums (noir-lang/noir#7252)
fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260)
fix: Add missing `is_empty` check for enums (noir-lang/noir#7257)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 4, 2025
noir-lang/noir#7264)

chore: early check type equality in try_unify (noir-lang/noir#7263)
feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261)
feat(experimental): Parse match expressions (noir-lang/noir#7243)
feat(experimental): Implement zeroed for enums (noir-lang/noir#7252)
fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260)
fix: Add missing `is_empty` check for enums (noir-lang/noir#7257)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
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