2012-11-07 Antonio Carzaniga * Version 1.7.6: code update revision. * VC: migrated to bazaar * all-files: updated license to GNU GPL v.3 * ssim.cc, tests/speedtest.cc: correctly deal with NULL def for c++ std compliance 2008-05-09 Antonio Carzaniga * configure.ac: version 1.7.5 * ssim.cc: fixed a serious bug in the main loop, which could cause undefined behavior in the update of the available_at time of the current process. Thanks to Jianxia Chen for the bug report. updated web and e-mail addresses. * AUTHORS, Makefile.am, acinclude.m4, configure.ac, doc/Makefile.am, doc/doxygen.conf, doc/footer.html, doc/header.html.in, doc/maindoc.h, heap.h, siena/ssim.h, siena/tprocess.h, tests/Makefile.am, tests/config.sh, tests/heap.sh, tests/speedtest.cc, tests/test_bs.sh, tests/test_bstp.sh, tests/test_heap.sh, tests/test_tp.sh, tests/testheap.cc, tprocess.cc: updated web and e-mail addresses. 2006-04-24 Antonio Carzaniga * INSTALL: new automake version. * configure.ac: version 1.7.4 * tprocess.cc: fixed bad bug in wait_for_event, which wasn't setting the right timeout. * tprocess.cc: removed zero-out assignments to current_tprocess. They are pointless. 2005-12-13 Antonio Carzaniga * doc/maindoc.h: fixed typos in main doc page. * configure.ac: version 1.7.3 * doc/Makefile.am: *** empty log message *** * tests/test_bs.sh, tests/test_bstp.sh: fixed test execution, now generic execution without output check, which is platform specific. * tests/test_heap.sh: fixed typo in error message. * tests/Makefile.am: fixed lib params for test programs. * doc/maindoc.h, siena/ssim.h: added doc text on params and semantic conditions. fixed minor doc bugs. * acinclude.m4: added check for sigaltstack, which does not exist in the cygwin environment. 2005-12-13 Antonio Carzaniga * Version 1.7.2: this release fixes a bug in the build process of the RPM package. * configure.ac: version 1.7.3 * doc/maindoc.h: fixed typos in main doc page. * doc/Makefile.am: *** empty log message *** * tests/test_bs.sh, tests/test_bstp.sh: fixed test execution, now generic execution without output check, which is platform specific. * tests/test_heap.sh: fixed typo in error message. * tests/Makefile.am: fixed lib params for test programs. * doc/maindoc.h, siena/ssim.h: added doc text on params and semantic conditions. fixed minor doc bugs. * acinclude.m4: added check for sigaltstack, which does not exist in the cygwin environment. 2005-12-12 Antonio Carzaniga * tests/Makefile.am, tests/test_bs.sh, tests/test_bstp.sh, tests/test_heap.sh, tests/test_tp.sh: implemented test (wrapper) scripts. fixed lists of tests and programs that depend on TProcess. 2005-11-20 Antonio Carzaniga * Version 1.7.2: this release fixes a bug in the build process of the RPM package. * configure.ac: Version 1.7.2 * doc/Makefile.am: minor: added explanatory blurb about the definition of HTMLDIR. * ssim.spec: fixed build rules to use the correct "/usr" prefix and DESTDIR. * Makefile.am: (rpm) minor changes: using PACKAGE_NAME macro to refer to spec file. 2005-11-01 Antonio Carzaniga * ssim.cc: removed redundant (private) variable current_delay. * siena/tprocess.h: minor bugfix in documentation text. 2005-10-16 Antonio Carzaniga * Version 1.7.1: this release fixes a minor interface bugfix by adding a virtual constructor to SimErrorHandler. * doc/Makefile.am: doc dir changed to make better sense with rpm package structure. * ssim.spec: adapted to new doc dir. fixed obsolete rpmbuild header. * ChangeLog: *** empty log message *** * configure.ac: version 1.7.1. * INSTALL: minor cleanups. * bootstrap: removed autoheader now useless. * Makefile.am: minor cleanups. * heap.h, ssim.cc: minor style changes for C++ standard compliance. * doc/Makefile.am, doc/doxygen.conf: fixed HTML_OUTPUT option, now using "htmldoc" set once in Makefile.am. * siena/ssim.h: added needed virtual destructor to SimErrorHandler. 2005-01-20 Antonio Carzaniga * heap.h: added throw clauses to all methods of the heap template. * tests/speedtest.cc: fixed bug in QTClient which was shadowing TClient's variables. 2005-01-07 Antonio Carzaniga * doc/Makefile.am: replaced HTML_OUTPUT macro (with HTMLDIR) which confuses Automake. 2005-01-06 Antonio Carzaniga * ChangeLog: *** empty log message *** * Makefile.am, acinclude.m4, configure.ac, doc/doxygen.conf, siena/tprocess.h, ssim.cc, ssimconf.h.in, tprocess.cc, tprocessconf.h.in: fixed configuration of tprocess in both the build process and at the user include stage. Changed build using command-line definitions instead of config.h file. * tests/Makefile.am: added test scripts to TESTS and EXTRA_DISTR. * tests/Makefile.am: fixed bug in dist targets (removed TESTS from EXTRA_DIST) * Makefile.am, README, acinclude.m4, configure.ac, doc/Makefile.am, doc/maindoc.h, heap.h, siena/ssim.h, siena/tprocess.h, ssim.cc, ssim.spec, ssimconf.h.in, tests/Makefile.am, tests/config.sh, tests/heap.sh, tests/speedtest.cc, tests/testheap.cc, tprocess.cc: fixed initial file identification blurb. * tests/speedtest.cc: enhanced configurability with -q to suppress output, -t to use TProcess processes, and -N iterations to set the number of iterations. * doc/footer.html, doc/header.html.in: updated to new, more standard style. 2005-01-06 Antonio Carzaniga * Version 1.7.0: this version includes some significant implementation improvements and changes. The most important change is a new implementation of the main event queue, which is now based on a heap instead of the standard multimap container. This change yields a five-fold performance improvement in simulations in which most of the time is spent scheduling events (so, admittedly, the performance improvement would probably be much smaller in more complex simulations). Another change has to do with the declarations and visibility of the internal data structures and types of the simulator. These structures have been moved from of the main ssim.h include file to the implementation file. In practical terms, the main include file has been simplified, removing all dependencies from other includes. In particular, and all the static private variables of the simulator are now completely hidden as static variables in the implementation. The documentation has been expanded and improved. * Makefile.am, acinclude.m4, configure.ac, doc/doxygen.conf, siena/tprocess.h, ssim.cc, ssimconf.h.in, tprocess.cc, tprocessconf.h.in: fixed configuration of tprocess in both the build process and at the user include stage. Changed build using command-line definitions instead of config.h file. * tests/Makefile.am: added test scripts to TESTS and EXTRA_DISTR. * tests/Makefile.am: fixed bug in dist targets (removed TESTS from EXTRA_DIST) * Makefile.am, README, acinclude.m4, configure.ac, doc/Makefile.am, doc/maindoc.h, heap.h, siena/ssim.h, siena/tprocess.h, ssim.cc, ssim.spec, ssimconf.h.in, tests/Makefile.am, tests/config.sh, tests/heap.sh, tests/speedtest.cc, tests/testheap.cc, tprocess.cc: fixed initial file identification blurb. * tests/speedtest.cc: enhanced configurability with -q to suppress output, -t to use TProcess processes, and -N iterations to set the number of iterations. * doc/footer.html, doc/header.html.in: updated to new, more standard style. 2005-01-05 Antonio Carzaniga * siena/ssim.h: added documentation that explains the single-simulator class design of Sim. * doc/maindoc.h: added reference to Sim documentation that explains the single-simulator class design. * doc/antodoc.css: small style changes. * siena/tprocess.h, tprocess.cc: changed implementation of TProcess to use a single, static resume context. The resume context is no longer a data member of TProcess but rather a static variable in tprocess.cc. 2005-01-04 Antonio Carzaniga * ssim.cc: turned all implementation (static private) variables and type definitions/declarations of Sim into static variables and definitions/declarations of this file. The main event queue has also been reimplemented. The new implementation uses an ad-hoc heap implementation (see heap.h). The implementation of all the scheduling methods has also been cleaned up a bit. * siena/ssim.h: turned the Sim class into a simple container of static functions. In particular, all static and private variables of Sim have been removed. These are implementation variables that need not be part of the Sim class. Same goes for the private type definitions. The idea is to clean the namespace and to simplify ssim.h as much as possible. All inline definitions have also been removed from this file. A few definitions are still here, but they are directly attached to their declarations. Cleaned up and detailed most declarations. Added const and throw declarations where appropriate. * tests/Makefile.am: added heap test; added speedtest. * configure.ac: added AC_OPT_PROFILING; version 1.7.0. * Makefile.am: added heap.h; added profiling flags. * acinclude.m4: added aclocal.m4, which defines AC_OPT_PROFILING. * heap.h: added implementation of a heap, used to implement the main event queue. * tests/config.sh, tests/heap.sh, tests/speedtest.cc, tests/testheap.cc: added a simple performace test (speedtest); added a test for the heap implementation. 2004-12-22 Antonio Carzaniga * Version 1.6.3: this version fixes and improves the documentation build process. The documentation directory can now be set through a configuration parameter. * doc/doxygen.conf: replaces doxygen.conf.in. This config file is parameterized at doxygen invocation time through environment variables. * Makefile.am: adapted to targets doc/Makefile.am. * configure.ac: added --with-docdir option; removed doxygen.conf from output list; version 1.6.3. * doc/Makefile.am: changed to use docdir set by configure; changed docs build process, now using environment variables to parameterize doxygen. Simplified and documented dependencies and files macros. * INSTALL: *** empty log message *** * doc/doxygen.conf.in: replaced by doxygen.conf, which is parameterized at doxygen invocation time through rnvironment variables. 2004-12-10 Antonio Carzaniga * configure.ac: version 1.6.2 * doc/Makefile.am: fixed main output target to allow, or rather correctly control, parallel builds. 2004-12-10 Antonio Carzaniga * Version 1.6.2: this revision fixes the documentation build process to handle parallel builds. * configure.ac: version 1.6.2 * doc/Makefile.am: fixed main output target to allow, or rather correctly control, parallel builds. 2004-11-07 Antonio Carzaniga * Version 1.6.1: this version includes a new implementation of the TProcess class that is based only on POSIX functions. This implementation can be selected by the configure either by its automatic checks or through an explicit command-line option at configure time. This implementation should make ssim portable to all those POSIX systems that do not have makecontext, getcontext, and swapcontext. * ssimconf.h.in, ssimconf.in: *** empty log message *** * tests/Makefile.am: added (Automake) conditional to exclude tp in case TProcess is disabled at configure time. * siena/tprocess.h, tprocess.cc: added implementation of TProcess based on POSIX functions only. This implementation calls a signal handler to create a separate execution context (stack) and then uses setjmp/longjmp to switch between contexts. * configure.ac: added checks to select an implementation method for the TProcess class. The default is to try the ucontext functions first and then setjmp/longjmp functions. If neither of the two methods is available, the TProcess feature is disabled completely. This choice can also be explicitly determined by a command-line parameter. * Makefile.am: added ssimconf.h 2004-11-04 Cyrus P. Hall * INSTALL, configure.ac, tprocess.cc: Now compiles on OS X and *BSD without threading support (as they do not impliment the proper POSIX functions). This will be fixed at some point by using a different API. 2004-10-30 rutherfo * siena/tprocess.h: fixed typo in docs. 2004-10-26 rutherfo * siena/ssim.h: changed methods in SimErrorhandler from pure-virtual to having (empty) implementations; derived classes only have to override the ones they want. 2004-10-25 Antonio Carzaniga * ChangeLog: *** empty log message *** * configure.ac: version 1.6.0 * siena/ssim.h: documentation fixes and additions. 2004-10-25 Antonio Carzaniga * Version 1.6.0: this version includes a new "error handler" feature for the simulator. An error handler is a programmable "callback" object that deals with situations in which events are scheduled for processes that are either busy processing other events or terminated. * configure.ac: version 1.6.0 * siena/ssim.h: documentation fixes and additions. 2004-10-24 rutherfo * siena/ssim.h, ssim.cc, tests/bs.cc: added SimErrorHandler::clear() and added a call to this to Sim::clear() added implementation of Sim::set_error_handler(). changed the names of SimErrorHandler::process_busy() and SimErrorHandler::process_terminated() to SimErrorHandler::handle_busy() and SimErrorHandler::handle_terminated() respectively. made methods of SimErrorHandler pure virtual. added an example of the error handling to the bs example. 2004-10-24 Antonio Carzaniga * siena/ssim.h, ssim.cc: added error handler feature. Error conditions are those where an event is scheduled for a process that is either busy or dead (terminated). 2004-05-14 Antonio Carzaniga * Version 1.5.0: this version features some significant interface and implementation changes: 1. Timeouts have been eliminated. Timeouts are no different from other events, and therefore it makes more sense to let the "application" implement them however they want (e.g., by signaling NULL events or by defining a specialized one or more timeout event classes). 2. The type attribute in the Event class has been removed. The problem I have with this attribute is that it requires every piece of a simulation to share a common "event namespace". In practice, one has to make sure that different event classes are initialized with different type ids. This is bad, I think. So, now I'm essentially promoting the use of the dynamic_cast feature of C++. Examples on how to use this feature with ssim are available in the documentation. 3. TProcess::wait_for_event was modified to accept an optional timeout. As you can see from the implementation, this is a feature that a user could have easily implemented on top of the old TProcess. But I figured it's such a common programming abstraction for a sequential process that it makes sense to provide it as a native function. 4. An explicit stop_time has been added. Users can now tell the simulator to stop at time T. (See the documentation.) 2004-10-23 rutherfo * siena/ssim.h, ssim.cc, tests/bs.cc: added Sim::dropcount member and Sim::get_dropcount() method to provide the number of events dropped due to the process being busy; fixed what I think is a bug in the signal_event() methods where current_process was being used instead of the provided pid. 2004-04-17 rutherfo * tests/Makefile.am, tests/bs.cc, tests/bs.h, tests/bstp.cc: removed bs.h; added bstp.cc; updated bs.cc so that it works properly and is a (tiny) bit cleaner; changed bs and bstp to be check_PROGRAMS and added them as first TESTS since they now perform some post-simulation checks on the results. * doc/maindoc.h: added bstp.cc example; made a few small changes to the documentation of bs.cc example; * doc/Makefile.am: added bstp.cc example files; removed bs.h; added maindoc.h to DOX_DEPS; 2004-04-16 Antonio Carzaniga * doc/maindoc.h, siena/ssim.icc: *** empty log message *** * tests/twoprocesses.cc, tests/tp.cc, tests/bs.h: adapted example to new simulator interface. * siena/tprocess.h: removed process_timeout; improved wait_for_event to include an optional timeout; added timeout event class; expanded documentation. * siena/ssim.h: moved main page documentation into maindoc.h; changed type and semantics of ProcessId; removed mode for process creation and execution; added explicit stop_time for simulation main loop; added self_signal_event methods; adapted signal_event methods; removed timeouts as an explicit simulation feature; fixed implementations of signal methods to correctly handle null events; reviewed and corrected advance_delay method. * doc/doxygen.conf.in: included maindoc input. Fixed some config flags to hide (intentionally) undocumented features. * doc/Makefile.am: added maindoc.h * tprocess.cc: removed process_timeout. Modified wait_for_event to deal with added timeout parameter. * ssim.cc: changed type and semantics of ProcessId: now 0 is a valid pid and NULL_PROCESSID is -1; changed/simplified corresponding PsTable. Removed mode in process creation and execution. From the perspective of the simulator, all processes are purely sequential. Added explicit stop_time for simulation main loop. * configure.ac: version 1.5.0 2004-03-03 Antonio Carzaniga * Version 1.4.2: this version cleans up the coufigure process. * configure.ac: version 1.4.2 * bootstrap, Makefile.in, aclocal.m4, config.guess, config.h.in, config.sub, configure, depcomp, doc/Makefile.in, install-sh, ltmain.sh, missing, tests/Makefile.in: *** empty log message *** 2004-01-06 Antonio Carzaniga * configure, doc/Makefile.in, tests/Makefile.in, Makefile.in, ChangeLog: *** empty log message *** 2004-01-06 Antonio Carzaniga * Version 1.4.1: this version adds some documentation and reorganizes example files. * COPYING, INSTALL, NEWS, Makefile.in, aclocal.m4, config.guess, config.h.in, config.sub, configure, depcomp, doc/Makefile.in, install-sh, ltmain.sh, missing, tests/Makefile.in, tests/bs.cc, tests/bs.h: added autoconf files. * configure.ac: version 1.4.1 * tests/twoprocesses.cc: *** empty log message *** * tests/tp.cc: added and improved commentary. * tests/Makefile.am: added example programs * siena/tprocess.h: added some documentation. * siena/ssim.h: added and updated documentation; added tp.cc example. * doc/Makefile.am: added examples; fixed complete paths for example files. * doc/doxygen.conf.in: changed EXAMPLE_PATH to test directory * doc/footer.html: updated copyright years * VERSION: baseline. 2003-12-03 Antonio Carzaniga * Version 1.4.0: this version adds support for sequential processes. Sequential processes are essentially simulated processes implemented more conveniently as threads (see the documentation of TProcess). This version also includes an initial test directory. * configure.ac: added error message for missing context functions; added checks for swapcontext functions; version 1.4.0 * Makefile.am: added tests subdir; added tprocess files * tprocess.cc: New file. * tests/tp.cc, tests/Makefile.am: New file. * siena/tprocess.h: New file. * siena/ssim.h: added doc for Event constructor * doc/Makefile.am: added DESTDIR; fixed installation targets. * doc/Makefile.am: added tprocess.h dependency * doc/doxygen.conf.in: updated to new doxygen format; added tprocess.h 2003-06-28 Antonio Carzaniga * Version 1.3.2: better autoconf/libtool integration * ssim.h: minor doc change * configure.ac: changed configure.in --> configure.ac; better libtool versioning. 2003-03-18 Antonio Carzaniga * ssim.cc: ~ fixed Sim::clear() method, adding proper cleanup of events within action * ssim.cc: ~ fixed initialization of version identifier + removed ReactiveProcess stuff + added Sim::clear() method contributed by Matt Rutherford * configure.in: ~ Version 1.3.1 * antodoc.css: ~ general clean-up: removed unnecessary specifications ~ improved style (I think) * ssim.h: ~ fixed const qualifier for Event pointers passed to user functions with appropriate handling of refcounts ~ fixed initialization of version identifier + added documentation here and there + added Sim::clear() method contributed by Matt Rutherford + added documentation for Sim::clear() * ssim.cc: ~ fixed initialization of version identifier + removed ReactiveProcess stuff + added Sim::clear() method contributed by Matt Rutherford ~ fixed Sim::clear() method, adding proper cleanup of events within action 2003-01-28 Antonio Carzaniga * configure.in: ~ version 1.3.0 2003-01-27 Antonio Carzaniga * ssim.spec, ssim.cc, Makefile.am: ~ uses siena include sub-directory * configure.in: ~ version 1.2.0 * AUTHORS: *** empty log message *** 2003-01-23 Antonio Carzaniga * README: *** empty log message *** 2003-01-20 Antonio Carzaniga * configure.in, ssim.cc: *** empty log message *** * Makefile.am, ssim.spec: New file. 2003-01-20 Antonio Carzaniga * ssim.h: *** empty log message *** 2002-06-12 Antonio Carzaniga * ssim.h, ssim.icc: *** empty log message *** 2000-12-27 Antonio Carzaniga * ssim.h: major changes * ssim.icc: *** empty log message *** 2000-12-13 Antonio Carzaniga * ssim.icc, ssim.h: *** empty log message *** 2000-12-04 Antonio Carzaniga * ssim.h, ssim.icc: New file. 2003-12-04 Antonio Carzaniga * configure.ac: added error message for missing context functions. 2003-12-03 Antonio Carzaniga * doc/Makefile.am: added DESTDIR; fixed installation targets. * tests/tp.cc, tests/Makefile.am: New file. * doc/Makefile.am: added tprocess.h dependency * doc/doxygen.conf.in: updated to new doxygen format; added tprocess.h * configure.ac: added checks for swapcontext functions; version 1.4.0 * Makefile.am: added tests subdir; added tprocess files * tprocess.cc, siena/tprocess.h: New file. * siena/ssim.h: added doc for Event constructor 2003-06-28 Antonio Carzaniga * configure.ac: changed configure.in --> configure.ac; better libtool versioning. * siena/ssim.h: minor doc change 2003-03-18 Antonio Carzaniga * siena/ssim.h: + added documentation for Sim::clear() * ssim.cc: ~ fixed Sim::clear() method, adding proper cleanup of events within action * doc/antodoc.css: ~ general clean-up: removed unnecessary specifications ~ improved style (I think) * configure.ac: ~ Version 1.3.1 * ssim.cc: ~ fixed initialization of version identifier + removed ReactiveProcess stuff + added Sim::clear() method contributed by Matt Rutherford * siena/ssim.h: ~ fixed const qualifier for Event pointers passed to user functions with appropriate handling of refcounts ~ fixed initialization of version identifier + added documentation here and there + added Sim::clear() method contributed by Matt Rutherford 2003-01-28 Antonio Carzaniga * configure.ac: ~ version 1.3.0 * ssim.spec: ~ uses siena include sub-directory * siena/ssim.h: ~ fixed links in main-page documentation * doc/Makefile.am: ~ uses siena include sub-directory ~ added correct doxygen dependencies * doc/doxygen.conf.in, ssim.cc, Makefile.am: ~ uses siena include sub-directory * configure.ac: ~ version 1.2.0 * AUTHORS: *** empty log message *** * siena/ssim.h: + virtual destructor for Process + virtual destructor for Event + a lot of documentation + ProcessWithPId utility class 2003-01-23 Antonio Carzaniga * README: *** empty log message *** 2003-01-20 Antonio Carzaniga * configure.ac, ssim.cc: *** empty log message *** * doc/Makefile.am, doc/doxygen.conf.in: New file. * siena/ssim.h: *** empty log message *** * Makefile.am, ssim.spec: New file. 2002-06-13 Antonio Carzaniga * siena/ssim.h, VERSION, siena/ssim.icc, ssim.cc, configure.ac: *** empty log message *** * doc/antodoc.css, doc/fdl.txt, ssimconf.in: New file. * doc/footer.html: *** empty log message *** * doc/footer.html, doc/header.html.in, LICENSE, AUTHORS: New file. * README: *** empty log message *** 2000-12-27 Antonio Carzaniga * VERSION: major changes: - still too unstable to maintain a meaningful change log * ssim.cc, siena/ssim.h: major changes * siena/ssim.icc: *** empty log message *** 2000-12-14 Antonio Carzaniga * configure.ac, siena/ssim.icc, siena/ssim.h, ssim.cc: *** empty log message *** 2000-12-04 Antonio Carzaniga * VERSION, configure.ac, README, ssim.cc, siena/ssim.h, siena/ssim.icc: New file.