The library on windows exhibited linker issues similar to #215. I found that this happens because the code, which is meant for running in the VM (the contents of athena-vm-sdk and athena-vm crates, specifically the athena-vm::heap package which contains the heap allocator for the guest programs) is a dependency of the athena-vmlib crate. This dependency was added to add export the encoding functions for the wallet.
I temporarily (?) resolved this problem by making the athena-vm an optional dependency of the athena-vm-sdk (enabled by default) to allow the athena-vmlib opting out from importing the VM-side code.
Long term, I think we should rethink whether the athena-vm-sdk is the right place for the wallet example structures definitions (like SpendArguments etc.). I believe this is not the right place and it should be defined in the wallet crate but I didn't want to refactor it in this PR.
Enable testing the Go bindings on all supported targets and release the library for windows.
A successful pre-release with windows artifacts: https://github.com/athenavm/athena/releases/tag/nightly-70faee4e6d3c2dbf3b6325732ae767b2c9e744e3
The library on windows exhibited linker issues similar to #215. I found that this happens because the code, which is meant for running in the VM (the contents of
athena-vm-sdk
andathena-vm
crates, specifically theathena-vm::heap
package which contains the heap allocator for the guest programs) is a dependency of theathena-vmlib
crate. This dependency was added to add export the encoding functions for the wallet.I temporarily (?) resolved this problem by making the
athena-vm
an optional dependency of theathena-vm-sdk
(enabled by default) to allow theathena-vmlib
opting out from importing the VM-side code.Long term, I think we should rethink whether the
athena-vm-sdk
is the right place for the wallet example structures definitions (likeSpendArguments
etc.). I believe this is not the right place and it should be defined in the wallet crate but I didn't want to refactor it in this PR.