Instrumentation into Block IR#355
Open
ChingLongTin wants to merge 266 commits intohkust-taco:hkmc2from
Open
Conversation
…ation during diff testing
…ring Add Block.mls into DiffMaker and prepare the function for lowering Use older Import syntax for now
LPTK
reviewed
Dec 23, 2025
renaming mlsript/staging to mlscript/block-staging avoids DiffTestRunner excluding the test files using the filter intended to exlude ucs/staging
this removes the check in L218 because evaluation of Scope is now deferred:wq
LPTK
reviewed
Jan 9, 2026
we check if a function is staged through defCtx, so we can substitute the symbol there
_instr function only returns the block IR, whereas _gen functions will include the shape propagation
| val debugBlock = debugPrintCode.foldRight(Return(unit, true))(concat) | ||
| def debugCont(rest: Block) = | ||
| Begin(debugBlock, rest) | ||
| val newCtor = impl.transformBlock(companion.ctor)(using new HashMap())(_ => debugCont(End())) |
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Call implementation will be after the algorithms for instrumenting functions are completed.
allocating
optionNmeThis changed some diff tests (
OpenWildcard.mls,Imports.mls,ImportMLs.mls) that imported Option themselves.If I allocate
optionNmeafter checking ifstageCodeis enabled, it fails to link to the file.Is there some way to avoid changing the diff tests, or is this fine?
implementing I-Inst
The current shape for Class
C(n:s)includes the field names (n), but the field names are not available inInstantiation.The field names are used in
sel. If the class is staged using I-Cls, then we can use the stagedClsLikeDefnto retrieve the symbol names, but when do we do when it isn't staged?