- [x] naming conflicts detection (dynamically rename our own variables, i.e. processor pointers like `init_process` and `scheduler`) - [x] Compile time static graph construction using `marl`. Marl needs to be extended upon. - [x] Enhance `logic` library to detect changes - [x] Generate code for always blocks. Semantics is different for different usages - [x] Code gen for ports. Should be the same as variables - [x] Module instances - [x] Fork. Support `join`, `join_any`, and `join_none`. - [x] Add distribution. Will ship gcc and ninja with it. - [ ] Add regression tests. Many of which can be imported from `iverilog` - [x] Add incremental builds - [x] Add NBA - [x] Add `always_ff` - [x] two state - [x] unpacked array - [ ] packed array - [ ] packed struct - [ ] unpacked struct - [ ] interface - [ ] class - [x] DPI - [x] `import` - [ ] `context` - [x] primitive types - [ ] array - [x] VPI - [x] `vpi_get_vlog_info` - [ ] `vpi_register_cb` - [x] Source-related error printout - [x] Functions - [x] Tasks - [x] case statements - [ ] system tasks - [x] `$fopen` - [x] `$fwrite` - [x] `$fclose` - [ ] `scanf` - [ ] `readmemb` and `readmemh` - [x] Parameters (done through `slang`'s elaboration) - [x] Windows
init_processandscheduler)marl. Marl needs to be extended upon.logiclibrary to detect changesjoin,join_any, andjoin_none.iverilogalways_ffimportcontextvpi_get_vlog_infovpi_register_cb$fopen$fwrite$fclosescanfreadmembandreadmemhslang's elaboration)