Skip to content

Conversation

bitwalker
Copy link
Collaborator

This PR implements the necessary changes to migrate to the v0.18 release of the various VM crates we rely on.

NOTE: This cannot be merged until v0.18 is released and miden-base, miden-client, and miden-node have migrated (and ideally also been released, but we could also pin to a git ref like next temporarily if need be). That should be some time next week I believe. Until then, any of our integration tests that depend on those crates will fail to compile.

The main things that change here are:

  • The addition of procedure type signature information in library/package metadata
  • The removal of the account_component_metadata field of miden_mast_package::Package, and the addition of first-class custom section support (where the account component metadata is now stored).
  • The removal of many miden_assembly_syntax::ast::Instruction variants related to MASM's push instruction, replacing them with Push(IntValue) and PushWord(WordValue) variants. This required changing a bunch of uses of the old variants in the codegen backend, which has been refactored a bit to avoid hardcoding what Instruction variant is used in all those places, instead centralizing it in the emitter.
  • Some minor changes to the SyncHost/AsyncHost traits of the processor

Now that midenc-hir-type is used by miden-assembly-syntax, and its types
are re-exported there - it is necessary for compiler crates to depend on
the same version as miden-assembly-syntax to allow for passing those
types between APIs of the compiler, miden-assembly-syntax, and
miden-mast-package. If we instead retained a direct path dependency on
the source of midenc-hir-type, Cargo would see the dependencies as
effectively different versions, and therefore make it impossible to pass
types between those crates as they would not be considered the same
anymore. Manual conversion would be possible, but undesirable.

Since we plan to split out midenc-hir-type eventually anyway (or at the
very least, do what this commit does and treat it as an entirely
separate crate from the rest of the compiler), this change makes that
transition easier, at the expense of being a bit confusing when making
changes to midenc-hir-type that need to be propagated to crates.io first
in order to meaningfully test the full compiler pipeline with those
changes.
@bitwalker bitwalker requested a review from greenhat September 17, 2025 21:38
@bitwalker bitwalker self-assigned this Sep 17, 2025
@bitwalker bitwalker added the build Build or CI-related tasks and improvements label Sep 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Build or CI-related tasks and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant