Skip to content

experiment: add layout of stable closures for graphcopy serialization#5470

Merged
crusso merged 3 commits intoclaudio/simple-stable-functions-eopfrom
claudio/simple-stable-functions-eop-graphcopy
Sep 12, 2025
Merged

experiment: add layout of stable closures for graphcopy serialization#5470
crusso merged 3 commits intoclaudio/simple-stable-functions-eopfrom
claudio/simple-stable-functions-eop-graphcopy

Conversation

@crusso
Copy link
Copy Markdown
Contributor

@crusso crusso commented Sep 11, 2025

Builds on #5413

Add stable_closure serialization for subset of closures that are stable (funid = -1).

Implementation adapted from #5451

@crusso crusso changed the base branch from master to claudio/simple-stable-functions-eop September 11, 2025 15:41
@crusso crusso changed the base branch from claudio/simple-stable-functions-eop to master September 11, 2025 15:55
@crusso crusso changed the base branch from master to claudio/simple-stable-functions-eop September 12, 2025 12:46
@crusso crusso marked this pull request as ready for review September 12, 2025 12:46
@crusso crusso requested a review from a team as a code owner September 12, 2025 12:46
@crusso crusso merged commit df7d723 into claudio/simple-stable-functions-eop Sep 12, 2025
7 checks passed
@crusso crusso deleted the claudio/simple-stable-functions-eop-graphcopy branch September 12, 2025 12:46
crusso added a commit that referenced this pull request Sep 12, 2025
* eop stable functions WIP

* implement stable closures and dispatch on funptr -1

* register stable_func upfront

* compile FuncE (_, T.Stable, ...) by compiling implementation, updating stable_funcs and allocating proxy

* working EOP, broken classical

* harmonize classical and eop; (copying GC only for now - need barriers for other flavours)

* hack in barriers - an abstraction would be nicer

* missing test output

* fix generational-gc barrier

* repro for use before define

* don't loop but trap with use-before-define error

* simplify desugaring

* rename helper

* restrict test; add todo

* fix skipping logic for stable functions (a nop)

* handle stable func annotations properly in idl.rs

* cleanup

* add (failing, but accepted) test for stable func stabilization (needs new layout)

* experiment: add layout of stable closures for graphcopy serialization (#5470)

* copy stable_variant.rs to stable_closure.rs

* WIP

* implemenet graph stabilization for stable closures
crusso added a commit that referenced this pull request Sep 12, 2025
* desugaring complete (but with needless indirection

* simplest test

* basic upgrade test (carashing)

* revert change; add test

* working?

* add global storing stable function table; deserialize by lookup

* add uprade-set test; modify desugaring to register stubs early, to be used by deserialization

* formatting

* optimize by removing redundant option type (the function call is its own indirection)

* remove debug prints

* extened bi_match and Type.combine

* hack type argument inference just enough to support our uses of dependent bounds

* rewrite test to use inference

* experiment: simpler stable functions, eop edition (WIP) (#5413)

* eop stable functions WIP

* implement stable closures and dispatch on funptr -1

* register stable_func upfront

* compile FuncE (_, T.Stable, ...) by compiling implementation, updating stable_funcs and allocating proxy

* working EOP, broken classical

* harmonize classical and eop; (copying GC only for now - need barriers for other flavours)

* hack in barriers - an abstraction would be nicer

* missing test output

* fix generational-gc barrier

* repro for use before define

* don't loop but trap with use-before-define error

* simplify desugaring

* rename helper

* restrict test; add todo

* fix skipping logic for stable functions (a nop)

* handle stable func annotations properly in idl.rs

* cleanup

* add (failing, but accepted) test for stable func stabilization (needs new layout)

* experiment: add layout of stable closures for graphcopy serialization (#5470)

* copy stable_variant.rs to stable_closure.rs

* WIP

* implemenet graph stabilization for stable closures
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.

1 participant