96 lines
2.4 KiB
Plaintext
96 lines
2.4 KiB
Plaintext
|
|
|
|
nim cc \
|
|
-d:release \
|
|
--stackTrace:off \
|
|
--lineTrace:off \
|
|
--checks:off \
|
|
--assertions:off \
|
|
--debugger:native \
|
|
joy.nim
|
|
|
|
nim doc --project --index:on --git.url:"https://git.sr.ht/~sforman/Bliss" --git.commit:10b5651ed242fb16c29f2c1f7340d77f65926ca4 --outdir:htmldocs joy.nim
|
|
|
|
https://git.sr.ht/~sforman/Bliss/tree/10b5651ed242fb16c29f2c1f7340d77f65926ca4/item/types.nim#L26
|
|
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
§.3.1 Jupyter Notebooks
|
|
|
|
The docs/ folder contains Jupyter notebooks, ... TODO
|
|
|
|
§.3.2 Sphinx Docs
|
|
|
|
Some of the documentation is in the form of ReST files
|
|
|
|
§.3.3 Building the Docs
|
|
|
|
Building the documentation is a little tricky at the moment. It involves
|
|
a makefile that uses nbconvert to generate ReST files from some of the
|
|
notebooks, copies those to the sphinx source dir, then builds the HTML
|
|
output using sphinx.
|
|
|
|
Get the dependencies for (re)building the docs:
|
|
|
|
pip install Thun[build-docs]
|
|
make docs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nothing is done about Python exceptions currently, although it would be
|
|
possible to capture the stack and expression just before the exception
|
|
and build a robust and flexible error handler. Because they are both
|
|
just datastructures, you could immediately retry them under a debugger,
|
|
or edit either or both of the stack and expression. All state is in one
|
|
or the other.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### AND, OR, XOR, NOT
|
|
|
|
There are three families (categories?) of these operations:
|
|
|
|
1. Logical ops that take and return Boolean values.
|
|
2. Bitwise ops that treat integers as bit-strings.
|
|
3. Short-Circuiting Combinators that accept two quoted programs
|
|
and run top quote *iff* the second doesn't suffice to resolve the clause.
|
|
(in other words `[A] [B] and` runs `B` only if `A` evaluates to `true`,
|
|
and similarly for `or` but only if `A` evaluates to `false`.)
|
|
|
|
(So far, only the Elm interpreter implements the bitwise ops. The others
|
|
two kinds of ops are defined in the `defs.txt` file, but you could implement
|
|
them in host language for greater efficiency if you like.)
|
|
|
|
| op | Logical (Boolean) | Bitwise (Ints) | Short-Circuiting Combinators |
|
|
|-----|-------------------|----------------|------------------------------|
|
|
| AND | `/\` | `&&` | `and ` |
|
|
| OR | `\/` | `\|\|` | `or` |
|
|
| XOR | `_\/_` | `xor` | |
|
|
| NOT | `not` | | |
|
|
|
|
|