✨ Imports with namespacing, pub/use#216
✨ Imports with namespacing, pub/use#216LesterEvSe wants to merge 13 commits intoBlockstreamResearch:masterfrom
Conversation
794325d to
673e287
Compare
2931db3 to
078257a
Compare
04f3132 to
98cdec8
Compare
|
CI is failing. Also, can you add a description or motivation to this PR? |
a1e8cea to
ead2fd4
Compare
I have updated the main PR description to include the detailed motivation for issue #155 and a technical breakdown of the import semantics introduced here. Regarding the failing CI, @Sdoba16 and I are looking into that now. It will be fixed soon. |
a5f415a to
a2e29d5
Compare
6284181 to
2ee0274
Compare
74cc5a5 to
bae899e
Compare
ce8d6c3 to
338b622
Compare
338b622 to
36252c3
Compare
- Refactor AST to include tests and modules - Add simple tests for module flow
36252c3 to
6c34920
Compare
|
6c34920 needs rebase |
|
Also, I would recommend splitting this up into multiple PRs. In 3016ca2: This has unrelated clippy changes. But otherwise it's unobjectionable since it just adds some keywords that we definitely want to use. In 1310a57: This has a ton of lockfile noise that is unrelated to the new Also, concept NACK adding I would suggest adding the new tempdir testing infrastructure in a separate commit from the actual changes. (These sorts of test infra changes can also go in their own "prepare for imports" PR.) |
Motivation
The main goal of this PR is to enable an analogue of the OpenZeppelin library to exist in the SimplicityHL ecosystem. By introducing official compiler support for imports, we significantly increase code reusability and speed up application development. For projects heavily focused on security, this also allows developers to eventually "flatten" the code and audit all functions without external dependencies.
Checklist
pubandpub useto control local scope versus re-exporting.use m::name;and explicit aliasing (as).