Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

20 lines
862 B
Plaintext

- Generally, keep global state to a minimum and add it to
hilti::rt::detail::GlobalState instead of creating actual globals.
This applies to static class members, too.
- If you really have to create a global or static class member (which
should be rare), do not use types that have global constructors. JIT
is easier if we don't need to support them (and we don't).
- Make sure accesses to state in hilti::rt::detail::GlobalState is
thread-safe.
TODO: Actually right now it is not, need to go througn and add
synchronization where necessary. (Or maybe an accessor object that
locks the state automatically)
- TODO: The separation of internal details and public API isn't great
yet. Should move factor out much of the headers into a separate
`detail/` tree, and then also move more from the public namespace
into the `detail` namespace.