feat(workspace): Client programs in workspace + entrypoint proc macro
Overview
Moves the client programs into the workspace, by using custom build profiles in the virtual workspace for the client binaries.
This change will allow us to work on the primary client program within the workspace, without having to have loose crates.
kona-common-proc
A new crate, kona-common-proc, has been added as an extension of kona-common to make clean main functions in client programs.
The #[client_entry(<heap_size>)] attribute will expand to include a _start symbol if the binary is being compiled to a supported FPVM target. If not, it will include a main symbol, as normal to run on the native hardware.
Example
#[client_entry(0xFFFFFFF)]
fn main() {
io::print("Hello, world!\n");
}
This stack of pull requests is managed by Graphite. Learn more about stacking.
Join @clabby and the rest of your teammates on
Graphite