What's New in CQL 6.2

CQL 6.2 explores certain syntactical and semantic ideas that allow more natural and concise expression of chess themes. New features include:

  • A more powerful and more concise syntax for moves, the ―― . The ―― (ASCII: --) filter is designed to replace the move syntax.
  • A replacement for line, . The (ASCII: path) filter is much more concise and more powerful than the old line filter, which it is intended to replace. also supports several CQLi features: atomic variables and keepallbest parameter.
  • , which allows the filter to restrict its attention to moves by specified pieces. is intended to work closely with the piecepath parameter of to facilitate clear and informative annotation of complex movement patterns in the generated PGN files.
  • Support for chess figurine notation (, ).
  • other unicode special symbols for common operations like and . See palette for a concise list of the new symbols.
  • More concise iteration syntax to iterate through squares or pieces in a set, or through a dictionary.
  • Filters for puremate, modelmate, idealmate, purestalemate, modelstalemate, idealstalemate.
  • More concise and clearer annotation filter replacing most usages of comment
  • New symbols , , , and which replace the older ancestor and descendant filters.
  • More concise and clearer symbols and replacing attacks, attackedby, and xray.
  • More powerful dictionaries. Dictionaries can be local and can have arbritrary types for their keys and values.
  • The similarposition filter, which compares all the positions in another pgn file to the current position.

To get used to the new syntax, we recommending browsing through the links below:
unicodehow Unicode is used in CQL
――The new ―― syntax, for making a move
The new syntax, for sequences of moves
examplesExamples of the new syntax

CQL 6.2 also introduces some new filters:
piecenameget the character representing the type and color of a square
typenameget a character representing the type of a square
trythe current position derives from a try (for endgame studies)
current move filtersdetermine information associated with the move leading to the current position, including from, to, o-o, o-o-o, castle, nullmove
///concise annotation syntax
concise iteration syntax
lastgamenumbernumber of games in input file
local dictionariesdictionaries that are not persistent
dictionary dictionaries now accept any CQL type (strings, numbers, sets, positions) as key or value

Windows GUI

Emil Vlasák has contributed a new version of his Windows GUI for CQL that supports Unicode.

compatibility with CQL 6.1

CQL 6.2 is almost entirely back compatible with CQL 6.1: any CQL 6.1 file should run unchanged in CQL 6.2. (There are some very minor differences - for example in the datatype of chained relational operators on positions - that will virtually never arise in practice).