gm2
[Top][All Lists]
Advanced

[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




reply via email to

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