Skip to content

Releases: byteshiftlabs/gates

v0.2.1 - VHDL correctness and release hardening

25 Mar 09:23

Choose a tag to compare

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

12 Mar 12:51

Choose a tag to compare

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: compigates
  • Updated test suite: compi_testsgates_tests

Breaking Changes

  • Binary renamed: Use ./gates instead of ./compi
  • CMake configuration variables now use GATES_ prefix instead of COMPI_
  • 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 -O3 optimization 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.vhdl

Full Changelog: 2d60079...v0.2.0