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

chore: Enforce bracing around blocks. Generally considered easier to read and less error prone. #3349

Merged
merged 1 commit into from
Nov 18, 2023

Conversation

charlielye
Copy link
Contributor

@charlielye charlielye commented Nov 18, 2023

As title.

yarn formatting:fix now runs eslint with fix enabled first, allowing auto fixing of these kinds of issues.

Calling out to ChatGPT as my curly supporting hype-man:

  1. Readability: Curly braces make the structure of the code clearer, especially in complex codebases. It's easier to identify the start and end of control blocks.
  2. Maintainability: When modifying code, clear block delimiters reduce the chance of introducing errors. For example, if you need to add a new statement to an if block that was initially written without braces, the absence of braces might lead to logical errors.
  3. Error Reduction: One of the famous bugs related to the absence of curly braces is Apple's "goto fail;" bug. Such bugs occur when the intended block scope is not properly defined, leading to unexpected behavior.
  4. Consistency: Enforcing a consistent style, like always using braces, can make the code more uniform and easier to understand for all team members.

@ludamad
Copy link
Collaborator

ludamad commented Nov 18, 2023

Not controversial to me

@AztecBot
Copy link
Collaborator

Benchmark results

Metrics with a significant change:

  • note_history_trial_decrypting_time_in_ms (10): 235 (+62%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Values are compared against data from master at commit 6307e129 and shown if the difference exceeds 1%.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 128 txs
l1_rollup_calldata_size_in_bytes 45,444 179,588 716,132
l1_rollup_calldata_gas 222,948 868,208 3,449,720
l1_rollup_execution_gas 842,035 3,595,316 22,205,089
l2_block_processing_time_in_ms 2,010 (-8%) 7,709 30,803 (+2%)
note_successful_decrypting_time_in_ms 292 867 (-3%) 3,243 (+2%)
note_trial_decrypting_time_in_ms 100 (+6%) 74.0 (-26%) 134
l2_block_building_time_in_ms 20,579 81,728 325,854 (-1%)
l2_block_rollup_simulation_time_in_ms 11,950 47,485 (-1%) 188,865 (-1%)
l2_block_public_tx_process_time_in_ms 8,588 34,114 136,508 (-1%)

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 22,039 43,030
note_history_successful_decrypting_time_in_ms 2,073 (-2%) 4,085 (-1%)
note_history_trial_decrypting_time_in_ms 121 ⚠️ 235 (+62%)
node_database_size_in_bytes 1,630,833 1,098,462
pxe_database_size_in_bytes 29,748 59,307

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 762 61,697 18,905
private-kernel-ordering 126 24,297 8,153
base-rollup 1,771 656,428 873
root-rollup 169 4,072 1,097
private-kernel-inner 785 81,568 18,905
public-kernel-private-input 566 41,519 18,905
public-kernel-non-first-iteration 405 41,561 18,905
merge-rollup 15.2 2,592 873

Miscellaneous

Transaction sizes based on how many contracts are deployed in the tx.

Metric 0 deployed contracts 1 deployed contracts
tx_size_in_bytes 8,787 27,547

@charlielye charlielye merged commit ee11dec into master Nov 18, 2023
83 checks passed
@charlielye charlielye deleted the cl/curly-lint branch November 18, 2023 14:14
rahul-kothari pushed a commit that referenced this pull request Nov 21, 2023
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-packages: 0.15.1</summary>

##
[0.15.1](aztec-packages-v0.15.0...aztec-packages-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](#3335))
([c99862c](c99862c))
* DataBus PoC (UltraHonk as extension of Ultra)
([#3181](#3181))
([dd9dd84](dd9dd84))
* Deploy docs from CCI w/ netlify-cli
([#3348](#3348))
([624d733](624d733))
* Fold batching challenge (alpha)
([#3291](#3291))
([bc99a4f](bc99a4f))
* Open transcript polys as univariates in ECCVM
([#3331](#3331))
([436b22e](436b22e))
* Sandbox packages
([#3360](#3360))
([0dc2d58](0dc2d58))
* Slow updates experimentation
([#2732](#2732))
([193e6c8](193e6c8))
* ZM updates for Translator concatenated polys
([#3343](#3343))
([0e425db](0e425db))


### Bug Fixes

* Bootstrap bbjs.
([#3337](#3337))
([06aedcb](06aedcb))
* Noir-compiler breadth-first resolver
([#3307](#3307))
([02348cf](02348cf))
* Update command looks at devDeps
([#3276](#3276))
([54ee38d](54ee38d)),
closes
[#3275](#3275)
* Updating pedersen benchmarks
([#3211](#3211))
([7e89ff3](7e89ff3))
* Warn on circular imports.
([#3350](#3350))
([5bfbddb](5bfbddb))


### Miscellaneous

* All hashes in ts
([#3333](#3333))
([6307e12](6307e12))
* Compute function tree root in ts.
([#3326](#3326))
([48d8c7f](48d8c7f))
* **docs:** Suggest CLI install per project
([#3267](#3267))
([b4c967b](b4c967b))
* Enforce bracing around blocks. Generally considered easier to read and
less error prone.
([#3349](#3349))
([ee11dec](ee11dec))
* Fix circulars in foundation. Also cleanup fields and optimise to be
buffer underlying.
([#3351](#3351))
([c4bf8d3](c4bf8d3))
* Public kernel tests
([#3325](#3325))
([bace972](bace972))


### Documentation

* Fixed errors in Gas and Fees yellow paper
([#3363](#3363))
([d818206](d818206))
* Initial network section of yellow paper
([#3341](#3341))
([5a18615](5a18615))
* Yellow paper section on Gas and Fees
([#3327](#3327))
([caa7e10](caa7e10))
</details>

<details><summary>barretenberg.js: 0.15.1</summary>

##
[0.15.1](barretenberg.js-v0.15.0...barretenberg.js-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](#3335))
([c99862c](c99862c))


### Miscellaneous

* All hashes in ts
([#3333](#3333))
([6307e12](6307e12))
</details>

<details><summary>barretenberg: 0.15.1</summary>

##
[0.15.1](barretenberg-v0.15.0...barretenberg-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](#3335))
([c99862c](c99862c))
* DataBus PoC (UltraHonk as extension of Ultra)
([#3181](#3181))
([dd9dd84](dd9dd84))
* Fold batching challenge (alpha)
([#3291](#3291))
([bc99a4f](bc99a4f))
* Open transcript polys as univariates in ECCVM
([#3331](#3331))
([436b22e](436b22e))
* ZM updates for Translator concatenated polys
([#3343](#3343))
([0e425db](0e425db))


### Bug Fixes

* Bootstrap bbjs.
([#3337](#3337))
([06aedcb](06aedcb))
* Updating pedersen benchmarks
([#3211](#3211))
([7e89ff3](7e89ff3))


### Miscellaneous

* All hashes in ts
([#3333](#3333))
([6307e12](6307e12))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Nov 23, 2023
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-packages: 0.15.1</summary>

##
[0.15.1](AztecProtocol/aztec-packages@aztec-packages-v0.15.0...aztec-packages-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](AztecProtocol/aztec-packages#3335))
([c99862c](AztecProtocol/aztec-packages@c99862c))
* DataBus PoC (UltraHonk as extension of Ultra)
([#3181](AztecProtocol/aztec-packages#3181))
([dd9dd84](AztecProtocol/aztec-packages@dd9dd84))
* Deploy docs from CCI w/ netlify-cli
([#3348](AztecProtocol/aztec-packages#3348))
([624d733](AztecProtocol/aztec-packages@624d733))
* Fold batching challenge (alpha)
([#3291](AztecProtocol/aztec-packages#3291))
([bc99a4f](AztecProtocol/aztec-packages@bc99a4f))
* Open transcript polys as univariates in ECCVM
([#3331](AztecProtocol/aztec-packages#3331))
([436b22e](AztecProtocol/aztec-packages@436b22e))
* Sandbox packages
([#3360](AztecProtocol/aztec-packages#3360))
([0dc2d58](AztecProtocol/aztec-packages@0dc2d58))
* Slow updates experimentation
([#2732](AztecProtocol/aztec-packages#2732))
([193e6c8](AztecProtocol/aztec-packages@193e6c8))
* ZM updates for Translator concatenated polys
([#3343](AztecProtocol/aztec-packages#3343))
([0e425db](AztecProtocol/aztec-packages@0e425db))


### Bug Fixes

* Bootstrap bbjs.
([#3337](AztecProtocol/aztec-packages#3337))
([06aedcb](AztecProtocol/aztec-packages@06aedcb))
* Noir-compiler breadth-first resolver
([#3307](AztecProtocol/aztec-packages#3307))
([02348cf](AztecProtocol/aztec-packages@02348cf))
* Update command looks at devDeps
([#3276](AztecProtocol/aztec-packages#3276))
([54ee38d](AztecProtocol/aztec-packages@54ee38d)),
closes
[#3275](AztecProtocol/aztec-packages#3275)
* Updating pedersen benchmarks
([#3211](AztecProtocol/aztec-packages#3211))
([7e89ff3](AztecProtocol/aztec-packages@7e89ff3))
* Warn on circular imports.
([#3350](AztecProtocol/aztec-packages#3350))
([5bfbddb](AztecProtocol/aztec-packages@5bfbddb))


### Miscellaneous

* All hashes in ts
([#3333](AztecProtocol/aztec-packages#3333))
([6307e12](AztecProtocol/aztec-packages@6307e12))
* Compute function tree root in ts.
([#3326](AztecProtocol/aztec-packages#3326))
([48d8c7f](AztecProtocol/aztec-packages@48d8c7f))
* **docs:** Suggest CLI install per project
([#3267](AztecProtocol/aztec-packages#3267))
([b4c967b](AztecProtocol/aztec-packages@b4c967b))
* Enforce bracing around blocks. Generally considered easier to read and
less error prone.
([#3349](AztecProtocol/aztec-packages#3349))
([ee11dec](AztecProtocol/aztec-packages@ee11dec))
* Fix circulars in foundation. Also cleanup fields and optimise to be
buffer underlying.
([#3351](AztecProtocol/aztec-packages#3351))
([c4bf8d3](AztecProtocol/aztec-packages@c4bf8d3))
* Public kernel tests
([#3325](AztecProtocol/aztec-packages#3325))
([bace972](AztecProtocol/aztec-packages@bace972))


### Documentation

* Fixed errors in Gas and Fees yellow paper
([#3363](AztecProtocol/aztec-packages#3363))
([d818206](AztecProtocol/aztec-packages@d818206))
* Initial network section of yellow paper
([#3341](AztecProtocol/aztec-packages#3341))
([5a18615](AztecProtocol/aztec-packages@5a18615))
* Yellow paper section on Gas and Fees
([#3327](AztecProtocol/aztec-packages#3327))
([caa7e10](AztecProtocol/aztec-packages@caa7e10))
</details>

<details><summary>barretenberg.js: 0.15.1</summary>

##
[0.15.1](AztecProtocol/aztec-packages@barretenberg.js-v0.15.0...barretenberg.js-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](AztecProtocol/aztec-packages#3335))
([c99862c](AztecProtocol/aztec-packages@c99862c))


### Miscellaneous

* All hashes in ts
([#3333](AztecProtocol/aztec-packages#3333))
([6307e12](AztecProtocol/aztec-packages@6307e12))
</details>

<details><summary>barretenberg: 0.15.1</summary>

##
[0.15.1](AztecProtocol/aztec-packages@barretenberg-v0.15.0...barretenberg-v0.15.1)
(2023-11-21)


### Features

* **bb:** Add ability to write pk to file or stdout
([#3335](AztecProtocol/aztec-packages#3335))
([c99862c](AztecProtocol/aztec-packages@c99862c))
* DataBus PoC (UltraHonk as extension of Ultra)
([#3181](AztecProtocol/aztec-packages#3181))
([dd9dd84](AztecProtocol/aztec-packages@dd9dd84))
* Fold batching challenge (alpha)
([#3291](AztecProtocol/aztec-packages#3291))
([bc99a4f](AztecProtocol/aztec-packages@bc99a4f))
* Open transcript polys as univariates in ECCVM
([#3331](AztecProtocol/aztec-packages#3331))
([436b22e](AztecProtocol/aztec-packages@436b22e))
* ZM updates for Translator concatenated polys
([#3343](AztecProtocol/aztec-packages#3343))
([0e425db](AztecProtocol/aztec-packages@0e425db))


### Bug Fixes

* Bootstrap bbjs.
([#3337](AztecProtocol/aztec-packages#3337))
([06aedcb](AztecProtocol/aztec-packages@06aedcb))
* Updating pedersen benchmarks
([#3211](AztecProtocol/aztec-packages#3211))
([7e89ff3](AztecProtocol/aztec-packages@7e89ff3))


### Miscellaneous

* All hashes in ts
([#3333](AztecProtocol/aztec-packages#3333))
([6307e12](AztecProtocol/aztec-packages@6307e12))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

3 participants