Skip to content

Start Ixon serde in Aiur#268

Merged
arthurpaulino merged 12 commits intomainfrom
ingress
Nov 21, 2025
Merged

Start Ixon serde in Aiur#268
arthurpaulino merged 12 commits intomainfrom
ingress

Conversation

@arthurpaulino
Copy link
Member

@arthurpaulino arthurpaulino commented Nov 20, 2025

This patch implements (and changes) enough of the code base as a PoC of being able to provably bootstrap the precise Ixon whose hash is stated as an argument of the claim (as input of the Aiur entrypoint call).

This is done by reading the bytes from the IOBuffer, deserializing it and then serializing and hashing the respective bytes. Deserialization followed by serialization was the chosen solution because serialization is, in principle, cheaper. Thus the deserialization can be tagged as #[unconstrained] for extra speed.

Furthermore, the unconstrained tag is now more rigorous: an unconstrained function can no longer call a constrained function.

As an extra, the IxVM code has been split into multiple smaller Aiur toplevels to enable parallel elaboration by Lean.

@arthurpaulino arthurpaulino enabled auto-merge (squash) November 20, 2025 13:12
@arthurpaulino arthurpaulino merged commit 8ab21a9 into main Nov 21, 2025
17 checks passed
@arthurpaulino arthurpaulino deleted the ingress branch November 21, 2025 17:07
johnchandlerburnham pushed a commit that referenced this pull request Dec 12, 2025
This patch implements (and changes) enough of the code base as a PoC of being able to provably bootstrap the precise Ixon whose hash is stated as an argument of the claim (as input of the Aiur entrypoint call).

This is done by reading the bytes from the `IOBuffer`, deserializing it and then serializing and hashing the respective bytes. Deserialization followed by serialization was the chosen solution because serialization is, in principle, cheaper. Thus the deserialization can be tagged as `#[unconstrained]` for extra speed.

Furthermore, the unconstrained tag is now more rigorous: an unconstrained function can no longer call a constrained function.

As an extra, the IxVM code has been split into multiple smaller Aiur toplevels to enable parallel elaboration by Lean.

---------

Co-authored-by: Gabriel Barreto <gabriel.aquino.barreto@gmail.com>
johnchandlerburnham added a commit that referenced this pull request Dec 13, 2025
* refactor module organization, env types, and add richer scc result

* tmp rustfmt

* rust, const sorting and expr compilation

* compile_const

* wip: compiler structure, but erroring

* compiling Env in 11.32 seconds

* clippy and warnings

* manual stack management for compile_expr to avoid overflow

* xclippy warnings

* compilation in 6.65s, total pipeline in 16.8s

* remove cons_list

* ci: Add comparative benchmark report (#265)

* feat: Add Json serde for Benchmark API

* (WIP) Add comparison report and PR comment workflow

* Add one-shot benches and markdown report

* Export benchmark API in ix library

* Add env var overrides for config settings

* Finish report pretty-printer

* Fix `bench.yml`

* Scope permissions with app token

* Fix security alert

* Fixup

* Start `Ixon` serde in Aiur (#268)

This patch implements (and changes) enough of the code base as a PoC of being able to provably bootstrap the precise Ixon whose hash is stated as an argument of the claim (as input of the Aiur entrypoint call).

This is done by reading the bytes from the `IOBuffer`, deserializing it and then serializing and hashing the respective bytes. Deserialization followed by serialization was the chosen solution because serialization is, in principle, cheaper. Thus the deserialization can be tagged as `#[unconstrained]` for extra speed.

Furthermore, the unconstrained tag is now more rigorous: an unconstrained function can no longer call a constrained function.

As an extra, the IxVM code has been split into multiple smaller Aiur toplevels to enable parallel elaboration by Lean.

---------

Co-authored-by: Gabriel Barreto <gabriel.aquino.barreto@gmail.com>

* chore: Clean up Benchmark API (#267)

* chore: Test benchmark PR

* Refactor blake3 bench to use Criterion

* chore: Refactoring

* More fixes

* Lifted unconstrained restriction (#273)

* lifted unconstrained restriction

* filtered queries of multiplicity 0

* constrained inside unconstrained test

* Progress on serialize and deserialize (#276)

* Ixon.UVar

* deserialize Ixon.EVar and Ixon.Blob

* some fixes

* small fix

* progress on serialize

* wip

* fixes and deserialize for more cases

* more fixes

* removed stream input from `serialize`

* uvar, evar

* `u64_get_trimmed_le` rewritten

---------

Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>

* IxVM file split (#278)

* rust compiler (#263)

* refactor module organization, env types, and add richer scc result

* tmp rustfmt

* rust, const sorting and expr compilation

* compile_const

* wip: compiler structure, but erroring

* compiling Env in 11.32 seconds

* clippy and warnings

* manual stack management for compile_expr to avoid overflow

* xclippy warnings

* compilation in 6.65s, total pipeline in 16.8s

* remove cons_list

* review comments

* Pointer pattern (#280)

* Pointer pattern

* elab new Pattern.pointer constructor

* pointer match test

---------

Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>

* decompilation pipeline working

* fix failing condense.rs tests

* parallelize decoding

* xclippy warnings

---------

Co-authored-by: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com>
Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>
Co-authored-by: Gabriel Barreto <gabriel.aquino.barreto@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments