Experiments¶
Ora is also a testbed for a number of experiments, related to temporal programming, API design, and Python extension.
- Tick-based integer time representations, with heavy use of C++ templates and inlining, for very high performance.
- An API designed around physical times rather than date-time representations, with support for dates as a distinct concept.
- Support for time and date types with multiple widths and precisions.
- Techniques for wrapping C++ template types as Python types. Interoperability is challenging, as C++ templates do not provide virtual dispatch.
- Batteries-included, zero dependency C++ and Python libraries, including current time zone data.
- Support for distinct “invalid” and “missing” values. A C++ API that provides function variants that either raise an exception or return an invalid value on error.
- Full support for both scalar and vector (NumPy) operations. [experimental]
- Rich calendar support. [planned]
Ora does not meet all these goals! But it is fun to try.