Skip to content

Commit

Permalink
Update AnomaCallablePathId to match Anoma calling convention
Browse files Browse the repository at this point in the history
The StandardLibrary constructor of AnomaCallablePathId must be last.
This is because Anoma will replace the tail of the main function with
the resource machine standard library when it calls it.
  • Loading branch information
paulcadman committed Oct 17, 2024
1 parent f1bb0e5 commit 5c297dd
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/Juvix/Compiler/Nockma/Translation/FromTree.hs
Original file line number Diff line number Diff line change
Expand Up @@ -152,19 +152,23 @@ data CompilerFunction = CompilerFunction
_compilerFunction :: Sem '[Reader CompilerCtx, Reader FunctionCtx] (Term Natural)
}

-- | The Code and Args constructors must be first and second respectively. This is
-- because the stack must have the structure of a Nock function,
-- i.e [code args env]
-- | The FunCode and ArgsTuple constructors must be first and second
-- respectively. This is because the stack must have the structure of a Nock
-- function, i.e [code args env]
--
-- The StandardLibrary constructor must be last. Anoma will replace the tail of
-- the main function with the Anoma Resource Machine standard library when it
-- calls it.
data AnomaCallablePathId
= FunCode
| ArgsTuple
| ---
FunctionsLibrary
| StandardLibrary
| ClosureTotalArgsNum
| ClosureArgsNum
| ClosureArgs
| AnomaGetOrder
| StandardLibrary
deriving stock (Enum, Bounded, Eq, Show)

indexStack :: Natural -> Path
Expand Down

0 comments on commit 5c297dd

Please sign in to comment.