1
0
forked from ROMEO/nexosim

Merge pull request #67 from asynchronics/release/0.3.0-beta.0

Prepare release v0.3.0-beta.0
This commit is contained in:
Serge Barral 2024-11-16 20:45:30 +01:00 committed by GitHub
commit 3fbceaed5d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 79 additions and 17 deletions

View File

@ -1,10 +1,63 @@
# 0.3.0-beta.0 (2024-11-16)
This beta release features a very large number of improvements and API changes,
including:
- Add a gRPC server for remote execution ([#12], [#24], [#25], [#26], [#29],
[#43])
- Single-threaded executor supporting compilation to WebAssembly ([#24])
- Add support for the `tracing` crate ([#47])
- Make `Output`s and `Requestor`s `Clone`-able ([#30], [#48])
- Make the global `Scheduler` an owned `Clone`-able type ([#30])
- Add an automatically managed action key for scheduled actions/events ([#27])
- Enable connection of different input/output pairs with `map_connect()` methods
on `Output` and `Requestor` ([#32])
- Streamline the creation of data buses (SPI, CAN, MIL-STD-1553, SpaceWire etc.)
with `filter_map_connect()` methods on `Output` and `Requestor` ([#32])
- Implement deadlock detection ([#51])
- Streamline the builder pattern for models with a `ProtoModel` trait ([#54])
- Implement execution timeout ([#57])
- Return an error when a real-time simulation clock looses synchronization
([#58])
- Catch model panics and report them as errors ([#60])
- Provide additional ordering guaranties when using the global scheduler ([#62])
- Remove `LineId` line disconnection API ([#63])
[#12]: https://github.com/asynchronics/nexosim/pull/12
[#24]: https://github.com/asynchronics/nexosim/pull/24
[#25]: https://github.com/asynchronics/nexosim/pull/25
[#26]: https://github.com/asynchronics/nexosim/pull/26
[#27]: https://github.com/asynchronics/nexosim/pull/27
[#29]: https://github.com/asynchronics/nexosim/pull/29
[#30]: https://github.com/asynchronics/nexosim/pull/30
[#32]: https://github.com/asynchronics/nexosim/pull/32
[#43]: https://github.com/asynchronics/nexosim/pull/43
[#47]: https://github.com/asynchronics/nexosim/pull/47
[#48]: https://github.com/asynchronics/nexosim/pull/48
[#51]: https://github.com/asynchronics/nexosim/pull/51
[#54]: https://github.com/asynchronics/nexosim/pull/54
[#57]: https://github.com/asynchronics/nexosim/pull/57
[#58]: https://github.com/asynchronics/nexosim/pull/58
[#60]: https://github.com/asynchronics/nexosim/pull/60
[#62]: https://github.com/asynchronics/nexosim/pull/62
[#63]: https://github.com/asynchronics/nexosim/pull/63
# 0.2.3 (2024-08-24)
- Force the waker VTable to be uniquely instantiated to re-enable the
`will_wake` optimisation after its implementation was changed in `std` ([#38])
- Ignore broadcast error when sending to a closed `EventStream` ([#37])
[#37]: https://github.com/asynchronics/nexosim/pull/37
[#38]: https://github.com/asynchronics/nexosim/pull/38
# 0.2.2 (2024-04-04) # 0.2.2 (2024-04-04)
- Add `serde` feature and serialization support for `MonotonicTime` ([#19]). - Add `serde` feature and serialization support for `MonotonicTime` ([#19]).
- Update `multishot` dependency due to soundness issue in older version ([#23]). - Update `multishot` dependency due to soundness issue in older version ([#23]).
[#19]: https://github.com/asynchronics/asynchronix/pull/19 [#19]: https://github.com/asynchronics/nexosim/pull/19
[#23]: https://github.com/asynchronics/asynchronix/pull/23 [#23]: https://github.com/asynchronics/nexosim/pull/23
# 0.2.1 (2024-03-06) # 0.2.1 (2024-03-06)
@ -13,8 +66,8 @@
- Add support for custom clocks and provide an optional real-time clock - Add support for custom clocks and provide an optional real-time clock
([#9], [#15]). ([#9], [#15]).
[#9]: https://github.com/asynchronics/asynchronix/pull/9 [#9]: https://github.com/asynchronics/nexosim/pull/9
[#15]: https://github.com/asynchronics/asynchronix/pull/15 [#15]: https://github.com/asynchronics/nexosim/pull/15
### Misc ### Misc
@ -33,9 +86,9 @@
`schedule_*event` method that accept either a `Duration` or a `MonotonicTime` `schedule_*event` method that accept either a `Duration` or a `MonotonicTime`
([#7]). ([#7]).
[#5]: https://github.com/asynchronics/asynchronix/pull/5 [#5]: https://github.com/asynchronics/nexosim/pull/5
[#6]: https://github.com/asynchronics/asynchronix/pull/6 [#6]: https://github.com/asynchronics/nexosim/pull/6
[#7]: https://github.com/asynchronics/asynchronix/pull/7 [#7]: https://github.com/asynchronics/nexosim/pull/7
# 0.1.0 (2023-01-16) # 0.1.0 (2023-01-16)

View File

@ -5,9 +5,9 @@ discrete-event simulation framework written in Rust. It is meant to scale from
small, simple simulations to very large simulation benches with complex small, simple simulations to very large simulation benches with complex
time-driven state machines. time-driven state machines.
[![Cargo](https://img.shields.io/crates/v/asynchronix.svg)](https://crates.io/crates/asynchronix) [![Cargo](https://img.shields.io/crates/v/nexosim.svg)](https://crates.io/crates/nexosim)
[![Documentation](https://docs.rs/asynchronix/badge.svg)](https://docs.rs/asynchronix) [![Documentation](https://docs.rs/nexosim/badge.svg)](https://docs.rs/nexosim)
[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/asynchronics/asynchronix#license) [![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/asynchronics/nexosim#license)
## Overview ## Overview
@ -53,16 +53,25 @@ More fleshed out examples can also be found in the dedicated
[simulator](nexosim/examples) and [utilities](nexosim-util/examples) [simulator](nexosim/examples) and [utilities](nexosim-util/examples)
directories. directories.
[API]: https://docs.rs/asynchronix [API]: https://docs.rs/nexosim
## Usage ## Usage
Note that this page documents version `0.3.0-beta` of NeXosim, which is Note that this page currently documents the latest beta version for the upcoming
not available on crates.io yet. `0.3.0` release, which contains numerous improvements over the `0.2` branch.
While the API is considered nearly frozen, some minor changes are still
possible.
For the last official release (sill under the name `asynchronix`), add To use the beta version, add to your `Cargo.toml`:
this to your `Cargo.toml`:
```toml
[dependencies]
nexosim = "0.3.0-beta.0"
```
If you would rather stay for now with the last official release (published under
the `asynchronix` name), add this to your `Cargo.toml`:
```toml ```toml
[dependencies] [dependencies]

View File

@ -4,4 +4,4 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
nexosim = {version = "0.2.2", path = "../nexosim"} nexosim = {version = "0.3.0-beta.0", path = "../nexosim"}

View File

@ -10,7 +10,7 @@ name = "nexosim"
# - Update if necessary copyright notice in LICENSE-MIT # - Update if necessary copyright notice in LICENSE-MIT
# - Create a "vX.Y.Z" git tag # - Create a "vX.Y.Z" git tag
authors = ["Serge Barral <serge.barral@asynchronics.com>"] authors = ["Serge Barral <serge.barral@asynchronics.com>"]
version = "0.2.2" version = "0.3.0-beta.0"
edition = "2021" edition = "2021"
rust-version = "1.77.0" rust-version = "1.77.0"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"