Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  •  Add the functionality to parse function signatures with associated types out of MIR to cbindgen (either by itself or in addition to Rust source code)
  •  Write tests that will cover the functionality of parsing associated types in cbindgen
  •  Open a PR to merge this code into cbindgen, progress with further tasks as we wait for this to be approved

Eval 2:

  •  Use iroha_ffi to generate extern functions out of existing Rust code
  •  Make corrections to the iroha_ffi library in this process if needed or write manual implementations of extern functions

Eval 3:

  •  Use cbindgen to generate C .h header files out of extern functions in the Rust source code
  •  Conduct manual testing
  •  Address the code bugs

Eval 43:

  •  Document the mentorship results
  •  Create a small app demonstrating that you have successfully linked the shared object with the C header files
  •  Present your results


Timeline

Dates

Tasks/Plan

Status

June 1 - June 24

revisit knowledge of Rust
run iroha nodes and connect to it via both `iroha_client_cli` and client app
run cbindgen on a small example: - export a function from Rust - generate C bindings with cbindgen - link this C lib from C and Java

done
June 25 - Aug 23

fork the cbindgen repository
add the functionality to parse function signatures from MIR

done
Aug 24 - Sept 6

make use of ffi_export macro to generate FFI bindings of some methods and functions in iroha_client
MIR approach failed - explore other approaches

done
Sept 7 - Sept 20use cbindgen to generate C header file for exported FFI bindings. This will require cbindgen's features:
1.  macro expansion
2. resolution of associated types via MIR (implemented during the previous stages of the internship)
Sept 21 - Oct 4Oct 5 - Oct 18Oct 19 - Nov 1Nov 2 - Nov 12Oct 18
implement resolution of associated types by parsing source code of all dependent crates.
create a solution to resolve mutually dependent associated types (topologically sort)
done
Oct 19 - Nov24
generate FFI bindings (.h files) for Iroha client using cbindgen
Nov 25 - Dec 1
write tests and open PR to cbindgen and prepare an article reportdone


Mentors

Name

Time zone

Discord ID

Telegram ID

Email ID

Marin VeršićUTC+2mversic@mingler101marin.versic101@gmail.com

...

Name

Time zone

Discord ID

Telegram ID

Email ID

OrangeUTC+8orangeng@orangengngquanhao@gmail.com

Merged PRs

  • PR to cbindgen