What will you do?
We will write an improved version of SCIF compiler that supports multiple contract compilation, provides user-friendly error messages, refactors and documents the inherited codebase, besides ensuring correctness on both execution and information flow labels.
How will you do it?
- Supports multi-contract compilation, enabling inter-contract calls and interface definitions under a single file.
- Improve the developer experience with more user-friendly error messages for information flow constraint violations, replacing missing/incomplete/misleading diagnostics with clear, actionable error messages. Work to reduce instances where the compiler crashes.
- Raise the quality of the compiler to make it open source, building it for the public release. Create a compiled artifact that can be run without gradle and other dependencies. Refactor and document the existing codebase to improve maintainability and extensibility, by removing dead/commented code, enforcing module boundaries, and codifying explicit specifications on the fly.
How will you empirically measure success?
- We will run test programs containing multiple contracts in one file and ensure its correctness.
- We will show a comparison between old and new error messages and entail the effectiveness and usefulness of new diagnostics when error shows up.
- We will use the number of IntelliJ warnings and number of specifications (currently < 10) to measure the maintainability and extensibility of the codebase.
Team members:
@noschiff @KabirSamsi
What will you do?
We will write an improved version of SCIF compiler that supports multiple contract compilation, provides user-friendly error messages, refactors and documents the inherited codebase, besides ensuring correctness on both execution and information flow labels.
How will you do it?
How will you empirically measure success?
Team members:
@noschiff @KabirSamsi