Commit Graph

  • 7025643954 build: use addZigmulatorModule function main cozis 2026-06-20 17:23:43 +02:00
  • 569213e512 readme: mention how to include zigmulator in a project cozis 2026-06-20 17:23:05 +02:00
  • 38c52a67c2 build: add .zon file cozis 2026-06-20 17:21:46 +02:00
  • 80f1667695 simulator: increase default interval for partition and crash events cozis 2026-06-20 17:10:42 +02:00
  • 60d4306856 node: remove local_time and use the scheduler's global time instead cozis 2026-06-20 16:47:31 +02:00
  • 91a515cf87 io_interface: properly propagate error.Canceled to caller cozis 2026-06-20 16:08:11 +02:00
  • 7f3e129337 build: add crash_recovery.zig to build.zig cozis 2026-06-20 14:25:35 +02:00
  • 3c5b88223c examples: add example that tests node crash injection cozis 2026-06-20 14:25:08 +02:00
  • b5ee1f0885 simulator: add automatic inection of node crashes cozis 2026-06-20 14:23:59 +02:00
  • 987ba52068 node: support crash and restart cozis 2026-06-20 14:17:43 +02:00
  • d6e098cf40 scheduler: support crashing and restarting tasks cozis 2026-06-20 14:14:19 +02:00
  • 5163adc087 sometimes: note possible mutable site symbol cozis 2026-06-20 10:05:07 +02:00
  • dd2c5b1ec9 simulator: add per-step events cozis 2026-06-20 10:03:12 +02:00
  • b0a167036c simulator: add unified fault control cozis 2026-06-20 10:02:29 +02:00
  • 7a2a841395 node: add fault enable toggle cozis 2026-06-20 09:58:51 +02:00
  • 638d8073b0 io_interface: return peer address from accept cozis 2026-06-20 09:55:29 +02:00
  • a4714b07e6 node: expose remote socket address cozis 2026-06-20 09:54:57 +02:00
  • 58f8fc7581 examples: give clients network addresses cozis 2026-06-20 09:54:04 +02:00
  • 9dc7bea95c io_interface: map addressless connect cozis 2026-06-20 09:53:45 +02:00
  • f34b542582 network: track socket addresses cozis 2026-06-20 09:53:13 +02:00
  • 3f96898f54 io_interface: implement fileSetLength cozis 2026-06-20 09:46:35 +02:00
  • edecb61ba4 node: add setFileLength cozis 2026-06-20 09:46:14 +02:00
  • 13f001e317 file_system: add setFileLength cozis 2026-06-20 09:45:59 +02:00
  • 2c5afbd283 sometimes: don't report reachableSometimes in the N/M form cozis 2026-06-19 17:03:55 +02:00
  • 93b4efbb2f node: add injection of partial reads and writes cozis 2026-06-19 16:57:47 +02:00
  • 6d27a5fcec examples: add example that tests whether fault injection reaches interesting branches cozis 2026-06-19 16:57:19 +02:00
  • c37d29977d examples: add fault coverage example cozis 2026-06-19 15:52:03 +02:00
  • 306aa88f00 simulator: add network partition fault injection cozis 2026-06-19 15:51:53 +02:00
  • e8ba94b418 partition_policy: add partition shape policy cozis 2026-06-19 15:51:38 +02:00
  • 0b792274e3 network: honor partitions in connect and send cozis 2026-06-19 15:51:26 +02:00
  • 50dea84f1d partition: add broken-link tracking cozis 2026-06-19 15:51:13 +02:00
  • 08518e15ad io_interface: implement dirRename cozis 2026-06-19 13:41:15 +02:00
  • 5b1e8c5d24 node: add rename cozis 2026-06-19 13:41:04 +02:00
  • 89e5fff8a4 file_system: add rename cozis 2026-06-19 13:40:50 +02:00
  • 3a0eab16a7 examples: add example for sometimes assertions cozis 2026-06-19 13:27:03 +02:00
  • fa09d425a0 examples: minor cleanup cozis 2026-06-19 13:26:47 +02:00
  • e98630cafd simulator: expose reachableSometimes via Simulator cozis 2026-06-19 13:26:24 +02:00
  • d3def64bba sometimes: implement reachableSometimes and build a list of sometimes branches at compile-time cozis 2026-06-19 13:25:59 +02:00
  • 9f867c71ee examples: explicitly dump sometimes assertions report in example.zig cozis 2026-06-19 13:02:16 +02:00
  • 53aa509153 simulator: expose sometimes assertions via the simulator object cozis 2026-06-19 13:01:04 +02:00
  • 9e56a63360 sometimes: implement registry of sometimes assertions cozis 2026-06-19 13:00:44 +02:00
  • 43a24f4771 readme: update README.md and add DST.md cozis 2026-06-09 15:33:54 +02:00
  • 890d16fa7b readme: add timeline diagram image cozis 2026-06-08 12:44:20 +02:00
  • b7d748d081 misc: ignore .html and .txt files cozis 2026-06-08 12:36:25 +02:00
  • 6133b7cb60 build: add timeline_html, timeline_ascii, strace commands to build.zig to easily generate diagrams from a trace cozis 2026-06-08 12:36:09 +02:00
  • 720d20d3e0 diagram: add program to generate various visual representations of the simulation trace cozis 2026-06-08 12:35:34 +02:00
  • b49025bc39 examples: log output of tcp_ping_pong to simulation.log cozis 2026-06-08 11:33:43 +02:00
  • 6b0ba04058 misc: ignore .log files cozis 2026-06-08 11:33:13 +02:00
  • 7423d8fad7 trace: minor fix cozis 2026-06-08 11:31:35 +02:00
  • aa9c3b7274 trace: write traced events to disk cozis 2026-06-08 11:28:57 +02:00
  • a8ac2773f9 simulator: add setTraceOutputFile to enable tracing and specify the output file cozis 2026-06-08 11:00:49 +02:00
  • 4b2c103e71 trace: add backing file handle cozis 2026-06-08 10:59:31 +02:00
  • 57527c270e scheduler: call taskState cozis 2026-06-08 10:46:47 +02:00
  • 53ad5b297a trace: add taskState cozis 2026-06-08 10:45:30 +02:00
  • 3b5e7f54d4 scheduler: call timeAdvanced cozis 2026-06-08 10:41:52 +02:00
  • 7c642e384e trace: add timeAdvanced cozis 2026-06-08 10:40:56 +02:00
  • d7f9eb2a51 scheduler: call taskSpawned and taskRemoved cozis 2026-06-08 10:39:48 +02:00
  • a3dbb48718 trace: add taskSpawned and taskRemoved cozis 2026-06-08 10:39:34 +02:00
  • 34faa08f68 scheduler: call enterTask/leaveTask when context switching cozis 2026-06-08 10:37:17 +02:00
  • f09afaa5a8 trace: add enterTask and leaveTask cozis 2026-06-08 10:35:17 +02:00
  • ea3da4004d node: call tracing functions when doing I/O cozis 2026-06-08 10:30:19 +02:00
  • 7c7ef6db6f trace: add dummy implementation of the tracing object cozis 2026-06-08 10:23:35 +02:00
  • 3676ceb9c4 node: use random delays instead of static ones when simulating I/O delay cozis 2026-06-08 10:19:16 +02:00
  • d77714e11a scheduler: pick ready tasks randomly cozis 2026-06-08 10:12:41 +02:00
  • bad44c36f1 simulator: Add PRNG field cozis 2026-06-08 10:10:23 +02:00
  • 92f301ea40 node: add local_time and increment it by a fixed amount any time a task runs cozis 2026-06-08 10:05:52 +02:00
  • 4e3cae8cc8 simulator: remove tests cozis 2026-06-08 10:02:24 +02:00
  • 36752f6d0e io_interface: implement fileSync mock cozis 2026-06-04 19:09:02 +02:00
  • 9769188fc9 file_system: expose syncFile from FileSystem cozis 2026-06-04 19:08:28 +02:00
  • e9884fbe85 file_system: add no-op syncFile cozis 2026-06-04 19:06:33 +02:00
  • 69b9ddfc72 node: make accept blocking cozis 2026-06-04 18:20:14 +02:00
  • ec0659e921 network: allow send on not yet connected sockets cozis 2026-06-04 18:15:09 +02:00
  • 0a8123b158 io_interface: propagate cancellation errors cozis 2026-06-04 18:03:01 +02:00
  • 140a64d609 io_interface: implement recancel and checkCancel mocks cozis 2026-06-04 17:59:49 +02:00
  • 64c229afb4 io_interface: drain canceled groups cozis 2026-06-04 17:57:41 +02:00
  • e1fc8c6125 io_interface: actually cancel tasks when calling the groupCancel mock cozis 2026-06-04 17:54:39 +02:00
  • d1ee873388 io_interface: properly call futexWaitUncancelable from the mock cozis 2026-06-04 17:52:53 +02:00
  • 20007f3c6b node: expose futexWaitUncancelable from the scheduler cozis 2026-06-04 17:52:29 +02:00
  • 4f35537e3d scheduler: add futexWaitUncancelable cozis 2026-06-04 17:51:58 +02:00
  • f90d4d883d scheduler: wake canceled tasks cozis 2026-06-04 17:49:53 +02:00
  • fe1acaee8c scheduler: make task wait cancellable cozis 2026-06-04 17:47:05 +02:00
  • 445fd2fd7f scheduler: Make sleep cancellable cozis 2026-06-04 17:42:10 +02:00
  • 1c1cc1041a node: Expose recancel and checkCancel at the node layer cozis 2026-06-04 17:36:21 +02:00
  • a01858aede scheduler: Add recancel and checkCancel to help manage cancellation state cozis 2026-06-04 17:36:01 +02:00
  • b57cb8e87b node: Expose .cancel at the node layer cozis 2026-06-04 17:32:38 +02:00
  • 144de52f27 scheduler: Add cancellation flag to Task and .cancel method to set it from the parent cozis 2026-06-04 17:29:34 +02:00
  • cf6c78577b io_interface: Add mocks for futexWait, futexWaitUncancelable, futexWake cozis 2026-06-04 13:44:48 +02:00
  • 3b3fc75f1b node: Expose futexes at the node level cozis 2026-06-04 13:43:15 +02:00
  • cde2061b3c scheduler: Implement futexes at the scheduler level cozis 2026-06-04 13:41:47 +02:00
  • 3bdcce3ade io_interface: First mock of the Group-related methods cozis 2026-06-04 13:38:35 +02:00
  • ce51e82363 scheduler: Minor bug fix cozis 2026-06-04 13:38:03 +02:00
  • f61bb93a22 node: Expose the scheduler's sub-task APIs through Node cozis 2026-06-04 13:34:36 +02:00
  • 1f5e185bec scheduler: Implement spawning of nested tasks cozis 2026-06-04 12:29:32 +02:00
  • aec8ff5154 io_interface: Modify netWrite to only block while reading into the first slice cozis 2026-06-02 13:54:33 +02:00
  • 38ae508c49 node: Add boolean argument to readSocket to switch between blocking and non-blocking mode cozis 2026-06-02 13:48:28 +02:00
  • 1250375063 network: Implement isConnected to determine whether a connection socket is connected or not cozis 2026-06-02 13:46:41 +02:00
  • 227cf5c03e scheduler: Add canary bytes to detect stack overflows cozis 2026-06-02 12:10:19 +02:00
  • c922ed62e1 file_system: Improve output of the dump function cozis 2026-06-02 11:43:15 +02:00
  • f6185054b5 io_interface: Implement eager execution in the groupAsync callback cozis 2026-06-02 11:33:53 +02:00
  • e046fcd45e build: Add select_group_async.zig to build.zig cozis 2026-06-01 15:12:31 +02:00