xo-numeric/xo-jit/docs/glossary.rst
Roland Conybeare 757dfed99c Add 'xo-jit/' from commit '855887df71'
git-subtree-dir: xo-jit
git-subtree-mainline: 35555df976
git-subtree-split: 855887df71
2025-05-11 01:54:47 -05:00

67 lines
2.3 KiB
ReStructuredText

.. _glossary:
Glossary
--------
.. glossary::
ABI
| Short for Application Binary Interface.
| In this context applies to conventions adopted by `xo-jit`.
c.foo
| llvm typename for automatically-generated closure type for a lambda
| with name `foo`.
e.foo
| llvm typename for automatically-generated local environment for a
| lambda with name `foo`.
w.foo
| llvm typename for automatically-generated wrapper function for a
| primitive function `foo`. The wrapper function accepts and ignores
| an extra initial argument supplying an environment pointer.
|
| We apply this practice so that lambdas and primitives support the
| same ABI, so that we can support pointers to abstract functions
| that might at runtime turn out to be either primitives or lambdas
lambda
| Common use is for lambda to refer to an anonymous function.
| In llvm we need all functions to be named, and those names
| have to be unique.
|
| Since all functions have to be named, we cheerfully adopt
| the oxymoron 'named lambda'
|
| Practices:
| 1. Automatically generate unique names for anonymous lambdas.
| 2. Incorporate user-provided names for convenience, when provided.
| 3. Still have to uniqueify names for user-provided nested lambdas.
localenv
| Shorthand for local environment.
| Represents an explicit runtime repsentation for a struct that
| holds captured function arguments with the ability to be persisted
| (for example, moved to the the heap).
|
| Note that library `xo-expression` also uses the term environment, but differently.
| In that context describes all function arguments.
lvtype
| Shorthand for `llvm::Type`:
| llvm-owned representation for a datatype
xsession
| Shorthand for `llvm::orc::ExecutionSession`.
| Manages running JIT-generated machine code in the host process
td
| Short for `xo::reflect::TypeDescr`.
XO
A set of integrated c++ libraries for complex event processing, with browser and python integration.
`xo documentation here`_
.. _xo documentation here: https://rconybea.github.io/web/sw/xo.html
.. toctree::