aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/CODING.md6
-rw-r--r--docs/NOTES.md20
-rw-r--r--docs/RESTAPI.md11
-rw-r--r--docs/xmake.md8
4 files changed, 44 insertions, 1 deletions
diff --git a/docs/CODING.md b/docs/CODING.md
index 2452e6ef0..8924c8107 100644
--- a/docs/CODING.md
+++ b/docs/CODING.md
@@ -22,3 +22,9 @@ Formatting is ensured by using [pre-commit](https://pre-commit.com/)
- Run pre-commit manually on staged files `pre-commit run`
- Run pre-commit manually on all files `pre-commit run --all-files`. There is also a `xmake precommit` shortcut which may be easier to remember
- Install git commit hooks `pre-commit install`, which will automatically run before every commit.
+
+# Standard Library / Containers
+
+Unlike UE5, use of `std` containers etc is acceptable though in some cases you may also consider using `eastl` equivalents which can
+sometimes enable more efficient runtime. In particular, `eastl::fixed_vector` et al can eliminate memory allocations by pre-allocating
+backing memory for common (small) sizes internally while still allowing larger sizes by overflowing to the heap.
diff --git a/docs/NOTES.md b/docs/NOTES.md
new file mode 100644
index 000000000..76476b0ea
--- /dev/null
+++ b/docs/NOTES.md
@@ -0,0 +1,20 @@
+# General Notes
+
+Some implementation notes and things which we may want to address in the future.
+
+## Memory Management
+
+We’ll likely want to *not* use `mimalloc` by default due to memory overheads, but perhaps it’s a win on high volume servers? In that case we need a way to opt in, but it’s not obvious how that might be done since we need to configure it quite early. It would even be preferable to not even compile with mimalloc to avoid the unfortunate way they initialize using TLS mechanisms in more recent versions since this does not play well with static linking. Instead of `mimalloc` it may be preferable to use `rpmalloc` instead as it is simpler and we have internal developer support if necessary.
+
+## Testing
+
+`doctest` has some thread local state which can unfortunately end up running after the main thread has exited and torn everything down. When it tries to free memory after main has exited things go bad. Currently this mostly ends up being an issue when running tests in the debugger. Some heuristics have been implemented to try and wait for all threads to exit before continuing shutting down but it does not feel like a proper solution.
+
+# Hub
+
+## Data Obliteration
+
+We need to support data obliteration on a module level. This means removing any local state for a given
+module id and also any cold data.
+
+Add ability to register service with Consul via REST API
diff --git a/docs/RESTAPI.md b/docs/RESTAPI.md
index 6b072d188..d3ec04d07 100644
--- a/docs/RESTAPI.md
+++ b/docs/RESTAPI.md
@@ -1,5 +1,9 @@
# REST API
+The REST interface exposed is considered a private implementation detail and
+is going to evolve. We do not recommend that you interface with it other than
+for testing purposes.
+
## Test Service
Intended to be used for basic connectivity testing. Allows the client to fetch
@@ -7,10 +11,15 @@ various kinds of payloads via well-known URIs
HTTP endpoint: `/test`
-`/test/size/{size}` - verbs: (`GET`)
+`/test/{size}` - verbs: (`GET`/`HEAD`)
+
+Examples: `/test/1K` `/test/1M` `/test/1G`, `/test/1M_1k`, `/test/1G_1k`
## Cache Service
HTTP endpoint: `/cache`
`/cache/`
+
+## Status Service
+
diff --git a/docs/xmake.md b/docs/xmake.md
index 501d5d170..a529107b8 100644
--- a/docs/xmake.md
+++ b/docs/xmake.md
@@ -33,6 +33,14 @@ dev/zen> xmake run zen
# Cleaning out *all* build state
+You may run into build issues at some point due to bad on-disk state. For instance your workstation
+could crash at an inopportune moment leaving things in an inconsistent state, or you may run into bugs
+in compilers or the build system itself.
+
+When faced with this it's good to be able to wipe out all state which influences the build. Since xmake
+uses a number of different locations to store state it's not entirely obvious at first how to accomplish
+this.
+
## Windows
```