# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.2.0-rc1](https://github.com/succinctlabs/sp1/releases/tag/sp1-core-machine-v1.2.0-rc1) - 2024-08-23

### Added

- gas ([#1354](https://github.com/succinctlabs/sp1/pull/1354))

### Fixed

- remove field op comment
- fix fptower tests
- fix imports
- cargo check on tests

### Other

- precompile guide
- use crate `vec_map`, box large `Instruction` variants ([#1360](https://github.com/succinctlabs/sp1/pull/1360))
- update version
- merge dev into experimental pt 2 ([#1341](https://github.com/succinctlabs/sp1/pull/1341))
- resolve merge conflicts between dev and experimental
- refactor + cleanup core crates

## [1.1.0](https://github.com/succinctlabs/sp1/compare/sp1-core-v1.0.1...sp1-core-v1.1.0) - 2024-08-02

### Added

- experimental gpu support ([#1219](https://github.com/succinctlabs/sp1/pull/1219))
- update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214))
- streaming recursion ([#1175](https://github.com/succinctlabs/sp1/pull/1175))
- streaming prover for core ([#1146](https://github.com/succinctlabs/sp1/pull/1146))

### Fixed

- memory global generate_dependencies ([#1220](https://github.com/succinctlabs/sp1/pull/1220))
- device oom ([#1202](https://github.com/succinctlabs/sp1/pull/1202))
- cycle tracking logs ([#1178](https://github.com/succinctlabs/sp1/pull/1178))
- UB from `OpcodeSpecificCols` union ([#1050](https://github.com/succinctlabs/sp1/pull/1050))

### Other

- merge main into dev ([#1180](https://github.com/succinctlabs/sp1/pull/1180))
- prover trait cleanup ([#1170](https://github.com/succinctlabs/sp1/pull/1170))
- _(deps)_ bump arrayref from 0.3.7 to 0.3.8 ([#1154](https://github.com/succinctlabs/sp1/pull/1154))
- _(deps)_ bump thiserror from 1.0.61 to 1.0.63 ([#1136](https://github.com/succinctlabs/sp1/pull/1136))
- generate dep optimizations ([#1125](https://github.com/succinctlabs/sp1/pull/1125))
- add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142))

## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-core-v1.0.0-rc1...sp1-core-v1.0.0-rc1) - 2024-07-19

### Added

- 1.0.0-rc1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126))
- multi-threaded tracing ([#1124](https://github.com/succinctlabs/sp1/pull/1124))
- parallel recursion tracegen ([#1095](https://github.com/succinctlabs/sp1/pull/1095))
- publish sp1 to crates.io ([#1052](https://github.com/succinctlabs/sp1/pull/1052))
- critical constraint changes ([#1046](https://github.com/succinctlabs/sp1/pull/1046))
- cycle limit ([#1027](https://github.com/succinctlabs/sp1/pull/1027))
- suggest prover network if high cycles ([#1019](https://github.com/succinctlabs/sp1/pull/1019))
- put hook results in the front of the input stream ([#973](https://github.com/succinctlabs/sp1/pull/973))
- poseidon2 hash ([#885](https://github.com/succinctlabs/sp1/pull/885))
- optimize byte trace gen
- optimize cpu tracegen ([#949](https://github.com/succinctlabs/sp1/pull/949))
- (breaking changes to SDK API) use builder pattern for SDK execute/prove/verify ([#940](https://github.com/succinctlabs/sp1/pull/940))
- circuit version in proof ([#926](https://github.com/succinctlabs/sp1/pull/926))
- verify subproof in runtime ([#911](https://github.com/succinctlabs/sp1/pull/911))
- sp1 circuit version ([#899](https://github.com/succinctlabs/sp1/pull/899))
- log info from `ExecutionReport` in `prove` ([#896](https://github.com/succinctlabs/sp1/pull/896))
- use docker by default for gnark ([#890](https://github.com/succinctlabs/sp1/pull/890))
- info spans for prover execute instances ([#893](https://github.com/succinctlabs/sp1/pull/893))
- generic const expr ([#854](https://github.com/succinctlabs/sp1/pull/854))
- execute() exposes ExecutionReport ([#847](https://github.com/succinctlabs/sp1/pull/847))
- runtime instruction/syscall report ([#839](https://github.com/succinctlabs/sp1/pull/839))
- sp1 core prover opts
- plonk prover ([#795](https://github.com/succinctlabs/sp1/pull/795))
- byte multiplicity channel ([#800](https://github.com/succinctlabs/sp1/pull/800))
- exit code ([#750](https://github.com/succinctlabs/sp1/pull/750))
- _(recursion)_ public values constraints ([#748](https://github.com/succinctlabs/sp1/pull/748))
- add proof verification ([#729](https://github.com/succinctlabs/sp1/pull/729))
- add `hash_public_values` ([#730](https://github.com/succinctlabs/sp1/pull/730))
- reduce network prover ([#687](https://github.com/succinctlabs/sp1/pull/687))
- fix execution + proving errors ([#715](https://github.com/succinctlabs/sp1/pull/715))
- activate `cycle-tracker` with `RUST_LOG=info` ([#707](https://github.com/succinctlabs/sp1/pull/707))
- ci refactor ([#684](https://github.com/succinctlabs/sp1/pull/684))
- program refactor ([#651](https://github.com/succinctlabs/sp1/pull/651))
- e2e groth16 with contract verifier ([#671](https://github.com/succinctlabs/sp1/pull/671))
- `mulmod` uint256 precompile ([#642](https://github.com/succinctlabs/sp1/pull/642))
- nextgen ci for sp1-prover ([#663](https://github.com/succinctlabs/sp1/pull/663))
- Adding docs for new `ProverClient` and `groth16` and `compressed` mode ([#627](https://github.com/succinctlabs/sp1/pull/627))
- aggregation fixes ([#649](https://github.com/succinctlabs/sp1/pull/649))
- improve circuit by 3-4x ([#648](https://github.com/succinctlabs/sp1/pull/648))
- _(recursion)_ poseidon2 max constraint degree const generic ([#634](https://github.com/succinctlabs/sp1/pull/634))
- regularize proof shape ([#641](https://github.com/succinctlabs/sp1/pull/641))
- shard chunking multiplier ([#633](https://github.com/succinctlabs/sp1/pull/633))
- prover tweaks pt4 ([#632](https://github.com/succinctlabs/sp1/pull/632))
- _(recursion)_ cpu branch constraints ([#578](https://github.com/succinctlabs/sp1/pull/578))
- prover tweaks ([#603](https://github.com/succinctlabs/sp1/pull/603))
- _(recursion)_ memory access timestamp constraints ([#589](https://github.com/succinctlabs/sp1/pull/589))
- enable arbitrary constraint degree ([#593](https://github.com/succinctlabs/sp1/pull/593))
- recursion compress layer + RecursionAirWideDeg3 + RecursionAirSkinnyDeg7 + optimized groth16 ([#590](https://github.com/succinctlabs/sp1/pull/590))
- fixing memory interactions ([#587](https://github.com/succinctlabs/sp1/pull/587))
- _(Recursion)_ evaluate constraints in a single expression ([#592](https://github.com/succinctlabs/sp1/pull/592))
- _(recursion)_ memory builder + fri-fold precompile ([#581](https://github.com/succinctlabs/sp1/pull/581))
- complete reduce program ([#565](https://github.com/succinctlabs/sp1/pull/565))
- public inputs in gnark circuit ([#576](https://github.com/succinctlabs/sp1/pull/576))
- _(recursion)_ cpu alu constraints ([#570](https://github.com/succinctlabs/sp1/pull/570))
- _(recursion)_ recursion air builder ([#574](https://github.com/succinctlabs/sp1/pull/574))
- a few simplifications to the Keccak AIR ([#568](https://github.com/succinctlabs/sp1/pull/568))
- alu cpu columns ([#562](https://github.com/succinctlabs/sp1/pull/562))
- stark cleanup and verification ([#556](https://github.com/succinctlabs/sp1/pull/556))
- add range checks to field and new LT table ([#529](https://github.com/succinctlabs/sp1/pull/529))
- fix cargo prove new issues ([#542](https://github.com/succinctlabs/sp1/pull/542))
- feat(precompile) bls12-381 add and double precompile ([#448](https://github.com/succinctlabs/sp1/pull/448))
- _(precompile)_ add biguint arithmetic precompiles ([#378](https://github.com/succinctlabs/sp1/pull/378))
- verify shard transitions + fixes ([#482](https://github.com/succinctlabs/sp1/pull/482))
- weierstrass decompress precompile ([#440](https://github.com/succinctlabs/sp1/pull/440))
- preprocess memory program chip ([#480](https://github.com/succinctlabs/sp1/pull/480))
- nested sp1 proof verification ([#494](https://github.com/succinctlabs/sp1/pull/494))
- verify pc and shard transition in recursive proofs ([#514](https://github.com/succinctlabs/sp1/pull/514))
- recursion profiling ([#521](https://github.com/succinctlabs/sp1/pull/521))
- small permutation trace gen perf opt ([#517](https://github.com/succinctlabs/sp1/pull/517))
- update to latest p3 ([#515](https://github.com/succinctlabs/sp1/pull/515))
- reduce with different configs ([#508](https://github.com/succinctlabs/sp1/pull/508))
- sdk using secp256k1 auth ([#483](https://github.com/succinctlabs/sp1/pull/483))
- logup batching ([#487](https://github.com/succinctlabs/sp1/pull/487))
- recursion vm public values ([#495](https://github.com/succinctlabs/sp1/pull/495))
- shard transition public values ([#466](https://github.com/succinctlabs/sp1/pull/466))
- recursion permutation challenges as variables ([#486](https://github.com/succinctlabs/sp1/pull/486))
- add support for witness in programs ([#476](https://github.com/succinctlabs/sp1/pull/476))
- setup recursion prover crate ([#475](https://github.com/succinctlabs/sp1/pull/475))
- gnark recursive verifier ([#457](https://github.com/succinctlabs/sp1/pull/457))
- add shard to byte and program table ([#463](https://github.com/succinctlabs/sp1/pull/463))
- recursion cpu constraints ([#464](https://github.com/succinctlabs/sp1/pull/464))
- public values ([#455](https://github.com/succinctlabs/sp1/pull/455))
- Preprocessing + recursion ([#450](https://github.com/succinctlabs/sp1/pull/450))
- one cycle input ([#451](https://github.com/succinctlabs/sp1/pull/451))
- sp1-sdk, remote prover ([#370](https://github.com/succinctlabs/sp1/pull/370))
- _(precompile)_ add bn254 precompile ([#384](https://github.com/succinctlabs/sp1/pull/384))
- constrain EnterUnconstrained syscall ([#449](https://github.com/succinctlabs/sp1/pull/449))
- verify shard ([#444](https://github.com/succinctlabs/sp1/pull/444))
- working two adic pcs verifier in recursive zkvm ([#434](https://github.com/succinctlabs/sp1/pull/434))
- plonky3 update ([#428](https://github.com/succinctlabs/sp1/pull/428))
- poseidon2 permute ([#423](https://github.com/succinctlabs/sp1/pull/423))
- cpu chip clk constraints ([#420](https://github.com/succinctlabs/sp1/pull/420))
- verify constraints ([#409](https://github.com/succinctlabs/sp1/pull/409))
- Connect CPU to ECALL tables ([#364](https://github.com/succinctlabs/sp1/pull/364))
- poseidon2 air ([#397](https://github.com/succinctlabs/sp1/pull/397))
- checkpoint runtime for constant memory usage ([#389](https://github.com/succinctlabs/sp1/pull/389))
- update to the latest plonky3 version ([#398](https://github.com/succinctlabs/sp1/pull/398))
- verify constraints in DSL + basic verifier setup ([#395](https://github.com/succinctlabs/sp1/pull/395))
- array and symbolic evaluation ([#390](https://github.com/succinctlabs/sp1/pull/390))
- core recursion air constraints ([#359](https://github.com/succinctlabs/sp1/pull/359))
- initial recursion core ([#354](https://github.com/succinctlabs/sp1/pull/354))
- serializable execution record ([#328](https://github.com/succinctlabs/sp1/pull/328))
- Many small features and chores ([#347](https://github.com/succinctlabs/sp1/pull/347))
- keccak + weierstrass trace gen opt ([#335](https://github.com/succinctlabs/sp1/pull/335))
- use u32 based hasher for BabybearBlake3 ([#327](https://github.com/succinctlabs/sp1/pull/327))
- update to new Merkle tree API ([#301](https://github.com/succinctlabs/sp1/pull/301))
- prover memory optimizations ([#294](https://github.com/succinctlabs/sp1/pull/294))
- trace for cycle tracker ([#163](https://github.com/succinctlabs/sp1/pull/163))
- derive `MachineAir`, chip and machine cleanup ([#278](https://github.com/succinctlabs/sp1/pull/278))
- new README img ([#226](https://github.com/succinctlabs/sp1/pull/226))
- Allow deserialization of `StarkGenericConfig`s ([#218](https://github.com/succinctlabs/sp1/pull/218))
- new trace generation api ([#208](https://github.com/succinctlabs/sp1/pull/208))
- Make proof types deserializable ([#211](https://github.com/succinctlabs/sp1/pull/211))
- readme updates ([#205](https://github.com/succinctlabs/sp1/pull/205))
- preprocessing api, cleanup, and testing ([#195](https://github.com/succinctlabs/sp1/pull/195))
- release v0.0.1-alpha ([#200](https://github.com/succinctlabs/sp1/pull/200))
- upgrade toolchain to rust 1.75 ([#193](https://github.com/succinctlabs/sp1/pull/193))
- more final touches ([#194](https://github.com/succinctlabs/sp1/pull/194))
- Blake3 compress precompile ([#180](https://github.com/succinctlabs/sp1/pull/180))
- tendermint optimizations ([#188](https://github.com/succinctlabs/sp1/pull/188))
- hash function config in prover and verifier ([#186](https://github.com/succinctlabs/sp1/pull/186))
- Stark cleanup ([#179](https://github.com/succinctlabs/sp1/pull/179))
- curtaup + release system + cargo prove CLI updates ([#178](https://github.com/succinctlabs/sp1/pull/178))
- dynamic prover / verifier chips + proof size benchmarking ([#176](https://github.com/succinctlabs/sp1/pull/176))
- (perf) k12 config ([#160](https://github.com/succinctlabs/sp1/pull/160))
- unconstrained macro + ecrecover fn ([#153](https://github.com/succinctlabs/sp1/pull/153))
- (perf) updates from Plonky3 and verifier refactor ([#156](https://github.com/succinctlabs/sp1/pull/156))
- zeth program ([#147](https://github.com/succinctlabs/sp1/pull/147))
- developer experience improvements ([#145](https://github.com/succinctlabs/sp1/pull/145))
- k256_decompress precompile ([#143](https://github.com/succinctlabs/sp1/pull/143))
- Secp256k1 double precompile ([#142](https://github.com/succinctlabs/sp1/pull/142))
- Secp251k addition precompile ([#137](https://github.com/succinctlabs/sp1/pull/137))
- Verifier ([#123](https://github.com/succinctlabs/sp1/pull/123))
- keccak precompile ([#108](https://github.com/succinctlabs/sp1/pull/108))
- _(perf)_ use poseidon fri ([#132](https://github.com/succinctlabs/sp1/pull/132))
- enable debug assertions in ci ([#130](https://github.com/succinctlabs/sp1/pull/130))
- toolchain build from source & install ([#113](https://github.com/succinctlabs/sp1/pull/113))
- use actions cache for perf regress [perf] ([#128](https://github.com/succinctlabs/sp1/pull/128))
- ed_decompress precompile ([#114](https://github.com/succinctlabs/sp1/pull/114))
- io::read io::write ([#126](https://github.com/succinctlabs/sp1/pull/126))
- performance regression check ([#125](https://github.com/succinctlabs/sp1/pull/125))
- Ed25519 base field sqrt operation (WIP) ([#122](https://github.com/succinctlabs/sp1/pull/122))
- ed_add precompile ([#95](https://github.com/succinctlabs/sp1/pull/95))
- Implement `F_p` division [WIP/Draft] ([#115](https://github.com/succinctlabs/sp1/pull/115))
- serialize MainData<SC> ([#116](https://github.com/succinctlabs/sp1/pull/116))
- implement `add5` and `or` operations ([#111](https://github.com/succinctlabs/sp1/pull/111))
- cycle tracker macro and print ([#109](https://github.com/succinctlabs/sp1/pull/109))
- fix prover work and update plonky3 upstream changes ([#110](https://github.com/succinctlabs/sp1/pull/110))
- get_cycles helper ([#104](https://github.com/succinctlabs/sp1/pull/104))
- implement `isEqualWordOperation` and use it in `DivRemChip` ([#103](https://github.com/succinctlabs/sp1/pull/103))
- Implement `MSB` byte lookup op and use it in ALU tables ([#100](https://github.com/succinctlabs/sp1/pull/100))
- `IsZero` Operation ([#92](https://github.com/succinctlabs/sp1/pull/92))
- sha256 compress constraints ([#94](https://github.com/succinctlabs/sp1/pull/94))
- add4 operations ([#91](https://github.com/succinctlabs/sp1/pull/91))
- tracing, profiling, benchmarking ([#99](https://github.com/succinctlabs/sp1/pull/99))
- fix all cargo tests + add ci + rename curta to succinct ([#97](https://github.com/succinctlabs/sp1/pull/97))
- Implement `and` `not` `xor` operations ([#98](https://github.com/succinctlabs/sp1/pull/98))
- Fp add, mul, sub, inner_product and den operations, and Edwards add operation ([#68](https://github.com/succinctlabs/sp1/pull/68))
- Constrain memory related ts/segment values ([#84](https://github.com/succinctlabs/sp1/pull/84))
- tendermint example + runtime optimizations ([#93](https://github.com/succinctlabs/sp1/pull/93))
- working prover ([#90](https://github.com/succinctlabs/sp1/pull/90))
- ssz withdrawals example ([#81](https://github.com/succinctlabs/sp1/pull/81))
- implement add operations ([#88](https://github.com/succinctlabs/sp1/pull/88))
- rustcrypto sha256 example ([#82](https://github.com/succinctlabs/sp1/pull/82))
- cpu memory value constraints ([#74](https://github.com/succinctlabs/sp1/pull/74))
- print syscall + start of ssz example ([#76](https://github.com/succinctlabs/sp1/pull/76))
- sha256 syscalls + fix for mul events being in add events ([#75](https://github.com/succinctlabs/sp1/pull/75))
- simple benchmarks ([#72](https://github.com/succinctlabs/sp1/pull/72))
- move runtime execution to precompile module ([#71](https://github.com/succinctlabs/sp1/pull/71))
- Arithmetic & logical right shift (`SRA`, `SRL`) ([#70](https://github.com/succinctlabs/sp1/pull/70))
- CPU constraints for jump instructions and AIUPC ([#69](https://github.com/succinctlabs/sp1/pull/69))
- sha compress ([#66](https://github.com/succinctlabs/sp1/pull/66))
- cpu constraints for branching related op codes ([#58](https://github.com/succinctlabs/sp1/pull/58))
- sha extend ([#61](https://github.com/succinctlabs/sp1/pull/61))
- `DIV`, `REM`, `DIVU` and `REMU` ALU table ([#49](https://github.com/succinctlabs/sp1/pull/49))
- proving with global challenges ([#64](https://github.com/succinctlabs/sp1/pull/64))
- memory constraints on CPU table ([#56](https://github.com/succinctlabs/sp1/pull/56))
- bus constraint between cpu and program table ([#50](https://github.com/succinctlabs/sp1/pull/50))
- `lt` ALU table ([#44](https://github.com/succinctlabs/sp1/pull/44))
- left shift `SLL` ALU table ([#60](https://github.com/succinctlabs/sp1/pull/60))
- working malloc, syscalls, elf/program refactor ([#53](https://github.com/succinctlabs/sp1/pull/53))
- small nits ([#47](https://github.com/succinctlabs/sp1/pull/47))
- Add all `MUL*` ALU tables ([#45](https://github.com/succinctlabs/sp1/pull/45))
- disassemble + opcode + instruction refactor ([#43](https://github.com/succinctlabs/sp1/pull/43))
- `MUL` ALU table ([#41](https://github.com/succinctlabs/sp1/pull/41))
- Byte lookup table ([#35](https://github.com/succinctlabs/sp1/pull/35))
- CPU and Memory interactions match ([#29](https://github.com/succinctlabs/sp1/pull/29))
- cleanup prove method + traits ([#37](https://github.com/succinctlabs/sp1/pull/37))
- shift table + less table + interactions for all existing tables ([#28](https://github.com/succinctlabs/sp1/pull/28))
- builder interactions ([#33](https://github.com/succinctlabs/sp1/pull/33))
- shift/less ([#31](https://github.com/succinctlabs/sp1/pull/31))
- v3 prover ([#24](https://github.com/succinctlabs/sp1/pull/24))
- chip interactions ([#26](https://github.com/succinctlabs/sp1/pull/26))
- end-to-end testing setup including AIR / interaction constraints ([#17](https://github.com/succinctlabs/sp1/pull/17))
- memory table with proof generation ([#18](https://github.com/succinctlabs/sp1/pull/18))
- CPU trace pads and proves ([#19](https://github.com/succinctlabs/sp1/pull/19))
- Parse ELF files ([#7](https://github.com/succinctlabs/sp1/pull/7))
- v1 prove method + program table ([#15](https://github.com/succinctlabs/sp1/pull/15))
- working ALU tables for ADD + SUB + AND + XOR + OR minus interactions ([#10](https://github.com/succinctlabs/sp1/pull/10))
- memory air ([#9](https://github.com/succinctlabs/sp1/pull/9))
- basic runtime for add
- basic runtime for add
- basic runtime for add
- make imm i32
- make imm i32
- v1 of encoding
- v1 of encoding
- v1 of encoding

### Fixed

- BLS381 decompress ([#1121](https://github.com/succinctlabs/sp1/pull/1121))
- global memory assertions ([#1083](https://github.com/succinctlabs/sp1/pull/1083))
- lookup id collisions ([#1114](https://github.com/succinctlabs/sp1/pull/1114))
- correct permutation column counts in debug_constraints ([#1080](https://github.com/succinctlabs/sp1/pull/1080))
- execution shard ([#1070](https://github.com/succinctlabs/sp1/pull/1070))
- optimize serde for ExecutionState ([#1068](https://github.com/succinctlabs/sp1/pull/1068))
- uint256 fixes ([#990](https://github.com/succinctlabs/sp1/pull/990))
- range check halt/commit_deferred_proof operands ([#986](https://github.com/succinctlabs/sp1/pull/986))
- verifier dos ([#1017](https://github.com/succinctlabs/sp1/pull/1017))
- verifier dos
- apply plonky3's keccak air fix ([#984](https://github.com/succinctlabs/sp1/pull/984))
- close unclosed file streams ([#954](https://github.com/succinctlabs/sp1/pull/954))
- p3 audit change ([#964](https://github.com/succinctlabs/sp1/pull/964))
- fix crhsi comments
- uint256 div ([#915](https://github.com/succinctlabs/sp1/pull/915))
- remove mutable requirement ([#892](https://github.com/succinctlabs/sp1/pull/892))
- set core opts from SHARD\* env vars ([#889](https://github.com/succinctlabs/sp1/pull/889))
- unit tests to test nonces ([#875](https://github.com/succinctlabs/sp1/pull/875))
- nonce in ed decompress ([#874](https://github.com/succinctlabs/sp1/pull/874))
- install for `verify_plonk_bn254` ([#798](https://github.com/succinctlabs/sp1/pull/798))
- _(core)_ Remove dummy constraint ([#783](https://github.com/succinctlabs/sp1/pull/783))
- _(core)_ Fix benches warning for unstable features ([#763](https://github.com/succinctlabs/sp1/pull/763))
- SHA_COMPRESS syscall added to syscall map twice ([#740](https://github.com/succinctlabs/sp1/pull/740))
- multiply logged permutation column counts by extension field degree. ([#668](https://github.com/succinctlabs/sp1/pull/668))
- proof aggregation issue ([#683](https://github.com/succinctlabs/sp1/pull/683))
- verify reduced proofs ([#655](https://github.com/succinctlabs/sp1/pull/655))
- shard_batch_size prover ([#659](https://github.com/succinctlabs/sp1/pull/659))
- _(recursion)_ fixes for fri fold and poseidon2 ([#654](https://github.com/succinctlabs/sp1/pull/654))
- _(core)_ assert_is_base_element fix for highest degree element ([#644](https://github.com/succinctlabs/sp1/pull/644))
- some SubBuilder tweaks ([#622](https://github.com/succinctlabs/sp1/pull/622))
- high degree constraints in recursion ([#619](https://github.com/succinctlabs/sp1/pull/619))
- deferred proofs + cleanup hash_vkey ([#615](https://github.com/succinctlabs/sp1/pull/615))
- posedion2 config bug ([#612](https://github.com/succinctlabs/sp1/pull/612))
- update Poseidon2 air to match plonky3 ([#600](https://github.com/succinctlabs/sp1/pull/600))
- downgrade `strum` ([#585](https://github.com/succinctlabs/sp1/pull/585))
- verify read access for MemoryReadWriteCols cols in keccak precompile ([#531](https://github.com/succinctlabs/sp1/pull/531))
- unaccessed hint input + small fixes ([#461](https://github.com/succinctlabs/sp1/pull/461))
- observe only non-padded public values ([#523](https://github.com/succinctlabs/sp1/pull/523))
- broken e2e recursion
- don't observe padded public values ([#520](https://github.com/succinctlabs/sp1/pull/520))
- public inputs in recursion program ([#467](https://github.com/succinctlabs/sp1/pull/467))
- few regression fixes ([#441](https://github.com/succinctlabs/sp1/pull/441))
- only use tempfile if necessary ([#436](https://github.com/succinctlabs/sp1/pull/436))
- don't use tempfile if unneeded ([#419](https://github.com/succinctlabs/sp1/pull/419))
- silent lwa error ([#385](https://github.com/succinctlabs/sp1/pull/385))
- non-default feature errors and check during ci ([#345](https://github.com/succinctlabs/sp1/pull/345))
- BLAKE3 AIR constraint fix for handling multiple invocations ([#336](https://github.com/succinctlabs/sp1/pull/336))
- S-box in Poseidon2 config ([#329](https://github.com/succinctlabs/sp1/pull/329))
- ltu bug ([#284](https://github.com/succinctlabs/sp1/pull/284))
- keccak memory bug ([#283](https://github.com/succinctlabs/sp1/pull/283))
- verify proof in tests ([#280](https://github.com/succinctlabs/sp1/pull/280))
- debug deserialization for SP1ProofWithIO. Test. ([#249](https://github.com/succinctlabs/sp1/pull/249))
- Merkle tree config ([#251](https://github.com/succinctlabs/sp1/pull/251))
- sha compress ([#252](https://github.com/succinctlabs/sp1/pull/252))
- perf main bench ci ([#223](https://github.com/succinctlabs/sp1/pull/223))
- k256 decompress ([#202](https://github.com/succinctlabs/sp1/pull/202))
- blake3 interaction bug ([#199](https://github.com/succinctlabs/sp1/pull/199))
- make SSZ work again ([#190](https://github.com/succinctlabs/sp1/pull/190))
- remove verification checks from prove_core ([#185](https://github.com/succinctlabs/sp1/pull/185))
- runtime sharding ([#181](https://github.com/succinctlabs/sp1/pull/181))
- main ci ([#177](https://github.com/succinctlabs/sp1/pull/177))
- proofs with dynamic jump clocks ([#172](https://github.com/succinctlabs/sp1/pull/172))
- debug feature ([#171](https://github.com/succinctlabs/sp1/pull/171))
- Interaction bug caused by carry arrays ([#131](https://github.com/succinctlabs/sp1/pull/131))
- make memory argument safer ([#117](https://github.com/succinctlabs/sp1/pull/117))
- bgeu ([#87](https://github.com/succinctlabs/sp1/pull/87))
- revert to old fib program in tests ([#80](https://github.com/succinctlabs/sp1/pull/80))
- sr byte lookup and memory events emitted during Syscall:PRINT ([#77](https://github.com/succinctlabs/sp1/pull/77))
- support underflow case for sub chip ([#63](https://github.com/succinctlabs/sp1/pull/63))
- use try_init() for env_logger ([#57](https://github.com/succinctlabs/sp1/pull/57))
- bug ([#51](https://github.com/succinctlabs/sp1/pull/51))
- `DIV`, `DIVU`, `REM`, `REMU` and add tests ([#42](https://github.com/succinctlabs/sp1/pull/42))
- prover issue ([#32](https://github.com/succinctlabs/sp1/pull/32))
- Fix the jump instructions, Fibonacci working now ([#27](https://github.com/succinctlabs/sp1/pull/27))
- fix JALR and do not write to X0 ([#22](https://github.com/succinctlabs/sp1/pull/22))
- jump bugs/jump decoding bugs ([#21](https://github.com/succinctlabs/sp1/pull/21))

### Other

- poseidon2 parallel tracegen ([#1118](https://github.com/succinctlabs/sp1/pull/1118))
- prover utilization ([#1100](https://github.com/succinctlabs/sp1/pull/1100))
- _(deps)_ bump serde_with from 3.8.3 to 3.9.0 ([#1103](https://github.com/succinctlabs/sp1/pull/1103))
- use global workspace version ([#1102](https://github.com/succinctlabs/sp1/pull/1102))
- add more context to input stream panic ([#1091](https://github.com/succinctlabs/sp1/pull/1091))
- fix release-plz ([#1088](https://github.com/succinctlabs/sp1/pull/1088))
- add release-plz ([#1086](https://github.com/succinctlabs/sp1/pull/1086))
- generate dependencies optimizations for CPU and ALU chips ([#1048](https://github.com/succinctlabs/sp1/pull/1048))
- _(deps)_ bump serde_with from 3.8.1 to 3.8.3 ([#1064](https://github.com/succinctlabs/sp1/pull/1064))
- _(deps)_ bump generic-array from 1.0.0 to 1.1.0 ([#1066](https://github.com/succinctlabs/sp1/pull/1066))
- cycle limit
- Merge branch 'dev' into dependabot/cargo/dev/log-0.4.22
- _(deps)_ bump num-bigint from 0.4.5 to 0.4.6
- merge main -> dev ([#969](https://github.com/succinctlabs/sp1/pull/969))
- cleanup
- v1.0.7-testnet ([#930](https://github.com/succinctlabs/sp1/pull/930))
- remove u256
- _(deps)_ bump itertools from 0.12.1 to 0.13.0 ([#817](https://github.com/succinctlabs/sp1/pull/817))
- logging cleanup + non-compressed fibonacci ([#903](https://github.com/succinctlabs/sp1/pull/903))
- Merge branch 'dev' into john/fix-main-regression
- fix program and permutation trace exports ([#887](https://github.com/succinctlabs/sp1/pull/887))
- refactor derive, serialize bounds ([#869](https://github.com/succinctlabs/sp1/pull/869))
- increase byte lookup channels ([#876](https://github.com/succinctlabs/sp1/pull/876))
- constraint selectors when is_real zero ([#873](https://github.com/succinctlabs/sp1/pull/873))
- state_mem validity ([#871](https://github.com/succinctlabs/sp1/pull/871))
- fixes ([#821](https://github.com/succinctlabs/sp1/pull/821))
- program doc and remove unnecessary clones ([#857](https://github.com/succinctlabs/sp1/pull/857))
- default reconstruct commitments = true ([#846](https://github.com/succinctlabs/sp1/pull/846))
- fmt
- hm
- change challenger rate from 16 to 8 ([#807](https://github.com/succinctlabs/sp1/pull/807))
- hm
- no remainder range checks if division by 0 ([#764](https://github.com/succinctlabs/sp1/pull/764))
- Make some functions const ([#774](https://github.com/succinctlabs/sp1/pull/774))
- remove unused deps ([#794](https://github.com/succinctlabs/sp1/pull/794))
- Clean up TOML files ([#796](https://github.com/succinctlabs/sp1/pull/796))
- logup format ([#788](https://github.com/succinctlabs/sp1/pull/788))
- pk/vk serde/clone ([#770](https://github.com/succinctlabs/sp1/pull/770))
- get_cycles don't need emit events ([#697](https://github.com/succinctlabs/sp1/pull/697))
- update all dependencies ([#689](https://github.com/succinctlabs/sp1/pull/689))
- sdk tweaks ([#653](https://github.com/succinctlabs/sp1/pull/653))
- avoid a few allocations in constraint code ([#567](https://github.com/succinctlabs/sp1/pull/567))
- improve tracing log readability ([#616](https://github.com/succinctlabs/sp1/pull/616))
- sdk improvements ([#580](https://github.com/succinctlabs/sp1/pull/580))
- poseidon2 config change ([#609](https://github.com/succinctlabs/sp1/pull/609))
- prover tweaks ([#610](https://github.com/succinctlabs/sp1/pull/610))
- `get_cycles` ([#595](https://github.com/succinctlabs/sp1/pull/595))
- fixing dep tree for `prover`, `recursion`, `core` and `sdk` ([#545](https://github.com/succinctlabs/sp1/pull/545))
- cleanup prover ([#551](https://github.com/succinctlabs/sp1/pull/551))
- re-organise cpu air constraints ([#538](https://github.com/succinctlabs/sp1/pull/538))
- replace std::time with drop-in web-time for wasm compat ([#437](https://github.com/succinctlabs/sp1/pull/437))
- make ci faster ([#536](https://github.com/succinctlabs/sp1/pull/536))
- cleanup for allen ([#518](https://github.com/succinctlabs/sp1/pull/518))
- _(recursion)_ reduce program ([#497](https://github.com/succinctlabs/sp1/pull/497))
- _(simd)_ avx512 by dyxushuai ([#492](https://github.com/succinctlabs/sp1/pull/492))
- update to latest plonky3 main ([#491](https://github.com/succinctlabs/sp1/pull/491))
- clear semantics of variables ([#452](https://github.com/succinctlabs/sp1/pull/452))
- constrain halt, is_real, and pc ([#424](https://github.com/succinctlabs/sp1/pull/424))
- Clean up the `MUL` ALU table code ([#189](https://github.com/succinctlabs/sp1/pull/189))
- cleanup keccak + more constraints ([#447](https://github.com/succinctlabs/sp1/pull/447))
- sha cleanup + constraints ([#425](https://github.com/succinctlabs/sp1/pull/425))
- generic size limbs for curve precompiles ([#417](https://github.com/succinctlabs/sp1/pull/417))
- Merge sub chip into add chip ([#410](https://github.com/succinctlabs/sp1/pull/410))
- styling and comment fixes ([#414](https://github.com/succinctlabs/sp1/pull/414))
- Move memory access timestamp check inline ([#404](https://github.com/succinctlabs/sp1/pull/404))
- set clk = 0 in initialize ([#406](https://github.com/succinctlabs/sp1/pull/406))
- remove repetitive words ([#391](https://github.com/succinctlabs/sp1/pull/391))
- sunday cleanup ([#363](https://github.com/succinctlabs/sp1/pull/363))
- recursion core cleanup ([#355](https://github.com/succinctlabs/sp1/pull/355))
- split `validate_memory_access` to avoid warnings in the release profile ([#353](https://github.com/succinctlabs/sp1/pull/353))
- introduce a union type for `opcode_specific_columns` ([#310](https://github.com/succinctlabs/sp1/pull/310))
- rename to upper camel case ([#325](https://github.com/succinctlabs/sp1/pull/325))
- enable reconstruct trace/commit by default instead of using disk + lower memory usage ([#323](https://github.com/succinctlabs/sp1/pull/323))
- various AIR tweaks ([#311](https://github.com/succinctlabs/sp1/pull/311))
- refactor air in keccak to not use `offset_of` ([#308](https://github.com/succinctlabs/sp1/pull/308))
- mul trace gen ([#306](https://github.com/succinctlabs/sp1/pull/306))
- small verifier cleanup ([#288](https://github.com/succinctlabs/sp1/pull/288))
- decrease default shard size ([#246](https://github.com/succinctlabs/sp1/pull/246))
- update for compatibility with recent Plonky3 ([#277](https://github.com/succinctlabs/sp1/pull/277))
- final touches for public release ([#239](https://github.com/succinctlabs/sp1/pull/239))
- update ssh dependencies to https ([#235](https://github.com/succinctlabs/sp1/pull/235))
- Range check misc fixes ([#216](https://github.com/succinctlabs/sp1/pull/216))
- examples/tests folder refactor ([#234](https://github.com/succinctlabs/sp1/pull/234))
- update docs with slight nits ([#224](https://github.com/succinctlabs/sp1/pull/224))
- sp1 rename ([#212](https://github.com/succinctlabs/sp1/pull/212))
- enshrine AlignedBorrow macro ([#209](https://github.com/succinctlabs/sp1/pull/209))
- make `FpOperations` use `PrimeField32` to clean up type inconsistency hacks ([#203](https://github.com/succinctlabs/sp1/pull/203))
- clean up the ed25519 test ([#207](https://github.com/succinctlabs/sp1/pull/207))
- readme cleanup ([#196](https://github.com/succinctlabs/sp1/pull/196))
- rename succinct to curta ([#192](https://github.com/succinctlabs/sp1/pull/192))
- better curta graphic ([#184](https://github.com/succinctlabs/sp1/pull/184))
- Move random related packages to dev dependency and constant poseidon2 RCs ([#182](https://github.com/succinctlabs/sp1/pull/182))
- cleanup double generics + runtime ([#175](https://github.com/succinctlabs/sp1/pull/175))
- cleanup runtime ([#170](https://github.com/succinctlabs/sp1/pull/170))
- make demo and test in programs ([#167](https://github.com/succinctlabs/sp1/pull/167))
- add config for SEGMENT_SIZE ([#166](https://github.com/succinctlabs/sp1/pull/166))
- cleanup chip to it's own module ([#165](https://github.com/succinctlabs/sp1/pull/165))
- use parallelization in Blake3 ([#164](https://github.com/succinctlabs/sp1/pull/164))
- stark cleanup ([#162](https://github.com/succinctlabs/sp1/pull/162))
- cpu cleanup ([#161](https://github.com/succinctlabs/sp1/pull/161))
- prover cleanup pt 1 ([#159](https://github.com/succinctlabs/sp1/pull/159))
- global prover imp v1 + blake3 ([#152](https://github.com/succinctlabs/sp1/pull/152))
- parallelize segment proving ([#148](https://github.com/succinctlabs/sp1/pull/148))
- split memory access by type ([#140](https://github.com/succinctlabs/sp1/pull/140))
- air/alu/bytes/cpu ([#133](https://github.com/succinctlabs/sp1/pull/133))
- cleanup patches + patch tendermint sha ([#135](https://github.com/succinctlabs/sp1/pull/135))
- get rid of unneeded cpu cols and fix quotient values profile ([#118](https://github.com/succinctlabs/sp1/pull/118))
- more efficient field ltu table ([#119](https://github.com/succinctlabs/sp1/pull/119))
- generate permutation trace optimizations ([#121](https://github.com/succinctlabs/sp1/pull/121))
- range check all appropriate values in ALU chips ([#107](https://github.com/succinctlabs/sp1/pull/107))
- precompile runtime refactor ([#112](https://github.com/succinctlabs/sp1/pull/112))
- minor improvements in `debug_interactions_with_all_chips` ([#106](https://github.com/succinctlabs/sp1/pull/106))
- ALU table interaction tests + Shift clean up ([#89](https://github.com/succinctlabs/sp1/pull/89))
- DIV/REM interaction fix ([#83](https://github.com/succinctlabs/sp1/pull/83))
- Uncomment `debug_constraints` inside `prove` ([#86](https://github.com/succinctlabs/sp1/pull/86))
- Fix MUL ALU table interactions ([#78](https://github.com/succinctlabs/sp1/pull/78))
- air folder ([#73](https://github.com/succinctlabs/sp1/pull/73))
- small changes to add chip ([#65](https://github.com/succinctlabs/sp1/pull/65))
- Split the shift ALU table into left and right ([#62](https://github.com/succinctlabs/sp1/pull/62))
- New memory argument ([#55](https://github.com/succinctlabs/sp1/pull/55))
- update the implementation of MULH, MULHU, MULHSU ([#39](https://github.com/succinctlabs/sp1/pull/39))
- implement ecall & panic at UNIMP ([#34](https://github.com/succinctlabs/sp1/pull/34))
- CPU trace works ([#25](https://github.com/succinctlabs/sp1/pull/25))
- minor fixes in the opcode/instruction ([#20](https://github.com/succinctlabs/sp1/pull/20))
- CPU column cleanup ([#16](https://github.com/succinctlabs/sp1/pull/16))
- Better structure cpu cols ([#14](https://github.com/succinctlabs/sp1/pull/14))
- Uma/cpu lookups ([#12](https://github.com/succinctlabs/sp1/pull/12))
- (feat) CPU Table ([#11](https://github.com/succinctlabs/sp1/pull/11))
- tests for all ALU instructions
- tests for all ALU instructions
- tests for all ALU instructions
- tests for all ALU instructions
- resolve merge conflicts
- resolve merge conflicts
- resolve merge conflicts
- resolve merge conflicts
- interpreter
- interpreter
- runtime v.0.0.1
- wip
- initial rought
- Initial commit
