Hi Markus,
In Python, two leading and two trailing underscores are used in names of
special methods [1,2], which are implicitly called by Python to execute certain
operations, for example the method named `__str__` implements the conversion of
an object to a string. A leading underscore signifies a non-public part
of the API [3], and names that start with an underscore are not imported by
`from modulename import *` [4] (and not shown in introspection with `ipython`,
unless an underscore is typed before pressing tab).
So `__pycache__` indicates a builtin mechanism, and alludes to internal details.
Adopting the Python scheme for `__tlacache__` would have the benefit of
following this convention, and its similarity to `__pycache__` could suggest
similar purpose, of storing auxiliary files.
About using a dot in the directory name, in PEP 3147 the reasons listed for not
using a dot are that dot-files are special on only some platforms and that
the `__pycache__` directory is not intended to be completely hidden from users [5].
The `*.tlaps` directories can contain input files for solvers when the
`--debug=tempfiles` option is passed to `tlapm`, and those files could be used
for debugging. I was not sure whether the directory would be intended to be
completely hidden (instead of explicitly hidden via `.gitignore`), and followed
the Python convention, hence the name `__tlacache__`.
Within a `git` repository, and using a program that is aware of `.gitignore`
settings, the file view would hide the `__tlacache__` directory (for example
within the editor Atom).
[1] https://docs.python.org/3/glossary.html?highlight=underscore (entry: "special method")
[2] https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles
[3] https://docs.python.org/3/tutorial/classes.html#private-variables
[4] https://docs.python.org/3/tutorial/modules.html?highlight=underscore#more-on-modules
[5] https://www.python.org/dev/peps/pep-3147/#pyc
Best regards,
Ioannis