aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-01-19 14:46:42 +0100
committerGitHub Enterprise <[email protected]>2026-01-19 14:46:42 +0100
commit155271b7e541705bab782c0b75ed09050a56fcf8 (patch)
treedaff96788a7dda7dbc9adbb68a5daae2f2fc0af4 /README.md
parentremove ZENCORE_API completely (#718) (diff)
downloadzen-155271b7e541705bab782c0b75ed09050a56fcf8.tar.xz
zen-155271b7e541705bab782c0b75ed09050a56fcf8.zip
ZenServerProcess API changes (#719)
This refactor aims to improve the `ZenServerProcess` classes by making them useful for managing child zenserver instances in more scenarios than just automated tests. This involves changing some functions to not talk about "test directory" and instead use "data directory" etc As a consequence of the API changes, some tests have changed accordingly. The code includes som reference to the "hub" mode but there is not yet any other code using this mode, it's just included in this PR to simplify future merges.
Diffstat (limited to 'README.md')
-rw-r--r--README.md20
1 files changed, 15 insertions, 5 deletions
diff --git a/README.md b/README.md
index de65348a2..0bc708ff6 100644
--- a/README.md
+++ b/README.md
@@ -51,13 +51,14 @@ from a Command Prompt window or a Terminal instance
### Building with xmake on the command line
-* configure xmake: `xmake config -m debug|release -a x64`
+* configure xmake: `xmake config -m debug`
* build zenserver: `xmake build zenserver`
* build all targets at once: `xmake`
-Compiled binaries are located in the `build` directory
+Compiled binaries end up in the `build` directory. xmake uses the `.xmake` directory to store
+project specific state. For more tips on working with xmake, see [xmake notes](docs/xmake.md)
-#### Installing pre-commit (optional)
+### Installing pre-commit (optional but recommended)
This is necessary to run pre-commit locally, which is useful in particular to run clang-format prior to
commit.
@@ -65,7 +66,12 @@ commit.
* Make sure python3 is installed. Version 3.11 or later should work
* You can install using `winget install python3`
* Run `pip install pre-commit==3.2.0` (later versions may or may not work)
-* If you want the pre-commit steps to be run at commit time you can run `pre-commit install` within your local repo.
+* If you want the pre-commit steps to be run at commit time (which is recommended) you can
+ run `pre-commit install` within your local repo.
+
+Once you have pre-commit installed, it's convenient to use the provided xmake task to trigger it
+manually to apply clang-format rules. You can do this by running `xmake precommit` on the command
+line.
## Building on Linux
@@ -163,7 +169,11 @@ brew install pkgconfig
# Implementation Notes
* The implementation currently depends only on a few libraries including the C++ standard library
-* It uses exceptions for certain types of unexpected error conditions
+ * In a few places we also use EASTL, mostly to eliminate memory allocations by using the excellent
+ `eastl::fixed_vector` et al containers which contain an embedded memory buffer which is used
+ until capacity is exceeded at which point it switches to the heap
+* It uses exceptions for certain types of unexpected error conditions. Exceptions should not be
+ used for other flow control.
# Contributing Code