[Glass] new tODE features available (on dev branch)

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Fri Sep 11 15:29:14 PDT 2015


With PR #198[1], I've added a couple new features and some bugfixes.... 
See the PR[1] for additional details.

The main addition is that I've improved the class version history 
browsing functionality via the `cls history` command (`man cls history` 
for command details). With some of the recent class history issues that 
have popped up on the list I also had an opportunity to work with a 
class history issue that we ran into in-house, so I took that 
opportunity to juice up the class history support ... In a nutshell you 
can browse the class histories for a list of classes (`cls history 
ClassA ClassB`), all of the classes with class histories (`cls 
history`). Using the `--hier` option allows you to view the class 
hierarchy of classes in the class history.

In the issue I was looking at PPCompositeParser[1] (after an upgrade) 
had some interesting subclasses that should have been under 
PPCompositeParser[2]:

Object
  PPParser
   PPDelegateParser
    PPCompositeParser[1]
     BnfGrammar
      BnfEvaluator
       SqlLiteralBnf
       SqlSearchBnf
       SqlStatementBnf
     PPArithmeticParser
     PPLambdaParser
     SqlParser
      Sql92LiteralGeneratedGrammar
       Sql92LiteralGrammar
        Sql92LiteralEvaluator
      Sql92SearchGeneratedGrammar
       Sql92SearchGrammar
        Sql92SearchEvaluator
      Sql92StatementGeneratedGrammar
       Sql92StatementGrammar
        SqlStatementEvaluator
    PPCompositeParser[2]
     GsQueryGrammar[2]

and using `cls history --hier PPCompositeParser` to produce the above 
class def window, it was possible to see the damage that was being 
done... Note that clicking on a class in the above window opens the 
class browser for the selected class (and yes clicking on 
PPCompositeParser[1] would open a class browser on the old version of 
the class).

There were no client side changes this time around so a simple `project 
load Tode` should update your system (Note if you have a local clone or 
a fork of tODE, then you need to pull the changes to your local git repo 
before doing the `project load`) ...

Dale

[1] https://github.com/dalehenrich/tode/pull/198


More information about the Glass mailing list