1
0
forked from ROMEO/nexosim

Prepare release v0.3.0-beta.0

This commit is contained in:
Serge Barral 2024-11-16 19:46:52 +01:00
parent 7e07f3f949
commit 09b3c44eab
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"