Commits

Anonymous committed c2f00ad

SimPy 1.9.1 release status load

Comments (0)

Files changed (145)

CHANGES_FROM_PREVIOUS_VERSION.html

+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>CHANGES FROM VERSION 1.9.1: SimPy</title>
+<meta name="authors" content="Tony Vignaux &lt;Vignaux&#64;users.sourceforge.net&gt;  Klaus Muller &lt;Muller&#64;users.sourceforge.net&gt;" />
+<meta name="date" content="2008-03-15" />
+<style type="text/css">
+
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2008/03/15 12:33:45 $
+:Revision: $Revision: 1.1.1.9 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }
+
+</style>
+</head>
+<body>
+<div class="document" id="changes-from-version-1-9-1-simpy">
+<h1 class="title">CHANGES FROM VERSION 1.9.1: SimPy</h1>
+<table class="docinfo" frame="void" rules="none">
+<col class="docinfo-name" />
+<col class="docinfo-content" />
+<tbody valign="top">
+<tr><th class="docinfo-name">Authors:</th>
+<td>Tony Vignaux &lt;<a class="reference" href="mailto:Vignaux&#64;users.sourceforge.net">Vignaux&#64;users.sourceforge.net</a>&gt;
+<br />Klaus Muller &lt;<a class="reference" href="mailto:Muller&#64;users.sourceforge.net">Muller&#64;users.sourceforge.net</a>&gt;</td></tr>
+<tr class="field"><th class="docinfo-name">SimPy version:</th><td class="field-body">1.9.1</td>
+</tr>
+<tr class="field"><th class="docinfo-name">SimPy Web-site:</th><td class="field-body"><a class="reference" href="http://simpy.sourceforge.net/">http://simpy.sourceforge.net/</a></td>
+</tr>
+<tr class="field"><th class="docinfo-name">SimPy wiki:</th><td class="field-body"><a class="reference" href="http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy">http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy</a></td>
+</tr>
+<tr class="field"><th class="docinfo-name">Python-Version:</th><td class="field-body">2.3+</td>
+</tr>
+<tr><th class="docinfo-name">Revision:</th>
+<td>1.1.1.16</td></tr>
+<tr><th class="docinfo-name">Date:</th>
+<td>2008-03-15</td></tr>
+</tbody>
+</table>
+<p>This document addresses the difference between SimPy versions
+1.9 and version 1.9.1 in terms of changes and additions.</p>
+<div class="section">
+<h1><a id="repairs" name="repairs">Repairs</a></h1>
+<p>This bug-fix release cures the following bugs:</p>
+<ul class="simple">
+<li>Excessive production of circular garbage, due to a circular reference
+between Process instances and event notices. This led to large memory
+requirements.</li>
+<li>Runtime error for preempts of proceeses holding multiple Resource objects.</li>
+</ul>
+</div>
+<div class="section">
+<h1><a id="additions" name="additions">Additions</a></h1>
+<ul class="simple">
+<li>A Short Manual, describing only the basic facilities of SimPy.</li>
+</ul>
+</div>
+</div>
+</body>
+</html>

CHANGES_FROM_PREVIOUS_VERSION.txt

+=================================
+CHANGES FROM VERSION 1.9.1: SimPy
+=================================
+
+:Authors: - Tony Vignaux <Vignaux@users.sourceforge.net>
+          - Klaus Muller <Muller@users.sourceforge.net>
+:SimPy version: 1.9.1
+:SimPy Web-site: http://simpy.sourceforge.net/
+:SimPy wiki: http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy
+:Python-Version: 2.3+
+:Revision: $Revision: 1.1.1.16 $
+:Date: $Date: 2008/03/15 12:25:49 $
+
+This document addresses the difference between SimPy versions
+1.9 and version 1.9.1 in terms of changes and additions.
+  
+Repairs
+========
+
+This bug-fix release cures the following bugs:
+
+- Excessive production of circular garbage, due to a circular reference
+  between Process instances and event notices. This led to large memory
+  requirements.
+  
+- Runtime error for preempts of proceeses holding multiple Resource objects.
+
+
+Additions
+============
+
+- A Short Manual, describing only the basic facilities of SimPy.
+  
+
+  

COMPATIBILITY.html

+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>COMPATIBILITY: SimPy</title>
+<meta name="authors" content="Tony Vignaux &lt;Vignaux&#64;users.sourceforge.net&gt;  Klaus Muller &lt;Muller&#64;users.sourceforge.net&gt;" />
+<meta name="date" content="2007-12-15" />
+<style type="text/css">
+
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2007/12/15 05:50:38 $
+:Revision: $Revision: 1.1.1.7 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }
+
+</style>
+</head>
+<body>
+<div class="document" id="compatibility-simpy">
+<h1 class="title">COMPATIBILITY: SimPy</h1>
+<table class="docinfo" frame="void" rules="none">
+<col class="docinfo-name" />
+<col class="docinfo-content" />
+<tbody valign="top">
+<tr><th class="docinfo-name">Authors:</th>
+<td>Tony Vignaux &lt;<a class="reference" href="mailto:Vignaux&#64;users.sourceforge.net">Vignaux&#64;users.sourceforge.net</a>&gt;
+<br />Klaus Muller &lt;<a class="reference" href="mailto:Muller&#64;users.sourceforge.net">Muller&#64;users.sourceforge.net</a>&gt;</td></tr>
+<tr class="field"><th class="docinfo-name">SimPy version:</th><td class="field-body">1.9</td>
+</tr>
+<tr class="field"><th class="docinfo-name">SimPy Web-site:</th><td class="field-body"><a class="reference" href="http://simpy.sourceforge.net/">http://simpy.sourceforge.net/</a></td>
+</tr>
+<tr class="field"><th class="docinfo-name">SimPy wiki:</th><td class="field-body"><a class="reference" href="http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy">http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy</a></td>
+</tr>
+<tr class="field"><th class="docinfo-name">Python-Version:</th><td class="field-body">2.3+</td>
+</tr>
+<tr><th class="docinfo-name">Revision:</th>
+<td>1.1.1.11</td></tr>
+<tr><th class="docinfo-name">Date:</th>
+<td>2007-12-15</td></tr>
+</tbody>
+</table>
+<p>SimPy has been used successfully with many packages and modules, such as
+Tk/Tkinter for GUIs and VPython and matplotlib for graphical output.</p>
+<p>The design of SimPy is such that no incompatibilities with Python 2.3 through
+2.5 modules or Python 2.3 through 2.5-accessible packages are expected.</p>
+<p>SimPy 1.8 has been tested with Python 2.3, 2.4 and 2.5.</p>
+<p>All SimPy scripts (with the exception of the ones depending on Tkinter) work
+under IronPython 1, after the removal of the shebang line.</p>
+<p>Should SimPy users discover any incompatibilities, the authors would
+be grateful for a report. Just send a message with the problem
+and its context to: <a class="reference" href="mailto:simpy-users&#64;lists.sourceforge.net">simpy-users&#64;lists.sourceforge.net</a>.</p>
+</div>
+</body>
+</html>

COMPATIBILITY.txt

+====================
+COMPATIBILITY: SimPy
+====================
+
+:Authors: - Tony Vignaux <Vignaux@users.sourceforge.net>
+          - Klaus Muller <Muller@users.sourceforge.net>
+:SimPy version: 1.9
+:SimPy Web-site: http://simpy.sourceforge.net/
+:SimPy wiki: http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy
+:Python-Version: 2.3 and later
+:Revision: $Revision: 1.1.1.12 $
+:Date: $Date: 2007/12/18 05:15:52 $
+
+SimPy has been used successfully with many packages and modules, such as
+Tk/Tkinter for GUIs and VPython and matplotlib for graphical output.
+
+The design of SimPy is such that no incompatibilities with Python 2.3 through 
+2.5 modules or Python 2.3 through 2.5-accessible packages are expected.
+
+SimPy 1.9 has been tested with Python 2.3, 2.4 and 2.5.
+
+All SimPy scripts (with the exception of the ones depending on Tkinter) work
+under IronPython 1, after the removal of the shebang line.
+
+Should SimPy users discover any incompatibilities, the authors would
+be grateful for a report. Just send a message with the problem 
+and its context to: simpy-users@lists.sourceforge.net.
+
+
+
+
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title></title>
+<style type="text/css">
+
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2008/03/15 12:33:45 $
+:Revision: $Revision: 1.1.1.9 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }
+
+</style>
+</head>
+<body>
+<div class="document">
+<div class="section">
+<h1><a id="history-simpy" name="history-simpy">HISTORY: SimPy</a></h1>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Authors:</th><td class="field-body"><ul class="first simple">
+<li>Tony Vignaux &lt;<a class="reference" href="mailto:Vignaux&#64;users.sourceforge.net">Vignaux&#64;users.sourceforge.net</a>&gt;</li>
+<li>Klaus Muller &lt;<a class="reference" href="mailto:Muller&#64;users.sourceforge.net">Muller&#64;users.sourceforge.net</a>&gt;</li>
+</ul>
+</td>
+</tr>
+<tr class="field"><th class="field-name">SimPy version:</th><td class="field-body"><p class="first">1.9.1</p>
+</td>
+</tr>
+<tr class="field"><th class="field-name">SimPy Web-site:</th><td class="field-body"><p class="first"><a class="reference" href="http://simpy.sourceforge.net/">http://simpy.sourceforge.net/</a></p>
+</td>
+</tr>
+<tr class="field"><th class="field-name">SimPy wiki:</th><td class="field-body"><p class="first"><a class="reference" href="http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy">http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy</a></p>
+</td>
+</tr>
+<tr class="field"><th class="field-name">Python-Version:</th><td class="field-body"><p class="first">2.3+</p>
+</td>
+</tr>
+<tr class="field"><th class="field-name">Revision:</th><td class="field-body"><p class="first">$Revision: 1.1.1.9 $</p>
+</td>
+</tr>
+<tr class="field"><th class="field-name">Date:</th><td class="field-body"><p class="first last">$Date: 2008/03/15 12:33:45 $</p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section">
+<h1><a id="simpy-history" name="simpy-history">SimPy History</a></h1>
+<p>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)</p>
+<p>SimPy is based on efficient implementation of co-routines using
+Python's generators capability.</p>
+<p>The package has been hosted on Sourceforge.net since 15 September 2002.
+Sourceforge.net's service has always outstanding. It is essential to
+the SimPy project!</p>
+<div class="section">
+<h2><a id="march-2008-version-1-9-1" name="march-2008-version-1-9-1">March 2008: Version 1.9.1</a></h2>
+<p>This is a bug-fix release which cures the following bugs:</p>
+<ul class="simple">
+<li>Excessive production of circular garbage, due to a circular reference
+between Process instances and event notices. This led to large memory
+requirements.</li>
+<li>Runtime error for preempts of proceeses holding multiple Resource objects.</li>
+</ul>
+<p>It also adds a Short Manual, describing only the basic facilities of SimPy.</p>
+</div>
+<div class="section">
+<h2><a id="december-2007-version-1-9" name="december-2007-version-1-9">December 2007: Version 1.9</a></h2>
+<p>This is a major release with added functionality/new user API calls and bug fixes.</p>
+<div class="section">
+<h3><a id="major-changes" name="major-changes">Major changes</a></h3>
+<ul class="simple">
+<li>The event list handling has been changed to improve the runtime performance
+of large SimPy models (models with thousands of processes). The use of
+dictionaries for timestamps has been stopped. Thanks are due to Prof.
+Norm Matloff and a team of his students who did a study on improving
+SimPy performance. This was one of their recommendations. Thanks, Norm and guys!
+Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'.
+Finally, cancelling events no longer removes them, but rather marks them.
+When their event time comes, they are ignored. This was Tony Vignaux' idea!</li>
+<li>The Manual has been edited and given an easier-to-read layout.</li>
+<li>The Bank2 tutorial has been extended by models  which use more advanced
+SimPy commands/constructs.</li>
+</ul>
+</div>
+<div class="section">
+<h3><a id="bug-fixes" name="bug-fixes">Bug fixes</a></h3>
+<ul class="simple">
+<li>The tracing of 'activate' statements has been enabled.</li>
+</ul>
+</div>
+<div class="section">
+<h3><a id="additions" name="additions">Additions</a></h3>
+<ul class="simple">
+<li>A method returning the time-weighted variance of observations
+has been added to classes Monitor and Tally.</li>
+<li>A shortcut activation method called &quot;start&quot; has been added
+to class Process.</li>
+</ul>
+</div>
+</div>
+<div class="section">
+<h2><a id="january-2007-version-1-8" name="january-2007-version-1-8">January 2007: Version 1.8</a></h2>
+<div class="section">
+<h3><a id="id1" name="id1">Major Changes</a></h3>
+<ul class="simple">
+<li>SimPy 1.8 and future releases will not run under the obsolete
+Python 2.2 version. They require Python 2.3 or later.</li>
+<li>The Manual has been thoroughly edited, restructured and rewritten.
+It is now also provided in PDF format.</li>
+<li>The Cheatsheet has been totally rewritten in a tabular format.
+It is provided in both XLS (MS Excel spreadsheet) and PDF format.</li>
+<li>The version of SimPy.Simulation(RT/Trace/Step) is now accessible
+by the variable 'version'.</li>
+<li>The <em>__str__</em> method of Histogram was changed to return a table format.</li>
+</ul>
+</div>
+<div class="section">
+<h3><a id="id2" name="id2">Bug fixes</a></h3>
+<ul class="simple">
+<li>Repaired a bug in <em>yield waituntil</em> runtime code.</li>
+<li>Introduced check for <em>capacity</em> parameter of a Level or a Store
+being a number &gt; 0.</li>
+<li>Added code so that self.eventsFired gets set correctly after an event fires
+in a compound yield get/put with a waitevent clause (reneging case).</li>
+<li>Repaired a bug in prettyprinting of Store objects.</li>
+</ul>
+</div>
+<div class="section">
+<h3><a id="id3" name="id3">Additions</a></h3>
+<ul class="simple">
+<li>New compound yield statements support time-out or event-based
+reneging in get and put operations on Store and Level instances.</li>
+<li><em>yield get</em> on a Store instance can now have a filter function.</li>
+<li>All Monitor and Tally instances are automatically registered in list
+<em>allMonitors</em> and <em>allTallies</em>, respectively.</li>
+<li>The new function <em>startCollection</em> allows activation of Monitors and
+Tallies at a specified time.</li>
+<li>A <em>printHistogram</em> method was added to Tally and Monitor which generates
+a table-form histogram.</li>
+<li>In SimPy.SimulationRT: A function for allowing changing
+the ratio wall clock time to simulation time has been added.</li>
+</ul>
+</div>
+</div>
+<div class="section">
+<h2><a id="june-2006-version-1-7-1" name="june-2006-version-1-7-1">June 2006: Version 1.7.1</a></h2>
+<p>This is a maintenance release. The API has not been changed/added to.</p>
+<ul class="simple">
+<li>Repair of a bug in the _get methods of Store and Level which could lead to synchronization problems
+(blocking of producer processes, despite space being available in the buffer).</li>
+<li>Repair of Level __init__ method to allow initialBuffered to be of either float or int type.</li>
+<li>Addition of type test for Level get parameter 'nrToGet' to limit it to positive
+int or float.</li>
+<li>To improve pretty-printed output of 'Level' objects, changed attribute
+'_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).</li>
+<li>To improve pretty-printed output of 'Store' objects, added attribute
+'buffered' (which refers to '_theBuffer' attribute).</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="february-2006-version-1-7" name="february-2006-version-1-7">February 2006: Version 1.7</a></h2>
+<p>This is a major release.</p>
+<ul class="simple">
+<li>Addition of an abstract class Buffer, with two sub-classes <em>Store</em> and <em>Level</em>
+Buffers are used for modelling inter-process synchronization in producer/
+consumer and multi-process cooperation scenarios.</li>
+<li>Addition of two new <em>yield</em> statements:<ul>
+<li><em>yield put</em> for putting items into a buffer, and</li>
+<li><em>yield get</em> for getting items from a buffer.</li>
+</ul>
+</li>
+<li>The Manual has undergone a major re-write/edit.</li>
+<li>All scripts have been restructured for compatibility with IronPython 1 beta2.
+This was doen by moving all <em>import</em> statements to the beginning of the scripts.
+After the removal of the first (shebang) line, all scripts (with the exception
+of plotting and GUI scripts) can run successfully under this new Python
+implementation.</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="september-2005-version-1-6-1" name="september-2005-version-1-6-1">September 2005: Version 1.6.1</a></h2>
+<p>This is a minor release.</p>
+<ul class="simple">
+<li>Addition of Tally data collection class as alternative
+to Monitor. It is intended for collecting very large data sets
+more efficiently in storage space and time than Monitor.</li>
+<li>Change of Resource to work with Tally (new Resource
+API is backwards-compatible with 1.6).</li>
+<li>Addition of function setHistogram to class Monitor for initializing
+histograms.</li>
+<li>New function allEventNotices() for debugging/teaching purposes. It returns
+a prettyprinted string with event times and names of process instances.</li>
+<li>Addition of function allEventTimes (returns event times of all scheduled
+events).</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="june-2005-version-1-6" name="june-2005-version-1-6">15 June 2005: Version 1.6</a></h2>
+<ul class="simple">
+<li>Addition of two compound yield statement forms to support the modelling of
+processes reneging from resource queues.</li>
+<li>Addition of two test/demo files showing the use of the new reneging statements.</li>
+<li>Addition of test for prior simulation initialization in method activate().</li>
+<li>Repair of bug in monitoring thw waitQ of a resource when preemption occurs.</li>
+<li>Major restructuring/editing to Manual and Cheatsheet.</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="february-2005-version-1-5-1" name="february-2005-version-1-5-1">1 February 2005: Version 1.5.1</a></h2>
+<ul>
+<li><p class="first">MAJOR LICENSE CHANGE:</p>
+<blockquote>
+<p>Starting with this version 1.5.1, SimPy is being release under the GNU
+Lesser General Public License (LGPL), instead of the GNU GPL. This change
+has been made to encourage commercial firms to use SimPy in for-profit
+work.</p>
+</blockquote>
+</li>
+<li><p class="first">Minor re-release</p>
+</li>
+<li><p class="first">No additional/changed functionality</p>
+</li>
+<li><p class="first">Includes unit test file'MonitorTest.py' which had been accidentally deleted
+from 1.5</p>
+</li>
+<li><p class="first">Provides updated version of 'Bank.html' tutorial.</p>
+</li>
+<li><p class="first">Provides an additional tutorial ('Bank2.html') which shows
+how to use the new synchronization constructs introduced in SimPy 1.5.</p>
+</li>
+<li><p class="first">More logical, cleaner version numbering in files.</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="december-2004-version-1-5" name="december-2004-version-1-5">1 December 2004: Version 1.5</a></h2>
+<ul class="simple">
+<li>No new functionality/API changes relative to 1.5 alpha</li>
+<li>Repaired bug related to waiting/queuing for multiple events</li>
+<li>SimulationRT: Improved synchronization with wallclock time on Unix/Linux</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="september-2004-version-1-5alpha" name="september-2004-version-1-5alpha">25 September 2004: Version 1.5alpha</a></h2>
+<ul>
+<li><p class="first">New functionality/API additions</p>
+<blockquote>
+<ul class="simple">
+<li>SimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.</li>
+<li>A general &quot;wait until&quot; synchronization construct, with the 'yield waituntil' command.</li>
+</ul>
+</blockquote>
+</li>
+<li><p class="first">No changes to 1.4.x API, i.e., existing code will work as before.</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="may-2004-version-1-4-2" name="may-2004-version-1-4-2">19 May 2004: Version 1.4.2</a></h2>
+<ul>
+<li><p class="first">Sub-release to repair two bugs:</p>
+<blockquote>
+<ul class="simple">
+<li>The unittest for monitored Resource queues does not fail anymore.</li>
+<li>SimulationTrace now works correctly with &quot;yield hold,self&quot; form.</li>
+</ul>
+</blockquote>
+</li>
+<li><p class="first">No functional or API changes</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="february-2004-version-1-4-1" name="february-2004-version-1-4-1">29 February 2004: Version 1.4.1</a></h2>
+<ul>
+<li><p class="first">Sub-release to repair two bugs:</p>
+<blockquote>
+<ul class="simple">
+<li>The (optional) monitoring of the activeQ in Resource now works correctly.</li>
+<li>The &quot;cellphone.py&quot; example is now implemented correctly.</li>
+</ul>
+</blockquote>
+</li>
+<li><p class="first">No functional or API changes</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="february-2004-version-1-4-published-on-sourceforge" name="february-2004-version-1-4-published-on-sourceforge">1 February 2004: Version 1.4 published on SourceForge</a></h2>
+</div>
+<div class="section">
+<h2><a id="december-2003-version-1-4-alpha" name="december-2003-version-1-4-alpha">22 December 2003: Version 1.4 alpha</a></h2>
+<ul>
+<li><p class="first">New functionality/API changes</p>
+<blockquote>
+<blockquote>
+<ul class="simple">
+<li>All classes in the SimPy API are now new style classes, i.e., they inherit from <em>object</em> either directly or indirectly.</li>
+<li>Module <em>Monitor.py</em> has been merged into module <em>Simulation.py</em> and all <em>SimulationXXX.py</em> modules. Import of <em>Simulation</em> or any <em>SimulationXXX</em> module now also imports <em>Monitor</em>.</li>
+<li>Some <em>Monitor</em> methods/attributes have changed. See Manual!</li>
+<li><em>Monitor</em> now inherits from <em>list</em>.</li>
+</ul>
+</blockquote>
+<ul class="simple">
+<li>A class <em>Histogram</em> has been added to <em>Simulation.py</em> and all <em>SimulationXXX.py</em> modules.</li>
+<li>A module <em>SimulationRT</em> has been added which allows synchronization between simulated and wallclock time.</li>
+<li>A moduleSimulationStep which allows the execution of a simulation model event-by-event, with the facility to execute application code after each event.</li>
+<li>A Tk/Tkinter-based module <em>SimGUI</em> has been added which provides a SimPy GUI framework.</li>
+<li>A Tk/Tkinter-based module <em>SimPlot</em> has been added which provides for plot output from SimPy programs.</li>
+</ul>
+</blockquote>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="june-2003-version-1-3" name="june-2003-version-1-3">22 June 2003: Version 1.3</a></h2>
+<ul class="simple">
+<li>No functional or API changes</li>
+<li>Reduction of sourcecode linelength in Simulation.py to &lt;= 80 characters</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="june-2003-version-1-3-alpha" name="june-2003-version-1-3-alpha">9 June 2003: Version 1.3 alpha</a></h2>
+<ul>
+<li><p class="first">Significantly improved performance</p>
+</li>
+<li><p class="first">Significant increase in number of quasi-parallel processes SimPy can handle</p>
+</li>
+<li><p class="first">New functionality/API changes:</p>
+<blockquote>
+<ul class="simple">
+<li>Addition of SimulationTrace, an event trace utility</li>
+<li>Addition of Lister, a prettyprinter for instance attributes</li>
+<li>No API changes</li>
+</ul>
+</blockquote>
+</li>
+<li><p class="first">Internal changes:</p>
+<blockquote>
+<ul class="simple">
+<li>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!</li>
+</ul>
+</blockquote>
+</li>
+<li><p class="first">Update of Manual to address tracing.</p>
+</li>
+<li><p class="first">Update of Interfacing doc to address output visualization using Scientific Python gplt package.</p>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="april-2003-version-1-2" name="april-2003-version-1-2">29 April 2003: Version 1.2</a></h2>
+<ul>
+<li><p class="first">No changes in API.</p>
+</li>
+<li><dl class="first docutils">
+<dt>Internal changes:</dt>
+<dd><ul class="first last simple">
+<li>Defined &quot;True&quot; and &quot;False&quot; in Simulation.py to support Python 2.2.</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="october-2002" name="october-2002">22 October 2002:</a></h2>
+<ul class="simple">
+<li>Re-release of 0.5 Beta on SourceForge.net to replace corrupted file __init__.py.</li>
+<li>No code changes whatever!</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="id4" name="id4">18 October 2002:</a></h2>
+<ul>
+<li><p class="first">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.</p>
+</li>
+<li><p class="first">More models</p>
+</li>
+<li><p class="first">Documentation enhanced by a manual, a tutorial (&quot;The Bank&quot;) and installation instructions.</p>
+</li>
+<li><p class="first">Major changes to the API:</p>
+<ul>
+<li><p class="first">Introduced 'simulate(until=0)' instead of 'scheduler(till=0)'. Left 'scheduler()' in for backward compatibility, but marked as deprecated.</p>
+</li>
+<li><p class="first">Added attribute &quot;name&quot; to class Process. Process constructor is now:</p>
+<pre class="literal-block">
+def __init__(self,name=&quot;a_process&quot;)
+</pre>
+<p>Backward compatible if keyword parameters used.</p>
+</li>
+<li><p class="first">Changed Resource constructor to:</p>
+<pre class="literal-block">
+def __init__(self,capacity=1,name=&quot;a_resource&quot;,unitName=&quot;units&quot;)
+</pre>
+<p>Backward compatible if keyword parameters used.</p>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="september-2002" name="september-2002">27 September 2002:</a></h2>
+<ul class="simple">
+<li>Version 0.2 Alpha-release, intended to attract feedback from users</li>
+<li>Extended list of models</li>
+<li>Upodated documentation</li>
+</ul>
+</div>
+<div class="section">
+<h2><a id="id5" name="id5">17 September 2002</a></h2>
+<ul class="simple">
+<li>Version 0.1.2 published on SourceForge; fully working, pre-alpha code</li>
+<li>Implements simulation, shared resources with queuing (FIFO), and monitors for data gathering/analysis.</li>
+<li>Contains basic documentation (cheatsheet) and simulation models for test and demonstration.</li>
+</ul>
+<!-- Local Variables:
+mode: rst
+indent-tabs-mode: nil
+sentence-end-double-space: t
+fill-column: 70
+End: -->
+</div>
+</div>
+</div>
+</body>
+</html>
+===============
+ HISTORY: SimPy
+===============
+
+:Authors: - Tony Vignaux <Vignaux@users.sourceforge.net>
+          - Klaus Muller <Muller@users.sourceforge.net>
+:SimPy version: 1.9.1
+:SimPy Web-site: http://simpy.sourceforge.net/
+:SimPy wiki: http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy
+:Python-Version: 2.3+
+:Revision: $Revision: 1.1.1.19 $
+:Date: $Date: 2008/03/15 12:25:50 $
+
+=============
+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.
+
+The package has been hosted on Sourceforge.net since 15 September 2002.
+Sourceforge.net's service has always outstanding. It is essential to
+the SimPy project!
+
+March 2008: Version 1.9.1
+==========================
+
+This is a bug-fix release which cures the following bugs:
+
+- Excessive production of circular garbage, due to a circular reference
+  between Process instances and event notices. This led to large memory
+  requirements.
+  
+- Runtime error for preempts of proceeses holding multiple Resource objects.
+
+It also adds a Short Manual, describing only the basic facilities of SimPy.
+
+December 2007: Version 1.9
+==========================
+
+This is a major release with added functionality/new user API calls and bug fixes.
+
+Major changes
+~~~~~~~~~~~~~
+
+- The event list handling has been changed to improve the runtime performance
+  of large SimPy models (models with thousands of processes). The use of
+  dictionaries for timestamps has been stopped. Thanks are due to Prof.
+  Norm Matloff and a team of his students who did a study on improving
+  SimPy performance. This was one of their recommendations. Thanks, Norm and guys!
+  Furthermore, in version 1.9 the 'heapq' sorting package replaces 'bisect'.
+  Finally, cancelling events no longer removes them, but rather marks them.
+  When their event time comes, they are ignored. This was Tony Vignaux' idea!
+  
+- The Manual has been edited and given an easier-to-read layout.
+    
+- The Bank2 tutorial has been extended by models  which use more advanced
+  SimPy commands/constructs.
+  
+Bug fixes
+~~~~~~~~~
+
+- The tracing of 'activate' statements has been enabled.
+  
+Additions
+~~~~~~~~~
+
+- A method returning the time-weighted variance of observations
+  has been added to classes Monitor and Tally.
+  
+- A shortcut activation method called "start" has been added
+  to class Process.
+  
+
+January 2007: Version 1.8
+=========================
+
+
+Major Changes
+~~~~~~~~~~~~~~
+
+- SimPy 1.8 and future releases will not run under the obsolete 
+  Python 2.2 version. They require Python 2.3 or later.
+  
+- The Manual has been thoroughly edited, restructured and rewritten. 
+  It is now also provided in PDF format.
+  
+- The Cheatsheet has been totally rewritten in a tabular format. 
+  It is provided in both XLS (MS Excel spreadsheet) and PDF format.
+
+- The version of SimPy.Simulation(RT/Trace/Step) is now accessible
+  by the variable 'version'.
+  
+- The *__str__* method of Histogram was changed to return a table format.
+  
+Bug fixes
+~~~~~~~~~~~~
+
+- Repaired a bug in *yield waituntil* runtime code. 
+
+- Introduced check for *capacity* parameter of a Level or a Store
+  being a number > 0.
+  
+- Added code so that self.eventsFired gets set correctly after an event fires
+  in a compound yield get/put with a waitevent clause (reneging case).
+  
+- Repaired a bug in prettyprinting of Store objects.
+
+Additions
+~~~~~~~~~~
+
+- New compound yield statements support time-out or event-based
+  reneging in get and put operations on Store and Level instances.
+  
+- *yield get* on a Store instance can now have a filter function.
+  
+- All Monitor and Tally instances are automatically registered in list 
+  *allMonitors* and *allTallies*, respectively.
+
+- The new function *startCollection* allows activation of Monitors and 
+  Tallies at a specified time.
+  
+- A *printHistogram* method was added to Tally and Monitor which generates
+  a table-form histogram.
+  
+- In SimPy.SimulationRT: A function for allowing changing
+  the ratio wall clock time to simulation time has been added. 
+
+June 2006: Version 1.7.1
+==============================
+
+This is a maintenance release. The API has not been changed/added to.
+
+-   Repair of a bug in the _get methods of Store and Level which could lead to synchronization problems 
+    (blocking of producer processes, despite space being available in the buffer).
+    
+-   Repair of Level __init__ method to allow initialBuffered to be of either float or int type. 
+  
+-   Addition of type test for Level get parameter 'nrToGet' to limit it to positive
+    int or float.
+    
+-   To improve pretty-printed output of 'Level' objects, changed attribute
+    '_nrBuffered' to 'nrBuffered' (synonym for 'amount' property).
+    
+-   To improve pretty-printed output of 'Store' objects, added attribute
+    'buffered' (which refers to '_theBuffer' attribute).
+
+
+February 2006: Version 1.7
+===============================
+
+This is a major release.
+
+- Addition of an abstract class Buffer, with two sub-classes *Store* and *Level*
+  Buffers are used for modelling inter-process synchronization in producer/
+  consumer and multi-process cooperation scenarios.
+
+- Addition of two new *yield* statements:
+
+  + *yield put* for putting items into a buffer, and
+  
+  + *yield get* for getting items from a buffer.
+  
+- The Manual has undergone a major re-write/edit.
+
+- All scripts have been restructured for compatibility with IronPython 1 beta2.
+  This was doen by moving all *import* statements to the beginning of the scripts.
+  After the removal of the first (shebang) line, all scripts (with the exception
+  of plotting and GUI scripts) can run successfully under this new Python
+  implementation.
+
+September 2005: Version 1.6.1
+=================================
+
+This is a minor release.
+
+- Addition of Tally data collection class as alternative
+  to Monitor. It is intended for collecting very large data sets
+  more efficiently in storage space and time than Monitor.
+
+- Change of Resource to work with Tally (new Resource 
+  API is backwards-compatible with 1.6).
+
+- Addition of function setHistogram to class Monitor for initializing
+  histograms.
+  
+- New function allEventNotices() for debugging/teaching purposes. It returns
+  a prettyprinted string with event times and names of process instances.
+  
+- Addition of function allEventTimes (returns event times of all scheduled 
+  events).
+  
+15 June 2005: Version 1.6
+==============================
+
+- Addition of two compound yield statement forms to support the modelling of
+  processes reneging from resource queues.
+  
+- Addition of two test/demo files showing the use of the new reneging statements.
+
+- Addition of test for prior simulation initialization in method activate().
+
+- Repair of bug in monitoring thw waitQ of a resource when preemption occurs.
+
+- Major restructuring/editing to Manual and Cheatsheet.
+
+1 February 2005: Version 1.5.1
+==================================
+
+- MAJOR LICENSE CHANGE:
+
+	Starting with this version 1.5.1, SimPy is being release under the GNU
+	Lesser General Public License (LGPL), instead of the GNU GPL. This change
+	has been made to encourage commercial firms to use SimPy in for-profit
+	work.
+
+- Minor re-release
+
+- No additional/changed functionality
+
+- Includes unit test file'MonitorTest.py' which had been accidentally deleted 
+  from 1.5
+
+- Provides updated version of 'Bank.html' tutorial.
+
+- Provides an additional tutorial ('Bank2.html') which shows
+  how to use the new synchronization constructs introduced in SimPy 1.5. 
+
+- More logical, cleaner version numbering in files. 
+
+1 December 2004: Version 1.5
+================================
+
+- No new functionality/API changes relative to 1.5 alpha
+
+- Repaired bug related to waiting/queuing for multiple events
+
+- SimulationRT: Improved synchronization with wallclock time on Unix/Linux
+
+25 September 2004: Version 1.5alpha
+======================================
+
+- New functionality/API additions
+
+	* SimEvents and signalling synchronization constructs, with 'yield waitevent' and 'yield queueevent' commands.
+
+	* A general "wait until" synchronization construct, with the 'yield waituntil' command.
+
+- No changes to 1.4.x API, i.e., existing code will work as before.
+
+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.
+
+
+..
+   Local Variables:
+   mode: rst
+   indent-tabs-mode: nil
+   sentence-end-double-space: t
+   fill-column: 70 
+   End:
+===================
+INSTALLATION: SimPy
+===================
+
+:Authors: - Tony Vignaux <Vignaux@users.sourceforge.net>
+          - Klaus Muller <Muller@users.sourceforge.net>
+:SimPy version: 1.9
+:SimPy Web-site: http://simpy.sourceforge.net/
+:SimPy wiki: http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy
+:Python-Version: 2.3+
+:Revision: $Revision: 1.1.1.14 $
+:Date: $Date: 2007/12/15 05:22:22 $
+
+
+This file describes the installation of SimPy 1.9.
+
+In order to install SimPy on your system, you will need to perform the
+following steps:
+
+1. Check that you have Python 2.3 or a later version installed on your
+   system. If necessary, download it from http://www.python.org and
+   install it.
+
+2. Download and unpack the SimPy archive into a folder (using option "Use folder
+   names" in WinZip, "Re-create folders" in Linux Archive Manager, or
+   similar option in your unpacker). This will create a SimPy-1.9 folder with all source
+   code and documentation.	Run "python setup.py install" in that folder. This 
+   will install the SimPy programs in a folder on the Python 
+   search path (typically /Lib/site-packages). 
+
+3. Run one or more of the programs under /SimPy-1.9/SimPyModels to see
+   whether Python finds the SimPy module. If you get an error message
+   like "ImportError: No module named SimPy", move the SimPy folder
+   into a directory which you know to be on the Python module search
+   path (like /Lib/site-packages).
+
+4. Read the tutorial and manuals and build your own simple models. A
+   few lines of Python with SimPy calls can already model significant
+   real systems.
+
+Enjoy simulation programming in SimPy!
+<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html><head><title>GNU Lesser General Public License - GNU Project - Free Software Foundation (FSF)</title>
+
+<link rev="made" href="mailto:webmasters@www.gnu.org"></head>
+
+<body alink="#ff0000" bgcolor="#ffffff" link="#1f00ff" text="#000000" vlink="#9900dd">
+<h1>GNU Lesser General Public License</h1>
+
+
+<a href="http://www.gnu.org/graphics/philosophicalgnu.html"><img src="LGPLlicensefiles/philosophical-gnu-sm.jpg" alt=" [image of a Philosophical Gnu] " height="200" width="160"></a>
+
+<!-- Please keep this list alphabetical -->
+<!-- tower, lesser.ja.html is Japanese translation of THIS PAGE, -->
+<!-- NOT translation of LGPL itself(lesser.ja.html contains the original -->
+<!-- English version). So please do not remove the following. -->
+<!-- Thanks -mhatta -->
+[
+  <a href="http://www.gnu.org/copyleft/lesser.html">English</a>
+| <a href="http://www.gnu.org/copyleft/lesser.ja.html">Japanese</a>
+]
+
+<!-- It is best to not enumerate the translations here in a menu bar, -->
+<!-- It is best to have the users follow this link, so they have the FSF' -->
+<!-- explanation about translations being unofficial, etc. -->
+
+<p>
+</p><ul>
+  <li><a href="http://www.gnu.org/philosophy/why-not-lgpl.html">Why you shouldn't use the
+       Library GPL for your next library</a>
+  </li><li><a href="http://www.gnu.org/copyleft/gpl-violation.html"><em>What to do if you see a possible
+       LGPL violation</em></a>
+  </li><li><a href="http://www.gnu.org/copyleft/copyleft.html#translationsLGPL"><em>Translations
+       of the LGPL</em></a>
+  </li><li>The GNU Lesser General Public License as a
+       <a href="http://www.gnu.org/copyleft/lesser.txt">text file</a>
+  </li><li>The GNU Lesser General Public License as a
+       <a href="http://www.gnu.org/copyleft/lesser.texi">Texinfo</a> file
+</li></ul>
+
+<p>
+</p><hr>
+<p>
+This GNU Lesser General Public License counts as the successor
+of the GNU Library General Public License. For an explanation of
+why this change was necessary, read the
+<a href="http://www.gnu.org/philosophy/why-not-lgpl.html">Why you shouldn't use the
+Library GPL for your next library</a> article.
+</p><p>
+
+</p><h2>Table of Contents</h2>
+<ul>
+<li><a name="TOC1" href="#SEC1">GNU LESSER GENERAL PUBLIC LICENSE</a>
+<ul>
+<li><a name="TOC2" href="#SEC2">Preamble</a>
+</li><li><a name="TOC3" href="#SEC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</a>
+</li><li><a name="TOC4" href="#SEC4">How to Apply These Terms to Your New Libraries</a>
+</li></ul>
+</li></ul>
+
+<p>
+
+</p><hr>
+
+<p>
+
+
+
+</p><h2><a name="SEC1" href="#TOC1">GNU LESSER GENERAL PUBLIC LICENSE</a></h2>
+<p>
+Version 2.1, February 1999
+
+</p><p>
+</p><pre>Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+</pre>
+
+
+<h2><a name="SEC2" href="#TOC2">Preamble</a></h2>
+
+<p>
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+</p><p>
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+</p><p>
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+</p><p>
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+</p><p>
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+</p><p>
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+</p><p>
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+</p><p>
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+</p><p>
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser