This repository has been archived by the owner on Mar 20, 2024. It is now read-only.
Stage 1: Running move compiled executable on rbpf
Closed Jul 13, 2023
100% complete
Lower Move bytecode to llvm-ir
- Move bytecode docs [binary-format, spec]
- Encode function arguments, returns to communicate with outside contracts using Borsh
- Add debug info to types.
- Add BTF types to provide runtime type information
- Add definitions to bytecode keywords
- Simple operations can be codegen in llvm itself but high…
Lower Move bytecode to llvm-ir
- Move bytecode docs [binary-format, spec]
- Encode function arguments, returns to communicate with outside contracts using Borsh
- Add debug info to types.
- Add BTF types to provide runtime type information
- Add definitions to bytecode keywords
- Simple operations can be codegen in llvm itself but high level operation can be just calls.
- E.g., Lowering BorrowField (a move bytecode instruction) can be just a function call (with right set of parameter) that does the borrow as well as does runtime checks
- The definitions maybe put in a rust library that is linked to the executable (see stage2)
Testing
- Unit tests
- Based on FileCheck like utility
- Use move-bytecode-verifier/**/*.mvir for unit test
- Test resulting eBPF executable in rbpf
- Github Hooks Integration to run pre-merge tests
This milestone is closed.
No open issues remain. View closed issues or see open milestones in this repository.