This is the Lurch source code documentation, containing details of all implemented features and decisions. See the tabs at the top left.
This page gives a quick overview of the source code documentation, but other resources are available on the main Lurch page.
There is a page that describes the concepts which the Lurch source code implements. It reads a bit more high-level, and may be a good place to go to familiarize yourself with the terminology, and get a broad view of what's going on before diving into details.
The Lurch Team gratefully acknowledges several open source projects on which we depend, some of which are imported into our source code using the
svn:externals Subversion property, documented here. You will not find documentation of those projects in our source code docs, because that would take up space needlessly. Any file beneath trunk/externals/ is part of an external subproject, and you can find its documentation at its home page. See trunk/externals/README.txt for links to their homepages.
The main class in the Lurch project is the Lurch Object class, called Lob. Its documentation is a good place to start for the technical details on which Lurch is built. If you're a script author and want to see what the Lobs you can get your hands on can do, see the Scripting section, below.
Other important C++ classes that have been fully implemented are mentioned on the implemented design page, already linked to from above. Classes not yet fully implemented (e.g., LurchEnvironment, which is partially done) are described on the Lurch wiki's Foundational Specification page.
Note that Lurch Reference, Lurch Function, and Lurch Document are concepts whose functionality is part of the Lob class, since they are all special kinds of Lobs. Thus they are not embodied in any specific class, though conceptually they are distinct.
Unit testing is a big part of the Lurch development effort. We aim to test rigorously every method we write, and the files in the tests subdirectory go a long way toward that goal. See the Classes page and look for every class that begins with
test_. Each such class is documented with what it tests, and every method tested should also link back to the class and method which tests it.
example.js explains how to add additional test files to the collection.
To invoke all tests simultaneously, run the
testlurch shell script from the command line. Not only does it run all C++ and Lurch script tests, but it also builds all utilities in the
utils subdirectory and ensures they compile acceptably.
The main documentation for script authors is our Lurch Scripting with simple_script page. Additional references are listed here.
simple_scripttool is documented in utils/simple_script/main.cpp, and is a handy command-line tool for Lurch script experimentation
utils/simple_script/jsutilsdirectory and in the
tests/script_testsdirectory you can find examples of working scripts.