Skip to content

Conversation

@greenhat
Copy link
Contributor

No description provided.

partylikeits1983 and others added 30 commits October 6, 2025 12:14
Merge v0.5.1 release back to `next`
chore: update expect files (after the release)
…xpect-tests

[2/x] chore: remove the panic source file location in the data segment
[4/x] chore: keep changes to all packages in one `CHANGELOG.md` and use it in a github release
run `cargo update`, update miden-node to v0.12.2 in the local network tests.
refactor: migrate to WIT generation macro in counter-contract example,
chore: add a smoke test for `cargo miden new`
greenhat and others added 28 commits December 15, 2025 09:18
methods with `#[inline]`. Clean up and fix comments.
…t-struct

[1/x] Pass an account as a parameter to note and tx script
[2/x] `ActiveAccount` and `NativeAccount` traits to call tx kernel functions via `self.*` on an account
…_handler

It appears that Rust for the wasm32-* targets now emits a second object
file containing stub definitions for the default #[alloc_error_handler]
that is defined by liballoc/libstd (the implementations are different
depending on whether a crate is #![no_std] or not). The problem is that
the signature of these stubs does not match the signature of the actual
definitions, i.e. it is `fn() -> !` rather than `fn(core::alloc::Layout)
-> !`. Because these stubs are fed to rust-lld, we get conflicting
symbol errors due to the stub definition conflicting with the actual
definition in liballoc.

It isn't clear to me why this second object file is emitted by Rust, nor
why the signature is wrong. My assumption is that it has something to do
with the fact that we're producing a `cdylib` artifact, or perhaps due
to our use of `cargo -Zbuild-std` (more likely), but I wasn't able to
confirm either option.

Regardless, the fix appears to be to ensure that we define our own
`#[alloc_error_handler]` with the correct signature in the crate being
compiled. This ensures that only one definition is present, ours, and
makes the conflict go away. The downside of this (currently), is that it
also requires activation of `#[feature(alloc_error_handler)]`, which
cannot be hidden by our proc-macro machinery that hides boilerplate.

My hope is that we can figure out the actual underlying issue here, or a
fix is shipped in a new nightly and we can make this workaround go away.
When an empty template path was given to `cargo miden new`, it would
generate using a template from a different repo (project-template) than
our other templates (from the rust-templates repo). Local overrides of
the template sources would only work for rust-templates, and would cause
any use of project-template templates to fail with an error.

This fixes up the handling of local template overrides, and allows
overriding both rust-templates and project-template template sources.
fix: use git tag for new Miden project template (`cargo miden new`)
chore: bump toolchain to 1.94/nightly-2025-12-10
…: Digest, padded_inputs: Vec<Felt>) -> Self`

as a Rust equivalent for the tx kernel `miden::note::build_recipient_hash` MASM procedure
feature(SDK): expose `miden::note::build_recipient_hash` tx kernel Rust equivalent as `Recipient::compute`
[1/x] fix: remove sorting the targets in `br_table` Wasm op translation
chore: update git tags in `cargo miden new` command
@greenhat greenhat merged commit cde3312 into main Dec 23, 2025
27 checks passed
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.

9 participants