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:21] – [FPSet] 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. | + | |
| - | + | ||
| - | ===== How does MP works? ===== | + | |
| - | + | ||
| - | ===== 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** | + | |
| - | + | ||
| - | * **MemFPSet** | + | |
| - | * MemFPSet1 (marked as deprecated) | + | |
| - | * MemFPSet2 | + | |
| - | * **NoopFPSet** | + | |
| - | * **MultiFPSet** | + | |
| - | * **DiskFPSet** | + | |
| - | * NonCheckpointableDiskFPSet | + | |
| - | * OffHeapDiskFPSet | + | |
| - | * HeapBasedDiskFPSet | + | |
| - | * LSBDiskFPSet | + | |
| - | * DummyDiskFPSet | + | |
| - | * MSBDiskFPSet | + | |
| - | * DummyFPSet in TLCServerTestCase | + | |
| - | * MemFPSet | + | |
| - | * FaultyFPSet | + | |
| - | + | ||
| - | ===== 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 | + | |