SMC - The State Machine Compiler / News: Recent posts

SMC v. 6.6.3: Bug fixes.

SMC - The State Machine Compiler

Version 6.6.3

http://smc.sourceforge.net

What's New?

Major changes:

None.

Minor changes:

None.

Bug Fixes:

(C)
Generated macro "EnterStartState" in _sm.h incorrectly
referenced "ENTRY_STATE" in _sm.c, causing the C compilation
to fail. This incorrect and unnecessary reference is now
removed from "EnterStartState".
(SF bug 214)... read more

Posted by Charles Rapp 2017-04-23

SMC v. 6.6.2: Bug fix.

SMC v. 6.6.2

                           SMC
                 The State Machine Compiler
                     (Version: 6.6.2)

                 http://smc.sourceforge.net

What's New?

Major changes:

None.

Minor changes:

None.

Bug Fixes:

(Graphviz)
The Graphviz option "-glevel 1|2" generated an invalid .dot
file when a .sm file contained a state Entry or Exit actions.
This error was due to the previous correction for SF bug 211
and misplaced the generated Entry/Exit action code in the
transition section rather than in the map subgraph.
(SF bug 213)

Posted by Charles Rapp 2017-04-09

SMC v. 6.6.1: Bug fixes.

SMC v. 6.6.1

0. What's New?

Major changes:

None.

Minor changes:

None.

Bug Fixes:

(All)
smc-anttask now recognizes all currently supported SMC target
languages.
(SF bug 207, 208)

(Objective C)
getPreviousState() now returns the correct value after a
transition completes.
(SF bug 209)

(C++ using -crtp)
When using -crtp, the generated code now outputs the correct
getOwner() methods:... read more

Posted by Charles Rapp 2017-03-16

SMC Programmer's Manual now in PDF.

A PDF version of the SMC Programmer's Manual is now available for download under Files > SMC Programmer_s Manual > 6_6_0. It is available for SMC v. 6.6.0 only and not for previous versions.

Posted by Charles Rapp 2016-04-02

SMC 6.6.0: General feature and bug fix release.

SMC - The State Machine Compiler v. 6.6.0

Major changes:

[C++]
Added a new "-crtp" (Curiously Recurring Template Pattern)
option making FSM integration into an application easier and
more efficient. Instead of the user class containing an FSM
data member like "AppClassContext _fsm", the user class
publicly inherits the context like:

    class AppClass : public AppClassContext<AppClass>... [read more](/p/smc/news/2015/08/smc-660-general-feature-and-bug-fix-release/)
Posted by Charles Rapp 2015-08-02 Labels: 6.6.0

SMC 6.5.0: New Java code generator.

SMC - The State Machine Compiler v. 6.5.0

Major changes:

(Java)
Added a new "-java7" target language. This version represents
the FSM as a transition table. The transition table maps the
current state and the transition to a
java.lang.invoke.MethodHandle. The transition is executed by
calling MethodHandle.invokeExact, which is only slightly
slower than a compiled method call.... read more

Posted by Charles Rapp 2015-02-16

SMC 6.4.0: Annual Update

SMC v. 6.4.0

SMC - The State Machine Compiler v. 6.3.0

Major changes:

(None.)

Minor changes:

(None.)

Bug Fixes:

(C++)
When using -d and -headerd together, the generated .cpp file
contains an incorrect #include for the generated .h file.
(SF bug 190)

(Windows)
Java's String.split(File.separator) throws an exception when
passed a Windows file path using "\" because the backslash is
a special regular expression character. Resolved this issue
by passing Pattern.quote(File.separator) to String.split.
(SF bug 191)... read more

Posted by Charles Rapp 2014-09-28

SMC v. 6.3.0: Bug Fix Release

Happy Labor Day!

SMC - The State Machine Compiler v. 6.3.0

Major changes:

(None.)

Minor changes:

(Java)
Cleaned up generated Java code so that there are no more
warnings about the code.
(SF feature 92)

(Java)
Added flag -generic7 which uses <> braces for allocated
generic classes.
(SF feature 92)

Bug Fixes:

(All)
Corrected a fatal error when "-headerd ." is specified.
(SF bug 189)... read more

Posted by Charles Rapp 2013-09-02

SMC v. 6.2.0: Bug Fix Release

                     Happy Bastille Day!
                     Vive La France!

SMC - The State Machine Compiler v. 6.2.0

Major changes:

(All)
SMC is now compiled with Java 1.7 and requires JRE 1.7 or
better to run.

(SMC Language)
The Default state is explicitly not allowed to have Entry and
Exit action blocks. This is because "Default" is not an
actual state but a psuedo-state used to start default
transition definitions.... read more

Posted by Charles Rapp 2013-07-14

SMC v. 6.1.0: JavaScript Added.

SMC v. 6.1.0

SMC - The State Machine Compiler v. 6.1.0

Major changes:

(JavaScript)
-js command line option added which generates JavaScript code
from the compiled .sm file.
(SF feature 3031739)

Minor changes:

(C, C++, Objective-C)
%access keyword to specify the generated class access level.
Now supported by C, C++ and Objective-C.
(SF feature 2797126)

(C, C++, Objective-C)
Added -hsuffix command line option which defines the header
file suffix.
(SF feature 3162390)... read more

Posted by Charles Rapp 2011-11-20

SMC v. 6.0.1: Release files updated.

The following release files were updated:

+ smc_6_0_1.tgz
+ smc_6_0_1.zip
+ SmcSrc_6_0_1.tgz
+SmcSrc_6_0_1.zip

The updates were due to outdated .Net DLLs and missing SmcOptions.java source file.

Posted by Charles Rapp 2009-12-21

SMC v. 6.0.1: Minor Changes

SMC v. 6.0.1

SMC - The State Machine Compiler v. 6.0.1

Major changes:

(None)

Minor changes:

(Java)
%access keyword to specify the generated class access level.
Used with -java only.
(SF feature 2797126)

(All)
Added %fsmclass keyword which allows the generated FSM
classes to have a name other than the default
<app class>Context. This feature allows an application class
to reference multiple finite state machines.
(SF feature 2718941)... read more

Posted by Charles Rapp 2009-12-18

SMV v. 6: Major changes

SMC v. 6.0.0

SMC - The State Machine Compiler v. 6.0.0

Major changes:

(All)
Smc.jar requires Java 1.6.x (Java 6).

(All)
Moved source files into three separate directories: model,
parser and generator. The model directory contains
SmcElement.java and those classes extending SmcElement.
The parser directory contains the classes for parsing a .sm
file. The generator directory contains SmcCodeGenerator.java
and those classes extending SmcCodeGenerator. Only Smc.java
and SmcSyntaxChecker.java remains in the original source
directory.... read more

Posted by Charles Rapp 2009-05-17

SMC v. 5.1.0: La PHP and La Scala

SMC v. 5.1.0

SMC - The State Machine Compiler v. 5.1.0

Major changes:

+ (PHP)
Added support for PHP programming language (-php).

+ (Scala)
Added support for Scala programming language (-scala).

Minor changes:

+ (All)
Jump transition added. Works the same as a simple transition.

Bug Fixes:

+ (C++)
The TransitionUndefinedException was missing the transition
name. The transition name is now placed into the exception.
(SF bug 1890694)... read more

Posted by Charles Rapp 2008-05-20

Move to Java 6 in SMC v. 6

The next release, SMC v. 5.1.0 will be built on Java 5. The release after that, SMC v. 6.0.0 will be build on Java 6. SMC 6 will also support internal and external loopback transitions.

Get ready for a bumpy ride.

Posted by Charles Rapp 2008-05-17

Warning: Upcoming feature will break code.

Please read. Changes to how SMC handles loopback transitions may break your code.

UML supports two loopback transition types: internal event and reflexive. The difference between these two types is that internal events do *not* execute the state exit and entry actions while reflexive transitions do execute these transitions.

SMC treats all loopbacks as internal events. So whether you set the next state to the current state or use "nil", SMC generates code for internal events only. This will change in a future release.... read more

Posted by Charles Rapp 2008-04-23

SMC v. 5.0.2: Package Fixed.

Release 5.0.1 release package is missing several files due to a corrupted release file list. This has since been corrected in release 5.0.2.

Posted by Charles Rapp 2008-01-14

SMC v. 5.0.1: Happy New Year!

SMC
The State Machine Compiler
(Version: 5.0.1)

http://smc.sourceforge.net

0. What's New?
--------------

New Features:

+ (Groovy)
Added support for Groovy programming language (-groovy).
Examples not yet available.

Major changes:

+ (Java)
Added state change notification to FSMContext.
(SF feature request 1570050)

+ (Programmer's Manual)
Added section 12: Event Notification which explains how state
change notification can be used in Java.... read more

Posted by Charles Rapp 2008-01-04

SMC v. 5.0.0: Move to Java 5

SMC - The State Machine Compiler v. 5.0.0

New Features:

+ Moved SMC to Java 5. Java 1.4.x is no longer supported.

Minor changes

(None).

Bug Fixes:

+ (All)
Corrected command line processing bug introduced in v. 4.4.0.
(SF bug 1659593)

+ (Source downnload)
Added SmcLuaGenerator.java to SmcSrc download package.
(SF bug 1687476)

+ (Makefile)
Corrected APP_CLASSPATH macro to work in Windows environment.
(SF bug 1687481)... read more

Posted by Charles Rapp 2007-03-31

SMC v. 4.4.0: Objective-C and Lua

SMC v. 4.4.0

SMC - The State Machine Compiler v. 4.4.0

New Features:

+ Added Objective-C generator and examples.
Contributor: Chris Liscio

+ Add Lua code generator and examples. Use the command line
option -lua to generate Lua source file.
Contributor: Francois Perrard

Minor changes

+ (C#, VB.Net) Added StateChanged event to the generated context
class. Registered event handlers are informed when the FSM
changes state.
(SF feature 1570050)... read more

Posted by Charles Rapp 2007-02-14

SMC v. 4.3.3: Yet more clean up.

SMC v. 4.3.3

SMC - The State Machine Compiler v. 4.3.3

New Features:

No new features in this release.

Minor changes

+ (C#, VB)
The _debugFlag and _debugStream are deprecated and no
longer used. Instead, System.Diagnostics.Trace is now
used. The SMC programmer is responsible for defining
the TRACE directive during compilation so the Trace
will be included in the executable.

The SMC programmer is also responsible for configuring
Trace to send the trace output to the desired destination.... read more

Posted by Charles Rapp 2006-09-23

SMC v. 4.3.2: More clean up.

SMC
The State Machine Compiler
(Version: 4.3.2)

http://smc.sourceforge.net

0. What's New?
--------------

New Features:

None.

Minor changes

+ (C, C++) Added "-headerd <path>" which specifies where generated
header file is to be placed. This allows for the generated
C/C++ source file and header file to be placed into different
locations.

+ (All) SMC no longer reports an error when a % keyword in .sm
file is unused for the specified target language.
(SF feature 1447155)... read more

Posted by Charles Rapp 2006-07-11

Java 5 anyone?

Java 1.5 has been out for some time, Java 1.6 is now in beta and Java 1.7 feature set is being set. So it is time to move SMC from 1.4 to 1.5. The next point release 4.3.2 will be built on 1.4. The release after that, 4.4, will be built on 1.5. It will use generics among other features. So it will not be 1.4 compatible.

If moving to 1.5 is a problem, please let me know. I would prefer that you use one of the forums rather than e-mailing me directly. This means that you must have a SourceForge account but that is not a big issue. SourceForge accounts are free - free in price and in spam.

Posted by Charles Rapp 2006-06-24

SMC v. 4.3.1

SMC - The State Machine Compiler v. 4.3.1

New Features:

No new features in this release.

Minor changes

+ (Java) Added FSM constructor which takes two arguments:
the FSM owner and an initial state. Changed state singletons
from package-level statics to public-level static finals so
application code may access them. For example, the state

MyMap::Connected

is referenced as

AppClassContext.MyMap.Connected.... read more

Posted by Charles Rapp 2006-06-04

SMC 4.3.0: Mirror, Mirror ...

SMC 4.3.0 introduces a new option: -reflect. Generates a getTransitions() method or Transitions property to the State class which returns a mapping from transition name to an integer value: 0 means the transition is undefined, 1 means the state defines it and 2 means the Default state defines it. This feature allows you to determine a state's supported transitions. See section 11 in the Programmer's Manual for examples.... read more

Posted by Charles Rapp 2005-11-08