# 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.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-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-core-v1.0.0-rc.1...sp1-core-v1.0.0-rc.1) - 2024-07-19 ### Added - 1.0.0-rc.1 ([#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 ([#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 contraints ([#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 channes ([#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