Commits on Jul 4, 2011
  1. Intermediate commit. All processes seem to be talking to one-another,…

    … but there's some trouble buffering JSON streams. Need smarter, line-oriented buffering.
    committed Jul 4, 2011
Commits on Jul 3, 2011
  1. Intermediate commit. Need to fix timing on hooking up event listener.…

    … I think i will use a promise API instead, as simple callbacks are nto scaling well with the complexity.
    committed Jul 3, 2011
Commits on Jul 2, 2011
  1. Fixed use of Array.sort, so that it returns an int rather than a bool.

    Also, broke out defaultTransitionSelector into its own module.
    committed Jul 2, 2011
Commits on Jun 27, 2011
  1. Added small optimization: tests that have been flattened will avoid h…

    …ierarchical lookups. All tests pass.
    committed Jun 27, 2011
  2. Big update.

    Implemented ahead-of-time, transformational optimization: transition flattening. Added flattenTransitions.xsl to implement this transformation.
    Integrated flattening of test cases into build and test infrastructure.
    This exposed a bug in the interpretation algorithm (e.g. for an example of this bug, see the transition-flattened version of parallel+interrupt/test19.scxml).
    Fixed the bug in the interpreter in a slightly clever way, checking each state's selected transitions for consistency, before comparing all selected transitions for consistency.
    Decided that convention over configuration would be better in the naming of test scripts, so updated all JSON test scripts to remove redundant information: test name, group, and location of associated SCXML file.
    All tests, both flattened and non-flattened, with all optimizations pass under rhino and node.
    committed Jun 27, 2011
Commits on Jun 25, 2011
  1. Added optimization that takes extra compiled information in model (an…

    …cestors, descendants, state depth, and transition LCA), and caches it in the model used at runtime. This will potentially speed up stachechart execution.
    committed Jun 25, 2011
  2. Changed constructor API to be object-based (as opposed to solely base…

    …d on positional arguments), which I think is much cleaner.
    committed Jun 25, 2011
Commits on Jun 22, 2011
  1. Created several different Set implementations. Integrated it with uni…

    …t testing harness. Passes all tests under both node and rhino.
    committed Jun 22, 2011
Commits on Jun 21, 2011
  1. Changed scxml json model so that states are in an array, rather than …

    …object, as state order is important in many optimizations.
    committed Jun 21, 2011
  2. Big commit. Created test harnesses to test all optimizations. All tes…

    …ts pass for all transition-select optimizations and non-optimized executions under node and rhino. Next step is to implement and test other optimizations.
    committed Jun 21, 2011
Commits on Jun 18, 2011
  1. Fixed the Makefile and associated build scripts to make it more like …

    …make, and less like Ant.
    committed Jun 18, 2011
Commits on Jun 15, 2011
  1. Intermediate commit. Working on optimizations now, specifically trans…

    …ition selection. Just finished the modules that will generate code for this. Next step is to integrate and test it.
    committed Jun 15, 2011
  2. Intermediate commit. Changed the datamodel to primarily use the json …

    …datamodel returned by scxmlToJSON. There was too much redundancy in the having two models. Having one model should make it easier to implement many of the ahead-of-time optimizations.
    committed Jun 15, 2011
Commits on Jun 14, 2011
  1. Create test harnesses for both node and spartan js shell environments…

    …. Created launcher scripts for starting test harnesses for node and spartan shell. Integrated with Makefile. Moved some duplicate code from test harnesses out into their own models. Generalized runner.js so that it could also be used when running under node.
    committed Jun 14, 2011
  2. Added script to generate top-level module for requiring all test tupl…

    …es, to be used for running tests in spartan shells.
    committed Jun 14, 2011
Commits on Jun 13, 2011
  1. Started to implement the build logic that will be needed to run tests…

    … under spartan js shell environments using RequireJS.
    committed Jun 13, 2011
  2. Updated r.js to custom version to provide basic support for JavaScrip…

    …t shells that only expose load() and print() functions. Can be found in my requirejs fork on github.
    committed Jun 13, 2011
  3. Moved top-level scripts into new directory bin. Updated them so that …

    …they still work.
    Created new make task that will convert all scxml tests to json and put them in build/tests, while preserving directory structure. Uses xsltproc, and runs fast (about 5 seconds to convert all tests, on my netbook).
    committed Jun 13, 2011
Commits on Jun 12, 2011
  1. Added Makefile, and moved a lot of the build logic out of maven. Wher…

    …e possible, delegated to Make in the maven build. The reason for this is that building the project with maven would take over 20 seconds, whereas with Make, it takes about 2 seconds. Maven will still be used to download java dependencies, and as a frontend to launch the rhino runner.js entry point.
    committed Jun 12, 2011
Commits on Jun 11, 2011
  1. In no particular order:

    Updated coffeescript harness to take advantage of optional xslt+json generation.
    Fixed bug in where wrong attribute was being read off of send element for sendid.
    Made SCXML model class constructors more concise. Now everything can be passed in as a parameter and is initialized using coffeescript default arg syntax. As opposed to python, these are late-binding.
    Updated runner.js javascript entry point with path to requirejs text plugin. This is used to require xslt dependencies as text, which are then parsed.
    Added parseFromString functionality to rhino xml utility class.
    Added reduce utility class, with code taken from mozilla wiki (MIT licensed).
    Updated rhino xsl utility class to use this reduce function.
    Added json2model module to convert json document to SCXML model.
    Added doc2json module to convert scxml document to json document. This will enable js environments that do not have XML DOM support to run SCION, by compiling the SCXML document to JSON ahead-of-time (or delegating to an XSLT processor via a system call, as will likely be done with Node.js).
    Added text.js requirejs plugin.
    Renamed to, as this launches the rhino test harness using maven.
    committed Jun 11, 2011
  2. Python implementation with xslt+json model parser now passes all test…

    …s. Next step is to do the same for the coffeescript implementation.
    committed Jun 11, 2011
Commits on Jun 10, 2011
  1. Intermediate commit. Using XSLT to transform SCXML to JSON format. Th…

    …is will facilitate ahead-of-time conversion of SCXML, and thus provide the possibility to remove runtime dependency on XML DOM parser. First integrating this into the python implementation. Not all tests pass with this new approach yet.
    committed Jun 10, 2011
Commits on Jun 9, 2011
  1. Added scxmlToJSON.xsl to convert an SCXML document to JSON to allow i…

    …t to be more easily parsed by the interpreter.
    committed Jun 9, 2011
Commits on Jun 7, 2011
  1. Intermediate commit. Started to work on running tests for JavaScript …

    …impl in browser environment. This commit includes a browser test harness coffeescript module, html runner context, and changes to doc2model to get tests working in Firefox. Not all tests pass yet, and tests run slowly.
    committed Jun 7, 2011
  2. Tweaked atom3-basic-tests a bit, adding more descriptive names, and m…

    …aking delays longer in some cases. Augmented interpreter to support _events variable in action code. All tests now pass for coffeescript implementation.
    committed Jun 7, 2011
  3. Fixed bug in test harness that was breaking delayedSend tests. delaye…

    …dSend tests now pass.
    committed Jun 7, 2011
  4. Hooked up handling of action code. All tests pass for assign. Tests f…

    …or script do not yet work.
    committed Jun 7, 2011