Goldie: Change Log
Parsing System (v0.9)
Goldie Home (v0.9) -> Change Log

Change Log

Dates below are in YYYY-MM-DD format.

v0.9 - Tools

2012-04-17
Tested on: DMD 2.055 - DMD 2.059, but only partially DMD 2.057 as described below
  • Added support for DMD 2.059.
  • Removed support for DMD 2.054 and below.
  • GoldieLib: Renamed Language.loadCGT to Language.load.
  • GRMC: Grammar Compiler: Major bugs fixed:
    • Fixed: Shift-Reduce conflicts aren't actually resolved at all contrary to the warning message. They are now reported and resolved by assuming "Shift" as intended.
    • Fixed: Failure to resolve Shift-Reduce conflicts can result in false Reduce-Reduce conflict errors.
    • Fixed: In certain cases, extra terminals incorrectly added as lookaheads. Ultimately, the parser would occasionally accept a terminal when it should have given an "Unexpected xxxx" error, which probably would have then led to an InternalException. (Root cause: Generating lookaheads mistook recursive rules for "can derive empty".)
    • Fixed: In certain cases, LALR actions point to wrong state, creating extra conflict errors and possibly incorrect parsing.
    • Fixed: In certain cases, LALR states are accidentally merged.
  • New tool: AlterCGT.
  • Command line options for all tools are now processed with getopt and use standard Unix conventions (even on Windows). This means what used to be -foo:bar or /foo:bar must now be written as --foo=bar or --foo bar. (But /? is still supported as an alternative to --help.)
  • DumpCGT: Dumps directly to a text file, not stdout.
  • DumpCGT: Added --out and --no-filename command line options.
  • GenDocs: Fixed: Code highlighted as "added" with + is followed by an excess blank line.
  • Parse: Fixed: Crashes when saving to XML instead of JSON.
  • Parse: Changed the command line options.
  • StaticLang: Output directory cannot be the same as Goldie's package source, to prevent overwriting Goldie's source. (But note: This detection can be fooled with symbolic links or separate installations of Goldie.)
  • StaticLang/Parse: Always output Unix-style \n newlines. (This is 2012 - everything relevant handles \n just fine, even on Windows. High time to standardize on it.)

v0.8 - Support DMD 2.058

2012-02-18
Tested on: DMD 2.052 - DMD 2.058, but only partially DMD 2.057 as described below (but see this note regarding RDMD from the archived Goldie documentation)
  • Added support for DMD 2.058.
  • Calculator samples now require at least DMD 2.054.
  • StaticLang: Static-style languages generate a proper compile-time error when used with a different version of Goldie than the one they were created with.
  • Now uses SemiTwist D Tools tag 'goldie-v0.8'.

v0.7 - API, 64-bit, Git

2012-01-29
Tested on: DMD 2.052 - DMD 2.056, and partially DMD 2.057 as described below (but see this note regarding RDMD from the archived Goldie documentation)

v0.6 - Newer DMDs and Static Fixed

2011-10-04
Tested on: DMD 2.052 - DMD 2.055 (but see this note regarding RDMD from the archived Goldie documentation)
  • Added support for DMD 2.054 and 2.055. The next version of Goldie will likely require at least 2.055.
  • Fixed: Major bug in static-style: Some tokens erroneously refer to calc grammar no matter what grammar they're from.
  • Now uses SemiTwist D Tools r234

v0.5 - Speed

2011-05-17
Tested on: DMD 2.052 - DMD 2.053
  • Improved lexing/parsing speed by about 5x-6x.
  • Small additional speedup lexing languages with large character sets (such as Unicode).
  • GRMC: Grammar Compiler: Supports {All Valid} character set.
  • GRMC: Grammar Compiler: Complex grammars are compiled to CGT up to about 4x-8x faster.
  • GRMC: Grammar Compiler: Verbose (-v) flag shows each step and amount of time taken.
  • ParseAnything: No more unhandled exception when parsing a source with an error.
  • Fixed to work with DMD 2.053 (still works with 2.052, too).
  • Now uses SemiTwist D Tools r221

v0.4 - D2 and GRMC

2011-03-27
Tested on: DMD 2.052
  • Switched from D1/Tango to D2/Phobos.
  • New tool: GRMC: Grammar Compiler. Because of this, Goldie no longer requires GOLD Parser Builder.
  • Grammars can be compiled not only from GRMC: Grammar Compiler, but also through the D API, GoldieLib.
  • No longer requires xfBuild or Rebuild.
  • Executable filenames are now prefixed with 'goldie-' to minimize chance of collisions on the PATH.
  • Many misc changes/improvements to tools, API and documentation.
  • Now uses SemiTwist D Tools r213

v0.3 - Static-Style and Documentation

2010-07-25
  • Added static-style languages.
  • Major improvements to API for parsing errors.
  • Misc changes/improvements to API.
  • New tools: StaticLang, JsonViewer and GenDocs.
  • Split Calculator sample app into a dynamic-style version and a static-style version.
  • Greatly improved handling of Unicode.
  • Created complete documentation.
  • Now uses SemiTwist D Tools r132

v0.02 - Minor Bugfix

2009-09-09

v0.01 - Initial Release

2009-08-26
  • Initial Release
  • Uses SemiTwist D Tools r82