gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gm2] cvs latest changes


From: Gaius Mulley
Subject: [Gm2] cvs latest changes
Date: Wed, 05 Aug 2009 01:30:56 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Hi,

here are the latest changes:

  * gm2/bnf/m2-2.bnf:  modified so that the variant tag is
    remembered in the symbol table.
  * gm2/bnf/m2-3.bnf:  variant record grammar rules
    matches m2-2.bnf.
  * gm2/bnf/m2.bnf:  variant record grammar rules
    matches m2-2.bnf.
  * gm2/bnf/m2-h.bnf:  variant record grammar rules
    matches m2-2.bnf.
  * gm2/gm2-compiler/M2ALU.def:  corrected comment.
  * gm2/gm2-compiler/M2CaseList.def:  MissingCaseBounds (New
    function).
  * gm2/gm2-compiler/M2CaseList.mod:  introduce SetRange
    data structure and implement MissingCaseBounds using
    (New functions) NewSet, DisposeRanges, SubBitRange,
    ExcludeCaseRanges, DoEnumValues, ErrorRange, ErrorRanges.
  * gm2/gm2-compiler/M2GenGCC.mod:  reimplemented SizeOp
    to effectively ignore the second and subsequent parameters
    to TSIZE.  Much safer and considerably simpler.
  * gm2/gm2-compiler/M2Quads.def:  AddVariantToList (New
    function).
  * gm2/gm2-compiler/M2Quads.mod:  implement AddVariantToList
    (New function).  Modify BuildNewProcedure and
    BuildDisposeProcedure so they can take two or more
    parameters.
    These parameters are effectively ignored as the union type
    is TSIZEd via sizeof.
  * gm2/gm2/gm2-compiler/M2Range.def:  export IsEqual,
    IsGreaterOrEqual and IsGreater.
  * gm2/gm2-compiler/M2Range.mod:  FoldCase and CodeCase now
    introduce an additional check using MissingCaseBounds.
  * gm2/gm2-compiler/P2SymBuild.mod:  BuildVariantSelector
    record the variant tag into the symbol table.
  * gm2/gm2-compiler/SymbolTable.def:  export GetVariantTag
    and PutVariantTag.
  * gm2/gm2-compiler/SymbolTable.mod:  GetVariantTag
    and PutVariantTag (New procedures).
  * gm2/gm2-compiler/ppg.mod:  removed debugging print.


in summary over the last week or so TSIZE, NEW, DISPOSE now are
implemented as per ISO, also CASE statements and variant record CASEs
are checked.  The compiler is also 30% faster under large
compilations.  I believe that all the ISO language has now been
implemented (not all the libraries - about 5 more to go..).  There may
be a few really minor language features not added - like handling <*
*> and other lexical oddities ('@' instead of '^').  I'm going to
double check over the next few days.. and I could have easily missed
something..

However there remains many bugs though (and one final static array
needs removing), other than that I doubt much new code needs to be
added to the compiler

regards,
Gaius




reply via email to

[Prev in Thread] Current Thread [Next in Thread]