[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gm2] status report
From: |
Gaius Mulley |
Subject: |
[Gm2] status report |
Date: |
07 Jul 2008 22:04:52 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
Hi,
Currently I'm working on implementing exception handling,
which I believe is easier than I first thought :-). The
model being used can be seen here:
http://cvs.savannah.gnu.org/viewvc/testsuite/gm2/iso/run/pass/except2.mod?root=gm2&view=markup
http://cvs.savannah.gnu.org/viewvc/testsuite/gm2/iso/run/pass/except.c?revision=1.1&root=gm2&view=markup&pathrev=MAIN
GM2 understands the EXCEPT block and produces a local procedure (to be
used as the exception handler). However none of the calls to
longjmp/setjmp are in the compiler yet. Nevertheless the concept
appears to work. I think after exception handling only complex
numbers, keyword PACKED and dynamic multidimensional arrays parameters
remain to be implemented before ISO M2 is complete. Finally here are
the latest change log entries:
* gm2/Make-lang.in: add new rules for building shared
libraries with -O2 and -O0. They are now stored in
separate directories and gm2 will link against the
appropriate variety given the command line options.
* gm2/NEWS: updated to reflect 0.63 and the new features.
* gm2/TODO: updated and removed completed tasks and
introduced
new tasks.
* gm2/gm2.texi: updated internal runtime section which
now matches the new exception handling code. Also
introduced a section on how exception handling is
implemented
in GNU Modula-2 (using the setjmp/longjmp mechanism).
* gm2/gm2builtins.c: added setjmp, longjmp to the builtins.
* gm2/gm2spec.c: detect -O2 and modify the link path
accordingly.
* gm2/m2.flex: add RETRY and EXCEPT keywords.
* gm2/m2pp.c: fixed pretty printing of GCC Trees (in Modula-2
syntax) so that nested procedures are displayed correctly.
* gm2/bnf/gm2l.bnf: add RETRY and EXCEPT keywords.
* gm2/bnf/gm2m.bnf: add RETRY and EXCEPT keywords.
* gm2/bnf/m2-2.bnf: add RETRY and EXCEPT keywords.
* gm2/bnf/m2-3.bnf: add RETRY and EXCEPT keywords.
* gm2/bnf/m2-h.bnf: add RETRY and EXCEPT keywords.
* gm2/bnf/m2.bnf: add RETRY and EXCEPT keywords.
* gm2/el/g-mode.el: add indent support for EXCEPT block.
* gm2/gm2-compiler/M2ALU.def: fixed date in comment.
* gm2/gm2-compiler/M2ALU.mod: fixed date in comment.
* gm2/gm2-compiler/M2GCCDeclare.def: fixed date in comment.
* gm2/gm2-compiler/M2GCCDeclare.mod: fixed date in comment.
* gm2/gm2-compiler/M2GenGCC.def: fixed date in comment.
* gm2/gm2-compiler/M2GenGCC.mod: fixed date in comment.
* gm2/gm2-compiler/M2Quads.def: introduced BuildExcept
procedures.
* gm2/gm2-compiler/M2Quads.mod: implement BuildExcept
procedures. Fixed GetNextQuad to do this and not skip
a DummyOp quadruple. Except block builds a local
nested procedure for the exception block. The
retry code is currently broken.
* gm2/gm2-compiler/M2Reserved.def: added RetryTok and
ExceptTok.
* gm2/gm2-compiler/NameKey.def: fixed spacing.
* gm2/gm2-libs/Break.mod: fixed comment.
* gm2/gm2-libs/Builtins.def: define and export longjmp
and setjmp.
* gm2/gm2-libs/M2EXCEPTION.def: fixed comment dates.
* gm2/gm2-libs/M2RTS.def: fixed comment dates.
* gm2/gm2-libs/RTExceptions.def: fixed indentation.
* gm2/tools-src/createUlmSys: now creates a
_M2_SYSTEM_finish section to the C SYSTEM implementation
module.
* gm2/ulm-lib-gm2/sys/termios.c: added a
_M2_termios_finish section.
* gm2/gm2builtins.c: fixed bug in longjump prototype and
included setjmp into the table of builtins. Also fixed
gm2builtins_BuildBuiltinTree to set the last function
to NULL_TREE if the function returns void.
* gm2/gm2-compiler/M2GenGCC.mod: refactored CodeDirectCall.
* gm2/gm2-libs/Builtins.def: added comment about internal
longjmp's restriction.
* gm2/gm2-libs/libc.def: added setjmp/longjmp definitions.
regards,
Gaius
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gm2] status report,
Gaius Mulley <=