===============
 HISTORY: SimPy
===============

:Author: Klaus G. Muller
:Contact: kgmuller@users.sourceforge.net
:Author: Tony Vignaux
:Contact: vignaux@users.sourceforge.net
:Date: $Date: 2004-05-20 16:32:41+02 $
:Revision: $Revision: 1.1 $
:SimPy version: 1.4.2
:Web-site: http://simpy.sourceforge.net/

SimPy History
=============

SimPy is based on ideas from Simula and Simscript but uses standard
Python. It combines two previous packages, SiPy, in Simula-Style
(Dr. Klaus Muller) and SimPy, in Simscript style (Tony.Vignaux and
Chang Chui)

SimPy is based on efficient implementation of co-routines using
Python's generators capability introduced by Python 2.2.

The package has been hosted on Sourceforge.net since 15 September 2002.

19 May 2004: Version 1.4.2
- Sub-release to repair two bugs:
	* The unittest for monitored Resource queues does not fail anymore.

	* SimulationTrace now works correctly with "yield hold,self" form.

- No functional or API changes

29 February 2004: Version 1.4.1
- Sub-release to repair two bugs:
     * The (optional) monitoring of the activeQ in Resource now works
     correctly.

     * The "cellphone.py" example is now implemented correctly.

- No functional or API changes

1 February 2004: Version 1.4 published on SourceForge

22 December 2003: Version 1.4 alpha
- New functionality/API changes
	* All classes in the SimPy API are now new style classes, i.e., they inherit from *object*
      either directly or indirectly.

	* Module *Monitor.py* has been merged into module *Simulation.py*
      and all *SimulationXXX.py* modules. Import of *Simulation* or any
      *SimulationXXX* module now also imports *Monitor*.

	* Some *Monitor* methods/attributes have changed. See Manual!

	* *Monitor* now inherits from *list*.

      * A class *Histogram* has been added to *Simulation.py* and all
      *SimulationXXX.py* modules.

      * A module *SimulationRT* has been added which allows synchronization between simulated and wallclock time.

      * A moduleSimulationStep which allows the execution of a simulation model event-by-event,
      with the facility to execute application code after each event.

      * A Tk/Tkinter-based module *SimGUI* has been added which provides a SimPy GUI framework.

      * A Tk/Tkinter-based module *SimPlot* has been added which provides for plot output from SimPy programs.

22 June 2003: Version 1.3
- No functional or API changes
- Reduction of sourcecode linelength in Simulation.py to <= 80 characters

9 June 2003: Version 1.3 alpha
- Significantly improved performance
- Significant increase in number of quasi-parallel processes SimPy can handle
- New functionality/API changes:
	* Addition of SimulationTrace, an event trace utility
	* Addition of Lister, a prettyprinter for instance attributes
	* No API changes
- Internal changes:
	* Implementation of a proposal by Simon Frost: storing the keys of the event set dictionary
        in a binary search tree using bisect. Thank you, Simon! SimPy 1.3 is dedicated to you!
- Update of Manual to address tracing.
- Update of Interfacing doc to address output visualization using Scientific Python gplt package.

29 April 2003: Version 1.2
- No changes in API.
- Internal changes:
	* Defined "True" and "False" in Simulation.py to support Python 2.2.

22 October 2002:
-   Re-release of 0.5 Beta on SourceForge.net to replace corrupted file
    __init__.py.
-   No code changes whatever!

18 October 2002:
-   Version 0.5 Beta-release, intended to get testing by application developers 
    and system integrators in preparation of first full (production) release. Released on SourceForge.net on 20 October 2002.
-   More models
-   Documentation enhanced by a manual, a tutorial ("The Bank") and installation instructions.
-   Major changes to the API:
    *  Introduced 'simulate(until=0) instead of 'scheduler(till=0)'. Left 'scheduler()' in 
       for backward compatibility, but marked as deprecated.
    *  Added attribute "name" to class Process. Process constructor is now:
       def __init__(self,name="a_process")
       Backward compatible if keyword parameters used.
    *  Changed Resource constructor to: 
       def __init__(self,capacity=1,name="a_resource",unitName="units")
       Backward compatible if keyword parameters used.
       
27 September 2002:
-   Version 0.2 Alpha-release, intended to attract feedback from users
-   Extended list of models
-   Upodated documentation

17 September 2002
-   Version 0.1.2 published on SourceForge; fully working, pre-alpha code
-   Implements simulation, shared resources with queuing (FIFO), 
                            and monitors for data gathering/analysis.
-   Contains basic documentation (cheatsheet) and simulation models 
                              for test and demonstration.
