Skip to content

Latest commit

 

History

History
1111 lines (1055 loc) · 158 KB

CHANGELOG.md

File metadata and controls

1111 lines (1055 loc) · 158 KB

v0.0.7 (2022-04-05)

Bug fixes

  • journal: make the testsuite compile with new bytebuffer changes (8571fd5)
  • sut: Add missing port to places (ff056ac)
  • sut: another off by one bug with indexes in the state machine (ea410f7)
  • sut: Better from/to in Dumblog debug-file (856e03a)
  • sut: Make dumblog compile after faulty merge (447c43f)
  • sut: remove another +1 on index (b85a147)
  • sut: remove +1 from backup (61162f5)
  • sut: correlate requests and responses with key (2e7c365)
  • new-debugger: Always add spacing for messages (580a3cf)
  • sut: Make dumblog warning-free (8883f40)
  • journal: add sleep to avoid spin loop on macos (9c274b0)
  • journal: Add threadDelay to fix maxos issue (0ee9632)
  • journal: make streaming blocking read work (51c1c06)
  • sut: change back snapshot threadshold (c1d01fe)
  • sut: change back iterations and clients (633d1a4)
  • sut: workaround for rowid starting at 1 in SQLite (41f7dea)
  • sut: make the zero-copy variant work by blocking cleaning (5b7895e)
  • sut: avoid crashing metrics if metadata file gets removed (4e41132)
  • sut: try to fix latency (309f72b)
  • sut: make it more clear that fromBS is a hack (8f8c949)
  • sut: more accurate throughput (a7f48cf)
  • sut: Dumblog should still replay from beginning if no snapshot exists (80ab149)
  • sut: increase wake up retries (ec14931)
  • sut: the unit for service time was wrong. (25e229b)
  • sut: total number of ops should be iterations * num of clients (368a714)
  • sut: Update dumblog with the new changes to bytesConsumed (7bd7167)
  • sut: make the benchmark for zero copy variant work (aab9e8e)
  • sut: return 404 when reading from unwritten index in zero copy (ef13ec5)
  • journal: make cleaning thread safe by changing read (d371ebc)
  • journal: make dump journal not crash if body length isn't positive (59e143d)
  • sut: down throw errors in http client (9c59a0a)
  • sut: make it easier to parse the appended index in journal variant (db06cfa)
  • journal: fallocate metrics file if it doesn't exist (50155c0)
  • sut: remove *_ versions of read and write in http client (81e4929)
  • sut: add missing overloaded strings extension (26760e0)
  • journal: retry read on empty tag (8906236)
  • journal: block read on negative length (fd08085)
  • journal: don't filter invalid sequential programs when shrinking concurrent ones (f709f30)
  • journal: return nothing in read if padding len is negative (a727860)
  • journal: make hard limit more precise (2602030)
  • journal: fix two bugs in the model (5221e40)
  • journal: change back to returning admin action in tryClaim (efa6158)
  • journal: Fix CAS for 64-bits (c4532de)
  • journal: change admin action to rotation (0b33e58)
  • journal: take slice into account for cas ops (994dd36)
  • journal: previous commit was not quite right (0cac51d)
  • journal: initialise all partitions with the initial term (97a86cb)
  • journal: make read return nothing if length isn't positive (72e4e0e)
  • journal: remove hardLimit and increment of term count (5e59157)
  • journal: allocate journal should fallocate if file is empty (991eea8)
  • journal: sometimes there's no padding (e4652ea)
  • journal: pre-condition was wrong and filtered out big appends (9518904)
  • journal: calculation of journal length was using wrong alignment (01cc50f)
  • journal: add frame alignment (2653ac3)
  • journal: use > rather than >= in rotation condition. (bc87e55)
  • journal: check for backpressure before rotation (30ef619)
  • journal: include padding in model (1f22f3b)
  • journal: in the model backpressure check if position is below the limit (40f9d97)
  • journal: unread bytes function didn't account for headers (764dbb2)
  • sut: Dumblog, didn't check wakeUp everywhere (2843a75)
  • journal: padding should reset accumulator when padding is added (512d1d7)
  • journal: account for padding in the model (6b4d249)
  • journal: relative read offset depends on the read term count (3e3adba)
  • journal: use position instead of term offset in read (883210b)
  • journal: Asserts in tests failed to compile with previous assert changes (34cb231)
  • journal: set initial term count to the same value as initial term id (9bc7e7a)
  • journal: Fix metrics histogram since bytebuffer fixes broke it (2df6924)
  • journal: Use slice in fetchAddIntArray{_} (171bbd4)
  • bytebuffer: wrapPart don't use offset in the limit (eeac2d1)
  • journal: Metadata needs more space (76e3bbd)
  • bytebuffer: mmapped should report correct size (1842213)
  • journal: appendBS should append the bytestring after the header (4e24eca)
  • journal: commit should write header at position zero (c31cb31)
  • journal: writeWord32OffAddr didn't account for slice (e34159a)
  • journal: account for slice in more places (085e4fa)
  • journal: write body after header (instead of over) (9ce2980)
  • journal: check minBounds when casting (87dde3b)
  • journal: copyBytes takes destination as first argument (4b93867)
  • journal: take slice into account when indexing (82dc085)

Build improvements

Documentation improvements

  • course: generate readme from lhs files (8137a23)
  • course: add lhs files for the lectures (462ce66)
  • add link to Riak simulation testing (b27a6f5)
  • journal: update date and minor tweaks (fdfc1a7)
  • journal: add note about simulation testing workshop/mini course (476462c)
  • journal: make slides more consise and fix typos (326ed05)
  • journal: tweak slides (02d971b)
  • journal: add more to demo script (e2eff5c)
  • journal: add slide about t-test and more data for 512 case (df5de3f)
  • journal: add benchmark graph to slides (38f30c3)
  • journal: tweak slides (b5cf732)
  • journal: tweak metric slide, move zero-copy read to future future work (fa0b5cf)
  • journal: remove bullet point about Little's law from slide (da35c59)
  • journal: add more slides for journal presentation (bd62665)
  • mini-course: add more on simulation (0957fc6)
  • remove diagram that was accidently added (a1a7226)
  • course: add regression test section (c9577ac)
  • course: add motivation for each chapter (37408a3)
  • course: add goals, pre-requsites and some more content (da54e89)
  • course: update example to match network type (3fc2cea)
  • course: add a few more additions to plain state machine testing (116ea80)
  • course: Add more ideas (5985b0a)
  • course: add comment about connect all nodes to each other (45bdf87)
  • course: remove connect from network interface (26af5c6)
  • course: add preliminary table of content (547934c)
  • journal: add first draft of journal demo slides (9b87f82)

New features

  • new-debugger: Align columns in the event table (e343591)
  • new-debugger: Make Output look a little nicer (3ab6837)
  • new-debugger: Add timestamps to debugger (d41d8d6)
  • sut: Dumblog, don't reset peer list when triggering bug (36475f1)
  • sut: Remove spoiler in dumblog-demo (6ceb73b)
  • sut: Add simple connect.sh script to connect main and backup dumblog (417c7e1)
  • new-debugger: Add scrolling to the new sequence-diagram (7b6ca0d)
  • dumblog: fix debug-file support for internal-messages/admin (df8bb7e)
  • sut: add backup and ack to http client (fbb323a)
  • sut: parametrise paths by port (0f13e90)
  • sut: more work towards being able to run multiple dumblogs (06827f2)
  • sut: add peer port to state (cbfa699)
  • new-debugger: Display the sequence diagram in the debugger (dd1200f)
  • new-debugger: Generate sequence diagram from the debug-file (18d0c68)
  • new-debugger: Add module for displaying sequence diagrams (5bd367e)
  • sut: add internal message support to frontend (06369ab)
  • sut: first step towards supporting internal messages in dumblog (38f0e76)
  • new-debugger: Display running version (dcea4ec)
  • new-debugger: Use color in the state-diff (3030caa)
  • sut: Make dumblog use Show for inputs (15d8688)
  • sut: Indent Latency label in the metrics app (1ea76b8)
  • sut: Make dumblog always print out what port it is running on (b34e32e)
  • journal: Notify reader on write (fa8e94d)
  • journal: inline some bytebuffer operations (2e50a5c)
  • journal: wait for journal change (53b06f1)
  • journal: add a streaming and blocking read (b949dd2)
  • journal: add batching read (57ae88c)
  • sut: make clients in benchmark always start with a write (a2a560a)
  • sut: add benchmark scripts and tweak slides (459e249)
  • sut: Dumblog add versions in the journal of which state-machine to run (a00ca8b)
  • debugger: refresh ever half second instead of full second (05e9ba4)
  • sut: update debug file only when journal changes (f751969)
  • sut: add debug file watch (f1aa445)
  • sut: make a copy of journal before creating debug file (8447a2d)
  • debugger: add watch functionality for debug file (f4fbcaa)
  • sut: Fix the (debug)state in dumblog (026e10a)
  • sut: Make dumblog show sent messages (8b8f44d)
  • sut: Add bug to dumblog, currently not active (706c631)
  • sut: add metrics for sqlite variant (8746674)
  • sut: add write size and metrics memory usage to metrics output (6d7fa72)
  • sut: Add a Logger to dumblog (9084a00)
  • sut: add response time to metrics (14ab5e0)
  • sut: remove sqlite db related files before running the benchmark (870301f)
  • sut: make journal variant work with 400 clients by making the journal larger (3ade558)
  • sut: try to add latency to metrics (still not working) (0512e62)
  • sut: make zero copy variant deterministic (ff3afa8)
  • sut: msync metadata and metrics (4221557)
  • sut: add utilisation (not working yet) (98d9a89)
  • sut: add queue depth and errors to metrics (53e8810)
  • sut: add throughput to metrics (67ee633)
  • sut: split up service time into reads and writes (32448e1)
  • sut: Make dumblog debug-file contain state changes (42baec7)
  • sut: Make dumblog debug-file more informative (9db5e06)
  • sut: add concurrent number of connections to metrics (afa21b5)
  • sut: display journal metadata (bytes produced and consumed) (9fa26e2)
  • sut: add metrics app that displays service time in real-time (d8c776e)
  • sut: Update dumblog demo to use two subscribers (57c7c26)
  • journal: Add support for a secondary subscriber (e620308)
  • sut: Dumblog add generate debug file option (d8d0f7b)
  • new-debugger: New debugger now reads input from a debug-file (c0bfb89)
  • sut: check if rts stats are enabled (+RTS -T) (71b1ee6)
  • sut: add memory stats to benchmarks (03dec2a)
  • sut: use an unsafe way to get a bytestring, which doesn't copy (e285971)
  • sut: make http client requests return a maybe (662e4c0)
  • sut: remove journal before running benchmark (221dd14)
  • sut: Dumblog zero-copy use sendfile package (2c8c057)
  • journal: Persist bytesConsumed (fead270)
  • sut: add benchmark for zero copy variant (41851b1)
  • sut: finish zero copy dumblog variant (48e3431)
  • sut: get sendfile working (42b3161)
  • sut: use recv bytes from journal in zero copy variant (26889c2)
  • sut: parse commands from reqs in "zero copy" dumblog (7b9fffc)
  • sut: hide compilation of persistent db module behind flag (ef4e7c3)
  • sut: use WAL in sqlite variant (348ec01)
  • sut: add fullfsync flag in sqlite benchmark (7e931e1)
  • journal: try to make clean up thread-safe (dcc4140)
  • journal: implement buffer cleaning (fe7f86b)
  • sut: add benchmark for journal based dumblog (5e7869d)
  • sut: add benchmark for sqlite journal (954b4ea)
  • sut: add common http client for dumblog (11cccee)
  • sut: run skeleton modules for benchmarks (5f11e49)
  • sut: add worker that works in batches (8a7a044)
  • sut: implement main for sqlite dumblog (5bbc585)
  • sut: add worker for sqlite dumblog (257b0f3)
  • sut: add frontend for sqlite dumblog (a33365b)
  • sut: add stylish-haskell config for dumblog (c36fd8b)
  • sut: add db module for sqlite dumblog (2019aaa)
  • journal: filter away empty concurrent chunks after shrinking (f513437)
  • journal: add more resolution to bytes written classification (31b8132)
  • journal: add stats about responses (db7e010)
  • journal: try to account for rotation in MP case (6319115)
  • journal: try to account for MP rotation case (fa61399)
  • journal: add assert for concurrent programs (e0deca0)
  • journal: more on concurrent property (07584dd)
  • journal: add MP append, move MP read and restore old SP read (23c68df)
  • journal: add multiple producer version of write side (854c705)
  • sut: Add simple form of Snapshot to Dumblog (ec19499)
  • sut: Dumblog should now re-use old journal and do replay (f499fd4)
  • journal: try to make read thread-safe (f930f13)
  • journal: only print one history when concurrent property fails (c0129b7)
  • journal: take model intro account when generating and shrinking (3288617)
  • journal: add type annotation (c37f975)
  • journal: add shrinking for concurrent programs (9197858)
  • journal: add concurrent testing property (8f9b759)
  • journal: use ns for latencies rather than ms (cbb369b)
  • sut: Dumblog should use the nullLogger (7d3954e)
  • journal: add latency classification in prop_journal (67ee333)
  • journal: Add Logger interface to abstract logging (33ac322)
  • journal: add new failing test (2b7f953)
  • journal: collect stats about how many bytes have been written (da5ece2)
  • journal: classify the length of the generated commands (fec41d9)
  • sut: Dumblog get commands working (2df50b9)
  • sut: Dumblog, interpret commands (f401518)
  • sut: Dumblog Add Codec module (c1d892a)
  • journal: separate rotation from backpressure during failing writes (942e97d)
  • sut: Dumblog, Add way of communicating responses back to frontend (2f38e53)
  • journal: debug problem of the relative position of reads (84e62a1)
  • sut: Add New SUT called dumblog (337f018)
  • journal: use new assert machinary (3a2812c)
  • journal: add dumping of term buffers for debugging (6251bb4)
  • journal: Add getCounter to Metrics (2c4a760)
  • journal: Add Assert module that can be controlled by cabal flag SkipAssert (34d3dbf)
  • journal: Model test wrapPart (a042c47)
  • journal: boundCheck should check lower bounds as well (879ca1c)
  • journal: narrow down test case further (9944198)
  • journal: add smaller failing test (dc98b39)
  • journal: add read for new journal type (d61e7a2)
  • journal: reintroduce more of the happy path in the tj test (9933095)
  • mmap-go: Fix falloc darwin (629c817)
  • mmap-go: make fallocate work on both linux and darwin (a7933c6)
  • mmap+go: Add Falloc for mac in the go mmap experiment (850448b)

Refactorings

  • journal: remove old bytebuffer implementation (4ccbdcd)
  • journal: use init term id, buffer length and pos bits to shift from journal type (4ced244)
  • sut: Split dumblog library to smaller libraries (acc2282)
  • journal: don't clean the active term buffer (4989371)
  • journal: remove iorefs from bytebuffer (bb525f8)
  • sut: Remove the key from Envelope (f0193da)
  • new-debugger: Add missing type signature (75aa484)
  • new-debugger: Remove the sequence diagram, move I/O to its place (989041b)
  • sut: Use initState in bug for dumblog (15ac6ed)
  • sut: Move handling of versions so only one file need to be changed in demo (99c25e8)
  • sut: use lazy bytestring instead of bytestring in journal variant (3fd6eaf)
  • journal: add comment about boundCheck (ae9f3f0)
  • journal: remove commented out code (7fe5287)
  • journal: cache values that don't change when reading (0effab0)
  • sut: shuffle worker loop around a bit (16f03d3)
  • sut: Make dumblog-journal respond 404 on not found (57301dd)
  • debugger: fix warnings and rename some panels in ui (dc39d84)
  • debugger: remove unnecessary int in helper function (e1d351c)
  • sut: move metrics to common directory (7e966ac)
  • sut: share the timestamp between latency and service time measures (d5853f2)
  • sut: Change the Blocker interface for dumblog (a38363b)
  • journal: Change order between cleanPosition and bytesConsumed (4adbdc9)
  • sut: add some comments and small fixes (ef2b6c3)
  • new-debugger: Split out the UI into own module (7ee4314)
  • new-debugger: Move main to library (d8f04e3)
  • sut: add -Wall and fix compiler warnings (56e2307)
  • sut: clean up error handling (9741c1d)
  • debugger: Remove files from runtime-prototype (a72056e)
  • debugger: Move out the new debugger from runtime-prototype (61c9f8e)
  • sut: move journaling dumblog app one directory down (9a84f89)
  • sut: rename modules for journaling dumblog (e75fa02)
  • journal: use run length encoding in model and responses (fb78c75)
  • journal: remove use of slice (f5fa91b)
  • journal: remove mmap dep, add random dep and initialise term id properly (8a0cffc)
  • sut: Dumblog clean up cabal file dependencies (5430ba5)
  • sut: Dumblog, prune module imports (4c47b49)
  • sut: Dumblog add Worker module (4f7dfcd)
  • sut: Dumblog Add StateMachine module (2606a56)
  • sut: Dumblog add FrontEnd module (369925f)
  • sut: Dumblog add Types module (34d382c)
  • sut: Dumblog, refactor Metrics to own module (9395acf)
  • journal: avoid Vector.cons and combine pad calculations (a85fd53)
  • journal: Refactor Metrics size computation (10ca450)
  • journal: generate run length encodings rather than bytestrings (d7391be)
  • journal: remove old journal type and associated functions (3817116)
  • journal: small fixes to bytebuffer tests (d3e1134)
  • journal: ByteBuffer refactor the writes (e665e9a)

Removed features

  • sut: Remove old comments from dumblog (6de59fa)

Testing improvements

  • sut: Add failing test-case for Dumblog-test (4d1bd0f)
  • journal: add new regression test (8680854)
  • journal: add new regression test (e10ad66)
  • journal: add a couple of more regression tests related to backpressure (5ec214a)
  • journal: add more regression tests from counterexamples (ded0d2e)
  • journal: add another counterexample (f50d6a1)
  • journal: add new regression test (685019f)
  • journal: add a few tests around cas (afde1ea)
  • journal: Make journal model be non-determ (f05eab4)
  • journal: Add property test testing the linearisable function (09638d1)
  • journal: add two new failing tests (7227075)
  • journal: Add Model test for metrics (b6156fa)
  • journal: first go at modelling backpressure (038d9fc)
  • journal: add logging for when backpressure happens (288026f)
  • journal: add more logging for debugging (c1f6dad)
  • journal: add unit tests for two bugs found by prop_journal (ce46b8b)
  • journal: add tests for run length encoding (0833b58)
  • journal: generate long enough bytestrings to cause rotations (11d531c)
  • journal: use new journal type in the model-based tests (1e2817a)
  • journal: make off by few bytes common than off by lots of bytes (bfc8f3e)
  • journal: ByteBuffer boundCheck now takes a size (in bytes) (99ef2e3)
  • journal: narrow down the problem with multiple write/reads (b89d151)
  • journal: extend test with another append and read (c988b8c)
  • journal: Extend model-check for ByteBuffer to support failure cases (9f41c1f)
  • journal: add 64 bit ops to the tests (c39426c)

Uncategorised

  • optimise(sut): Make dumblog with journal use a better in-memory representation (1b0e43e)
  • Update src/journal/src/Journal/Internal/ByteBufferPtr.hs (226e841)

v0.0.6 (2022-01-12)

Bug fixes

  • journal: make bytebuffer tests pass (3bb9264)
  • journal: more plusAddr and zero offset fixes (96aa320)
  • journal: use plusAddr and 0 offset in byte buffer (4f49ad1)
  • journal: use plusAddr# and zero offset (bae5ff3)
  • journal: use os agnostic fileAllocate (1c2e2cb)
  • journal: take slice into account when indexing (95698c3)
  • journal: make the extra libs atomic conditional only linux (4c7146d)
  • journal: Remove file that accidently got commited (5a65f1d)
  • journal: bound check all absolute operations and use HasCallStack (23a8ed8)
  • journal: increment position of dest in putBytes (ff65e63)
  • journal: bug in claim (eeaf6b0)
  • journal: don't advance mmaped pointer upon startup (ddf553d)
  • journal: make replay work on truncated journals (5c91541)
  • runtime: fix off by one error in test (585357a)
  • runtime: fix bug in get in the MP case (68bcbcb)
  • runtime: the shiftL trick doesn't work for Int when calculating buckets (0043e32)
  • runtime: fix bug in SP histogram (e2477f6)
  • runtime: make incrCounter return the new value, thanks Daniel (24e3e8f)
  • runtime: remove sleep from read path and fix test (108d5fb)
  • runtime: fix MP case by adding setGatingSequences, thanks Daniel (4001a86)
  • runtime: fix SP case by adding nextSequence field to ring-buffer (b960072)
  • runtime: fix the multi producer test and expand it to five producers (60a3329)
  • runtime: make the test suite compile and pass again (05c86ba)
  • runtime: make debugger not start unless it finds the scheduler's pipes (88f163c)
  • scheduler: Fix so that timer messages can't be scheduled to the past (61ed266)

Documentation improvements

  • add note about not sharing the repo (d3827be)
  • make some old slides more context free (5fa4744)
  • improve readability of USL formula and add more explaination (5769d15)
  • fix spelling mistakes found by Daniel and add comment about reboot (443d6fd)
  • fix comments for Daniel on performance doc (e4bdfa6)
  • add first draft of performance document (ebdefd1)
  • runtime: make gc comment more clear, thanks Daniel (dacf98d)
  • runtime: add how it works section to disruptor readme (de13406)
  • runtime: add example and explainations to disruptor readme (ebf4964)

New features

  • journal: Make own version of fileAllocate that works on Mac OS (34c251f)
  • go-mmap: do some initial go mmap testing (d7e9a4a)
  • journal: make it possible to dump the metadata (eb76c8f)
  • journal: add casInt for ptr (9ab2b6e)
  • journal: persist some metadata when allocating journal (c52a77a)
  • journal: add casInt for ptr (cd8fc82)
  • journal: towards using ByteBufferPtr for journal (3c11fd4)
  • journal: towards using ByteBufferPtr for journal (d4735f8)
  • journal: add allocateJournal (9bb77f9)
  • journal: Update Metrics to use ByteBufferPtr (fcea79c)
  • journal: add test for atomics (a55aba9)
  • journal: rename module to Atomics and add bindings for the different byte sizes (b8c1d38)
  • journal: add extra-libraries atomic (f38a2b2)
  • journal: add atomic prim ops for addr (007ad4d)
  • journal: add ptr version of bytebuffer (d48f3c9)
  • journal: add free for bytebuffer and metrics (ebc88d0)
  • journal: Make metrics twice polymorphic, histograms (e290f42)
  • journal: add and use buffer claim datatype (8058946)
  • journal: add term addpender claim and handle end of log condition (ee8611b)
  • journal: introduce more newtypes and term rotation (bee8690)
  • runtime: Use .hsc to get _SC_PAGE_SIZE (673c640)
  • journal: add a few more byte buffer operations (4fba44e)
  • journal: add more journal helper functions (008d616)
  • journal: add rotateLog and a few other metadata helper functions (e2bcc39)
  • journal: add posix compatible way of getting the page size (ac30608)
  • journal: make mmapped bytebuffer work (cf2b2fd)
  • journal: add aligned malloc needed for mmap (81ad352)
  • journal: sketch more of the bytebuffer api (b9e30d1)
  • journal: add mmap module (d7dffcb)
  • journal: add beginnings of bytebuffer and metrics modules (5691fed)
  • runtime: We can now add duplication fault (54ac69b)
  • runtime: Scheduler now manipulate outgoing events using faultstate (cf0db64)
  • runtime: Add new faultstate for duplicated messages (8a3ed11)
  • runtime: Add more functions to RandomInterval (cd98cae)
  • runtime: Add an Delayed unscheduled-event (97a424f)
  • journal: add parsing of journal into ast, improve readability of test output (1ebc4aa)
  • journal: add padding and archiving (86b2af7)
  • journal: merge in Daniel's test/journal branch (ffec274)
  • journal: start on file rotation (6ea1437)
  • journal: add crc32 checksum (fa7852d)
  • journal: add tag and version to journal headers (3521efc)
  • journal: add snapshotting and reply (still borken) (cafeabb)
  • journal: add atomic counter module and start working on file overflow (315b40c)
  • journal: add consumer side (e28865a)
  • journal: use claim (5428ae6)
  • journal: start implementing api (cf394c1)
  • journal: sketch more of the api (a8e3e29)
  • journal: add skeleton for journal (932f9ed)
  • runtime: WIP) Start of internal debugger (5c5f532)
  • runtime: Debugger should not print LogicalTimeInt constructor (7dac324)
  • runtime: Use json serialisation for the event log (#385) (a06be05)
  • runtime: generate arrival times for new messages in scheduler (f0eeeda)
  • runtime: Executor now give a LogWriter to all reactors in the constructor (6d2cbbe)
  • runtime: show which case was missing when pattern matching fails in on (a6fb735)
  • runtime: Add support for restart fault in the new executor (d15621c)
  • runtime: Add restart fault to scheduler (db67da8)
  • runtime: When resetting the log for executor, also reset the logical time (5a383d5)
  • runtime: Read all the request from the unix sockets (9b82c7c)
  • runtime: Add support for timer messages (bd02a09)
  • runtime: Executors can now restart the reactors (edbd869)
  • runtime: Add init messages to new scheduler (aca71c9)
  • runtime+executor: Use more consistent logical times (05d27c1)
  • debugger: Merge logs from scheduler and executor (7c42761)
  • runtime: Add function to merge Logs (d6646e1)
  • executor: Use Haskell format for debugger (53b7e88)
  • executor: Normal transport constructor can't fail (45d01c4)
  • executor: Make admin interface use unix domain sockets (42d5ca6)
  • runtime: Add unix domain socket transport (b9cc0f7)
  • executor: executor as event loop (fad2176)
  • runtime: add readme and more benchmarks (6f97a61)
  • runtime: add unboxed ring buffer (ab19884)
  • runtime: add more counter operations to padded counter (b15e621)
  • runtime: add first draft of SP histogram (46ef03b)
  • runtime: add more logging to understand the MP problem (44a8f4c)
  • runtime: add SPSC test (fails sometimes with appears twice error message) (045663e)
  • runtime: add highest published is available functions (in the MP case) (6ae3464)
  • runtime: Add clock-skew faults (f646ba1)
  • runtime: add blocking verison of next (41d6e94)
  • runtime: add read side for multi producer disruptor (d4a7927)
  • runtime: implement publish side of multi-producer disruptor (7935dfc)
  • runtime: Add Partition fault (db80bd0)
  • runtime: Add LoadTest that also loads faults (6ae9a1d)
  • runtime: add scheduleEvents from Daniel's branch (4499ef5)
  • runtime: Add faults to new scheduler (a6b0db9)
  • runtime: add logical time to scheduler (120421d)
  • runtime: add whatToDo from Daniel's branch (c06e685)
  • runtime: fix Daniel's comments (46b4397)
  • runtime: add disruptor module (not quite working yet) (c384aa9)
  • runtime: word wrap the messages in debugger (c1838cb)
  • runtime: display message content on right hand side in debugger (188f05e)
  • runtime: make debugger display log (4d5143e)
  • runtime: make debugger be able to request the log from the event loop (a777458)
  • runtime: add skeleton for event loop debugger (fbf648d)
  • runtime: add logging of received replies (65165b3)
  • runtime: timestamp events using logical clock (2232b9a)
  • runtime: add ability to execute many sql inserts/updates (75c8243)
  • runtime: make scheudler keep track of test and run id (78dc484)

Performance improvements

  • runtime: add single op benchmarks for threadDelay and yield (5b1d841)
  • runtime: make MP benchmark use three producers (ed52cbb)
  • runtime: some minor tweaks and add profiling counters for MP benchmark (38932e9)
  • runtime: make the mp test actually have multiple producers and add mp unagi (64fa525)
  • runtime: add benchmark comparison with unagi-chan (a630761)
  • runtime: fix non-termination bug in unboxed benchmark and make it more similar to boxed version (3290980)
  • runtime: use unsafe shift and move looping into waitFor (50b1547)
  • runtime: use unsafe array ops in single producer ringbuffer and unpack seq nr for consumer (4bd4f6d)
  • runtime: use padded counter in benchmarks (ddd3dae)
  • runtime: save perf output (b9a0c85)
  • runtime: various performance improvements to histogram (e341ea2)
  • runtime: add unpacked type for maybe sequence number (18c26b9)
  • runtime: turn gating sequences from list to vector (d427861)
  • runtime: add benchmark shell script (fddba06)
  • runtime: start separating SP from MP ringbuffer (c17da26)
  • runtime: unpack and bang all fields in the ring buffer (74ecda0)
  • runtime: add max concurrent transactions to output (9f16c58)
  • runtime: make the tbqueue benchmark also use measureInt_ (a6ed14b)
  • runtime: remove polymorphism from histogram (2f160ea)
  • runtime: tweak SP version of histogram (588de5c)
  • runtime: add a padded variant of atomic counter (8053e20)
  • runtime: add latency histogram (0f9e419)
  • runtime: measure single ops using CPUTime and in nano sec (6698385)
  • runtime: benchmark a bunch of single ops (c4a8991)
  • runtime: add cost centers and use atomic counter thater than ioref int (8b8bbd1)
  • runtime: use writeIORef instead of atomicWriteIORef where possilbe and do some inlining (252a7b6)

Refactorings

  • journal: make it work regardless of target byteorder (12fc98e)
  • journal: remove ghc-prim dependency (20022dc)
  • journal: ffi bind and use C constants for mmap (3d12c1c)
  • journal: use bulk copy in getByteString (0e8a33d)
  • journal: almost finish new try claim (ad1aae1)
  • journal: more work towards using new journal type (1f7290e)
  • journal: add new metadata bytebuffer to journal (3a3c4a5)
  • journal: revert back to using bytearray for bytebuffer (930edda)
  • journal: use ptr instead of bytearray so that we can implement slice (1ef9be7)
  • journal: fix assertions and use field newtypes (a622c32)
  • runtime: Move TimeInterval to its own module (75ee08f)
  • Scheduler: Add scheduleAgenda helper function (48a1532)
  • journal: introduce newtypes for header fields (cb2c288)
  • journal: remove unused functions and use unsafe ffi (feca5c1)
  • journal: remove bytes produced from consumer (90cd226)
  • runtime: remove internal message without arguments (05b2042)
  • runtime: make codec work on message level rather than envelope level (d95668d)
  • runtime: remove executor envelope (05c9c2f)
  • runtime: New executor split up how we build topology (4c54c76)
  • runtime: New scheduler, faults can now add events to the agenda (dd398fe)
  • runtime: don't send node name part of logical time over the wire (72392a6)
  • runtime: remove old disruptor files and rename verb to tag (49c4daa)
  • runtime: remove disruptor as it's now in its own repo (40b51f8)
  • runtime: split mp1p1c test into two (717637e)
  • runtime: clean up benchmarks a bit more, especially mp cases (efd4206)
  • runtime: make sp benchmarks more similar (7488026)
  • runtime: use atomic counter instead of ioref sequence number (573487b)
  • runtime: remove old combined ringbuffer and restructure the module tree (1a7f0de)
  • runtime: remove shutdown variable (55df2c1)
  • runtime: finish standalone MP version of ringbuffer (9d0e6fb)
  • runtime: simplify SPSC test, thanks Daniel (368e0c0)
  • runtime: remove old test (365ca49)
  • runtime: nextSequence field is actually not needed, thanks Daniel (a2552cb)
  • runtime: FaultState is now per actor (8e2ddd2)
  • runtime: start using whatToDo (549d71c)
  • runtime: s/LogicalTime/LogicalClock/ and s/LogicalTimestamp/LogicalTime/ (91af53a)
  • runtime: add bitwise and instead of mod for disruptor indexing (0b94c37)
  • runtime: remove sequence barrier and parametrise back pressure and wait for disruptor (b1d64b0)
  • runtime: move executor related stuff to separate scheduler module (815216e)
  • runtime: split up scheduler into modules (d1b1d81)

Testing improvements

  • journal: add mmap and bytebuffer tests (611f553)
  • journal: add improved CAS test (that Daniel came up with) (d980415)
  • journal: add test for casIntPtr (44be27f)
  • journal: add improved CAS test (that Daniel came up with) (ab7232c)
  • journal: add test for casIntPtr (75c0619)
  • journal: add model based tests (29a3a01)
  • runtime: add test for two producers and one consumer (still fails) (ed16243)
  • runtime: add first round of disruptor tests (29dc17c)

Uncategorised

  • license: add 2022 (a9a7b19)
  • Update src/journal/src/Journal/Internal/ByteBuffer.hs (e05a081)
  • license: update license to MIT and include Real Logic's license (9910b66)
  • Update src/journal/src/Journal/Types.hs (047ca24)
  • license: change to the MIT license (428e32d)
  • reactor(runtime): improve comment about atomic counter padding, thanks Daniel (9fd29ad)
  • bench(runtime): add tbqueue variant to benchmark for comparison (0187f19)
  • bench(runtime): add simple SPSC benchmark (7554e64)
  • Update src/runtime-prototype/src/Disruptor.hs (2b662a0)
  • comment(runtime): add node about nextBatch being multi-producer (92fd66e)
  • Update src/runtime-prototype/src/Debugger.hs (d385469)

v0.0.5 (2021-09-29)

Bug fixes

  • scheduler: Fix infinite loop in scheduler (d26fe5b)
  • nix: Update vendor sha256 hashes (1d2c4f8)
  • runtime: unbreak backwards compat with old scheduler (b77f9da)
  • runtime: fix bug with put state not being persisted (1aec066)
  • runtime: fix compilation (f0236f3)
  • runtime: fix bug in dequeue (38b09a0)
  • scheduler: When client calls timeout, the time wasn't set correctly (2673493)
  • debugger: Fix the tests that got broken for debugger (9e353c6)
  • runtime: make benchmark pass (still doesn't do much though) (f9ee761)
  • runtime: add todo about actually using the i/o queue (79c0714)

Build improvements

Documentation improvements

  • add note about comparing disruptor to data aqueduct (2271279)
  • add a more detailed event loop design doc (9f2f632)
  • remove third part from event loop design doc (7b9e203)
  • add note about disruptor pattern (bfaad7a)
  • add some more newlines for better readability in raw format (3b537c7)
  • add bit about benchmark to event loop design (9050a68)
  • add bits about synchronisation, saturation and backpressure (443c359)
  • add pseudo code for network producer (b25903e)
  • clean up (re)actor api (99c9b58)
  • event loop design, more on reactors and other minor changes (5842803)
  • event loop design restructure a bit (5af75de)
  • add Sean's timer to event loop design (b29cf8a)
  • add a note and reference to event loop design (860d783)
  • more on event loop desigdocs: more on event loop design (2ee9f69)
  • add first draft of event loop design doc (ab7d7d5)
  • runtime: add comment about other postscript viewers (4764f12)

New features

  • runtime: more work on event log (568e52c)
  • runtime: make it possible to receive responses from admin commands (bcce23a)
  • runtime: add the first parts of the admin commands (1cc79d5)
  • scheduler: Expire client-request when simulation finish (34d3d94)
  • checker: Add new model that reads history from stdin (6795fb9)
  • runtime: step through the whole agenda (9eca574)
  • runtime: fix correlation id propagation (a32b5d0)
  • runtime: work towards scheduler being able to communicate with executor (cb72120)
  • runtime: make client request for "CreateTest" do db I/O and respond (437ebd6)
  • runtime: make actors polymorphic in state (2b1e934)
  • runtime: extend messages with args and add sqlite disk (cc98053)
  • runtime: make generation of command length depend on qc's size (9b069eb)
  • runtime: add tests for move as wlel (0164e48)
  • runtime: add proper tests for queue (5d2e5ce)
  • runtime: move scheduler to library and make it possible to build executable (973a8a7)
  • runtime: start reviving fake scheduler (85b74f3)
  • stats: Add detsys-stats program for getting stats of test run (03c4a49)
  • ltl: Add new command for ltl to check many formulas (d0a0be3)
  • runtime: add execution strategy based on ghc.event (a2c2184)
  • runtime: make it possible to run clients in async mode (af534eb)
  • runtime: add pure warp server benchmark for comparison (7affcea)
  • runtime: use client requests via http frontend in benchmark (5e2271c)
  • runtime: benchmark simple actor, plus fix a couple of bottlenecks (bc320dd)
  • runtime: add memory footprint to reporter (ee8b3d2)
  • runtime: more on benchmark (bcbc854)
  • runtime: add skeleton for benchmarks (5ed12fe)
  • runtime: add fake disk implementation of puts and deletes (5ff744d)
  • runtime: implement thread pool for async i/o (54ff880)
  • runtime: add way of displaying the stats of histogram (fd18d2a)

Performance improvements

  • debugger: Make the sequence diagram faster (acdafd0)
  • ldfi: Increase performance of ldfi (c112cc3)

Refactorings

  • runtime: remove datatype and state modules (85dbf6e)
  • scheduler: remove assert that was causing trouble before above commit (4039487)
  • runtime: add comment about kebab-casing and restore test used for debugging (2ddcd30)
  • runtime: add comment about arrival times and clean up a bit (cd9ce0b)
  • runtime: fix native types for db interface (c65312d)
  • runtime: try to use native types for db interface (c2cadc6)
  • runtime: use native types instead of Datatype in scheduler (7992c07)
  • runtime: improve, test and rename enqueues to enqueueList (66d695c)

Uncategorised

  • doc(runtime): expand on removing spawn admin command comment (c26a9d8)

v0.0.4 (2021-06-30)

Bug fixes

  • runtime: fix a precondition in histogram and improve docs and tests (72b89d7)
  • runtime: unbreak tests after previous async io change (c9f8c03)
  • runtime: revert back to blocking version of handleEvent for handleEvents (96cf428)
  • runtime: make single threaded execution of tests work (b3b331f)
  • runtime: fix flaky tests (d58eb8b)
  • runtime: seed changed somewhere (?), so need to update output of random (28f378a)
  • runtime: also check if file handle is ready in hMaybeGetLine (e1f2cdb)
  • runtime: update seed and use next promise everywhere (cffb2d5)
  • runtime: fix bug with on not working (a239308)
  • runtime: and test for admin send and fix a bug in the implementation (88105c8)
  • runtime: disable http transport by default (6140c4e)
  • runtime: namespace the event loops on the name of the tests (311b35f)
  • runtime: remove hack that hardcoded the resp var to make the sendLater test pass (935dee5)
  • ltl: Fix wrong package in cabal.project file (0e81bb3)
  • runtime: narrow down the problem (acde0a8)
  • runtime: fix bug in pipe transport (7c94d09)
  • runtime: unbreak test1 (38c56c8)

Documentation improvements

  • runtime: document how to run tests (ea4bb46)
  • add seaslug to readme (10b7ef6)
  • add merge PR step to release steps (9a52ea6)

New features

  • runtime: add histogram module (a96f335)
  • runtime: first draft of async disk io (78f662c)
  • runtime: add wait for event loop modulo timeouts (25bc784)
  • runtime: add better waiting mechanism for http transport liveness (3005638)
  • runtime: introduce wait-for-eventloop-to-finish combinator and use in tests (c024ca2)
  • runtime: add flag for single / multi threaded (1b408de)
  • runtime: single threaded event handling (6cfc27d)
  • runtime: add shuffling of lists (5861424)
  • runtime: add stm transport (cede8b6)
  • runtime: add http frontend (e028770)
  • runtime: extend message type with client requests (d1188a5)
  • runtime: towards being able to handle client requests and responses (849f2b2)
  • runtime: start on event log (92e7615)
  • runtime: finish prng implementation (fa7e3dc)
  • runtime: finish get current time implementation (45e5221)
  • runtime: first steps towards adding timers, prng and get current time (71a2442)
  • runtime: finish timeout handler for sends (e615232)
  • runtime: lay groundwork for send timeouts (ee3befe)
  • runtime: add support for failing async i/o (def0fc9)
  • runtime: almost done with new make event loop (b753993)
  • runtime: parametrise makeEventloop on which transport it supports (ac08be7)
  • runtime: add timeout for send (978d1df)
  • runtime: add initial state of actors (57c0a54)
  • runtime: more flexibility around state (7236107)
  • runtime: add skeleton for scheudler test (49be08c)
  • runtime: add concrete datatype for datatypes (71a0ceb)
  • runtime: add await and make state more flexible (7952e61)
  • runtime: add http transport (7ea5a6e)
  • runtime: add basic support for state (ec98bad)
  • runtime: make async i/o test pass (0c88812)
  • runtime: towards support for async i/o (89a1a97)
  • debugger: Check tests when building with nix (9129f36)
  • divergence: Add formatting checking in nix build (fa99272)
  • ltl: Add formatting checks in nix build (b28b8d9)
  • ldfi: Add ormolu to preconfigure check (41e5377)
  • ldfi: Add check for formatting in nix-build (9723f36)
  • nix: Add divergence tool to outer default.nix (5b3be98)
  • ltl: Add more atoms to LTL checker (9c0913e)
  • divergence: A simple tool to find divergence between two equivalent tests (53cb5d3)
  • runtime: add event log and proper tests (560f5e5)
  • runtime: more debug info (3247b8d)
  • runtime: almost got remote call working (bc8c932)
  • runtime: support remote calls that return now (12d9396)
  • runtime: fix send to work with named pipes (62672c0)
  • ltl: Add events as atoms (a058d5b)
  • runtime: add send doesn't work yet, because we always send to ourselves (98ab4bc)
  • runtime: cancel all handlers instead of just the main one (46567c1)
  • runtime: make invoke work (a96fe21)
  • runtime: finish initial state (47e8ab0)
  • runtime: add free monad module (796c196)
  • runtime: improve the actor definition (409095c)
  • prototype runtime system (19fc265)

Performance improvements

  • db: Add index for run-id (c45dd9d)

Refactorings

  • runtime: remove sleep from tests (b99f378)
  • runtime: use case instead of if for threaded (5714597)
  • runtime: remove unnecessary sleeps (d15ab1d)
  • runtime: few cosmetic changes (fcc3370)
  • runtime: inline a few local helper functions (cbe1ec4)
  • runtime: don't print the caught async cancelled exceptions (26c4ce1)
  • runtime: fix and test shuffle (8ffafb5)
  • runtime: make transport receive non-blocking (3916d71)
  • runtime: move named pipe transport to separate module (bfaa447)
  • runtime: shorten import lists for test modules (68cd44f)
  • runtime: remove old code (6d0dbe5)
  • runtime: introduce a new type for resolutions (5e1d402)
  • runtime: various small fixes (ddf4bde)
  • runtime: simplify async io slightly (7beb822)
  • runtime: finish admin send (a9ba383)
  • runtime: finish handle events (c428f84)
  • runtime: add impure async resolution (72dd099)
  • runtime: introduce a pure way of running actors (93fa874)
  • runtime: remove response comment from event datatype (a873450)
  • runtime: remove transport test from library (5e99880)
  • runtime: move transport test to testsuite (14e7a6e)
  • runtime: abstract out event loop names (95ababb)
  • runtime: more on handle receive (0d276ee)
  • runtime: add async io (03f3573)
  • runtime: more on actors and events (e0e4ade)
  • runtime: minor fixes to previous commit (620ad37)
  • runtime: add external request handler and named pipe transport (ca4c185)
  • runtime: add async handler (67a619c)
  • runtime: add first test for quit (cf07ec5)
  • runtime: add support for quit command (ebea069)
  • runtime: start reimplementing the event loop (c3fdedd)

Removed features

  • runtime: old vat module (51d0933)

Testing improvements

  • runtime: add test for http frontend (afaf89b)
  • runtime: add test for timers (116629d)
  • runtime: add (still broken) test for prng and get current time (af3eac6)
  • runtime: add test for send timeout (ec2bd05)
  • runtime: add failing test for On (9903f59)

Uncategorised

  • Update src/runtime-prototype/src/StuntDouble/EventLoop/State.hs (6d144ef)
  • wip event loop (d1e6160)

v0.0.3 (2021-04-20)

Bug fixes

  • debugger: More gracious handling of missing heap diffs (5f66d5b)

Documentation improvements

  • add steps to commit the changelog changes (0439616)
  • document the steps involved in a release (06bcbda)
  • add changes for v0.0.2 release (cd765c9)

New features

  • add simplified changelog generator (ed16441)

Removed features

v0.0.2 (2021-04-19)

Bug fixes

  • sut/broadcast: partial revert of 5b27e7cc666d7c496b5622e84999d3d5794c7bc6 (753f33a)
  • debugger: Fix tests that broke in last commit (41eb1a1)
  • nix: Fix vendorSha256 for go packages (43939d4)
  • lib: Non-determ when specifing the to-fields (a66716b)
  • bazael: Fix ldfi2 build on mac osx (0e59ef0)
  • nix: Fix go vendorSha256 sums (14affbc)
  • nix: Latest update of nixpkgs broke our go builds (941a67c)
  • ldfi2: LDFI v2 should only use non-dropped messages in traces (670dcfb)
  • ldfi2: Fix lineage, don't try to be too clever (b275f4d)
  • ldfi2: don't crash nodes until after they have sent something (9b20522)
  • ldfi2: marshalling of events and replace partial foldl1 (99eae68)
  • ldfi2: Fix the test using logical equivalences (089aa42)
  • ldfi: negation of formula should only happen once (3095355)
  • nix: Update vendorSha256 (6bb138f)
  • executor: The init handler was not deterministic (bddc98f)
  • executor: Logs for reactors were attributed to wrong handler (6a39915)
  • ldfi: s/runid/run-id/ (ffdad0e)
  • ldfi: Fix order of previous faults (d26a3c2)
  • logger: add sleep to avoid 100% cpu issue, adjust buffer length and fix logging (1942174)
  • logger: use bufio reader rather than scanner (68d5186)
  • logger: make a new buffer slice and fix logging (a025d5f)
  • logger: remove starve (thanks Daniel), and rename item to entry (9e3b1a0)
  • logger: lower max starve count from 32 to 8. (e654d3d)
  • logger: len(buffer) >= BUFFER_LEN rather than <= (738807f)
  • logger: use tab instead of semicolon for separator, make dequeue blocking (1a0cbc5)
  • scheduler: Expire clients before we decide to delay message (5ccb071)
  • cli: add ldfi to the output of the versions subcommand (580952a)
  • checker: add back graalvm flag that got accidently removed (1881ab8)
  • checker: test- and run-ids need to be parsed (f36317c)
  • debugger: Debugger crashed if logs were nil (68249ec)
  • bazel: remove more vendored deps (b80b3ba)
  • bazel: fix deps for cli/cmd shouldn't be vendored (1ba2932)
  • ldfi: crashes were not handled correctly, also disable debugging output (0083094)
  • executor: Log lines not copied correctly (99fd6cb)
  • executor: ScheduledEvent was not parsing meta field properly (eb10a31)
  • ldfi: fix bug where previous faults couldn't be reintroduced at all (15ec138)
  • ldfi: add db migration for faults (22b43c3)
  • ldfi: previous faults constraint is too strong (a6fd21b)
  • ldfi: avoid reintroducing the same crashes (d195b2c)
  • sut/broadcast: make round 4 pass by unmarshaling ack properly (3bbf4c4)
  • sut/broadcast: make round 2 fail in the right way (bfa5eaf)
  • ldfi: reenable crashes, if --crashes flag is greater than 0 (561ab93)
  • scheduler: set :sent-logical-time on initial messages (aa8a161)
  • sut/broadcast: use timers instead of ticks (611a8ad)
  • sut/broadcast: add event logger (0e9055c)
  • sut: make the testsuites compile again. (e93bb7e)
  • executor: update comment about message shuffling and move inits code. (4510c52)
  • sut/register: fix module names and imports. (f433103)
  • scheduler: bug in execute-or-tick not returning a tuple. (0ec0059)
  • readme: spelling mistakes. (9f13c5e)

Build improvements

  • shell: remove python related stuff previously used for ldfi1 (18f36f5)
  • nix: Bump version of nixpkgs (efbc07e)
  • cli, db, debugger, ltl: move stamping version out of buildPhase (2b819c9)
  • ldfi2, checker, scheduler: move stamping version out of buildPhase (cdc84e9)
  • default to building with bazel on linux (0b0f69f)
  • build ltl using bazel by default (df03dcd)
  • ltl: add build rules for library and binary (5fcf16e)
  • suffix version output with -bazel or -nix (b09ee34)
  • checker: make passing --version flag work (8ff3e41)
  • scheduler: make passing --version flag work (603b48b)
  • ldfi2: make passing the --version flag work (dd432d1)
  • ldfi2: patchelf the dynamically linked libraries on linux (236173e)
  • clean up bazelrc (659e5b1)
  • lib: fix build by adding ltl.go to srcs (7ba0894)
  • make it work when there's no bazel-bin/src directory (b5e5128)
  • changelog: fix stdenv.lib deprecation warning (50e4a45)
  • also install db migrations (f5f9db1)
  • make it easier to switch between building with bazel or nix (ff429e1)
  • checker: make it build and run on linux (b07c7cd)
  • parametrise build by if checker or scheduler should be built by nix (4473a6a)
  • build checker using nix (a023db9)
  • checker: only pass X11 related flags if building on linux (ae4ebed)
  • checker: fix build on linux with graalvm 21.0.0 (bf3bbe7)
  • use posix toolchain from nixpkgs (02c12a3)
  • ldfi2: update to latest rules_haskell and clean up workspace (d37675f)
  • ldfi2: add rules for building the binary (8c6e163)
  • package up all binaries (bf6a2fc)
  • graalvm: add graal_rules and use them for scheduler (890d08a)
  • go: make --version flag work with bazel built go binaries (7a5b448)
  • checker: make it build (e35ee21)
  • shell: pin ghc to 8.10.3 (0c2516f)
  • scheduler: tryt to pin java versions in .bazelrc (a2bc67b)
  • ldfi2: bump version of haskell_rules to get bazel 4.0 support (9935d2e)
  • scheduler: make it build (aedc76b)
  • ldfi2: make building work (9fbc9ef)
  • ldfi2: use callCabal2nix for z3-haskell dependency (e0a24fa)
  • ldfi2: remove ldfi2.nix and use callCabal2nix instead (e0acda6)
  • ldfi2: fix build (3530299)
  • update to latest nixpkgs-unstable, which includes bazel 4.0 (2545aec)
  • ldfi2: pin nixpkgs in shell to the ones pinned by niv (8f98a4a)
  • ldfi2: Make nix configs for ldfi2 (23c05d1)
  • ldfi: unbreak the binary (14ab8ce)
  • ldfi2: add stylish-haskell and cabal-fmt (63fd7be)
  • ldfi2: add tasty-discover to shell (9b8dd91)
  • ldfi2: pin z3 dependency to a specific commit (0c27ca9)
  • update nixpkgs to get recently merged bazel 3.7.2 and graalvm-20.3.0 (aedc05d)
  • ldfi: fix pythonpath env var (ad3b1af)
  • ldfi: set z3_library_path (834368e)
  • logger: add dependency on lib (d27693a)
  • ldfi: initial python support (fadacc6)
  • add initial nix support (3213dd1)
  • db: add JSON1 support (f67e46d)
  • add a name to the workspace and a .bazelversion file (cef4573)
  • sut: add json1 to gotags (3540925)
  • executor: add event.go to srcs (a843890)
  • cli: bump vendor hash (77bae6b)
  • lib: remove removed files from srcs in build.bazel (ac47833)
  • logger: add initial build.bazel file (07fbed8)
  • logger: add default.nix file (bca076a)
  • checker: add --initialize-at-build-time flags for sqlite (90554d9)
  • cli, db, debugger: revert back to pinning vendor hash (2201fcc)
  • shell: add comment about bazel 4.0 (d83d642)
  • bazel: make bazel build //... work (e71a3a1)

Documentation improvements

  • rename milestones to always be on vX.Y.Z form (02633b1)
  • first draft of the lower-level overview (d8ed9bc)
  • finish first draft of high-level overview (806d359)
  • ldfi: More on estimate for ldfi (792aa44)
  • ldfi2: remove no longer relevant note about cabal2nix (335e6db)
  • ldfi2: fix grammar mistake (a84cdc6)
  • ldfi2: add table with gross estimate output (4f1b446)
  • ldfi2: add info about state space estimation (3463b46)
  • refer to ROADMAP.md under how to contribute (716c334)
  • swap order of -tags and -run to make it easier to switch between tests (db24ff7)
  • add -tags json1 and correct the test and run ids (3336611)
  • make nix default build system as the bazel build still has some problems (3c5059c)
  • more accurate pseudo code for reactor interface (e7f024b)
  • better phrasing (3eddfe7)
  • add more under the high-level overview section (de717f8)
  • make it more clear when detsys is ready to start testing (719e894)
  • fix typo (0d3c5c4)
  • update bazel and nix instructions (601035a)
  • add auto generated changelog (81d81a6)
  • readme: add link to stateright (7961c02)

New features

  • debugger: Use wordwrap for reator logs (ef2685d)
  • lib: Get the reason for LTL checker (a30964e)
  • debugger: Display crash information in sequence diagram (89ba312)
  • debugger: Have word-wrapping for the current message (f4110e5)
  • ltl: Introduce proof terms in ltl (c524c02)
  • debugger: Have a window with events that were sent for the current event. (a597ea3)
  • debugger: Add f as a shortcut to go back in time to when the message was sent (f5ad32b)
  • debugger: Add sent time to the event table (733f48c)
  • debugger: Show time as duration rather than absolute time (5476ed3)
  • debugger: Make header of sequence diagram always be shown (d2d349e)
  • debugger: Make the change reactor be inside the reactor state widget (9244b7f)
  • debugger: Scroll sequence diagram to active event (4eca7a9)
  • cli: Add LTL version in the versions command (5c202d3)
  • ltl: Make version command output the git commit (3eb9909)
  • sut: Make broadcast SUT use the new LTL checker (a6ab9b4)
  • ltl: First stab at an LTL checker (8f83625)
  • ldfi2: add estimation from the molly ldfi implementation (7a1872c)
  • ldfi2: first go at trying to estimate the size of the fault space (85239ef)
  • ldfi: Add optional limit of number of faults. (dd6f9d9)
  • ldfi2: Add option(s) to tell about previous failed runs (927068b)
  • executor: Fix go.mod file (c1a5a97)
  • ldfi2: add bazel support for haskell (7a73572)
  • ldfi2: Make events have a sent field, so we can be better at generating crashes (74e0783)
  • ldfi2: add limit to how many solution solve all returns (c3acb24)
  • ldfi2: add a variant of the solve function which gives back all models (82f5024)
  • ldfi2: Make ldfi output omissions/crashes (89ddf06)
  • ldfi2: parse command line args in executable (878e18b)
  • ldfi2: more work towards integrating library with executable (c982c57)
  • ldfi2: add iff formula and clean up z3_same (45453d8)
  • ldfi2: introduce solver interface (4f1683b)
  • ldfi2: print unknown version of version env var is unset (9f38a45)
  • ldfi2: Use stevana's branch for z3 (764e200)
  • ldfi2: add command line parsing (5235ca1)
  • ldfi2: add database and git commit version support (a472ca7)
  • ldfi2: translate our formulae into sat and solve them (7fdb7c9)
  • ldfi2: introduce skeleton for translating formulae to sat (f248786)
  • ldfi2: add z3 haskell dependency (c4ebdbc)
  • ldfi2: add failure spec and at field to events (f639a5a)
  • logger: towards supporting linearisable reads (43bdcd5)
  • lib: Make Topology be a custom type (b30d21e)
  • ldfi: try to be deterministic by setting random_seed (c2d6915)
  • db: add down migration for event_log (0fcf1ac)
  • cli: add generator to the output of the versions subcommand (a5ad6b4)
  • db: CHECK constraint on json columns (f6fb62d)
  • scheduler: Support multiple receivers (eddc4de)
  • lib: add ability to broadcast a message to multiple recipients (8516bef)
  • scheduler: Emit CreateRun event + add view for runs (a74608c)
  • cli: add logger up and down subcommands (911101c)
  • scheduler: add new create-run-event! endpoint in Scheduler (d9a957d)
  • logger: add first iteration of logging component (751b7a3)
  • lib: Add TimeFromString (3febbc3)
  • scheduler: Emit NetworkTrace event from the scheduler (d5f6936)
  • executor: Executor now sends the ExecutionStep event (47a2b75)
  • executor+scheduler: Add MetaInfo for each execution step (f929d76)
  • scheduler: add support for crashes (9d4fdfc)
  • lib: add crashes to InjectFaults (a5fab2c)
  • bazel: add and run gazelle (df36561)
  • cli: make it possible to step through the scheduler (5296932)
  • lib: add Init() method to reactor interface. (700bb5a)

Performance improvements

  • nix: Use bbe to patch the version (0d70032)
  • logger: use prepared statements (c85b631)
  • db: Add index for test-id (2471476)
  • debugger: Implement our own sequence diagrams (cc4e1fd)
  • executor: Don't do db-lookup to figure out topology (b3a0139)
  • scheduler: Use connection pool (6a2b843)
  • executor+scheduler: Remove events only used for profiling (e5b17fd)

Refactorings

  • ldfi2: fix bullet list in ldfi comment (d952f9f)
  • ldfi2: introduce ormolu and nixpkgs-fmt and reformat all ldfi2 files (f9958c1)
  • ldfi2: move marshalling to json into run (b1121ba)
  • ldfi2: move makeFaults from tests to ldfi module (87411ae)
  • ldfi2: rename fixpoint to simplify (e547ed6)
  • ldfi2: clean up translate (edd4fec)
  • ldfi2: use text instead of bytestring (0769d2b)
  • ldfi2: Remove unnecessary Maybe in test (410d6fd)
  • ldfi2: Split Ldfi module (b3d7b40)
  • ldfi2: Make it clearer what is lineage and what is ldfi (638a2d5)
  • logger: remove one layer of json (3adf676)
  • logger: make it possible to deploy the reactor (d589bf8)
  • logger: start turning logger into a reactor (e6f2e5d)
  • Rename component to reactor in tick event (2988df6)
  • executor: return without creating a variable (b9b8c7a)
  • lib: replace log.Fatal with panics (c1e5682)
  • db: squash all migrations (aba11ab)
  • executor: remove some unused code (70c7f37)
  • Use CreateTest event (d224bf3)
  • scheduler: Remove run table (f659315)
  • checker: Emit Analysis event (b53cf7e)
  • ldfi: Emit LdfiAnalysis event rather than update faults table (3eba406)
  • ldfi: Use CreateRun event instead of faults table (ae92e0b)
  • logger: rename module from logger to main so that we get a binary when compiling (479d8f1)
  • logger: specify buffer capacity and keep allocated memory of buffer (c9e5632)
  • checker: remove comment with code used for debugging (b266c25)
  • executor: Prepare executor for CreateRun event (06719c1)
  • checker: use sqlite library rather than shell out to binary (1d0f5f2)
  • Remobe old network_trace and use a view (eb79616)
  • scheduler: remove uberjar and native-image targets from deps.edn (af9ef9a)
  • checker: Use the new NetworkTrace and introduce jepsen_history view (18255a6)
  • ldfi: test and use new functions for db loading and formula building (030a0eb)
  • Remove heap_trace and log_trace (8cd8be8)
  • ldfi: create sat formula in separate step from loading from db (00b6c63)
  • debugger: Use ExecutionStep event (5b084ed)
  • executor: Log messages in the handler instead of inline (031e66a)
  • ldfi: break ldfi into smaller pieces and start trying to test them (f5a3a66)
  • lib: Move get inits from lib to scheduler. (9d63e5e)
  • cli: move scheduler status and update module name and imports. (7ea97b6)

Removed features

  • ldfiv1: and rename ldfi2 to just ldfi (81f4dc8)
  • repo: Remove old projects, and move demo to doc (339e6de)

Testing improvements

  • ldfi2: add estimation tests from molly (c23fb44)
  • sut/register: add asserts about expected runs and faults needed (5707712)
  • sut/broadcast: more asserts about expected runs and faults needed (5b27e7c)
  • sut/broadcast: add assertions about expected runs and faults needed (7c1ec70)
  • sut/broadcast: fix classic delivery implementation (f8ad7f8)
  • sut/register: document frontend 3 and 4 and tweak eff to make all tests pass (d07f57e)
  • sut/register: remove old tick implementation from frontend1 (61dbb38)
  • sut/register: document frontend1 and 2 (bc70069)
  • sut/register: make the field public for frontend2 so they can be seen in the debugger (194bb45)
  • ldfi2: fix tests after merge (2d8896d)
  • ldfi2: add more broadcast unit tests (9cf9536)
  • ldfi2: add test case for possible failures for cache example (30675ad)
  • ldfi2: Use quickcheck to test simplify (c8e7606)
  • ldfi2: introduce custom test main in case we need to tweak it (3c41e36)
  • ldfi2: Use z3 to compare logical-equivalences (eca485f)
  • ldfi2: add broadcast 1 test (79e7edb)
  • logger: add reads to test client (28247f5)
  • logger: write 50k messages in test client (2b30c1d)
  • logger: add test client (4b952c4)
  • ldfi: separate db loading from sat forumla creation (df32cb9)
  • ldfi: fix unit tests (788d661)
  • ldfi: run tests as part of nix build (f4dc61d)

Uncategorised

  • sut(broadcast): Use LTL reason in error message (526d35d)
  • Revert "nix: default to building with bazel on linux" (19e00ba)
  • prototype(ldfi v2): add cabal freeze file (bc7884f)
  • prototype(ldfi v2): add basic project structure including testsuite (d2bd105)
  • prototype(ldfi v2): more simplifying rules from Daniel and some minor fixes (33dbd29)
  • prototype(ldfi v2): do something less than a cross product (6d029e0)
  • prototype(ldfi v2): add simplification of formulae (523abe3)
  • prototype(ldfi v2): fix type error (67942f9)
  • prototype(ldfi v2): add remaining disjunctive part (5415cf9)
  • prototype(ldfi v2): add ghc to nix shell (9caf970)
  • prototype(ldfi v2): start with the disjunction part of the formula (0fb002b)
  • prototype(ldfi v2): add the first conjunction of ldfi (07bdeed)
  • prototype(ldfi v2): add example traces (dd421f6)
  • prototype(ldfi v2): initial commit (ca450e7)
  • comment(logger): add comment about linearisable reads (0e08de7)
  • Add event-log (c7841bc)
  • Fix module name and imports. (084f833)
  • WIP: adding bazel support. (5eb4e87)
  • Add more docs about nix. (615f9ae)
  • Protect from being able to start multiple schedulers. (7635ba0)
  • Add scheduler stop. (0b870e6)
  • Don't use require in executor for lib since we have a replace (aac1dd0)
  • Make nix shell build again. (ea8c5b9)

v0.0.1 (2020-12-16)

Uncategorised

  • Remove replace from executor go.mod. (37ce0f0)
  • Fix executor lib imports. (f46068e)
  • Fix lib module name. (75af558)
  • s/detsys-detsys/detsys-testkit/ (abbfad2)
  • Try to fix executor module name. (d99b27e)
  • Use longer variable names. (dfd9d4a)