package qcaml

  1. Overview
  2. Docs

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Later

  • Additional entangling gates (Toffoli, SWAP)
  • Circuit builder API
  • QASM export functionality

1.0.0 - 2026-02-15

Added

  • N-qubit state registers replacing single-qubit representation
  • Rotation gates (Rx, Ry, Rz) for arbitrary angle rotations
  • CNOT (controlled-NOT) gate for entanglement
  • Partial measurement with state collapse and renormalization on n-qubit registers
  • Tests for CNOT gate (basic flip and Bell state)
  • Tests for measurement (collapse, normalization, multi-qubit)

Changed

  • Complete architecture rewrite from single-qubit (Qubit) to n-qubit registers (Register)
  • All gates now operate on Register.qreg with a target qubit index
  • Measurement module rewritten for n-qubit registers
  • Examples updated to use the new Register API

Removed

  • Qubit module (replaced by Register)
  • S and T phase gates (to be re-added in a future release)

0.1.6 - 2026-01-26

Added

  • raylib dependency

Changed

  • Migrating to ocaml-raylib for bloch sphere visualisation

Removed

  • OpenGL/glut dependency
  • discover.ml file

0.1.5 - 2025-12-13

Added

  • S (phase) gate
  • T (π/8) gate
  • Unit tests for S and T gates

Changed

  • Improved .gitignore to exclude .vscode directory

0.1.4 - 2025-12-13

Fixed

  • macOS ARM64 support: Fixed OpenGL/GLUT header detection on Apple Silicon Macs by using /opt/homebrew/include instead of /usr/local/include
  • FreeBSD compatibility: Fixed incorrect macOS detection that was breaking FreeBSD builds.

0.1.3 - 2025-11-2

Changed

  • Update dune version lower bound to 3.17

0.1.2 - 2025-11-2

Fixed

  • Fixed a critical build failure on Windows/MinGW platforms caused by platform-specific OpenGL library naming differences.

0.1.1 - 2025-11-1

Fixed

  • Y gate test
  • Type error in apply_gate.ml line 8 - Qubit.print () q returns string but Printf.printf expects a format string

0.1.0 - 2025-10-29

Added

  • Initial public release
  • Single qubit state representation with complex amplitudes
  • Qubit state constructors: zero(), one(), plus(), minus()
  • Pauli gates: X, Y, Z
  • Hadamard gate (H)
  • Quantum measurement with probabilistic collapse
  • Interactive Bloch sphere visualization using OpenGL/GLUT
  • Complex number module with arithmetic operations
  • Comprehensive test suite using Alcotest
  • Example programs demonstrating library usage
  • Apache 2.0 license

Known Limitations

  • Single-qubit operations only (no multi-qubit support)
  • Limited gate set
  • No circuit builder API yet