A template for projects using xDSL.
-
Fork this repository
-
Pick a name for your project
-
Fill in the blanks:
-
Rename
src/xdsltemplatetosrc/projectname -
Find all instances of "TODO: " in the project and complete them
File Item to replace Content mkdocs.ymlsite_nameDocumentation website title mkdocs.ymlsite_authorDocumentation website authors mkdocs.ymlcopyrightDocumentation website copyright mkdocs.ymlrepo_nameProject name mkdocs.ymlrepo_urlProject repository URL mkdocs.ymlextra.social.linkProject repository/organisation URL pyproject.tomlproject.nameProject name pyproject.tomlproject.descriptionProject description pyproject.tomlproject.authorsProject authors pyproject.tomlproject.urls.HomepageProject homepage URL pyproject.tomlproject.urls.Source CodeProject repository URL pyproject.tomlproject.urls.Issue TrackerProject issue tracker URL docs.ymlonUncomment to automatically deploy documentation site
-
-
Run
make installto set up your environment -
To adopt later template improvements, simply sync with the forked main branch
.
├── docs/
│ ├── index.md # Hand-written documentation splash page
│ └── reference.md # Auto-generated source code documentation
├── src/
│ └── xdsltemplate/ # Project source code:
│ ├── dialects/ # - xDSL dialect implementations
│ ├── frontend/ # - Parsing and lexing implementations
│ ├── interpreters/ # - Interpreter implementations
│ └── transforms/ # - Rewriting transformation implementations
└── tests/ # All tests, both pytest and filecheck
└── filecheck/ # filecheck .mlir files
- Developer tools including auto-formatting, linting, and type-checking as both pre-commit hooks and GitHub Actions.
- Testing through both pytest and LLVM filecheck
- Documentation website, optionally deployed to GitHub pages