- Always run
conda activate allobefore building or running tests - Run
pip install -v -e .to build the full project (includes MLIR/C++ backend) - Read
docs/source/dive/frontend_syntax.rstfor comprehensive Allo frontend syntax reference - Read
docs/source/dive/dataflow.rstfor the dataflow programming model (regions, kernels, streams)
- Run
bash scripts/lint/task_lint.shfor formatting checks - Run
python3 -m pytest --ignore=tests/dataflow tests -vfor tests- Prefer running a single test file instead of the full suite (full suite is slow)
- Use only software simulators (
target="llvm"ortarget="simulator") - If Vitis HLS tests are needed, ask the user to run them manually
- Make small, targeted diffs rather than large refactors, and always be concise
- Prefer general solutions instead of one-off
if/elsepatches - Place Python frontend code in
allo/ - Place MLIR dialects and passes code in
mlir/ - Add tests and documentation for new features in
tests/anddocs/
- Do not modify repository structure without approval
- Do not install system packages without explicit user confirmation