[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gm2] cvs latest changes,
Gaius Mulley <=