You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-56Lines changed: 10 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,70 +42,24 @@ julia> Pkg.add("SimJulia")
42
42
43
43
## Release Notes
44
44
45
-
*2017: v0.5
45
+
* v0.5 (2017)
46
46
* The old way of making processes is deprecated in favor of the semi-coroutine approach as implemented in [ResumableFunctions](https://github.com/BenLauwens/ResumableFunctions.jl.git). The `@process` macro replaces the `@coroutine` macro. The old `@process` macro is temporarily renamed `@oldprocess` and will be removed when the infrastructure supporting the `produce` and the `consume` functions is no longer available in Julia. (DONE)
47
47
* This version no longer integrates a continuous time solver. A continuous simulation framework based on [DISCO](http://www.akira.ruc.dk/~keld/research/DISCO/) and inspired by the standalone [QSS](https://sourceforge.net/projects/qssengine/) solver using SimJulia as its discrete-event engine can be found in the repository [QuantizedStateSystems](https://github.com/BenLauwens/QuantizedStateSystems.jl.git) (WIP):
48
48
* Documentation is automated with [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl) (WIP: Overview and Tutorial OK).
49
-
* 2017: v0.4.1, the `resumable` and `yield` macro are put in a seperate package [ResumableFunctions](https://github.com/BenLauwens/ResumableFunctions.jl.git):
49
+
* v0.4.1 (2017)
50
+
* the `@resumable` and `@yield` macros are put in a seperate package [ResumableFunctions](https://github.com/BenLauwens/ResumableFunctions.jl.git):
50
51
* Users have to take into account the following syntax change: `@yield return arg` is replaced by `@yield arg`.
51
-
* 2017: v0.4 only supports Julia v0.6 and above. It is a complete rewrite: more julian and less pythonic. The discrete event features are on par with v0.3 (SimPy v3) and following features are added:
52
-
* Scheduling of events can be done with `Base.Dates.Datetime` and `Base.Dates.Period`:
53
-
```julia
54
-
using SimJulia
55
-
using Base.Dates
56
-
57
-
functiondatetimetest(sim::Simulation)
58
-
println(nowDatetime(sim))
59
-
yield(timeout(sim, Day(2)))
60
-
println(nowDatetime(sim))
61
-
end
62
-
63
-
datetime =now()
64
-
sim =Simulation(datetime)
65
-
@processdatetimetest(sim)
66
-
run(sim, datetime+Month(3))
67
-
```
52
+
* v0.4 (2017) only supports Julia v0.6 and above. It is a complete rewrite: more julian and less pythonic. The discrete event features are on par with v0.3 (SimPy v3) and following features are added:
53
+
* Scheduling of events can be done with `Base.Dates.Datetime` and `Base.Dates.Period`
68
54
* Two ways of making `Processes` are provided:
69
-
-using the existing concept of `Tasks`:
70
-
```julia
71
-
function fibonnaci(sim::Simulation)
72
-
a = 0.0
73
-
b = 1.0
74
-
while true
75
-
println(now(sim), ": ", a)
76
-
yield(timeout(sim, 1))
77
-
a, b = b, a+b
78
-
end
79
-
end
80
-
81
-
sim = Simulation()
82
-
@process fibonnaci(sim)
83
-
run(sim, 10)
84
-
```
85
-
-using a novel finite-statemachine approach:
86
-
```julia
87
-
using ResumableFunctions
88
-
89
-
@resumable function fibonnaci(sim::Simulation)
90
-
a = 0.0
91
-
b = 1.0
92
-
while true
93
-
println(now(sim), ": ", a)
94
-
@yield timeout(sim, 1)
95
-
a, b = b, a+b
96
-
end
97
-
end
98
-
99
-
sim = Simulation()
100
-
@coroutine fibonnaci(sim)
101
-
run(sim, 10)
102
-
```
55
+
- using the existing concept of `Tasks`
56
+
- using a novel finite-statemachine approach
103
57
* A continuous time solver based on the standalone [QSS](https://sourceforge.net/projects/qssengine/) solver is implemented. Only non-stiff systems can be solved efficiently.
104
-
*2015:v0.3 synchronizes the API with SimPy v3 and is Julia v0.3, v0.4 and v0.5 compatible:
58
+
* v0.3 (2015) synchronizes the API with SimPy v3 and is Julia v0.3, v0.4 and v0.5 compatible:
105
59
* Documentation is available at [readthedocs](http://simjuliajl.readthedocs.org/en/latest/).
106
60
* The continuous time solver is not implemented.
107
-
*2014:v0.2 introduces a continuous time solver inspired by the Simula library [DISCO](http://www.akira.ruc.dk/~keld/research/DISCO/) and is Julia v0.2 and v0.3 compatible.
108
-
*2013:v0.1 is a Julia clone of SimPy v2 and is Julia v0.2 compatible.
61
+
* v0.2 (2014) introduces a continuous time solver inspired by the Simula library [DISCO](http://www.akira.ruc.dk/~keld/research/DISCO/) and is Julia v0.2 and v0.3 compatible.
62
+
* v0.1 (2013) is a Julia clone of SimPy v2 and is Julia v0.2 compatible.
0 commit comments