1
0
forked from ROMEO/nexosim
Commit Graph

145 Commits

Author SHA1 Message Date
a6c3217fdf Merge pull request #65 from asynchronics/feature/rename_crate
Rename crate to NeXosim
2024-11-16 12:32:05 +01:00
5ab898ad79 Rename crate to NeXosim 2024-11-16 12:26:36 +01:00
a96a4dc0bd Merge pull request #64 from asynchronics/feature/grpc_api_change
Make the gRPC init more general
2024-11-15 23:26:40 +01:00
84ad02a248 Make the gRPC init more general
Instead of producing a SimInit object, a bench is now expected to return
a fully constructed simulation with its scheduler.

This means that the client does not necessarily need to provide the
starting time for the simulation. This start time may be hardcoded in
the bench, or may be taken as a parameter for the bench configuration.

This change make it possible for benches to do more, for instance to
pre-schedule some events, or to do less, for instance by hardcoding the
simulation time rather than accept an arbitrary simulation time.
2024-11-15 23:23:17 +01:00
c749a49154 Merge pull request #63 from asynchronics/feature/misc_api_changes
Feature/misc api changes
2024-11-15 22:46:05 +01:00
3c1056d699 Remove the LineId API
This was probably never used.
2024-11-15 17:15:25 +01:00
0f1d876aed Return both simulation and scheduler at init 2024-11-15 16:52:24 +01:00
f4686af49a Finalize the Context and BuildContext API
The API style is now more uniform: both are passed by mutable ref, and
only expose accessors. Additionally, the methods that were initially
accessed through the scheduler field are now directly implemented on
`Context`.
2024-11-15 16:12:07 +01:00
b1896dbde9 Order scheduled messages by their origin
Previously, the scheduler key used the target model as subkey to order
messages that target the same model.

Now this subkey is the origin model rather than the target, or in the
case of the global scheduler, 0. This doesn't change anythin in practice
for the local scheduler since the origin and target models were the
same, but for the global scheduler this provides additional guarranties.

For instance, if the global scheduler is used to schedule an event
targetting model A and then an event targetting model B where the latter
triggers a message to A, it is now guarranteed that the first message
will get to A before the second.
2024-11-15 14:39:51 +01:00
1cefe4b2f6 Merge pull request #61 from asynchronics/feature/unified_step_until
Merge step_by and step_until into a unique method
2024-11-14 17:19:13 +01:00
b5aea810ae Merge step_by and step_until into a unique method
Now that `step_by` returns an error anyway (it was unfaillible before),
there is no more incentive to keep it as a separate method.
The `step_until` method now accepts an `impl Deadline`, which covers
both cases (`Duration` and `MonotonicTime`).
2024-11-14 17:01:33 +01:00
95aac7721c Merge pull request #56 from asynchronics/document-utils
Document observable states
2024-11-14 00:20:13 +01:00
f7d3e48a1f Remove docstring 2024-11-14 00:01:55 +01:00
1af4de1832 Remove println from examples 2024-11-13 23:59:50 +01:00
1a0dff0f6e Document observable states 2024-11-13 23:59:50 +01:00
a533b3e6c1 Merge pull request #60 from asynchronics/feature/catch_panics
Report panics as errors + identify panicking model
2024-11-13 23:56:51 +01:00
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
e6f77ea8e5 Merge pull request #58 from asynchronics/feature/clock-synchronization
Check clock sync with configurable tolerance
2024-11-12 13:21:58 +01:00
49e713262b Check clock sync with configurable tolerance 2024-11-12 11:34:17 +01:00
b690055848 Merge pull request #59 from asynchronics/fix/loom_ci_path_on_pr
Add path filtering for Loom CI also on PRs
2024-11-12 11:24:33 +01:00
44e86b81d1 Add path filtering for Loom CI also on PRs 2024-11-12 11:21:58 +01:00
0c2f92d4cf Merge pull request #57 from asynchronics/feature/timeout
Add support for simulation timeouts
2024-11-09 12:18:41 +01:00
e6901386cf Add support for simulation timeouts 2024-11-09 12:17:27 +01:00
c6fd4d90c4 Merge pull request #55 from asynchronics/feature/multiexecutor-integration-tests
Run integration tests on both ST and MT executors
2024-11-08 12:12:36 +01:00
abbfb64628 Run integration tests on both ST and MT executors 2024-11-08 11:08:47 +01:00
35e7e17814 Merge pull request #54 from asynchronics/feature/protomodel
Introduce ProtoModel trait, remove Model::setup
2024-11-05 23:36:51 +01:00
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
06079bd5cd Merge pull request #53 from asynchronics/feature/util
Add asynchronix-util crate
2024-10-31 17:03:51 +01:00
0732a7ef54 Changes after review 2024-10-31 15:59:35 +01:00
087f3c84cc Add README to asynchronix-util 2024-10-31 14:57:41 +01:00
634614a2a1 Add observable states utility 2024-10-31 14:43:30 +01:00
8f7057689c Merge pull request #51 from asynchronics/feature/deadlock-detection
Feature/deadlock detection
2024-10-29 11:02:55 +01:00
e7b64524e0 Report deadlocked models and their malbox size 2024-10-28 12:25:02 +01:00
1cfaa00f9e Make execution failible, impl deadlock detection
TODO: return the list of models involved in a deadlock.

Note that Many execution errors are not implemented at all at the
moment and will need separate PRs, namely:
- Terminated
- ModelError
- Panic
2024-10-20 12:35:44 +02:00
e7889c8e9b Merge pull request #48 from SMassalski/main
Fix missing derive clone statement for Requestor
2024-10-17 17:29:37 +02:00
ef17e56b10 Fix missing derive clone statement for Requestor 2024-10-17 16:20:44 +02:00
ef43f99a9c Merge pull request #47 from asynchronics/feature/tracing
Feature/tracing
2024-09-13 16:20:35 +02:00
1dfb79f596 Add small example of tracing logging 2024-09-13 16:08:49 +02:00
7487a264ab Add tracing support for simulation timestamps 2024-09-12 15:35:31 +02:00
e376f17c7c Add model tracing spans + tracing feature flag 2024-09-10 11:12:49 +02:00
c7d86b9df1 Merge pull request #46 from asynchronics/feature/upgrade-dependencies
Upgrade some dependencies
2024-09-08 23:25:08 +02:00
b500d071ec Upgrade some dependencies 2024-09-08 23:21:32 +02:00
7aa6bd10a6 Merge pull request #45 from asynchronics/fix/ci-doc-and-ci-checkout
Update checkout to v4, build docs with nightly
2024-09-08 20:23:52 +02:00
de97b7cf0e Update checkout to v4, build docs with nightly 2024-09-08 20:15:15 +02:00
d898fb3f05 Merge pull request #44 from asynchronics/feature/improve-docgen
Feature/improve docgen
2024-09-08 17:40:09 +02:00
2a8a3738cb Use better supported UTF symbols for arrow heads 2024-09-08 17:38:58 +02:00
1c0c8ed529 Add automatic feature documentation for docs.rs 2024-09-08 17:31:39 +02:00
bf7fb9b28b Merge pull request #43 from asynchronics/feature/refactor-rpc
Simplify gRPC backend arch + remove wasm backend
2024-09-08 17:08:01 +02:00
6b43fcf704 Simplify gRPC backend arch + remove wasm backend 2024-09-08 17:03:56 +02:00
3ccf05335b Merge pull request #41 from asynchronics/feature/loom-as-dev-dependency
Move loom as a dev-dependency
2024-09-07 19:56:21 +02:00