ScaffCC Versions Save

Compilation, analysis and optimization framework for the Scaffold quantum programming language.

5.0

4 years ago

NOTE: module keyword is now scaffold_module.

Features

  • OpenQASM Support: Arraywise and Bitwise Measurement now supported, Conditional Instruction
  • Multidimensional quantum and classical Registers
  • NISQ Benchmarks added with IBMQ Resource Count

Logistics

  • Backend update from LLVM 3.1 to LLVM 10
  • Build system now uses CMake and Ninja rather than Make
  • New Build Script

Bug Fixes

  • Many segmentation faults in passes fixed
  • Reverse Pass now correctly compiles

v4.0

5 years ago

Release version -v4.0

  • Added Rx and Ry gates
  • Standardized order of CNOT&Toffoli's arguments to control(s) followed by target
  • Changed default compilation settings so that rotation and Toffoli decomposition are off by default
  • Fixed logical bugs in Ising Model benchmark

v3.1

6 years ago

Release version -v3.1

  • Added ability to output OpenQASM (via -b flag for scaffold.sh).
  • Released Braidflash v2.0, with improved simulation of magic state distillation overheads, including different distillation protocols and different factory layouts.
  • Fixed bug in braidflash generating machine-dependent results due to uninitialized variable.
  • Fixed "file not found" bug in some scripts.

v3.0

6 years ago

Release version -v3.0-alpha

  • New software package, braidflash, added - in braidflash/ directory (Unix only)
  • New software package, Rotation Generator, added for future support in dynamic rotation generation - in scripts/gen_rotations/ directory
  • New software package, RKQCVerifier, added in scripts/RKQCVerifier/ directory
  • Fixed bugs in the QASM flattening tool chain
  • Added new compilation flag for QASM circuit optimization (Unix only) - "-o"
  • Fixed minor bugs in the SHA-1 algorithm
  • Changes made to gen-lpfs.sh to enable support for braidflash
  • Changes made to installation regression tests to catch flattening bugs

2.2

7 years ago

This release includes two major infrastructure changes: precision control for rotation decompositions and full implementation of the afree() instruction through all of the compilation stages.

Previously the rotation decomposition pass did not allow for rotation precision to be specified, which has now been incorporated into the Rotations.cpp pass in the Transforms directory.

Afree() was implemented previously as a pass-through instruction, and now compilation will preserve the instruction and apply it to all bits contained in a pre-allocated quantum register. Afree now takes two parameters, the first is the base index of a quantum register, and the second is the size of the register to be freed. The instruction flows through to flat QASM as needed.

v2.1

7 years ago

Introduced afree() patch. Scaffold programs written with instances of the afree() instruction previously encountered compilation errors when the circuits were executed to output flat QASM code. The patch corrects this case, where now the instruction is removed prior to final circuit generation.

v2.0

7 years ago

Scaffold Release v2.0

New features include: OS X build available on the ScaffCC_OSX branch, abit data types representing ancilla qubits, afree() function freeing ancilla qubits, reverse() function reversing the computation of another function RKQC implementation inlined into new LLVM ModulePass support for generation of QX Quantum Computer Simulator input files

All of these changes are written up in the changelog.txt, as well as in the documentation README.md

v1.0-beta.2

7 years ago