<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://docs.tlapl.us/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://docs.tlapl.us/feed.php">
        <title>TLA+ Wiki - codebase</title>
        <description></description>
        <link>https://docs.tlapl.us/</link>
        <image rdf:resource="https://docs.tlapl.us/_media/logo.png" />
       <dc:date>2026-05-05T12:24:03+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:architecture_toolbox?rev=1727539090&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:architecture?rev=1770472536&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:ci_cd?rev=1727563249&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:contributing?rev=1742894277&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:debugging?rev=1729282714&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:devenv?rev=1727564159&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:idiosyncrasies?rev=1727539094&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:jpf?rev=1727564000&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:liveness?rev=1746566628&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:pluscal?rev=1727564080&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:resources?rev=1727539095&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:start?rev=1727540814&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:testing?rev=1758589565&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.tlapl.us/codebase:wishlist?rev=1727539098&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://docs.tlapl.us/_media/logo.png">
        <title>TLA+ Wiki</title>
        <link>https://docs.tlapl.us/</link>
        <url>https://docs.tlapl.us/_media/logo.png</url>
    </image>
    <item rdf:about="https://docs.tlapl.us/codebase:architecture_toolbox?rev=1727539090&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T15:58:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>architecture_toolbox</title>
        <link>https://docs.tlapl.us/codebase:architecture_toolbox?rev=1727539090&amp;do=diff</link>
        <description>Architecture of the TLA+ Toolbox (IDE)

This paper by Kuppe et al presents the technical architecture of the toolbox in this paper: https://arxiv.org/pdf/1912.10633</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:architecture?rev=1770472536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-07T13:55:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>architecture</title>
        <link>https://docs.tlapl.us/codebase:architecture?rev=1770472536&amp;do=diff</link>
        <description>Codebase Architecture Walkthrough

Modules

	*  pcal: Converts the pcal language into TLA+ that can be run by TLC2.
	*  tla2tex: “Pretty Prints” TLA+ code into LaTeX. This LaTeX can then be used for publishing.
	*  tla2sany: Contains the AST and parsing logic for the TLA+ language. The AST classes generated from parsing are used by TLC2.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:ci_cd?rev=1727563249&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T22:40:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ci_cd</title>
        <link>https://docs.tlapl.us/codebase:ci_cd?rev=1727563249&amp;do=diff</link>
        <description>CI/CD overview

The CI/CD is currently handled by Github Actions, see: &lt;https://github.com/tlaplus/tlaplus/blob/master/.github/&gt;
The tests are run as part of every PR and for every merge to main. The codebase is built against both Mac and Linux.

There are no performance testing as the last sponsor has pulled resources around 2022.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:contributing?rev=1742894277&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-25T09:17:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>contributing</title>
        <link>https://docs.tlapl.us/codebase:contributing?rev=1742894277&amp;do=diff</link>
        <description>Contributing to the tools

TL;DR: engage maintainers early &amp; often, be surgical in your changes, and write lots of tests.

We welcome contributions to this open source project! Before beginning work, please take some time to familiarize yourself with our development processes and expectations. The TLA⁺ tools are used to validate safety-critical systems, so maintaining quality is paramount. The existing code can also be quite complicated to modify and it is difficult to review changes effectively…</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:debugging?rev=1729282714&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-18T20:18:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debugging</title>
        <link>https://docs.tlapl.us/codebase:debugging?rev=1729282714&amp;do=diff</link>
        <description>Debugging and rootcausing issues

Start from the MRE

Minimum Reproducible Example. Often, if you can get one half of your problem is solved. This is why is so important to provide one when creating issues. The smaller the state graph needed to reproduce the issue, the better.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:devenv?rev=1727564159&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T22:55:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>devenv</title>
        <link>https://docs.tlapl.us/codebase:devenv?rev=1727564159&amp;do=diff</link>
        <description>Setting up the development environment

For eclipse, you can follow directions here: &lt;https://github.com/tlaplus/tlaplus/tree/master/general/ide&gt;

For intellij, if you plan to contribute to tlc, it’s fine to just open the relevant package from there. To build and run tests, you can use the cli.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:idiosyncrasies?rev=1727539094&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T15:58:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>idiosyncrasies</title>
        <link>https://docs.tlapl.us/codebase:idiosyncrasies?rev=1727539094&amp;do=diff</link>
        <description>Codebase Idiosyncrasies

As a 20 year old code base, one can expect idiosyncrasies that do not match current best practice. There are also inherent idiosyncrasies to any language interpreter. Maintaining functionality and performance is the most important concern. However whenever these idiosyncrasies can be removed without compromising those, they should be.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:jpf?rev=1727564000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T22:53:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jpf</title>
        <link>https://docs.tlapl.us/codebase:jpf?rev=1727564000&amp;do=diff</link>
        <description>Java Path Finder

Java Path Finder is a project developed by Nasa for model checking Java bytecode. See &lt;https://github.com/javapathfinder/jpf-core&gt;.

JPF is used to test some of the datastructures of tlatools. These tests can be invoked by using:


ant -f customBuild.xml compile compile-test test-verify</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:liveness?rev=1746566628&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-06T21:23:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>liveness</title>
        <link>https://docs.tlapl.us/codebase:liveness?rev=1746566628&amp;do=diff</link>
        <description>Liveness Checking Algorithm in TLC

The algorithm is described in the book: &quot;temporal verification of reactive systems: safety&quot;

High-Level Overview

The liveness checking algorithm in TLA+ verifies temporal properties in specifications - properties that describe how a system should behave over time. Unlike safety properties (which check that bad things never happen), liveness properties assert that something good eventually happens.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:pluscal?rev=1727564080&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T22:54:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pluscal</title>
        <link>https://docs.tlapl.us/codebase:pluscal?rev=1727564080&amp;do=diff</link>
        <description>Pluscal (+cal)

To learn more about pluscal, the language and how the generation process works check this out: &lt;https://github.com/tlaplus/tlaplus/blob/ab14a33e39c78e4c88e81b664b9a8c916b943cab/tlatools/org.lamport.tlatools/src/pcal/PlusCal.tla&gt;.

Changing the pluscal translator

The pluscal translator can be thought as the pluscal “compiler” which takes as input pluscal code and produces tla+ in output.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:resources?rev=1727539095&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T15:58:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>resources</title>
        <link>https://docs.tlapl.us/codebase:resources?rev=1727539095&amp;do=diff</link>
        <description>Resources

	*  Temporal Verification of Reactive Systems: Safety by Zohar Manna, Amir Pnueli. Section 5.5 “Particle Tableaux” is useful to understand the use of Tableaux for liveness verification in tlc codebase.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:start?rev=1727540814&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T16:26:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://docs.tlapl.us/codebase:start?rev=1727540814&amp;do=diff</link>
        <description>TLA+ codebase

The tlaplus codebase is very complex. There are over 600k lines of code, in over 2000 files, written over 20+ years. And yet as the best distributed systems modelling tool on the market today, maintaining and improving it is critical.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:testing?rev=1758589565&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-23T01:06:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>testing</title>
        <link>https://docs.tlapl.us/codebase:testing?rev=1758589565&amp;do=diff</link>
        <description>Building and running tests

You will need ant build system. customBuild.xml supports different parameters to tune the tests. They can also be combined.

customBuild.xml common commands

	*  compile: recompiles the production code for project. Required if you changed any code in src folder.</description>
    </item>
    <item rdf:about="https://docs.tlapl.us/codebase:wishlist?rev=1727539098&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-28T15:58:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wishlist</title>
        <link>https://docs.tlapl.us/codebase:wishlist?rev=1727539098&amp;do=diff</link>
        <description>Wishlist: List of projects to extend/improve TLA+, TLC, TLAPS or the Toolbox

Please also consult the issues tracker if you want to get started with contributing to TLA+. The items listed here likely fall in the range of man-months.

TLC model checker

(In Progress) Concurrent search for strongly connected components (difficulty: high) (skills: Java, TLA+)</description>
    </item>
</rdf:RDF>
