Menu

SMC - The State Machine Compiler / News: Recent posts

SMC 7.6.0

SMC - The State Machine Compiler
Version 7.6.0

http://smc.sourceforge.net

What's New?
Major changes: None.

Minor changes: None.

Bug Fixes:

(C, C++)
Wrong header path generated.
Given the command line option "-headerd ../include/foo/bar"
the generated header path is "../include/include/include/yyy.h"
but should be "../include/foo/bar/yyy.h"
(SF bug 238)

Posted by Charles Rapp 2023-06-24

SMC 7.5.0: Minor bug fixes.

SMC - The State Machine Compiler
Version 7.5.0

http://smc.sourceforge.net

What's New?
Major changes: None.

Minor changes: None.

Bug Fixes:

(All)
Smc.jar placed in "smc - State Machine Compiler" bin directory.
(SF bug 234)

(C)
When generating Graphviz DOT file, periods (.) appearing in
digraph identifier are replaced with underscores (_) since
periods are not acceptable characters in an identifier.
(SF bug 235)

Posted by Charles Rapp 2023-02-20

SMC 7.4.0: Bug fixes continue.

SMC - The State Machine Compiler
Version 7.4.0

http://smc.sourceforge.net

What's New?
Major changes: None.

Minor changes: None.

Bug Fixes:

(All)
Corrected version displayed for "-version" to "7.4.0".
(SF bug 231)

(C)
Added missing fsm parameter to EXIT_STATE macro.
(SF bug 232)

(C++)
When "-noex" option used with -c++, generated "_sm.cpp" file
contained static class declarations contained "NULL" state
names. While this was by explicit design, these null state names
made FSM trace statements unusable because state names appeared
as "NAME NOT SET". SMC C++ now generates state names in all
circumstances.
(SF bug 233)

Posted by Charles Rapp 2022-11-13

SMC 7.2.0: More bug fixes.

SMC - The State Machine Compiler
Version 7.2.0

http://smc.sourceforge.net

What's New?
Major changes: None.

Minor changes: None.

Bug Fixes:

(C)
C code generator creates an unused default transition
function. This is corrected by having that default transition
function referenced.
(SF bug 224)

(C)
C code generator places ENTRY_STATE and EXIT_STATE macros in the
.c file which may result in a link failure. This is corrected by
moving the macros to the generated header file.
(SF bug 225)

Posted by Charles Rapp 2021-01-01

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