Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:fponzi [2024/11/13 20:27] – fponzi | user:fponzi [2025/07/04 09:00] (current) – created fponzi | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Diving into tlatools ====== | + | Welcome |
- | + | ||
- | * TLC.java | + | |
- | * public int process() is like the main method | + | |
- | + | ||
- | Model checker.java extends AbstractChecker | + | |
- | + | ||
- | does initialization, | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | ====== Questions: ====== | + | |
- | + | ||
- | ===== What is a Trace? ===== | + | |
- | + | ||
- | * Stores the sequence of states explored during model checking in a file with the extension '' | + | |
- | * Provides methods to manage and access this trace information. | + | |
- | + | ||
- | ===== What’s the high level overview of the dependencies across classes? ===== | + | |
- | + | ||
- | ===== What’s the goal for Tool class? ===== | + | |
- | + | ||
- | This class provides useful methods for tools like model checker and simulator. It’s instance serves as a spec handle | + | |
- | + | ||
- | This is one of two places in TLC, where not all messages are retrieved from the message printer, but constructed just here in the code. | + | |
- | + | ||
- | Tool → FastTool → Spec → SpecProcessor→ Sany. | + | |
- | + | ||
- | ===== FPSet ===== | + | |
- | + | ||
- | Represents a set of 64-bit fingerprints. FPSet is an abstract class. | + | |
- | + | ||
- | Type hierarchy: | + | |
- | + | ||
- | **FPSet**: Class' | + | |
- | * **MemFPSet** | + | |
- | * MemFPSet1 (marked as deprecated) | + | |
- | * MemFPSet2 | + | |
- | * **NoopFPSet** | + | |
- | * **MultiFPSet** | + | |
- | * **DiskFPSet**: | + | |
- | * NonCheckpointableDiskFPSet | + | |
- | * OffHeapDiskFPSet | + | |
- | * HeapBasedDiskFPSet | + | |
- | * LSBDiskFPSet | + | |
- | * DummyDiskFPSet | + | |
- | * MSBDiskFPSet | + | |
- | * DummyFPSet in TLCServerTestCase | + | |
- | * MemFPSet | + | |
- | * FaultyFPSet | + | |
- | + | ||
- | Pratically speaking, | + | |
- | + | ||
- | + | ||
- | ===== What is TLCState? ===== | + | |
- | + | ||
- | TLCState is implemented by a tons of different classes for unknown reason. They were refactored at some point, so just a bunch of classes that extend it still exist: TLCStateMut, | + | |
- | + | ||
- | ==== What is TLCStateMut? | + | |
- | + | ||
- | represents a TLA+ state, which simply is an assignment of explicit values to all the global variables. This is the mutable version, which means that in-place updates are used for improved performance and reduced allocation. Compared | + |