{"id":20602150,"url":"https://github.com/modernizing/kernel","last_synced_at":"2026-04-22T13:31:18.348Z","repository":{"id":126981702,"uuid":"456381039","full_name":"modernizing/kernel","owner":"modernizing","description":"the design princinples of new moderinizing toolsets","archived":false,"fork":false,"pushed_at":"2022-02-15T12:14:59.000Z","size":59,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-10T04:56:29.212Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modernizing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-07T06:15:04.000Z","updated_at":"2024-11-20T07:43:25.000Z","dependencies_parsed_at":"2023-06-19T14:03:43.090Z","dependency_job_id":null,"html_url":"https://github.com/modernizing/kernel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/modernizing/kernel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernizing%2Fkernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernizing%2Fkernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernizing%2Fkernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernizing%2Fkernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modernizing","download_url":"https://codeload.github.com/modernizing/kernel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modernizing%2Fkernel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32139078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T13:27:12.868Z","status":"ssl_error","status_checked_at":"2026-04-22T13:26:44.791Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T09:12:56.386Z","updated_at":"2026-04-22T13:31:17.669Z","avatar_url":"https://github.com/modernizing.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kernel\n\nthe design principles of new modernizing toolsets.\n\ncode analysis processes:\n\n![Process](docs/process.svg)\n\ncurrent Modernizing Tools:\n\n| Tools     | language support  | construction   | extraction   | patterns  | results    |\n|-----------|-------------------|----------------|---------|-----------|------------|\n| [Coca](https://github.com/modernizing/coca)  | Java, Go, Python | Antlr | [domain](https://github.com/modernizing/coca/tree/master/pkg/domain) | bad smell  | graphviz   |\n| [Guarding](https://github.com/modernizing/guarding) | by TreeSitter  | TreeSitter | [TreeSitter](https://github.com/modernizing/guarding/tree/master/guarding_ident) | [Arch DSL](https://github.com/modernizing/guarding/tree/master/guarding_parser) | |\n| [Tequila](https://github.com/modernizing/tequila)   | by Doxygen     | Doxygen    | [viz](https://github.com/modernizing/tequila/blob/master/viz/coll_viz.go)  |    | graphviz  |\n| [Lemonj](https://github.com/modernizing/lemonj)     | Antlr     |  CSS/LESS/SCSS  |   |    |\n| [Modeling](https://github.com/modernizing/modeling) | by Ctags  | Ctags  | [Ctags](https://github.com/modernizing/modeling/tree/master/src/ctags) | | UML, graphviz, D3.js |\n| [SQLing](https://github.com/modernizing/sqling)     | MySQL     | TiDB parser |   | |  UML |\n\n## Todo\n\n- [ ] generate core model code (Java, Rust, Golang...) from code protocol\n- [ ] pipeline architecture of system\n   - [ ] code analysis: unique output  (Antlr, Ctags, TreeSitter...)\n   - [ ] code results: code analysis by cases (test bad smells...)\n   - [ ] code visual: visual with dependences (graphviz, plantuml...)\n   - [ ] code visual online: visual with web (D3.js or ArchGuard web...)\n   - [ ] auto refactoring: by cases\n   - [ ] architecture guarding...\n- [ ] CLI design?\n\n\n## Structs design \n\nbased on [MIR](https://github.com/vnmakarov/mir) design\n\n* MIR consists of **modules**\n  * Each module can contain **functions** and some declarations and data\n  * Each function has **signature** (parameters and return types), **local variables**\n    (including function arguments) and **instructions**\n    * Each local variable has **type** which can be only 64-bit integer, float, double, or long double\n    * Each instruction has **opcode** and **operands**\n      * Operand can be a local variable\n        (or a function argument), **immediate**, **memory**, **label**, or **reference**\n        * Immediate operand can be 64-bit integer, float, double, or long double value\n    * Memory operand has a **type**, **displacement**, **base** and **index** integer local variable,\n      and integer constant as a **scale** for the index\n      * Memory type can be 8-, 16-, 32- and 64-bit signed or unsigned integer type,\n        float type, double, or long double type\n        * When integer memory value is used it is expanded with sign or zero promoting\n          to 64-bit integer value first\n    * Label operand has name and used for control flow instructions\n    * Reference operand is used to refer to functions and declarations in the current module,\n      in other MIR modules, or for C external functions or declarations\n  * opcode describes what the instruction does\n  * There are **conversion instructions** for conversion between different\n    32- and 64-bit signed and unsigned values, float, double, and long double values\n  * There are **arithmetic instructions** (addition, subtraction, multiplication, division,\n    modulo) working on 32- and 64-bit signed and unsigned values, float, double, and long double values\n  * There are **logical instructions** (and, or, xor, different shifts) working on\n    32- and 64-bit signed and unsigned values\n  * There are **comparison instructions**  working on 32- and 64-bit\n    signed and unsigned values, float, double, and long double values\n  * There are **branch insns** (unconditional jump, and jump on zero or non-zero value)\n    which take a label as one their operand\n  * There are **combined comparison and branch instructions** taking a label as one operand\n    and two 32- and 64-bit signed and unsigned values, float, double, and long double values\n  * There is **switch** instruction to jump to a label from labels given as operands depending on index given as the first operand\n  * There are **function and procedural call instructions**\n  * There are **return instructions** working on 32- and 64-bit\n    integer values, float, double, and long double values\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodernizing%2Fkernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodernizing%2Fkernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodernizing%2Fkernel/lists"}