You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One can use the argument on the left of * in the Nock evaluation function as a stack. The Nock stack would need to contain (from bottom to top): pointer to stdlib, pointer to JuvixAsm compiled functions, the function arguments (JuvixAsm argument area), the value stack and the temporary stack mixed together. Each function can have a separate Nock stack - on function call a new stack is created which initially contains the new arguments and a pointer to compiled functions and stdlib at the end (bottom). In the translation, one needs to keep track of the current value and temporary stack heights and adjust the references to temporaries, arguments and function symbols accordingly. JuvixAsm constructors can be represented by Nock terms with the tag in the head, e.g., cons 1 (cons 2 nil) would be [cons 1 [cons 2 nil]] with unique numbers used for the tags cons and nil.
Test the compilation pipeline to Nock with the Nock evaluator.
Implement translation from JuvixAsm to Nock.
One can use the argument on the left of
*
in the Nock evaluation function as a stack. The Nock stack would need to contain (from bottom to top): pointer to stdlib, pointer to JuvixAsm compiled functions, the function arguments (JuvixAsm argument area), the value stack and the temporary stack mixed together. Each function can have a separate Nock stack - on function call a new stack is created which initially contains the new arguments and a pointer to compiled functions and stdlib at the end (bottom). In the translation, one needs to keep track of the current value and temporary stack heights and adjust the references to temporaries, arguments and function symbols accordingly. JuvixAsm constructors can be represented by Nock terms with the tag in the head, e.g.,cons 1 (cons 2 nil)
would be[cons 1 [cons 2 nil]]
with unique numbers used for the tagscons
andnil
.Test the compilation pipeline to Nock with the Nock evaluator.
Depends on Nock language and evaluator #2557
Depends on Implement the dynamic dispatch loop in JuvixAsm #2555
The text was updated successfully, but these errors were encountered: