uhmanoa-transpiler-project / shaka-scheme

The official repository for the UH Manoa Transpiler Project's Scheme interpreter, Shaka Scheme.
32 stars 24 forks source link

Pull Request for HeapVirtualMachine #29

Closed btwooton closed 7 years ago

btwooton commented 7 years ago

Hello Guys,

Here is the first pull request for the HeapVirtualMachine. 8 of the 12 assembly instructions have been implemented as part of the evaluate_assembly_instruction() method in the HeapVirtualMachine class. Unit tests have been written for each of these instructions verifying the VM's ability to correctly evaluate them and modify its own state accordingly. Please look over the implementation as well as the unit tests, and let me know if you see anything that looks strange. I verified that my inputs to the method, i.e. (refer var (halt)) or (test (constant "then" (halt)) (constant "else" (halt))) were well formed by printing the respective NodePtr contents of the expressions to standard output.

Once this pull request is merged, all that will be left to do is implement Closure/Continuation and then integrate it with the last 4 assembly instructions that depend on the presence of Closures and Continuations to function.

CinchBlue commented 7 years ago

I can verify that the current state of the branch is good -- I've built the tests and the code seems to be good. Just need to make the design adjustment, and I think we're good!

btwooton commented 7 years ago

Alright. I made the changes that you requested. evaluate_assembly_instruction() now has a return type of void so we no longer return nullptr. All unit tests have been updated to reflect this change and are working as expected.

CinchBlue commented 7 years ago

Good. Looks all good! Squashing and merging...