# uSCXML ReadMe uSCXML is a SCXML interpreter written in C/C++. It is still in a rather early stage but mostly feature-complete as far as the W3C SCXML draft specifies. It runs on most Linux, Windows and MacOSX, each 32- as well as 64Bits. There is no technical reason for it not to run on iOS and Android as well, but we did not yet setup the respective build-process. * Datamodels * ECMAScript using Google's v8 and JavaScriptCore (JSC is incomplete) * Prolog using SWI prolog * Invokers * scxml: Invoke a nested scxml interpreter * dirmon: Watches a directory for changes to files * scenegraph: Simplified 3D scenegraphs with custom markup * heartbeat: Periodically sends events * httpservlet: Sends events for http requests to special paths * umundo: Subscribe to channels and publish events * DOM * DOM Core Level 2 + XPath extensions available for ecmascript datamodel * Namespace aware to embed custom markup for special invokers * Communication * Features the standard basichttp io-processor * Can actually respond to HTTP requests with data via <response> * Language Bindings * PHP module for apache and cli interpreter ## Test Reports [Results](http://uscxml.tk.informatik.tu-darmstadt.de/cdash/index.php?project=uscxml) for continuous testing of the [W3C IRP tests](http://www.w3.org/Voice/2013/scxml-irp/) for SCXML and some platform tests.
Test# | Status | Comment |
---|---|---|
178 | Failed / Won't fix | A manual test that relies on an unspecified _event.raw attribute |
230 | False report | A manual test that is not actually failing but does not end in a state called pass |
250 | False report | A manual test that is not actually failing but does not end in a state called pass |
301 | Failed | "If the script can not be downloaded within a platform-specific timeout interval, the document is considered non-conformant, and the platform must reject it" -- USCXML will try to evaluate the rest of the document nevertheless. |
307 | False report | A manual test that is not actually failing but does not end in a state called pass |
329 | Failed / Won't fix | Tests that _event cannot be assigned, but I like to add attributes to _event to have a scope that only lasts for one event. Will raise the issue on the ML. |
333 | Failed / Won't fix | "sendid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null. |
335 | Failed / Won't fix | "origin [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null. |
337 | Failed / Won't fix | "origintype [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null. |
339 | Failed / Won't fix | "invokeid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null. |
346 | Failed / Won't fix | "test that any attempt to change the value of a system variable causes error.execution to be raised." -- I like to edit _event. |