Project: StateCharts cOmPilEr (SCOPE) Release: scope-0-10 Copyright (C) 2001-2002 Andrzej Wasowski This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. release-0-10.txt,v 1.8 2002/11/15 23:19:50 wasowski Exp See MANUAL for installation, usage instructions and credits. See LICENSE for usage license. RELEASE NOTES This release features a great performance improvement (even up to 10 times speed up of generated code in comparison with version 0-09. It also contains numerous bugfixes. MAIN BUG FIXES AND NEW FEATURES 0. Added interface (and logics) for genereting drivers and stubs in visualstate compatibility mode. This is only useful for testing VS models when you have no action functions available. You can also use it for generation the skeleton of action file, which you will then fill in. There are drivers for spead measurement and size measurement in visualstate models. 1. Smoke test driver added for native SCOPE mode also 2. Great performance improvement in runtime interpreter (and generated runtime representation). New scope-generated code is 10 times faster than the old one. Depeding on the model it can be from 30% faster to 100% slower than one produced with visualSTATE. The size is comparable with visualSTATE for small models. For big higly hierarchical models improvemnts reach from 20-50% smaller than visualSTATE produced code. This result has been achived by introducing a labelling scheme for states in hierarchy which allows for fast ancestorship checks. Also in modules not having exit actions we make use of that now, having a faster algorithm for exit. 3. Added handling of model constants (previously silently omitted). This was an unintended omission. 4. Added handling of deep history (Note: SCOPE was untruly reported to handle them in version 0.09. In fact it is only this release which made deep history available. This was an unintended omission). 5. Small corrections in code generation so lcc can now compile the code we generate. Still it produces lots of warnings. 6. Numerous bugfixes, mostly significant ;) & :( LIST OF KNOWN PROBLEMS 1. Only models containing a single system are supported (no multi-system models at the moment). 2. Internal rules are ignored (not even a warning is issued) 3. Similarly Do reactions are ignored (Termination transition causes a parse error). 4. Types with absolute values longer than 31 bits are not handled (VS_UINT32, VS_INT64, VS_UINT64). 5. Variable ranges are not checked at runtime (even in debug version code). 6. Transition conflicts are not resolved (the model is assumed to be conflict-less which you can verify with original visualSTATE verifier). 7. Signals (aka internal events) may not have parameters. 8. No debug (tesT) drivers for VS compatibility mode 9. VS compatibility mode drivers do not integrate smoothly (you still need to do a lot of handwork to compile VS model, though less than before). 10. The code is not fully ANSI C (or even ISO C) at the moment. It compiles but with some nasty warnings. Mainly because of stub functions, which do not really belong to main functionality.