Skip to content
This repository has been archived by the owner on Aug 1, 2023. It is now read-only.

Compiler Versioning

Bozo Dragojevic edited this page Jun 9, 2016 · 1 revision

Rules

The quark compiler requires a version declaration of the form quark x.y.z; or quark x.y; or quark *;. In the absence of a quark version declaration, the compiler emits a warning but proceeds as if quark *; were specified. Major version zero is treated the same as non-zero major versions.

Given source code declared quark x.y.z;

  • the compiler must be version x.a where a > y, or
  • the compiler must be version x.y.b where b >= z. Otherwise there is a version mismatch.

There is a compiler command line option --version-warning that causes the compiler to

  • emit a warning that said option is enabled, and to
  • display version-related errors but then proceed as if quark *; were specified.

Pegging quark version

To allow CI/CD use of quark the quark install script allows version pegging. With this it's possible to to ensure that quark code and compiler are compatible.

Clone this wiki locally