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!: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained functions #6938

Merged
merged 6 commits into from
Jan 10, 2025

Conversation

TomAFrench
Copy link
Member

…ocks and passing unconstrained functions in place of constrained function

Description

Problem*

Resolves #6937

Summary*

These have been around for a long time now so I'm promoting this to an error.

Additional Context

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.

…ocks and passing unconstrained functions in place of constrained function
@TomAFrench TomAFrench changed the title feat: disallow calling unconstrained functions outside of unsafe bl… feat: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained function Jan 3, 2025
@TomAFrench TomAFrench changed the title feat: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained function feat: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained functions Jan 3, 2025
Copy link
Contributor

github-actions bot commented Jan 3, 2025

Execution Report

Program Execution Time
sha256_regression 0.051s
regression_4709 0.001s
ram_blowup_regression 0.634s
rollup-root 0.105s
rollup-block-merge 0.109s
rollup-base-public 1.230s
rollup-base-private 0.460s
private-kernel-tail 0.019s
private-kernel-reset 0.315s
private-kernel-inner 0.071s

Copy link
Contributor

github-actions bot commented Jan 3, 2025

Compilation Report

Program Compilation Time
sha256_regression 1.234s
regression_4709 0.796s
ram_blowup_regression 17.940s
rollup-root 3.576s
rollup-block-merge 3.418s
rollup-base-public 40.760s
rollup-base-private 13.120s
private-kernel-tail 0.983s
private-kernel-reset 6.978s
private-kernel-inner 2.100s

Copy link
Contributor

github-actions bot commented Jan 3, 2025

Compilation Memory Report

Program Peak Memory
keccak256 78.12M
workspace 123.57M
regression_4709 422.98M
ram_blowup_regression 1.58G
rollup-base-public 4.85G
rollup-base-private 1.26G
private-kernel-tail 207.09M
private-kernel-reset 669.10M
private-kernel-inner 294.32M

Copy link
Contributor

github-actions bot commented Jan 3, 2025

Execution Memory Report

Program Peak Memory
keccak256 74.67M
workspace 123.61M
regression_4709 316.00M
ram_blowup_regression 512.61M
rollup-base-public 479.46M
rollup-base-private 325.84M
private-kernel-tail 180.42M
private-kernel-reset 245.32M
private-kernel-inner 208.68M

@TomAFrench
Copy link
Member Author

@kashbrti can you address these failures in the noir libraries on monday?

@Savio-Sou
Copy link
Collaborator

Would this be a breaking change? (It isn't currently indicated as one.)

@TomAFrench TomAFrench changed the title feat: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained functions feat!: disallow calling unconstrained functions outside of unsafe blocks and passing unconstrained functions in place of constrained functions Jan 6, 2025
TomAFrench and others added 4 commits January 9, 2025 17:23
* master:
  chore: simplify a couple of enum variants (#7025)
  chore: disallow inserting ACIR-only instructions into brillig functions (#7017)
  feat: unchecked math operations in SSA (#7011)
  chore: delete docs for versions which aren't used (#7020)
  feat!: Disable mocks in `execute` (#6869)
  chore(docs): backport 1.0.0-beta.0 doc fixes (#7014)
  feat(cli): Add CLI option to filter by contract function name (#7018)
  chore: Add more Field use info (#7019)
  fix: let static_assert fail with the provided message (#7005)
  chore: mark `aztec-nr` as expected to compile (#7015)
  chore: clarity fix in docs (#7016)
@TomAFrench TomAFrench enabled auto-merge January 10, 2025 20:01
@TomAFrench TomAFrench added this pull request to the merge queue Jan 10, 2025
Merged via the queue into master with commit 2732947 Jan 10, 2025
85 of 87 checks passed
@TomAFrench TomAFrench deleted the tf/require-unsafe-blocks branch January 10, 2025 20:20
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 11, 2025
…ang/noir#6985)

feat!: disallow calling unconstrained functions outside of `unsafe` blocks and passing unconstrained functions in place of constrained functions (noir-lang/noir#6938)
chore: simplify a couple of enum variants (noir-lang/noir#7025)
chore: disallow inserting ACIR-only instructions into brillig functions (noir-lang/noir#7017)
feat: unchecked math operations in SSA (noir-lang/noir#7011)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 11, 2025
feat!: disallow calling unconstrained functions outside of `unsafe` blocks and passing unconstrained functions in place of constrained functions (noir-lang/noir#6938)
chore: simplify a couple of enum variants (noir-lang/noir#7025)
chore: disallow inserting ACIR-only instructions into brillig functions (noir-lang/noir#7017)
feat: unchecked math operations in SSA (noir-lang/noir#7011)
chore: delete docs for versions which aren't used (noir-lang/noir#7020)
feat!: Disable mocks in `execute` (noir-lang/noir#6869)
chore(docs): backport 1.0.0-beta.0 doc fixes (noir-lang/noir#7014)
feat(cli): Add CLI option to filter by contract function name (noir-lang/noir#7018)
chore: Add more Field use info (noir-lang/noir#7019)
fix: let static_assert fail with the provided message (noir-lang/noir#7005)
chore: mark `aztec-nr` as expected to compile (noir-lang/noir#7015)
chore: clarity fix in docs (noir-lang/noir#7016)
fix: require generic trait impls to be in scope to call them (noir-lang/noir#6913)
feat!: require trait primitive functions/calls to have their trait in scope (noir-lang/noir#6901)
feat(lsp): use trait method docs for trait impl method docs on hover (noir-lang/noir#7003)
chore: turn on averaging for protocol circuits metrics in CI (noir-lang/noir#6999)
feat(comptime): Implement to_be_bits and to_le_bits in the interpreter (noir-lang/noir#7008)
chore: Add short circuit in ssa-gen for known if conditions (noir-lang/noir#7007)
chore: Only resolved globals monomorphization (noir-lang/noir#7006)
chore: Remove resolve_is_unconstrained pass (noir-lang/noir#7004)
chore: require safety doc comment for unsafe instead of `//@safety` (noir-lang/noir#6992)
fix: Reproduce and fix bytecode blowup (noir-lang/noir#6972)
chore: mark casts as able to be deduplicated (noir-lang/noir#6996)
fix: return trait impl method as FuncId if there's only one (noir-lang/noir#6989)
chore(ci): fail properly in `external-repo-checks` (noir-lang/noir#6988)
fix: allow multiple trait impls for the same trait as long as one is in scope (noir-lang/noir#6987)
chore: Use DFG in SSA printer (noir-lang/noir#6986)
chore!: Reserve `enum` and `match` keywords (noir-lang/noir#6961)
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.

Convert TypecheckError::Unsafe and TypecheckError::UnsafeFn to errors
3 participants