1
0
forked from ROMEO/nexosim

36 Commits

Author SHA1 Message Date
Serge Barral
ba1e668447 Report panics as errors + identify panicking model
The build context is now passed as a mutable reference due to the need
to mutate data when adding a model.

Contains small unrelated cleanups and documentation improvements too.
2024-11-13 19:40:58 +01:00
Serge Barral
e6901386cf Add support for simulation timeouts 2024-11-09 12:17:27 +01:00
Serge Barral
abbfb64628 Run integration tests on both ST and MT executors 2024-11-08 11:08:47 +01:00
Jauhien Piatlicki
35e7e17814
Merge pull request #54 from asynchronics/feature/protomodel
Introduce ProtoModel trait, remove Model::setup
2024-11-05 23:36:51 +01:00
Serge Barral
039fefad47 Introduce ProtoModel trait, remove Model::setup
The external_input example has been as well adapted and (at least
temporarily) simplifiedi/modified to remove the dependencies on
`atomic_wait` and `mio`.
2024-11-05 16:16:42 +01:00
Jaŭhien Piatlicki
634614a2a1 Add observable states utility 2024-10-31 14:43:30 +01:00
Serge Barral
7487a264ab Add tracing support for simulation timestamps 2024-09-12 15:35:31 +02:00
Serge Barral
e376f17c7c Add model tracing spans + tracing feature flag 2024-09-10 11:12:49 +02:00
Serge Barral
b500d071ec Upgrade some dependencies 2024-09-08 23:21:32 +02:00
Serge Barral
1c0c8ed529 Add automatic feature documentation for docs.rs 2024-09-08 17:31:39 +02:00
Serge Barral
6b43fcf704 Simplify gRPC backend arch + remove wasm backend 2024-09-08 17:03:56 +02:00
Serge Barral
114c148114 Move loom as a dev-dependency 2024-09-07 19:53:30 +02:00
Jaŭhien Piatlicki
6e3d5bb132 Change scheduler interface and add external inputs example.
Relevant for issue #13.
2024-08-02 14:06:49 +02:00
Serge Barral
8ec5cd9e9b Replace MessagePack by CBOR
CBOR looks very similar but seems more future-proof as it was
standardized by the IETF in RFC 8949.
2024-06-19 12:00:59 +02:00
Serge Barral
0abc520e4b Split sinks and source registries
This makes it possible to concurrently control and monitor the
simulation when using gRPC.
Accordingly, the gRPC server now runs on 2 threads so it can serve
control and monitoring requests concurrently.
2024-06-12 11:20:34 +02:00
Serge Barral
59d2af51ba Expose the Protobuf simulation service to WASM/JS 2024-05-27 23:33:02 +02:00
Serge Barral
e4b108c6b7 Satisfy newest clippy 2024-05-06 16:45:07 +02:00
Jaŭhien Piatlicki
0734dc2fac Implement clonable outputs and add submodels example 2024-04-29 21:00:12 +02:00
Serge Barral
9b4f69c17e gRPC: small fix + minor changes 2024-04-26 16:10:00 +02:00
Jaŭhien Piatlicki
7526ffbcea Add setup step. 2024-04-26 11:48:11 +02:00
Serge Barral
e84e802f09 Initial (g)RPC implementation 2024-04-25 11:12:54 +02:00
Serge Barral
c984202005 Prepare release v0.2.2 2024-04-04 13:44:10 +02:00
Serge Barral
23160ff347 Update multishot crate dependency
A soundness issue was discovered in the `multishot` dependency that
was fixed in 0.3.2.
2024-04-04 13:29:57 +02:00
8e16f8c9b2
small fix for new serde dependency 2024-03-13 11:10:26 +01:00
dc576013e5
Add optional serde support and make MonotonicTime serializable 2024-03-12 18:11:06 +01:00
Serge Barral
d2f165abc7 Prepare release v0.2.1 2024-03-06 16:40:43 +01:00
Serge Barral
1be2f48a00 Revert "Merge pull request #12 from asynchronics/feature/event-sinks"
This reverts commit 7e881afb638ccc0dbcfc7b539fc152dc923d63e1, reversing
changes made to 9d78e4f72a4c6ff459fc386b2f25beae40b94429.
2024-03-06 16:16:55 +01:00
Serge Barral
863f995f1b Small changes and cleanups to prepare the RPC work 2024-02-19 13:20:02 +01:00
Serge Barral
ef703f5b7e Add support for custom/real-time clocks 2023-08-29 12:46:40 +02:00
Serge Barral
fe3fd372e7 Prepare release v0.2.0 2023-08-15 17:16:16 +02:00
Serge Barral
6ffa685c90 Exclude non-loom test when asynchronix_loom set 2023-08-14 14:18:46 +02:00
Serge Barral
f458377308 Make it possible to cancel current-time events
This is a pretty large patch that impacts the API.

Until now, it was not possible to cancel events that were scheduled for
the current simulation time slice, making it necessary for the user to
use complex workarounds (see former version of the espresso machine
example).

The new implementation makes this possible but the generation of a key
associated to an event has now a non-negligible cost (basicaly it
creates three references to an Arc). For this reason, the API now
defaults to NOT creating a key, and new methods were added for
situations when the event may need to be cancelled and a key is
necessary.

See the much simplified implementation of the espresso machine example
for a motivating case.
2023-07-21 14:23:20 +02:00
Serge Barral
3fcb05eae9 Replace event module by async-event crate 2023-07-16 16:37:40 +02:00
Serge Barral
31520d461a First release candidate for v0.1.0 2023-01-16 23:05:46 +01:00
Serge Barral
d2cfbcfa34 Replace the Parker crate by crossbeam_utils 2022-10-18 12:20:02 +02:00
Serge Barral
5c94ec6a65 First public commit 2022-10-12 05:33:16 +02:00