2019-09-24  tino

	* [r13676] python/CMakeLists.txt: No, SWIG >= 3.0 is required due
	  to namespaces
	* [r13675] python/CMakeLists.txt: SWIG 3.0 -> 2.0

2019-09-23  tino

	* [r13674] cg3.pc.in: Missed ${prefix}/

2019-09-17  tino

	* [r13661] src/TextualParser.cpp: Forward in-template status to
	  linked tests

2019-09-16  tino

	* [r13659] CMakeLists.txt, src/CMakeLists.txt: Use GNUInstallDirs
	  and relative paths

2019-09-14  tino

	* [r13658] python/CMakeLists.txt: LIST_DIR -> BINARY_DIR
	* [r13657] CMakeLists.txt, python/CMakeLists.txt: Add
	  PYTHON_INSTALL_PARAMS to help with packaging

2019-09-05  tino

	* [r13606] src/AST.hpp, src/ApertiumApplicator.cpp, src/Cohort.cpp,
	  src/CohortIterator.cpp, src/ContextualTest.cpp,
	  src/FSTApplicator.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/MatxinApplicator.cpp, src/MweSplitApplicator.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Reading.cpp, src/Rule.cpp, src/Set.cpp, src/SingleWindow.cpp,
	  src/Tag.cpp, src/TextualParser.cpp, src/TextualParser.hpp,
	  src/Window.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/inlines.hpp, src/interval_vector.hpp, src/libcg3.cpp,
	  src/process.hpp, src/uextras.cpp: Don't warn about wrong ** in
	  templates (workaround); Lots of 0 -> nullptr

2019-09-02  tino

	* [r13587] src/BinaryGrammar_read.cpp,
	  src/BinaryGrammar_read_10043.cpp, src/Grammar.cpp,
	  src/GrammarWriter.cpp, src/TextualParser.cpp, src/cg-relabel.cpp,
	  src/cg_comp.cpp, src/cg_proc.cpp, src/inlines.hpp,
	  src/libcg3.cpp, src/main.cpp: Turn magic constants into functions
	* [r13586] manual/sets.xml, src/Set.cpp, src/parser_helpers.hpp,
	  test/T_Unification/expected.txt, test/T_Unification/grammar.cg3,
	  test/T_Unification/grammar.cg3b.10043: Implement multi-use
	  unification for && sets (issue #44)
	* [r13585] src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runRules.cpp, src/inlines.hpp: Handle
	  multiple active &&sets at a time.

2019-08-30  tino

	* [r13577] CMakeLists.txt, python/CMakeLists.txt: Allow configuring
	  Python module without building or installing it

2019-08-29  tino

	* [r13560] CMakeLists.txt: Default policy to newest so that we can
	  catch deprecations; Be nicer when built as subproject; Set CPack
	  version

2019-08-26  tino

	* [r13555] src/GrammarApplicator_runRules.cpp: Move/Switch endless
	  loop no longer fatal
	* [r13554] .gitignore, .travis.yml, CMakeLists.txt, cmake.sh,
	  python, python/CMakeLists.txt, python/constraint_grammar.i.in,
	  python/setup.py.in: SWIG Python 3 bindings, by Lokendra Singh
	  <lokendras1998@gmail.com> (closes #37)
	  
	  git-svn-author: lokendras1998@gmail.com

2019-08-21  tino

	* [r13551] src/GrammarApplicator_matchSet.cpp: Don't let barriers
	  test the static reading (issue #42)

2019-08-19  tino

	* [r13550] src/GrammarApplicator_runRules.cpp: Whoops, only do that
	  for the * reading
	* [r13549] src/GrammarApplicator_runRules.cpp: If there aren't any
	  sub-readings, return the primary reading
	* [r13548] src/GrammarApplicator.hpp: Not supposed to be
	  [[noreturn]]

2019-08-17  tino

	* [r13547] src/GrammarApplicator_runRules.cpp,
	  test/T_Append/expected.txt, test/T_Append/grammar.cg3,
	  test/T_Append/input.txt: Copy Except will now except from
	  sub-readings as well as main reading

2019-08-13  tino

	* [r13542] src/GrammarApplicator_reflow.cpp, src/Strings.cpp,
	  src/Strings.hpp: Convert %[UuLl] markers to control codes to
	  avoid having combined % accidentally match %L

2019-08-09  tino

	* [r13538] src/TextualParser.cpp, src/TextualParser.hpp: More
	  [[noreturn]]; Warn for ** without LINK or C

2019-07-09  tino

	* [r13526] manual/grammar.xml, src/Strings.cpp, src/Strings.hpp,
	  src/TextualParser.cpp, src/TextualParser.hpp,
	  test/T_AnyMinusSome/args.txt, test/T_CG2Compat/args.txt,
	  test/T_Delimit/args.txt, test/T_Dependency/args.txt,
	  test/T_Dependency_Loops/args.txt, test/T_External/sets.inc,
	  test/T_Include/grammar.cg3, test/T_Include/rules.cg3,
	  test/T_Include/rules.inc, test/T_Include/sets.cg3,
	  test/T_Include/sets.inc, test/T_JumpExecute/args.txt,
	  test/T_MapAdd_Different/args.txt, test/T_MappingPrefix/args.txt,
	  test/T_MergeCohorts/args.txt, test/T_NumericalTags/args.txt,
	  test/T_OriginPassing/args.txt, test/T_Parentheses/args.txt,
	  test/T_Protect/args.txt, test/T_Relations/args.txt,
	  test/T_RemCohort/args.txt, test/T_SectionRanges/args.txt,
	  test/T_Sections/args.txt, test/T_Select/args.txt,
	  test/T_SetOp_FailFast/args.txt, test/T_SoftDelimiters/args.txt,
	  test/T_SpaceInForms/args.txt, test/T_SplitCohort/args.txt,
	  test/T_SubReadings_CG/args.txt, test/T_Substitute/args.txt,
	  test/T_Trace/args.txt, test/T_Unification/args.txt: Implement
	  Include Static (closes #35)
	* [r13525] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runRules.cpp, src/TextualParser.hpp,
	  src/inlines.hpp: Static analysis findings: Add [[noreturn]], fix
	  loop, init members

2019-07-08  tino

	* [r13524] src/TextualParser.cpp: Link None Link is fine if jumping
	  around (fixes #36)

2019-06-24  tino

	* [r13523] src/GrammarApplicator_runContextualTest.cpp,
	  test/T_Dependency/expected.txt, test/T_Dependency/grammar.cg3,
	  test/T_Dependency/input.txt, test/runall.pl: Add POS_DEP_DEEP to
	  No-Barrier pre-condition

2019-05-17  unhammer

	* [r13517] test/Apertium/T_Delimit/expected.txt,
	  test/Apertium/T_Delimit/grammar.cg3,
	  test/Apertium/T_Delimit/input.txt,
	  test/Apertium/T_EndlessSelect/expected.txt,
	  test/Apertium/T_RemoveSingleTag/expected.txt,
	  test/Apertium/T_RemoveSingleTag/input.txt,
	  test/Apertium/T_Sections/expected.txt,
	  test/Apertium/T_Sections/grammar.cg3,
	  test/Apertium/T_SetOp_FailFast/expected.txt,
	  test/Apertium/T_Unification/expected.txt: Fix #32 – Apertium
	  tests were failing
	  
	  I'm not sure these follow the original intentions, but some of
	  them were unchanged since 2008 …

2019-04-29  unhammer

	* [r13496] .gitignore, src/ApertiumApplicator.cpp,
	  src/ApertiumApplicator.hpp: cg-proc -w: Only uppercase if whole
	  form upper, uppercase all baseforms
	  
	  The wordform «Håndball-VM» used to give
	  
	  /HÅNDBALL<n><m><sg><ind><cmp><guio>+vm<n><nt><sg><ind>$
	  
	  now titlecases first subreading instead of uppercasing:
	  
	  /Håndball<n><m><sg><ind><cmp><guio>+vm<n><nt><sg><ind>$
	  
	  The wordform «HÅNDBALL-VM» used to give
	  
	  /HÅNDBALL<n><m><sg><ind><cmp><guio>+vm<n><nt><sg><ind>$
	  
	  now uppercases second subreading too:
	  
	  /HÅNDBALL<n><m><sg><ind><cmp><guio>+VM<n><nt><sg><ind>$
	  
	  We require at least two alphabetic uppercase characters before
	  calling it uppercase (and no lowercase).
	  
	  This doesn't solve https://github.com/TinoDidriksen/cg3/issues/24
	  but at least realises ^I/prpers<prn>$ as ^I/Prpers<prn>$ instead
	  of ^I/PRPERS<prn>$, which is less shouty in the cases where
	  people haven't yet made the CG rules for BOS vs non-BOS.
	  
	  Code now also uses pointer offsets to avoid unnecessary copying.

2019-03-24  tino

	* [r13466] src/TextualParser.cpp: Require mapping sets to be OR'ed
	  only

2019-03-05  unhammer

	* [r13448] emacs/cg.el: Emacs: configurable face for highlighting
	  symbol at point in output

2019-02-22  tino

	* [r13426] ChangeLog, src/version.hpp: Version bump
	* [r13425] include/win32/getopt.cpp, src/AST.hpp,
	  src/ApertiumApplicator.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/Cohort.hpp, src/FSTApplicator.cpp, src/Grammar.cpp,
	  src/Grammar.hpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp, src/GrammarWriter.cpp,
	  src/MatxinApplicator.cpp, src/MweSplitApplicator.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Strings.cpp, src/Strings.hpp, src/Tag.cpp, src/TagTrie.hpp,
	  src/TextualParser.cpp, src/TextualParser.hpp, src/cg_conv.cpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/libcg3.cpp, src/parser_helpers.hpp, src/sorted_vector.hpp,
	  src/stdafx.hpp, src/uextras.cpp, src/uextras.hpp: Lots of C++11
	  cleanup: thread_local statics; UString literals and overloads;
	  wchar_t -> char16_t; check for combining characters
	* [r13424] src/Cohort.cpp, src/Cohort.hpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, test/T_Omniscan/expected.txt,
	  test/T_Omniscan/grammar.cg3, test/T_Omniscan/grammar.cg3b.10043:
	  Shorthand syntax @x< and @x> to go to that absolute position in
	  the prev/next window (closes #21)
	* [r13423] src/Cohort.cpp, src/Cohort.hpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_runGrammar.cpp,
	  src/cg_conv.cpp, src/main.cpp, src/options.hpp,
	  src/options_conv.hpp: Allow piping deleted readings as such,
	  instead of as text (closes #29)

2019-02-15  tino

	* [r13412] src/ApertiumApplicator.cpp, src/GrammarApplicator.cpp,
	  src/Reading.cpp, test/T_MapAdd_Different/expected.txt,
	  test/T_NumericalTags/expected.txt, test/T_Protect/expected.txt,
	  test/T_SetOp_FailFast/expected.txt,
	  test/T_Unification/expected.txt: Sort readings before print,
	  because we can't expect other rules to trigger a sort

2019-02-11  tino

	* [r13411] src/ContextualTest.hpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  test/T_Dependency/expected.txt, test/T_Dependency/grammar.cg3:
	  Glob (cc, pp) should be treated as a scanning search

2019-01-24  unhammer

	* [r13407] emacs/cg.el: Emacs: One input-buffer per pipeline as
	  default
	  
	  For sharing inputs across CG's, pick a buffer explicitly (C-u C-c
	  C-i)
	  
	  Also ensure cg-output-toggle-analyses is callable from the CG,
	  not just from within the output-buffer.

2019-01-23  unhammer

	* [r13400] emacs/cg.el: Add FROM keyword, like TO

2019-01-21  tino

	* [r13392] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runRules.cpp: Give up if Move/Switch has
	  acted 100*num_cohorts times in the same window
	* [r13391] src/GrammarApplicator_runRules.cpp: Check whether
	  Move/Switch did anything (fixes #13)
	* [r13390] src/BinaryGrammar.hpp, src/BinaryGrammar_read.cpp,
	  src/BinaryGrammar_write.cpp, src/CohortIterator.hpp,
	  src/Grammar.hpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runRules.cpp, src/IGrammarParser.hpp,
	  src/Reading.hpp, src/TagTrie.hpp, src/inlines.hpp,
	  src/interval_vector.hpp, src/process.hpp, src/sorted_vector.hpp,
	  src/uextras.hpp: Modernize a bit

2019-01-10  unhammer

	* [r13381] emacs/cg.el: Prefix arg to cg-edit-input will prompt for
	  an existing buffer to use as input
	  
	  also, allow checking newly created CG input buffers after saving
	  them
	  
	  handy for when testing+editing the same text both from Emacs
	  cg-mode and command line

2019-01-07  tino

	* [r13380] scripts/cg3-autobin.pl.in: Less noise

2018-11-21  unhammer

	* [r13326] emacs/cg.el: make cg-output-toggle-analyses and
	  cg-output-set-unhide usable from main CG buffer
	  
	  + keybindings for them from there

2018-11-15  unhammer

	* [r13318] src/Cohort.hpp, src/GrammarApplicator_runGrammar.cpp,
	  src/MweSplitApplicator.cpp: Store input line number on Cohort;
	  use it when writing cg-mwesplit warnings; fixes #22

2018-10-22  unhammer

	* [r13262] emacs/cg.el: emacs: support xref-find-definitions on M-.

2018-10-22  tino

	* [r13261] src/TextualParser.cpp: Nicer error message for invalid
	  SUB:* (fixes #19)
	* [r13260] src/parser_helpers.hpp: Also unset regexp-line flag
	* [r13258] .clang-format, ChangeLog, src/parser_helpers.hpp,
	  src/version.hpp: Remove prefix ! as fail-fast alias

2018-10-15  tino

	* [r13229] CMakeLists.txt, include/posix/popen_plus.c,
	  include/posix/popen_plus.cpp, include/posix/popen_plus.h,
	  include/posix/popen_plus.hpp, include/uoptions.h,
	  include/uoptions.hpp, include/win32/getopt.c,
	  include/win32/getopt.cpp, include/win32/getopt.h,
	  src/CMakeLists.txt, src/Set.hpp, src/Strings.hpp, src/Tag.hpp,
	  src/cg-mwesplit.cpp, src/options.hpp, src/options_conv.hpp,
	  src/process.hpp, src/stdafx.hpp: Simplify CMake project; WIP
	  better project structure

2018-10-04  tino

	* [r13204] ChangeLog, src/version.hpp: Release 1.1.7

2018-10-01  tino

	* [r13197] src/TextualParser.cpp: Check that mapping lists don't
	  have failfast or line regexes

2018-09-19  tino

	* [r13174] CMakeLists.txt, src/CMakeLists.txt: Require at least
	  C++1y (C++14), Boost 1.53.0, ICU 50.0

2018-09-18  tino

	* [r13173] test/T_MergeCohorts, test/T_MergeCohorts/args.txt,
	  test/T_MergeCohorts/expected.txt,
	  test/T_MergeCohorts/grammar.cg3: Forgot the MergeCohorts test

2018-09-07  tino

	* [r13154] src/TextualParser.cpp: Allow Substitute/Map/etc tag
	  lists to be combinations of LIST sets and on-the-fly definitions
	  (fixes #16)
	* [r13149] manual/rules.xml, src/GrammarApplicator_runRules.cpp:
	  MergeCohorts tag * now means copy target's tags to this spot
	  (also affects AddCohort) (WIP issue #17)
	* [r13148] src/GrammarApplicator_runRules.cpp,
	  src/GrammarWriter.cpp, src/TextualParser.cpp: Formatting
	* [r13146] manual/rules.xml: Add example to MergeCohorts

2018-09-06  tino

	* [r13145] ChangeLog, manual/contexts.xml, manual/rules.xml,
	  src/ContextualTest.hpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/Strings.cpp, src/Strings.hpp, src/TextualParser.cpp,
	  src/version.hpp: Implement first version of MergeCohorts (WIP
	  issue #17)

2018-08-24  tino

	* [r13139] src/BinaryGrammar_read.cpp, src/BinaryGrammar_write.cpp,
	  src/Grammar.hpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_reflow.cpp, src/Strings.cpp,
	  src/Strings.hpp, src/TextualParser.cpp, src/cg_conv.cpp,
	  src/options_conv.hpp: Add ordered in-grammar mode; When ordered,
	  consider all tags when determining duplicate readings

2018-08-08  tino

	* [r13101] src/ApertiumApplicator.cpp, src/FSTApplicator.cpp,
	  src/FormatConverter.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/MatxinApplicator.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp:
	  Centralize when windows are discarded (fixes #15)

2018-07-10  tino

	* [r13043] src/GrammarApplicator_runGrammar.cpp: Fix off-by-one.
	  Quite amazing nobody ran into this before.

2018-06-25  tino

	* [r13033] ChangeLog, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp: Allow regex
	  captures from dependency target contexts, without any captures in
	  normal target contexts

2018-06-14  tino

	* [r13018] src/GrammarApplicator_runRules.cpp: That was apparently
	  not C++11 compatible
	* [r13017] manual/tags.xml, src/GrammarApplicator_runRules.cpp: Fix
	  Move/Switch ordering again, but better

2018-06-11  tino

	* [r13014] src/GrammarApplicator_runGrammar.cpp: Fix ignore input
	* [r13012] src/FSTApplicator.cpp: Converting flush after every
	  cohort - this should be done globally

2018-06-01  tino

	* [r12992] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp: Fix rule-to-cohort mapping after
	  move/switch/remcohort

2018-05-29  tino

	* [r12974] CMakeLists.txt, scripts/cg-untrace: Add cg-untrace
	  helper

2018-05-16  tino

	* [r12932] src/cg_conv.cpp: Fix 32bit truncation warning
	* [r12929] manual/tags.xml: Document VSTR varstring

2018-05-15  tino

	* [r12924] CMakeLists.txt, include/win32/getopt.c,
	  include/win32/getopt.h: Add /permissive- and fix code to comply

2018-05-09  tino

	* [r12917] src/ApertiumApplicator.cpp, src/BinaryGrammar_write.cpp,
	  src/Grammar.cpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_reflow.cpp, src/GrammarWriter.cpp,
	  src/MatxinApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Relabeller.cpp, src/Set.cpp, src/Tag.cpp,
	  src/TextualParser.cpp, src/Window.cpp, src/inlines.hpp: Modernize
	  loops

2018-05-07  tino

	* [r12906] .gitignore: Add .gitignore (closes #10)
	* [r12903] manual/dependencies.xml, manual/grammar.xml,
	  src/AST.hpp, src/ApertiumApplicator.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp,
	  src/ContextualTest.hpp, src/FSTApplicator.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/MatxinApplicator.cpp, src/MweSplitApplicator.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Reading.cpp, src/Relabeller.cpp, src/Strings.cpp,
	  src/Strings.hpp, src/Tag.cpp, src/TagTrie.hpp,
	  src/TextualParser.cpp, src/TextualParser.hpp, src/cg_conv.cpp,
	  src/cg_proc.cpp, src/inlines.hpp, src/libcg3.cpp, src/main.cpp,
	  src/parser_helpers.hpp, src/process.hpp, src/stdafx.hpp,
	  src/uextras.cpp, test/T_Barrier/expected.txt,
	  test/T_Barrier/grammar.cg3, test/T_Barrier/grammar.cg3b.10043,
	  test/T_Barrier/input.txt: Implement modifier N (closes #9); Fix
	  lots of integer truncation warnings

2018-04-20  tino

	* [r12797] CMakeLists.txt: Use C++20 if possible
	* [r12796] AUTHORS, manual/manual.xml, src/AST.hpp,
	  src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_write.cpp,
	  src/Cohort.cpp, src/Cohort.hpp, src/CohortIterator.cpp,
	  src/CohortIterator.hpp, src/ContextualTest.cpp,
	  src/ContextualTest.hpp, src/FSTApplicator.cpp,
	  src/FSTApplicator.hpp, src/FormatConverter.cpp,
	  src/FormatConverter.hpp, src/Grammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/MweSplitApplicator.cpp, src/MweSplitApplicator.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Reading.cpp, src/Reading.hpp, src/Relabeller.cpp,
	  src/Relabeller.hpp, src/Rule.cpp, src/Rule.hpp, src/Set.cpp,
	  src/Set.hpp, src/SingleWindow.cpp, src/SingleWindow.hpp,
	  src/Strings.cpp, src/Strings.hpp, src/Tag.cpp, src/Tag.hpp,
	  src/TagTrie.hpp, src/TextualParser.cpp, src/TextualParser.hpp,
	  src/Window.cpp, src/Window.hpp, src/bloomish.hpp,
	  src/cg-mwesplit.cpp, src/cg-relabel.cpp, src/cg3.h,
	  src/cg_comp.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/inlines.hpp, src/interval_vector.hpp, src/libcg3.cpp,
	  src/main.cpp, src/options.hpp, src/options_conv.hpp,
	  src/parser_helpers.hpp, src/process.hpp, src/scoped_stack.hpp,
	  src/sorted_vector.hpp, src/stdafx.hpp, src/streambuf.hpp,
	  src/test_libcg3.c, src/uextras.cpp, src/uextras.hpp,
	  src/version.hpp: Copyright bump
	* [r12795] manual/rules.xml, src/Grammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator_runRules.cpp, src/Reading.cpp,
	  src/Reading.hpp, src/Strings.cpp, src/Strings.hpp,
	  src/TextualParser.cpp, src/version.hpp, test/T_Protect,
	  test/T_Protect/args.txt, test/T_Protect/expected.txt,
	  test/T_Protect/grammar.cg3, test/T_Protect/input.txt: Implement
	  Protect and Unprotect (closes #8)

2018-04-18  tino

	* [r12789] src/FSTApplicator.cpp, src/version.hpp: FSTs sometimes
	  output the input twice for non-matches, which turned into a
	  weight of 0
	* [r12788] CMakeLists.txt, scripts/cg-sort, scripts/cg-strictify:
	  sort-uniq script for CG streams

2018-03-08  tino

	* [r12661] src/libcg3.cpp: Don't print those

2018-01-22  tino

	* [r12577] manual/streamformats.xml, manual/tags.xml: Documented
	  stream static tags, somewhat

2018-01-17  tino

	* [r12568] src/GrammarApplicator_runRules.cpp: Fix SplitCohort
	  segfault

2018-01-09  tino

	* [r12562] src/CMakeLists.txt: Remove single-build helper/hack
	* [r12561] CMakeLists.txt: Add CMake PIC flag

2018-01-02  tino

	* [r12543] scripts/todo.sh, src/GrammarApplicator_matchSet.cpp,
	  src/parser_helpers.hpp: Change hash match for lines; Don't
	  capture __ in lines

2017-12-11  tino

	* [r12520] CMakeLists.txt, src/flat_unordered_map.hpp: C++17; UTF-8

2017-11-23  unhammer

	* [r12492] emacs/cg.el: make ADDCOHORT-AFTER/BEFORE clickable in CG
	  output

2017-10-06  tino

	* [r12387] src/GrammarApplicator_runGrammar.cpp,
	  test/T_Dependency/expected.txt: Fix off-by-one in window
	  lookahead

2017-09-28  tino

	* [r12376] src/GrammarApplicator_runRules.cpp: Pass new named
	  relations through varstring

2017-09-23  tino

	* [r12372] src/cg_conv.cpp, src/streambuf.hpp: Call setg() as
	  needed (fixes #4)

2017-09-18  tino

	* [r12371] scripts/compile-profile.sh, scripts/profile-apply.sh,
	  scripts/profile-parse.sh, scripts/vapply.sh, scripts/vparse.sh:
	  Profiling scripts
	* [r12370] src/CMakeLists.txt, src/uextras.cpp: Fix reuse of
	  varargs; Fix double-compile of MWE code

2017-09-18  unhammer

	* [r12369] test/T_MweSplit/expected.txt, test/T_MweSplit/input.txt:
	  ;traced lines gives segfault in cg-mwesplit after -r12322
	  
	  happens on
	  
	  CG3::GrammarApplicator::printCohort (this=0x7fffffffd028,
	  cohort=0x555555583450, output=...) at
	  src/GrammarApplicator.cpp:533
	  
	  ie.
	  
	  removed: u_fprintf(output, "%S", cohort->text.c_str());
	  
	  calling
	  
	  u_fprintf_57 (output=..., fmt=0x7ffff7773e15 "%S") at
	  src/uextras.cpp:207

2017-09-13  tino

	* [r12363] src/cg3.h: Aid autocomplete
	* [r12362] src/cg3.h, src/libcg3.cpp: Snip cg3_run_mwesplit_on_text
	* [r12361] CMakeLists.txt, ChangeLog, include/win32/getopt.c,
	  src/ApertiumApplicator.cpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_matchSet.cpp, src/MatxinApplicator.cpp,
	  src/MatxinApplicator.hpp, src/MweSplitApplicator.cpp,
	  src/cg-relabel.cpp, src/cg3.h, src/libcg3.cpp, src/test_libcg3.c,
	  src/uextras.hpp, src/version.hpp: Require C99 or newer; Make use
	  of C99; Snip cg3_mwesplitapplicator_free correctly; Newlines

2017-09-12  unhammer

	* [r12345] src/cg3.h, src/libcg3.cpp: add
	  cg3_mwesplitapplicator_free
	  
	  since using cg3_applicator_free segfaults with 'Key cannot be
	  res_empty or res_del'

2017-09-12  tino

	* [r12342] src/Reading.cpp: Also clear fake ordered vars; 2000th
	  commit
	* [r12340] AUTHORS, NEWS, clang-format.pl, compile-profile.sh,
	  get-boost.sh, profile-apply.sh, profile-parse.sh,
	  scripts/clang-format.pl, scripts/compile-profile.sh,
	  scripts/profile-apply.sh, scripts/profile-parse.sh,
	  scripts/todo.sh, scripts/update-revision.pl, scripts/vapply.sh,
	  scripts/vparse.sh, todo.sh, update-revision.pl, vapply.sh,
	  vparse.sh: Organize
	* [r12339] src/CohortIterator.cpp, src/CohortIterator.hpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/Relabeller.cpp, src/Relabeller.hpp, src/cg_comp.cpp,
	  src/cg_proc.cpp, src/main.cpp: Use unique_ptr

2017-09-11  tino

	* [r12335] INSTALL, cg3.magic, emacs/cg.el,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runRules.cpp: http -> https

2017-09-08  tino

	* [r12331] src/Cohort.cpp, src/Cohort.hpp,
	  src/GrammarApplicator_runRules.cpp, test/T_Append/expected.txt,
	  test/T_Append/input.txt: Also copy sub-readings
	* [r12330] .clang-format, clang-format.pl, src/inlines.hpp:
	  clang-format 6.0

2017-09-07  tino

	* [r12328] src/MweSplitApplicator.cpp: Formatting

2017-09-07  unhammer

	* [r12327] src/cg3.h, src/libcg3.cpp: change cg3_[io]stream to
	  std_[io]stream since they're std::[io]stream
	* [r12326] src/cg3.h, src/libcg3.cpp: new cg3.h functions for
	  loading grammars from buffers and running on streams
	  
	  * cg3_grammar_load_buffer * cg3_run_grammar_on_text *
	  cg3_mwesplitapplicator_create * cg3_run_mwesplit_on_text
	* [r12325] src/MweSplitApplicator.cpp, src/cg-mwesplit.cpp:
	  mwesplit always uses an empty grammar, so initialise and own it
	  in constructor
	  
	  easier to use from api

2017-09-06  tino

	* [r12324] ChangeLog, src/streambuf.hpp, src/uextras.cpp,
	  src/version.hpp: Bump version; Formatting
	* [r12323] src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp, src/CMakeLists.txt,
	  src/FSTApplicator.cpp, src/FSTApplicator.hpp,
	  src/FormatConverter.cpp, src/FormatConverter.hpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarWriter.cpp, src/GrammarWriter.hpp,
	  src/IGrammarParser.hpp, src/MatxinApplicator.cpp,
	  src/MatxinApplicator.hpp, src/MweSplitApplicator.cpp,
	  src/MweSplitApplicator.hpp, src/NicelineApplicator.cpp,
	  src/NicelineApplicator.hpp, src/PlaintextApplicator.cpp,
	  src/PlaintextApplicator.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/cg-mwesplit.cpp, src/cg-relabel.cpp,
	  src/cg_comp.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/istream.hpp, src/libcg3.cpp, src/main.cpp, src/options.hpp,
	  src/options_conv.hpp, src/streambuf.hpp, src/uextras.cpp,
	  src/uextras.hpp, test/T_External/run.pl,
	  test/T_Include/rules.inc: All input now happens via std::istream&
	  instead of UFILE*, and assumes UTF-8; Deprecated -C and
	  --codepage-* options. (WIP Github issue #1)

2017-09-05  tino

	* [r12322] ChangeLog, src/AST.hpp, src/ApertiumApplicator.cpp,
	  src/ApertiumApplicator.hpp, src/BinaryGrammar.cpp,
	  src/BinaryGrammar.hpp, src/CMakeLists.txt, src/FSTApplicator.cpp,
	  src/FSTApplicator.hpp, src/FormatConverter.cpp,
	  src/FormatConverter.hpp, src/Grammar.hpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runGrammar.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/MweSplitApplicator.cpp, src/MweSplitApplicator.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Relabeller.cpp, src/Relabeller.hpp, src/Set.cpp, src/Set.hpp,
	  src/Tag.cpp, src/Tag.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/cg-mwesplit.cpp, src/cg-relabel.cpp,
	  src/cg_comp.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/libcg3.cpp, src/main.cpp, src/streambuf.hpp, src/uextras.cpp,
	  src/uextras.hpp, src/version.hpp: All output now happens to
	  std::ostream& instead of UFILE*. This forces output to UTF-8,
	  which everyone should be using anyway. (WIP Github issue #1)

2017-08-28  tino

	* [r12319] .clang-format, clang-format.pl, src/AST.hpp,
	  src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp, src/Cohort.hpp,
	  src/CohortIterator.cpp, src/CohortIterator.hpp,
	  src/ContextualTest.cpp, src/ContextualTest.hpp,
	  src/FSTApplicator.cpp, src/FSTApplicator.hpp,
	  src/FormatConverter.cpp, src/FormatConverter.hpp,
	  src/Grammar.cpp, src/Grammar.hpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/MweSplitApplicator.cpp, src/MweSplitApplicator.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Reading.cpp, src/Reading.hpp, src/Relabeller.cpp,
	  src/Relabeller.hpp, src/Rule.cpp, src/Rule.hpp, src/Set.cpp,
	  src/Set.hpp, src/SingleWindow.cpp, src/SingleWindow.hpp,
	  src/Tag.cpp, src/Tag.hpp, src/TagTrie.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/Window.cpp, src/Window.hpp,
	  src/cg-mwesplit.cpp, src/cg-relabel.cpp, src/cg3.h,
	  src/cg_comp.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/icu_uoptions.cpp, src/inlines.hpp, src/interval_vector.hpp,
	  src/istream.hpp, src/libcg3.cpp, src/main.cpp,
	  src/parser_helpers.hpp, src/scoped_stack.hpp, src/test_libcg3.c,
	  src/uextras.cpp, src/uextras.hpp: Enforce actual
	  PointerAlignment:Left
	* [r12318] .clang-format, clang-format.pl,
	  src/ApertiumApplicator.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/ContextualTest.hpp,
	  src/Grammar.hpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/MatxinApplicator.cpp,
	  src/MatxinApplicator.hpp, src/Reading.hpp, src/SingleWindow.cpp,
	  src/Strings.cpp, src/Strings.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/inlines.hpp, src/sorted_vector.hpp:
	  Formatting

2017-08-19  tino

	* [r12312] ChangeLog, src/inlines.hpp, src/version.hpp: Release
	  1.1.0

2017-08-18  tino

	* [r12311] src/BinaryGrammar_read.cpp: Enable exceptions
	* [r12310] src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/Grammar.hpp, src/IGrammarParser.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/cg-relabel.cpp, src/cg_comp.cpp,
	  src/cg_proc.cpp, src/inlines.hpp, src/libcg3.cpp, src/main.cpp:
	  Add various parse_grammar() overloads

2017-08-15  tino

	* [r12308] src/ApertiumApplicator.cpp, src/Strings.hpp,
	  src/cg_conv.cpp: Apertium format now considers initial ¬ (U+00AC)
	  as a deleted reading

2017-08-14  tino

	* [r12306] CMakeLists.txt, manual/cmdreference.xml,
	  manual/grammar.xml, manual/parentheses.xml,
	  manual/streamcmds.xml, src/Strings.hpp, src/inlines.hpp,
	  src/stdafx.hpp, test/T_CG2Compat, test/T_DelayAndDelete,
	  test/T_External, test/T_Include, test/T_MappingPrefix,
	  test/T_Movement, test/T_OriginPassing, test/T_Parentheses,
	  test/T_SectionRanges: Revert r12305. Older supported distros have
	  too old Boost
	* [r12305] CMakeLists.txt, src/Strings.hpp, src/inlines.hpp,
	  src/stdafx.hpp: Drop big endian detection in favour of generic
	  Boost

2017-07-25  tino

	* [r12274] manual/tags.xml, src/GrammarApplicator_matchSet.cpp,
	  src/parser_helpers.hpp: Implement and document META for querying
	  stream metadata
	* [r12273] src/GrammarApplicator_runRules.cpp: If tracing, show
	  removed cohort readings and added empty cohort readings

2017-06-27  tino

	* [r12259] src/FSTApplicator.cpp: Handle invalid terminating +

2017-06-21  tino

	* [r12254] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runContextualTest.cpp: Still feels
	  breakable
	* [r12253] ChangeLog, src/GrammarApplicator.cpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp: An OR
	  template followed by another OR template followed by a normal
	  linked test now finally seems to work as it should.
	* [r12250] src/FSTApplicator.cpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/MweSplitApplicator.cpp, src/NicelineApplicator.cpp,
	  src/PlaintextApplicator.cpp, src/Strings.cpp, src/Tag.cpp,
	  src/inlines.hpp, src/parser_helpers.hpp, src/version.hpp:
	  constexpr cleanup

2017-06-14  tino

	* [r12243] src/Tag.cpp: length() -> size()
	* [r12242] src/AST.hpp, src/ApertiumApplicator.cpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp,
	  src/CohortIterator.cpp, src/FSTApplicator.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/MatxinApplicator.cpp, src/MweSplitApplicator.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Reading.cpp, src/Rule.cpp, src/SingleWindow.cpp, src/Tag.cpp,
	  src/TextualParser.cpp, src/Window.cpp, src/cg_proc.cpp,
	  src/libcg3.cpp, src/main.cpp, src/parser_helpers.hpp: Many
	  foreach() -> range-for
	* [r12240] src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp, src/Reading.hpp, src/Tag.hpp,
	  src/TextualParser.cpp, src/inlines.hpp, src/parser_helpers.hpp,
	  test/T_MapAdd_Different/expected.txt,
	  test/T_MapAdd_Different/grammar.cg3: Temporary hack for
	  quick'n'dirty ordered tag check

2017-06-13  tino

	* [r12239] src/Grammar.hpp, src/Relabeller.cpp, src/Relabeller.hpp,
	  src/inlines.hpp: Hasher for UString
	* [r12238] src/BinaryGrammar.hpp, src/Cohort.hpp,
	  src/ContextualTest.hpp, src/Grammar.hpp, src/GrammarWriter.cpp,
	  src/Relabeller.cpp, src/Relabeller.hpp, src/Rule.hpp,
	  src/Set.hpp, src/Tag.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/bloomish.hpp, src/cg-mwesplit.cpp,
	  src/cg-relabel.cpp, src/cg_conv.cpp, src/flat_unordered_map.hpp,
	  src/flat_unordered_set.hpp, src/interval_vector.hpp,
	  src/libcg3.cpp, src/sorted_vector.hpp, src/stdafx.hpp,
	  src/version.hpp: More Boost -> C++11
	* [r12237] src/ApertiumApplicator.cpp, src/BinaryGrammar_write.cpp,
	  src/Cohort.cpp, src/ContextualTest.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/MweSplitApplicator.cpp, src/NicelineApplicator.cpp,
	  src/Relabeller.cpp, src/Relabeller.hpp, src/Set.cpp, src/Set.hpp,
	  src/SingleWindow.cpp, src/Tag.hpp, src/TagTrie.hpp,
	  src/TextualParser.cpp, src/libcg3.cpp, src/stdafx.hpp:
	  BOOST_FOREACH -> range-for
	* [r12236] src/BinaryGrammar_read_10043.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/MweSplitApplicator.cpp, src/Relabeller.cpp,
	  src/TextualParser.cpp, src/stdafx.hpp: BOOST_AUTO -> auto
	* [r12235] ChangeLog, manual/rules.xml,
	  src/GrammarApplicator_runRules.cpp, src/Rule.hpp,
	  src/Strings.cpp, src/Strings.hpp, src/TextualParser.cpp,
	  src/version.hpp, test/T_Append/expected.txt,
	  test/T_Append/grammar.cg3, test/T_MapAdd_Different/expected.txt,
	  test/T_MapAdd_Different/grammar.cg3,
	  test/T_MapAdd_Different/grammar.cg3b.10043,
	  test/T_MapAdd_Different/input.txt: Add BEFORE|AFTER to
	  ADD/MAP/COPY to control where tags are inserted

2017-06-12  tino

	* [r12233] src/Relabeller.cpp: Make rule.name a UString instead of
	  UChar*
	* [r12232] src/GrammarWriter.cpp: Make rule.name a UString instead
	  of UChar*
	* [r12231] src/BinaryGrammar_write.cpp, src/GrammarApplicator.cpp,
	  src/GrammarWriter.cpp, src/Rule.cpp, src/Rule.hpp,
	  src/TextualParser.cpp, src/cg_proc.cpp, src/main.cpp: Make
	  rule.name a UString instead of UChar*

2017-06-08  tino

	* [r12225] src/GrammarApplicator_runRules.cpp: Tighten seen_barrier
	  break to only the contextual target

2017-05-31  tino

	* [r12219] src/GrammarApplicator_runContextualTest.cpp: *c barrier
	  now only skips branches instead of killing the whole search
	* [r12218] src/GrammarApplicator_runContextualTest.cpp,
	  src/TextualParser.cpp: Barrier is now ok for self tests

2017-05-30  tino

	* [r12213] src/cg3.h, src/libcg3.cpp: Add 3 functions from Paul
	  Meurer <paul.meurer@uni.no>

2017-05-23  tino

	* [r12203] scripts/cg3-autobin.pl.in: Forgot some are optional

2017-05-22  tino

	* [r12202] src/AST.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/parser_helpers.hpp,
	  test/T_Dependency_Loops/grammar.cg3: Added LIST-TAGS as shorthand
	  for gobbling up all LIST X = X; sets

2017-05-19  tino

	* [r12200] ChangeLog, newsletters/2017-05-20.txt,
	  scripts/cg3-autobin.pl.in, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp: Release 1.0.0
	* [r12199] manual/cmdreference.xml, manual/grammar.xml,
	  manual/tags.xml, scripts/cg-strictify, scripts/cg3-autobin.pl.in:
	  Document cg-strictify; Use env to find perl; Make Getopt::Long
	  case-sensitive

2017-05-18  tino

	* [r12198] CMakeLists.txt, scripts/cg-strictify, src/Strings.cpp,
	  src/Strings.hpp, src/TextualParser.cpp, src/TextualParser.hpp:
	  Add cg-strictify script to help with STRICT-TAG'ing existing
	  grammars; Add strict-regex and strict-icase options

2017-05-15  tino

	* [r12197] manual/tags.xml, src/TextualParser.cpp: Nicer
	  strict-tags
	* [r12196] src/FSTApplicator.cpp: Handle empty tags

2017-05-13  tino

	* [r12194] ChangeLog, src/version.hpp: Forgot to bump binary rev
	  with floating point support
	* [r12193] src/GrammarApplicator_runRules.cpp: Correct iterator
	  after RemCohort

2017-05-11  tino

	* [r12190] CMakeLists.txt, manual/cmdreference.xml,
	  manual/probabilistic.xml, manual/tags.xml,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp, src/Cohort.hpp,
	  src/FSTApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/Tag.cpp, src/Tag.hpp, src/inlines.hpp, src/options_conv.hpp:
	  Switch numeric tags to double-precision floating point; Change
	  cg-conv to not multiply weights by default; Detect endianness at
	  build time

2017-05-09  tino

	* [r12189] src/PlaintextApplicator.cpp: Add <cg-conv> tags to
	  automatic readings to allow easy removal
	* [r12188] src/PlaintextApplicator.cpp,
	  src/PlaintextApplicator.hpp, src/cg_conv.cpp,
	  src/options_conv.hpp: Option --add-tags to minimally analyze
	  plain text input, defaults to off

2017-05-07  tino

	* [r12187] README.md, manual/installation.xml,
	  manual/man/cg-comp.1, manual/man/cg-conv.1, manual/man/cg-proc.1,
	  manual/man/cg3-autobin.pl.1, manual/man/vislcg3.1: https links;
	  Point to nightly builds instead

2017-05-03  tino

	* [r12178] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runContextualTest.cpp: pS incorrectly acted
	  as p*

2017-04-28  tino

	* [r12161] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runContextualTest.cpp: dep_deep_seen now a
	  composite key

2017-04-25  tino

	* [r12146] src/sorted_vector.hpp: Committed wrong file before
	* [r12145] manual/rules.xml, src/GrammarApplicator_runRules.cpp,
	  src/parser_helpers.hpp, test/T_Movement/expected.txt,
	  test/T_Movement/input.txt: Completely revamp how Move WithChild
	  is done to satisfy tree thinking

2017-04-21  tino

	* [r12139] src/GrammarApplicator_runRules.cpp: If Move does
	  nothing, don't mark state as dirty
	* [r12135] src/GrammarApplicator_matchSet.cpp: Don't crash on
	  capturing patterns in dep targets
	* [r12134] src/GrammarApplicator_runRules.cpp,
	  test/T_Movement/expected.txt, test/T_Movement/grammar.cg3,
	  test/T_Movement/grammar.cg3b.10043, test/T_Movement/input.txt:
	  Clear non-match cache on Repeat

2017-04-20  unhammer

	* [r12133] src/ApertiumApplicator.cpp: fix cg-proc -z again
	  
	  runningWithNullFlush isn't set until
	  runGrammarOnTextWrapperNullFlush
	* [r12132] test/Apertium/T_Flush,
	  test/Apertium/T_Flush/expected.txt,
	  test/Apertium/T_Flush/grammar.cg3,
	  test/Apertium/T_Flush/input.txt, test/Apertium/T_Flush/run.pl:
	  test cg-proc -z (NUL-flushing with timeout)

2017-04-19  tino

	* [r12131] manual/rules.xml: Document AddCohort WithChild
	* [r12130] src/GrammarApplicator_runRules.cpp,
	  src/TextualParser.cpp, test/T_RemCohort/expected.txt,
	  test/T_RemCohort/grammar.cg3,
	  test/T_RemCohort/grammar.cg3b.10043, test/T_RemCohort/input.txt:
	  Allow WithChild for AddCohort

2017-04-17  tino

	* [r12128] src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp:
	  Count lines correctly; Add cohort count to aid finding the error
	  location

2017-04-06  tino

	* [r12125] src/GrammarApplicator_runRules.cpp: Only prevent edges'
	  children from being moved if there's a conflict
	* [r12120] src/GrammarApplicator_runRules.cpp: Prevent edges'
	  children from being moved
	* [r12119] src/GrammarApplicator_runRules.cpp: Prevent edges from
	  being moved at all; Bail out if invalid moves are detected.

2017-04-05  tino

	* [r12114] src/GrammarApplicator_runRules.cpp: min() cast
	* [r12113] src/GrammarApplicator_runRules.cpp: Warn about
	  move/switch accidents
	* [r12112] src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runRules.cpp, src/inlines.hpp,
	  src/main.cpp, src/options.hpp: Add optional range to --trace that
	  will stop execution if hit
	* [r12111] src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/bloomish.hpp,
	  src/istream.hpp: Visual Studio 2017 silently added the retarded
	  UTF-8 BOM

2017-04-04  tino

	* [r12108] src/GrammarApplicator_runContextualTest.cpp,
	  test/runall.pl: Fix left/right dependencies after movement; VS15

2017-04-03  tino

	* [r12098] src/GrammarApplicator_runRules.cpp, src/bloomish.hpp,
	  src/istream.hpp: fill() casts
	* [r12095] src/GrammarApplicator_runRules.cpp: Move Withchild
	  should still move the target even if no children match, and ditto
	  edges

2017-03-08  tino

	* [r12046] src/options.hpp: +used

2017-02-20  tino

	* [r12010] src/Grammar.cpp, src/Grammar.hpp, src/TextualParser.cpp:
	  Let actualizing set operators work on more complex sets (but not
	  really complex sets yet)
	* [r12009] manual/compatibility.xml: Correction to - gotcha
	* [r12008] manual/manual.xml, manual/sets.xml, src/AST.hpp,
	  src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_write.cpp,
	  src/Cohort.cpp, src/Cohort.hpp, src/CohortIterator.cpp,
	  src/CohortIterator.hpp, src/ContextualTest.cpp,
	  src/ContextualTest.hpp, src/FSTApplicator.cpp,
	  src/FSTApplicator.hpp, src/FormatConverter.cpp,
	  src/FormatConverter.hpp, src/Grammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/MweSplitApplicator.cpp, src/MweSplitApplicator.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Reading.cpp, src/Reading.hpp, src/Relabeller.cpp,
	  src/Relabeller.hpp, src/Rule.cpp, src/Rule.hpp, src/Set.cpp,
	  src/Set.hpp, src/SingleWindow.cpp, src/SingleWindow.hpp,
	  src/Strings.cpp, src/Strings.hpp, src/Tag.cpp, src/Tag.hpp,
	  src/TagTrie.hpp, src/TextualParser.cpp, src/TextualParser.hpp,
	  src/Window.cpp, src/Window.hpp, src/bloomish.hpp,
	  src/cg-mwesplit.cpp, src/cg-relabel.cpp, src/cg3.h,
	  src/cg_comp.cpp, src/cg_conv.cpp, src/cg_proc.cpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/inlines.hpp, src/interval_vector.hpp, src/istream.hpp,
	  src/libcg3.cpp, src/main.cpp, src/options.hpp,
	  src/options_conv.hpp, src/parser_helpers.hpp, src/process.hpp,
	  src/scoped_stack.hpp, src/sorted_vector.hpp, src/stdafx.hpp,
	  src/test_libcg3.c, src/uextras.cpp, src/uextras.hpp,
	  src/version.hpp, test/T_SetOps/expected.txt,
	  test/T_SetOps/grammar.cg3, test/T_SetOps/grammar.cg3b.10043:
	  Added a true mathematical set difference operator \ and renamed
	  the existing - operator to Except
	* [r12007] TODO, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp: Work around OR'ed
	  tests followed by OR'ed tests

2017-02-16  tino

	* [r12003] manual/tags.xml: () does not need escaping

2017-02-01  unhammer

	* [r11990] emacs/cg.el: :type's for some defcustom's
	* [r11989] emacs/cg.el: lexical-binding: t; 0.3.0
	  
	  and underscore some unused-but-required vars

2016-12-23  tino

	* [r11928] src/TextualParser.cpp: Error on stand-alone o and O

2016-12-19  tino

	* [r11924] cmake.sh: Env tweak
	* [r11923] cmake.sh, scripts/CG3_External.pm, scripts/external.pl,
	  scripts/external_text.pl, test/T_External/run.pl,
	  test/T_MweSplit/run.pl, test/T_RelabelList/run.pl,
	  test/T_RelabelList_Apertium/run.pl, test/T_RelabelSet/run.pl,
	  test/T_SubReadings_Apertium/run.pl, test/clean.sh,
	  test/runall.pl: Use env to find handlers

2016-11-30  tino

	* [r11902] src/GrammarWriter.cpp: Better handling of binary
	  grammars, w.r.t. sub-readings and (soft-)delimiters
	* [r11901] src/GrammarApplicator_runRules.cpp,
	  src/GrammarWriter.cpp, src/main.cpp: Allow writing out binary
	  grammars by giving sets sequential names

2016-11-17  tino

	* [r11883] src/GrammarApplicator_runGrammar.cpp: Less verbose

2016-10-31  tino

	* [r11861] src/GrammarApplicator_runGrammar.cpp: Handle malformed
	  data that has U+0085 instead of ellipsis
	* [r11860] TODO, src/GrammarApplicator_runRules.cpp,
	  test/T_JumpExecute/expected.txt: Fix Jump skipping rules

2016-10-13  tino

	* [r11783] src/GrammarApplicator_runRules.cpp: Trace SUB:*

2016-10-10  tino

	* [r11775] src/GrammarApplicator_runRules.cpp: Fix segfault

2016-08-10  tino

	* [r11705] src/GrammarApplicator_runRules.cpp, src/Rule.hpp: Coding
	  style
	* [r11704] clang-format.pl, scripts/profile-revisions.php: Scripts

2016-08-01  unhammer

	* [r11703] emacs/cg.el: commentary, todo's

2016-07-25  tino

	* [r11687] scripts/cg3-autobin.pl.in: Digest::SHA1 is dead and
	  gone, use Digest::SHA

2016-07-21  tino

	* [r11682] CMakeLists.txt, src/CMakeLists.txt: Use LTO if available

2016-07-14  tino

	* [r11677] ChangeLog, TODO, manual/rules.xml,
	  src/GrammarApplicator_runRules.cpp, src/Rule.hpp,
	  src/Strings.cpp, src/Strings.hpp, src/version.hpp,
	  test/T_SubstituteNil/grammar.cg3,
	  test/T_SubstituteNil/grammar.cg3b.10043,
	  test/T_SubstituteNil/input.txt: Implement and document rule flag
	  REPEAT

2016-07-13  unhammer

	* [r11674] emacs/cg.el: `C-c [a-z]' reserved for user bindings
	* [r11673] emacs/cg.el: derive cg-mode from prog-mode, less
	  boilerplate
	  
	  also enables company-dabbrev-code which gives better completions

2016-06-23  tino

	* [r11656] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp, test/T_MweSplit/run.pl: Correctly fail trying to
	  get negative sub-reading when there are none; Fix MWE test to
	  ignore ^M due to piping artifacts

2016-06-07  tino

	* [r11630] src/GrammarApplicator_runRules.cpp: Endless loop print
	  window

2016-06-06  tino

	* [r11628] src/GrammarApplicator_runRules.cpp,
	  src/MweSplitApplicator.cpp: More endless loop prevention

2016-05-26  tino

	* [r11624] src/MweSplitApplicator.cpp, src/MweSplitApplicator.hpp,
	  src/cg-mwesplit.cpp: Formatting

2016-05-26  unhammer

	* [r11623] src/CMakeLists.txt, src/MweSplitApplicator.cpp,
	  src/MweSplitApplicator.hpp, src/cg-mwesplit.cpp, test/T_MweSplit,
	  test/T_MweSplit/expected.txt, test/T_MweSplit/input.txt,
	  test/T_MweSplit/run.pl: cg-mwesplit: new binary for splitting
	  multiwords
	  
	  like https://github.com/unhammer/cg-mwesplit but rewritten to
	  inherit GrammarApplicator and use the standard vislcg3 parsing.
	  
	  Takes no options, just stdin and stdout:
	  
	  $ cg-mwesplit < infile > outfile
	  
	  More typically, it’ll be in a pipeline after hfst-tokenise and
	  some step that disambiguates multiwords using vislcg3:
	  
	  $ echo words go here | hfst-tokenise --gtd tokeniser.pmhfst |
	  vislcg3 -g mwe-dis.cg3 | cg-mwesplit

2016-05-25  tino

	* [r11621] ChangeLog, src/version.hpp: Let's call this a release

2016-05-24  tino

	* [r11620] src/Cohort.cpp, src/Cohort.hpp, src/CohortIterator.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runRules.cpp, src/MatxinApplicator.cpp,
	  src/NicelineApplicator.cpp: Magic constant -> DEP_NO_PARENT
	* [r11619] .travis.yml: Travis changed?
	* [r11618] src/TextualParser.cpp: Dead code

2016-05-23  tino

	* [r11613] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp:
	  Format code

2016-05-23  ftyers

	* [r11603] src/MatxinApplicator.cpp: update so it gives full trees

2016-05-19  tino

	* [r11583] src/Grammar.cpp, src/TagTrie.hpp: Add KeepOrder if any
	  context uses varstrings or unification

2016-05-18  tino

	* [r11577] ChangeLog, src/GrammarApplicator_runGrammar.cpp,
	  src/version.hpp: Also add magic tag <<< in --dep-delimit mode

2016-05-13  ftyers

	* [r11551] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp: fail
	  fast (well reasonably) if input contains subreadings

2016-05-13  tino

	* [r11550] src/MatxinApplicator.cpp: Substr that doesn't throw

2016-05-13  ftyers

	* [r11549] src/MatxinApplicator.cpp: fix whitespace handling
	* [r11548] src/MatxinApplicator.cpp: go back to for loop as substr
	  doesn't work

2016-05-13  tino

	* [r11547] get-boost.sh: Boost 1.61.0
	* [r11545] src/MatxinApplicator.cpp: Use substr to fix warning

2016-05-13  ftyers

	* [r11544] src/MatxinApplicator.cpp: rename field
	* [r11543] src/MatxinApplicator.cpp: lop off @

2016-05-13  tino

	* [r11541] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp:
	  Printing to stdout is really not allowed

2016-05-12  ftyers

	* [r11539] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp: some
	  formatting fixes
	* [r11538] src/MatxinApplicator.cpp: there is no pos field, and
	  also number sentences

2016-05-12  tino

	* [r11537] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp:
	  Printing to stdout is not allowed
	* [r11536] src/FormatConverter.cpp: Reorder init
	* [r11535] src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/cg_proc.cpp: Attempt to inject history; Reformat

2016-05-12  ftyers

	* [r11534] src/ApertiumApplicator.cpp, src/CMakeLists.txt,
	  src/FormatConverter.cpp, src/FormatConverter.hpp,
	  src/MatxinApplicator.cpp, src/MatxinApplicator.hpp,
	  src/all_cg_conv.cpp, src/all_cg_proc.cpp, src/cg_proc.cpp,
	  src/options_conv.hpp: first version of the MatxinApplicator,
	  still quite a bit of work to do

2016-05-12  tino

	* [r11533] ChangeLog, src/ApertiumApplicator.cpp, src/cg_proc.cpp,
	  src/version.hpp: Fix cg-proc leak; Allow cg-proc to use textual
	  grammars, but with a warning

2016-04-14  unhammer

	* [r11459] emacs/cg.el: cg-calculate-indent was returning wrong val

2016-04-13  tino

	* [r11458] src/CMakeLists.txt: Test failed due to renamed tests

2016-04-11  tino

	* [r11456] src/GrammarApplicator.cpp: Print rule number where
	  possible
	* [r11455] test/Apertium/T_Append, test/Apertium/T_BasicAppend,
	  test/Apertium/T_BasicContextTest, test/Apertium/T_BasicDelimit,
	  test/Apertium/T_BasicIff, test/Apertium/T_BasicRemove,
	  test/Apertium/T_BasicSelect, test/Apertium/T_BasicSubstitute,
	  test/Apertium/T_ContextTest, test/Apertium/T_Delimit,
	  test/Apertium/T_Iff, test/Apertium/T_Remove,
	  test/Apertium/T_Select, test/Apertium/T_Substitute,
	  test/T_Append, test/T_BasicAppend, test/T_BasicContextTest,
	  test/T_BasicDelimit, test/T_BasicDependency, test/T_BasicIff,
	  test/T_BasicSelect, test/T_BasicSubstitute, test/T_ContextTest,
	  test/T_Delimit, test/T_Dependency, test/T_Iff, test/T_Select,
	  test/T_Substitute: Rename tests
	* [r11454] ChangeLog, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runRules.cpp, src/TextualParser.cpp,
	  src/version.hpp, test/T_BasicAppend/expected.txt,
	  test/T_BasicAppend/grammar.cg3,
	  test/T_BasicAppend/grammar.cg3b.10043: Append, AddCohort,
	  SplitCohort now performs their tag checks only at runtime

2016-04-07  unhammer

	* [r11440] emacs/cg.el: fix indentation where wordform before rule
	  keyword

2016-04-06  tino

	* [r11439] src/GrammarApplicator.cpp: At runtime, print numLines

2016-04-04  tino

	* [r11433] .clang-format, clang-format.pl,
	  src/GrammarApplicator_runRules.cpp, src/Set.hpp, src/inlines.hpp:
	  clang-format-3.9

2016-03-30  tino

	* [r11431] README.md: Gotta catch them all

2016-03-29  unhammer

	* [r11430] emacs/cg.el: (require 'cl-lib) ;; assume users have
	  emacs>=24.3
	  
	  + lots of checkdoc-fixes
	* [r11429] emacs/cg.el: compilation warnings now have filename
	  prepended

2016-03-23  tino

	* [r11423] manual/rules.xml: Fix Substitute documentation
	* [r11421] src/GrammarApplicator_runRules.cpp: No, that wasn't a
	  problem
	* [r11420] src/GrammarApplicator_runRules.cpp: Substitute should
	  not remove tags if it can't later replace them

2016-03-22  tino

	* [r11416] ChangeLog, src/GrammarApplicator.cpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_runRules.cpp,
	  src/Strings.cpp, src/version.hpp,
	  test/T_BasicSubstitute/expected.txt: Substitute will now insert
	  in all found locations, if the tags to be replaced were found
	  contiguously in those locations

2016-03-03  tino

	* [r11383] manual/grammar.xml: Section name example

2016-03-01  tino

	* [r11374] src/libcg3.cpp, src/stdafx.hpp: Things no longer
	  relevant in VS 2015

2016-02-23  tino

	* [r11351] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp: Remove Substitute unique test

2016-02-11  tino

	* [r11341] src/GrammarApplicator_runGrammar.cpp: Fix B with -D

2016-02-09  tino

	* [r11340] src/Tag.cpp: Don't even try to parse very long tags as
	  numeric

2016-02-08  tino

	* [r11338] ChangeLog, src/GrammarApplicator_matchSet.cpp,
	  src/version.hpp: Even more undo regex captures on match fail

2016-02-05  tino

	* [r11329] manual/contexts.xml: Greedy and lazy bag
	* [r11327] ChangeLog, manual/contexts.xml,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_write.cpp,
	  src/ContextualTest.hpp, src/Grammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/SingleWindow.cpp, src/SingleWindow.hpp,
	  src/TextualParser.cpp, src/version.hpp,
	  test/T_BasicDependency/expected.txt,
	  test/T_BasicDependency/grammar.cg3,
	  test/T_BasicDependency/grammar.cg3b.10043: Implement Bag of Tags
	* [r11325] src/GrammarApplicator_reflow.cpp: Silly if

2016-01-26  tino

	* [r11265] manual/rules.xml: KeepOrder doc
	* [r11264] ChangeLog, manual/manual.xml, src/AST.hpp,
	  src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_write.cpp,
	  src/Cohort.cpp, src/Cohort.hpp, src/CohortIterator.cpp,
	  src/CohortIterator.hpp, src/ContextualTest.cpp,
	  src/ContextualTest.hpp, src/FSTApplicator.cpp,
	  src/FSTApplicator.hpp, src/FormatConverter.cpp,
	  src/FormatConverter.hpp, src/Grammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Reading.cpp, src/Reading.hpp, src/Relabeller.cpp,
	  src/Relabeller.hpp, src/Rule.cpp, src/Rule.hpp, src/Set.cpp,
	  src/Set.hpp, src/SingleWindow.cpp, src/SingleWindow.hpp,
	  src/Strings.cpp, src/Strings.hpp, src/Tag.cpp, src/Tag.hpp,
	  src/TagTrie.hpp, src/TextualParser.cpp, src/TextualParser.hpp,
	  src/Window.cpp, src/Window.hpp, src/bloomish.hpp,
	  src/cg-relabel.cpp, src/cg3.h, src/cg_comp.cpp, src/cg_conv.cpp,
	  src/cg_proc.cpp, src/flat_unordered_map.hpp,
	  src/flat_unordered_set.hpp, src/inlines.hpp,
	  src/interval_vector.hpp, src/istream.hpp, src/libcg3.cpp,
	  src/main.cpp, src/options.hpp, src/options_conv.hpp,
	  src/parser_helpers.hpp, src/process.hpp, src/scoped_stack.hpp,
	  src/sorted_vector.hpp, src/stdafx.hpp, src/test_libcg3.c,
	  src/uextras.cpp, src/uextras.hpp, src/version.hpp: Copyright and
	  rev bump

2016-01-25  tino

	* [r11254] src/Grammar.cpp, src/Set.hpp: Dirty way to add KEEPORDER
	  where it is likely missing

2016-01-11  tino

	* [r11203] src/FSTApplicator.cpp: Handle trailing + in baseforms

2015-12-17  tino

	* [r11144] ChangeLog, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp, src/version.hpp: In
	  barrier context, don't test links

2015-12-03  tino

	* [r11104] ChangeLog, src/Cohort.cpp, src/version.hpp: Fix segfault

2015-11-27  tino

	* [r11079] CMakeLists.txt: Apply ELISPDIR patch from Alex Dunn
	  <dunn.alex@gmail.com> to aid Homebrew packaging

2015-11-16  tino

	* [r11069] ChangeLog, TODO, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp, test/T_RegExp/expected.txt,
	  test/T_RegExp/grammar.cg3, test/T_RegExp/grammar.cg3b.10043,
	  test/T_RegExp/input.txt: Propagate regexp captures to other
	  readings

2015-11-12  tino

	* [r11056] README, README.md: Add badge
	* [r11055] .travis.yml: But then clang doesn't work, of course
	* [r11054] .travis.yml: Le sigh...
	* [r11053] .travis.yml: Try Travic CI's container setup
	* [r11052] .travis.yml: Try a different CMake PPA
	* [r11051] .travis.yml: Wasn't prepared for Ubuntu 12.04
	* [r11050] .travis.yml: Let's see if Travis CI works...

2015-11-10  tino

	* [r11048] .clang-format, clang-format.pl,
	  src/GrammarApplicator_runRules.cpp, src/cg_proc.cpp: clang-format
	  now gets Egyptian braces right

2015-11-05  tino

	* [r11038] src/cg_proc.cpp: Flush flush

2015-11-03  tino

	* [r11034] src/GrammarApplicator_runContextualTest.cpp: Don't clear
	  readings again if we're at the current target
	* [r11032] ChangeLog, manual/contexts.xml,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp,
	  test/T_BasicSelect/expected.txt, test/T_BasicSelect/grammar.cg3,
	  test/T_BasicSelect/grammar.cg3b.10043: Context modifier 'A' now
	  works almost anywhere

2015-10-31  tino

	* [r11024] src/ApertiumApplicator.cpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/PlaintextApplicator.cpp,
	  src/TextualParser.cpp, src/cg_proc.cpp, src/parser_helpers.hpp,
	  src/process.hpp: Fixed based on Coverity Scan report - nothing
	  that would ever affect real world execution

2015-10-14  tino

	* [r10993] ChangeLog, src/GrammarApplicator_runContextualTest.cpp,
	  src/sorted_vector.hpp, src/version.hpp: Failure to find r,l
	  should set result to false, and thus let NONE/NOT work as
	  expected

2015-09-29  tino

	* [r10984] CMakeLists.txt: Better C++17/14/11 detection that also
	  works
	* [r10983] CMakeLists.txt: Better C++17/14/11 detection

2015-09-23  tino

	* [r10982] manual/rules.xml, todo.sh: Documented SplitCohort

2015-09-22  tino

	* [r10980] src/GrammarApplicator_runRules.cpp: RemCohort segfault
	* [r10979] src/GrammarApplicator_runGrammar.cpp,
	  test/T_SplitCohort/expected.txt, test/T_SplitCohort/grammar.cg3:
	  Special case initial setvars so that delimiters can see them;
	  SplitCohort test
	* [r10978] src/GrammarApplicator_runRules.cpp: SplitCohort handle
	  named relations
	* [r10977] ChangeLog, clang-format.pl,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runRules.cpp, src/scoped_stack.hpp,
	  src/version.hpp: Fix unification across contexts when there is no
	  unification in target or capture
	* [r10976] src/CMakeLists.txt, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runRules.cpp, src/Rule.hpp, src/Set.hpp,
	  src/Tag.hpp, src/cg_proc.cpp, src/scoped_stack.hpp: Code cleanup,
	  a bit less actual static but more reuse

2015-09-21  tino

	* [r10975] .editorconfig, src/Cohort.hpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/SingleWindow.hpp: WIP kill global_number

2015-09-19  tino

	* [r10967] src/GrammarApplicator_runRules.cpp: Erase all knowledge
	  of a removed cohort from the dep tree
	* [r10966] src/GrammarApplicator_runRules.cpp: Looping over a
	  container while modifying it is generally a horrible idea
	* [r10964] ChangeLog, src/GrammarApplicator.cpp,
	  src/GrammarApplicator.hpp, src/version.hpp,
	  test/T_Omniscan/expected.txt: When dep has spanned, output in the
	  form of window number + padded local number, rather than global
	  number
	* [r10963] src/GrammarApplicator_runRules.cpp: Properly detach
	  removed cohorts from the dependency tree

2015-09-18  tino

	* [r10961] src/GrammarApplicator_reflow.cpp: Fix segfault
	* [r10958] ChangeLog, manual/rules.xml, src/Cohort.hpp,
	  src/CohortIterator.cpp, src/CohortIterator.hpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/SingleWindow.hpp,
	  src/version.hpp: Fix cohort ordering to be reliable across
	  movement, insertion, removal, etc

2015-09-16  tino

	* [r10955] ChangeLog, src/Tag.cpp, src/version.hpp,
	  test/T_NumericalTags/expected.txt: Fix bug where e.g. <C:NN> was
	  considered numerical with value 0

2015-09-14  tino

	* [r10952] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/Strings.cpp, src/Strings.hpp, src/TextualParser.cpp,
	  src/version.hpp, test/T_SplitCohort,
	  test/T_SplitCohort/expected.txt, test/T_SplitCohort/grammar.cg3,
	  test/T_SplitCohort/input.txt: Implement SplitCohort

2015-09-08  tino

	* [r10939] src/Cohort.hpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/SingleWindow.hpp: CentOS 6 fix

2015-09-07  tino

	* [r10938] TODO: ToDone
	* [r10937] ChangeLog, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/inlines.hpp,
	  src/version.hpp: Make template ORs fully commutative

2015-08-30  tino

	* [r10925] src/TextualParser.cpp, src/inlines.hpp: Easier to read
	  parsing

2015-08-26  unhammer

	* [r10923] test/T_RelabelList_Apertium/expected.txt: doh, flip the
	  expected bit

2015-08-26  tino

	* [r10922] test/T_RelabelList/run.pl, test/T_RelabelSet/run.pl: Use
	  -I and -O instead of < and >, to avoid Windows pipe conversion

2015-08-26  unhammer

	* [r10921] src/Relabeller.cpp, src/Relabeller.hpp: allow replacing
	  tags with baseforms
	  
	  remove the special case for singletag->singletag relabelling, it
	  wasn't transferring flags (T_BASEFORM) and it's handled by the
	  relabel_as_list case anyway
	* [r10920] test/T_RelabelList_Apertium,
	  test/T_RelabelList_Apertium/expected.txt,
	  test/T_RelabelList_Apertium/grammar.cg3,
	  test/T_RelabelList_Apertium/input.txt,
	  test/T_RelabelList_Apertium/relabel.cg3r,
	  test/T_RelabelList_Apertium/run.pl: test that fails with cg-proc
	  
	  (loops forever looking for a baseform relabelled by a
	  non-T_BASEFORM tag)

2015-08-26  tino

	* [r10919] src/AST.hpp, src/CMakeLists.txt, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/stdafx.hpp: Print contents of textual
	  AST nodes

2015-08-25  tino

	* [r10917] ChangeLog, TODO, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/version.hpp: OR'ed contexts also
	  need deferred loading

2015-08-23  tino

	* [r10910] clang-format.pl, src/BinaryGrammar.cpp, src/Grammar.hpp,
	  src/GrammarApplicator_runContextualTest.cpp, src/inlines.hpp:
	  Statement-final * format

2015-08-23  unhammer

	* [r10909] test/T_Relabel: rm empty dir

2015-08-23  tino

	* [r10908] ChangeLog, clang-format.pl, src/BinaryGrammar.cpp,
	  src/BinaryGrammar.hpp, src/Cohort.hpp, src/GrammarApplicator.hpp,
	  src/Relabeller.cpp, src/Relabeller.hpp, src/Rule.hpp,
	  src/Set.hpp, src/Tag.hpp, src/TagTrie.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/cg-relabel.cpp, src/libcg3.cpp,
	  src/version.hpp: Fix formatting, auto_ptr

2015-08-23  unhammer

	* [r10907] src/Relabeller.cpp, src/Relabeller.hpp, src/Set.cpp,
	  src/Set.hpp: more trie_reindex to Set.hpp; cleanup
	* [r10906] src/Relabeller.cpp: more warnings if weird relabel
	  grammar
	* [r10905] src/Relabeller.hpp: rm unused debug function
	* [r10904] src/Relabeller.cpp, src/Relabeller.hpp,
	  test/T_RelabelSet/expected.txt, test/T_RelabelSet/grammar.cg3,
	  test/T_RelabelSet/input.txt, test/T_RelabelSet/relabel.cg3r:
	  support for relabelling into a SET (with e.g. lista - listb)
	* [r10903] src/Relabeller.cpp, src/Relabeller.hpp: some refactoring
	* [r10902] src/Relabeller.cpp, src/Relabeller.hpp: some cleanup and
	  notes
	* [r10901] src/Relabeller.cpp: s/for(auto)/boost_foreach(boring)/g
	  to please our CentOS users
	* [r10900] src/Relabeller.cpp, src/cg-relabel.cpp: exit(1) unless
	  first arg is a cg3b; less verbose
	* [r10899] test/T_Relabel/expected.txt, test/T_Relabel/grammar.cg3,
	  test/T_Relabel/input.txt, test/T_Relabel/relabel.cg3r,
	  test/T_Relabel/run.pl, test/T_RelabelList,
	  test/T_RelabelList/expected.txt, test/T_RelabelList/grammar.cg3,
	  test/T_RelabelList/input.txt, test/T_RelabelList/relabel.cg3r,
	  test/T_RelabelList/run.pl, test/T_RelabelSet,
	  test/T_RelabelSet/expected.txt, test/T_RelabelSet/grammar.cg3,
	  test/T_RelabelSet/input.txt, test/T_RelabelSet/relabel.cg3r,
	  test/T_RelabelSet/run.pl: update tests for bin cg-relabel
	* [r10898] src/cg-relabel.cpp: Warn on on textual grammars handed
	  to cg-relabel
	* [r10897] src/CMakeLists.txt, src/Relabeller.cpp,
	  src/Relabeller.hpp, src/cg-relabel.cpp, test/T_Relabel,
	  test/T_Relabel/expected.txt, test/T_Relabel/grammar.cg3,
	  test/T_Relabel/input.txt, test/T_Relabel/relabel.cg3r,
	  test/T_Relabel/run.pl: cg-relabel command using binary grammars
	  
	  New relabel format (ab)using vislcg3 format: MAP (N) (n) OR (np)
	  ; means relabel the tag N into n or np, alternatively: LIST N = n
	  np; MAP (N) N;
	  
	  The from-part is only ever one tag, but the to-part can be
	  several. Full-on SET's as to-parts still TODO, but should be
	  doable.
	  
	  No longer uses GrammarWriter at all.
	  
	  Some cleanup TODO.

2015-08-21  tino

	* [r10893] src/TextualParser.cpp: Move AST Contexts and
	  ContextsTarget
	* [r10892] ChangeLog, src/TextualParser.cpp, src/TextualParser.hpp,
	  src/main.cpp, src/options.hpp, src/options_conv.hpp,
	  src/version.hpp: Added cmdline --dump-ast to output grammar parse
	  tree

2015-08-19  tino

	* [r10891] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/TextualParser.cpp, src/version.hpp,
	  test/T_BasicIff/grammar.cg3, test/T_MultipleSections/grammar.cg3,
	  test/T_Trace/grammar.cg3: Warn if a rule doesn't end in ;

2015-08-19  unhammer

	* [r10890] emacs/cg.el: new cg-comment-or-uncomment function, bound
	  to C-; and M-#
	  
	  demo at https://asciinema.org/a/25236
	  
	  also, fix M-a/M-e so they don't fail if there's a set named
	  "setn" etc.

2015-08-12  tino

	* [r10880] .clang-format, clang-format.pl, src/TextualParser.cpp:
	  Update to clang-format 3.8

2015-08-11  tino

	* [r10877] ChangeLog, manual/templates.xml,
	  src/GrammarApplicator.hpp,
	  src/GrammarApplicator_runContextualTest.cpp, src/version.hpp:
	  More template override fixing, and documentation
	* [r10876] ChangeLog, manual/templates.xml,
	  src/GrammarApplicator_runContextualTest.cpp, src/version.hpp,
	  test/T_Templates/expected.txt, test/T_Templates/grammar.cg3: Fix
	  template position override so that pos/neg overrides check the
	  min/max exit edges, rather than just the final exit; Fix linking
	  from pos-overridden templates

2015-08-05  tino

	* [r10863] src/TextualParser.cpp: More g++ 4.2 fixes, the sequel
	* [r10862] src/TextualParser.cpp: More g++ 4.2 fixes
	* [r10861] CMakeLists.txt: Ware when changing negations and
	  forgetting some
	* [r10860] CMakeLists.txt, src/TextualParser.cpp: Appease the
	  ancient OS X gods

2015-08-04  tino

	* [r10855] ChangeLog, clang-format.pl,
	  src/GrammarApplicator_runContextualTest.cpp, src/version.hpp:
	  Allow POS_TMPL_OVERRIDE to progatate into OR'ed tests, because I
	  can't figure out why I disallowed it in r4766

2015-07-24  tino

	* [r10846] clang-format.pl, src/options.hpp, src/options_conv.hpp:
	  Forgot to rescue other enum-like lists from clang-format

2015-07-22  tino

	* [r10845] .clang-format, src/ContextualTest.hpp: Style
	* [r10844] .clang-format, clang-format.pl,
	  src/ApertiumApplicator.cpp, src/ApertiumApplicator.hpp,
	  src/BinaryGrammar.cpp, src/BinaryGrammar.hpp,
	  src/BinaryGrammar_read.cpp, src/BinaryGrammar_read_10043.cpp,
	  src/BinaryGrammar_write.cpp, src/Cohort.cpp, src/Cohort.hpp,
	  src/CohortIterator.cpp, src/CohortIterator.hpp,
	  src/ContextualTest.cpp, src/ContextualTest.hpp,
	  src/FSTApplicator.cpp, src/FSTApplicator.hpp,
	  src/FormatConverter.cpp, src/FormatConverter.hpp,
	  src/Grammar.cpp, src/Grammar.hpp, src/GrammarApplicator.cpp,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/GrammarWriter.hpp, src/IGrammarParser.hpp,
	  src/NicelineApplicator.cpp, src/NicelineApplicator.hpp,
	  src/PlaintextApplicator.cpp, src/PlaintextApplicator.hpp,
	  src/Reading.cpp, src/Reading.hpp, src/Rule.cpp, src/Rule.hpp,
	  src/Set.cpp, src/Set.hpp, src/SingleWindow.cpp,
	  src/SingleWindow.hpp, src/Strings.cpp, src/Strings.hpp,
	  src/Tag.cpp, src/Tag.hpp, src/TagTrie.hpp, src/TextualParser.cpp,
	  src/TextualParser.hpp, src/Window.cpp, src/Window.hpp,
	  src/bloomish.hpp, src/cg_comp.cpp, src/cg_conv.cpp,
	  src/cg_proc.cpp, src/flat_unordered_map.hpp,
	  src/flat_unordered_set.hpp, src/icu_uoptions.cpp,
	  src/inlines.hpp, src/interval_vector.hpp, src/istream.hpp,
	  src/libcg3.cpp, src/main.cpp, src/options.hpp,
	  src/options_conv.hpp, src/parser_helpers.hpp,
	  src/sorted_vector.hpp, src/stdafx.hpp, src/test_libcg3.c,
	  src/uextras.cpp, src/uextras.hpp, src/version.hpp: Major style
	  fixup based on clang-format, with wrapper to correct
	  clang-format's bad ideas
	* [r10843] src/Strings.hpp: +,
	* [r10842] src/ContextualTest.hpp, src/FormatConverter.hpp,
	  src/GrammarApplicator.hpp, src/Tag.hpp,
	  src/flat_unordered_map.hpp, src/flat_unordered_set.hpp,
	  src/options.hpp, src/options_conv.hpp: +,
	* [r10841] src/Grammar.cpp: -;
	* [r10840] src/ApertiumApplicator.cpp, src/PlaintextApplicator.cpp:
	  Minor style fix
	* [r10839] src/ApertiumApplicator.cpp, src/BinaryGrammar_read.cpp,
	  src/BinaryGrammar_read_10043.cpp, src/BinaryGrammar_write.cpp,
	  src/CMakeLists.txt, src/Cohort.cpp, src/CohortIterator.cpp,
	  src/FSTApplicator.cpp, src/Grammar.cpp,
	  src/GrammarApplicator.cpp, src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/GrammarWriter.cpp,
	  src/NicelineApplicator.cpp, src/PlaintextApplicator.cpp,
	  src/Reading.cpp, src/Rule.cpp, src/Set.cpp, src/SingleWindow.cpp,
	  src/Tag.cpp, src/Tag.hpp, src/TextualParser.cpp, src/Window.cpp,
	  src/cg_proc.cpp, src/libcg3.cpp, src/macros.hpp, src/main.cpp,
	  src/parser_helpers.hpp, src/stdafx.hpp, test/runall.pl: Vastly
	  nicer foreach macros

2015-07-21  tino

	* [r10838] src/GrammarWriter.cpp, src/Strings.cpp, src/Strings.hpp,
	  src/TextualParser.cpp, src/stdafx.hpp: Disable some shadowing
	  warnings for VS2015; Keep global shadowing and fix that instance

2015-07-02  tino

	* [r10827] CMakeLists.txt, src/CMakeLists.txt: Disable static
	  library

2015-07-01  tino

	* [r10825] Doxyfile, all2unix.pl, make-naive.sh,
	  scripts/auto-linux-wget.sh: Unused

2015-06-30  tino

	* [r10824] ChangeLog, scripts/profile-revisions.php,
	  src/GrammarApplicator.hpp, src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp: More static
	  and less static
	* [r10822] ChangeLog, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp,
	  test/T_BasicSubstitute/expected.txt,
	  test/T_BasicSubstitute/grammar.cg3,
	  test/T_BasicSubstitute/grammar.cg3b.10043: Eliminate the
	  performance cost of segfault fixes; Test that so it doesn't
	  happen again
	* [r10821] CMakeLists.txt, vapply.sh, vparse.sh: Use C++14 where
	  available
	* [r10819] ChangeLog, scripts/profile-revisions.php,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp, src/version.hpp: Fix
	  segfault; Further reduce reallocations

2015-06-28  tino

	* [r10817] src/GrammarApplicator_runRules.cpp: Fix segfault
	* [r10815] ChangeLog, src/GrammarApplicator_runRules.cpp,
	  src/version.hpp: Fix removing enclosure owner

2015-06-26  tino

	* [r10811] src/ApertiumApplicator.cpp, src/FSTApplicator.cpp,
	  src/GrammarApplicator_runGrammar.cpp,
	  src/GrammarApplicator_runRules.cpp, src/NicelineApplicator.cpp,
	  src/PlaintextApplicator.cpp, src/Tag.hpp, src/TagTrie.hpp,
	  src/Window.cpp, src/Window.hpp: Eliminate std::list
	* [r10810] src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp: Regex store as with unif
	* [r10809] src/GrammarApplicator_runRules.cpp: Fix
	* [r10808] src/GrammarApplicator.cpp, src/GrammarApplicator.hpp,
	  src/GrammarApplicator_matchSet.cpp,
	  src/GrammarApplicator_reflow.cpp,
	  src/GrammarApplicator_runContextualTest.cpp,
	  src/GrammarApplicator_runRules.cpp: Let's see if this works...

2015-06-23  tino

	* [r10802] newsletters/2015-06-23.txt: Newsletter

