Glossary
-
PR: Pull request. It’s a proposal to merge code changes into the main branch, and allows collaborators to review and suggest modifications before it’s accepted.
-
Branch: A branch contains a different history of code changes (commits). You can start a new branch A’ off of any branch A and push new commits to A’ without affecting the contents of A. Merging branch A’ into A adds all new changes from A’ to A.
-
RFC: Request for Comments. It is a design proposal, often written before or alongside major changes.
-
Essence: A high level constraint modelling language. Essence is declarative, i.e. it states the problem rather than how to solve it. It also lets us model things at the class level.
-
A class-level model (i.e. description of a problem) may have some parameters. To get from a class-level model to an instance model, we provide concrete values for all the parameters.
The following describes a problem class:
given N: int find x such that x < NThe following are instances of that class:
letting N be 3 find x such that x < Nletting N be 42 find x such that x < N
-
-
Conjure: Constraint modelling tool that translates Essence problem descriptions into Essence’ models that constraint solvers can execute.
-
Essence’ (Essence prime): Intermediate representation automatically generated by Conjure
-
Savile Row: It transforms high level Essence’ constraint models and outputs solver-specific model that can be executed. Written in Java.
-
Minion: Constraint solver. It takes low level constraint models (like Savile Row output) and searches for solutions. Specifically, it has its own input language that is extensively documented.
For an in-depth glossary of GitHub terms, see the GitHub Docs Glossary. This Git Cheat Sheet also contains resources about git commands.