Menu

SMC - The State Machine Compiler / News: Recent posts

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

SMC 4.2.2: C# Fix

SMC generated incorrect C# code - failing to output the closing brace for try/finally blocks. This release corrects that error.

Posted by Charles Rapp 2005-09-19

SMC v. 4.2.1: Mea Maxima Culpa

SMC v. 4.2.0 was corrupted due to a release build error. If you downloaded v. 4.2.0, please download the corrected v. 4.2.1.

I apologize for the inconvience the corrupted release may have caused.

Posted by Charles Rapp 2005-09-14

SMC v. 4.2.0: A Gem of a Release

SMC now has a Ruby and a Perl (not to mention an entire C). With the addition of C, Perl and Ruby, SMC now generates code for nine (count 'em 9!) programming languages. Other release features include:

+ Added method valueOf(int stateId) to Java, C# and VB.Net to
allow developers to hand-serialize and deserialize state
machines.

Bug Fixes:

+ (C#) Removed extraneous "bool loopbackFlag = false" line
from Default state transitions.... read more

Posted by Charles Rapp 2005-09-11

SMC v. 4.1.0: Do you have %access?

SMC - The State Machine Compiler v. 4.1.0

New Features:

+ Added a "%access" keyword which sets the generated context
class' accessibility level. This level is used when generating
Java and C# code and ignored for all other target languages.

Bug Fixes:

+ (Java) The previous release set the context class'
accessibility level to package if the %package was specified.
This was a mistake. The %access keyword now solves this
problem.... read more

Posted by Charles Rapp 2005-06-30

SMC v. 4.0.1: Small Fixes, Big Welcome

SMC - The State Machine Compiler v. 4.0.1

There are no new features, three minor bug fixes (see below)
and one big welcome to Francois Perrad who officially joins as
an SMC developer. Francois wrote the Python code generator
and is now developing more. So let us give Francois a big
welcome and thank you.

Bug Fixes:

+ (C++) When the .sm is in a subdirectory the forward- or
backslashes in the file name are kept in the "#ifndef" in the
generated header file. This is syntactically wrong. SMC now
replaces the slashes with underscores.... read more

Posted by Charles Rapp 2005-06-19

SMC v. 4.0.0: The Full Monty

SMC - The State Machine Compiler v. 4.0.0

New Features:

+ Added Python code generation. This capability and examples
provided by M. Francois Perrad.

+ Moved to Visitor pattern. By rearranging the SMC source code
to the Visitor pattern, it makes it easier to in new code
generators and code analyzers.

+ When SMC generates C++ and exceptions are allowed (when
-noex is *not* specified), then
statemap::FSMContext::popState()
throws a PopOnEmptyStateStackException when a pop
transition is taken but the state stack is empty. Otherwise,
assert() is used.... read more

Posted by Charles Rapp 2005-06-08