IOSim (Advanced Track)
summary
iosim is a Haskell library that runs code as a drop-in replacement for IO but as a deterministic virtual-time simulation, producing detailed event traces (thread ids, timers, STM transactions). it implements async, STM, time/timers and an io-classes abstraction so the same code can run in IO or in simulation; iocm and iocm-por explore interleavings to surface races (simultaneous TCP open example) and found real deadlocks in a reader/writer demo. tests extract meaningful events via trace-select events, allow fault injection and mocking (files/sockets), and simulations of “years” of virtual time execute in seconds; runtime has overhead unless specialized back to IO. repository and runnable demos exist.
AI-written summary · about
chapters (12)
- 0:00Start
- 1:39About Me
- 2:27What's Io Simulator
- 5:32Introduction To Control Variant Logging
- 7:11Control Variant Logging
- 17:17Performance Cost
- 18:53The Scheduling of Threats
- 20:30Testing
- 21:42Api Functions
- 22:39The Quirks of Ioc
- 24:57Not a Model Checker
- 44:44Add New Features
related talks
40mTesting Distributed Systems w/ Deterministic Simulation
42mSimulation Testing
30mOSVVM: Methodology, Library, and Models
26mSimulant in Anger
12mRISC-V: Hardcore/Softcore Co-Simulation Environment with Cycle-Accurate Rollback
47mThe Native Simulator and Zephyr
15mMimesys: Generating Realistic Executable Testing Environments from Resource Usage Traces
01h 04mHaskell - A Peek Inside the Ivory Tower
