Loading ...
Sorry, an error occurred while loading the content.

[ANN] SMC - State Machine Compiler v. 1.3.1

Expand Messages
  • Charles Rapp
    SMC - The State Machine Compiler v. 1.3.1 Requires: Java 1.2 SE (Standard Edition) or better. Download: http://sourceforge.net/projects/smc Home Page:
    Message 1 of 1 , Mar 4, 2002
    • 0 Attachment
      SMC - The State Machine Compiler v. 1.3.1

      Requires: Java 1.2 SE (Standard Edition) or better.
      Download: http://sourceforge.net/projects/smc
      Home Page: http://smc.sourceforge.net

      What's New?

      + Added a "-noex" command line option which may be used with
      "-c++" to prevent C++ exception throw code from being generated
      in the target source code. assert() is used instead. This
      option was added due to exceptions not being support by all
      C++ compilers.

      + Fixed three bugs. The first was a SMC crash when compiling a
      method/subroutine argument which also had arguments. For


      would cause SMC to crash while


      would not.

      The second bug broke state machine serialization in Java.
      This was due to FSMContext._debug_stream being a
      java.io.PrintStream and this class is not serializable.
      This was fixed by declaring FSMContext._debug_stream as
      transient (meaning this member data is not included in an
      object's serialization) and having FSMContext.getDebugStream()
      return System.err when _debug_stream is null (which it will be
      when the state machine is deserialized). Also,
      FSMContext.getDebugFlag() returns false if _debug_stream is

      The third bug occurred when a Default transition's end state
      happens to be the current state, making the Default transition
      a loopback. The only way to detect this situation is at runtime
      and SMC only checked for loopbacks at compile time. The result:
      this runtime loopback transition executed the current state's
      exit and entry actions when it should not have. This release
      corrects this situation by adding a runtime check for loopbacks
      to Default transitions which might be a runtime loopback.

      What is SMC?

      SMC takes a state machine description (stored in a .sm file) and
      generates State pattern classes in a target language (C++, Java
      and Tcl are currently supported). SMC is a console-based app
      written in Java which means SMC can run anywhere Java (1.2 or
      better) can run. The download package includes an example
      directory showing how SMC can used with C++, Java and Tcl
      (requires [incr Tcl] package). The examples range from trivial to
      GUI apps.

      How can I learn more?

      At http://smc.sourceforge.net You can access the SMC
      Programmer's Manual there as well. While you're there, check out
      the SMC demo applet at http://smc.sourceforge.net/SmcDemo.htm.

      Where can I get it?

      SMC and the Programmer's Manual can be downloaded from
      http://sourceforge.net/projects/smc. You can also use this
      website to:

      + Ask questions (via the Public Forum's Help discussion)
      + Submit a bug.
      + Join a mailing list.
      + Access SMC documentation.
      + Access SMC's source code in the CVS repository.

      (Note: in order to make full use of SourceForge capabilities,
      you must be a SourceForge member. If you are not a member,
      head over to http://sourceforge.net/account/register.php
      and sign up. SourceForge membership is free - no money, no
      requirements and NO SPAM! Membership has its benefits.)

      If you have any problems, surf over to
      http://sourceforge.net/forum/forum.php?forum_id=27865 and report
      the problem. I will try and answer you via the Help forum as
      quickly as I can.


      Charles Rapp

      [[Send Tcl/Tk announcements to tcl-announce@...
      Send administrivia to tcl-announce-request@...
      Announcements archived at http://groups.yahoo.com/group/tcl_announce/
      The primary Tcl/Tk archive is ftp://ftp.neosoft.com/pub/tcl/ ]]
    Your message has been successfully submitted and would be delivered to recipients shortly.