Releases: byteshiftlabs/gates
Releases · byteshiftlabs/gates
v0.2.1 - VHDL correctness and release hardening
Summary:
This patch release makes the generated VHDL more reliable and brings the release documentation and validation steps in line with the current supported feature set.
Changes:
- Fixed numeric literal generation in VHDL output.
Before this change, plain numbers could be emitted in a form that did not correspond to valid wrapped VHDL values. This fix makes generated assignments and expressions use the expected numeric form. - Fixed VHDL type wrapping for arithmetic and bitwise expressions.
Some generated expressions produced intermediate values in a type that did not match the signals they were assigned to. This update makes those generated results type-correct. - Fixed nested local signal handling and per-design-unit library preambles.
Variables declared inside nested control-flow blocks now lead to the right generated signal structure, and each generated design unit now includes the library/use clauses it needs. - Added structural validation tests for generated VHDL.
The project now checks key properties of generated output directly in its own test suite, so common generation mistakes are caught automatically without relying on an external simulator. - Updated public documentation to match what this release actually supports.
The docs now describe the supported scope more accurately and avoid overstating behavior or validation coverage.
Verification:
- CI passed for the release preparation pull request and the merged main branch
- The local test suite passed
- The Sphinx documentation build passed
v0.2.0 - Project Renamed
Release v0.2.0 - Project Renamed from Compi to Gates
Major Changes
- Project renamed from compi to gates throughout entire codebase
- All build targets and variables renamed (compi → gates, COMPI_ → GATES_)
- Updated executable name:
compi→gates - Updated test suite:
compi_tests→gates_tests
Breaking Changes
- Binary renamed: Use
./gatesinstead of./compi - CMake configuration variables now use
GATES_prefix instead ofCOMPI_ - C macro definitions renamed:
GATES_VHDL_BIT_WIDTH,GATES_MAX_PARAMETERS, etc.
Documentation Updates
- Comprehensive updates to README.md, ROADMAP.md, and all Sphinx documentation
- Platform explicitly specified: Ubuntu 24.04 x86_64 only
- Corrected false claims about
-O3optimization flags (now uses compiler defaults) - Updated all VHDL output header comments:
-- VHDL generated by gates
Technical Details
- ✅ All 62 tests passing (8 test suites)
- C11 standard (tested on GCC 13.3.0)
- C++17 for GoogleTest framework
- CMake 3.14+ build system
Installation
git clone https://github.com/byteshiftlabs/gates.git
cd gates && mkdir build && cd build
cmake .. && make
./gates input.c output.vhdlFull Changelog: 2d60079...v0.2.0