aboutsummaryrefslogtreecommitdiff
path: root/doc/code
diff options
context:
space:
mode:
authorPjotr Prins2025-06-24 20:36:01 +0200
committerPjotr Prins2025-06-24 20:36:01 +0200
commitabef0bbbc306006018a488e0733932ed752c615d (patch)
treee910617a591071f1ce4bfce4276415092b6738f7 /doc/code
parent422d6305dc528c32f8ba002f4076e2abd4b7be7e (diff)
downloadpangemma-abef0bbbc306006018a488e0733932ed752c615d.tar.gz
Preparing the build shell and enviroment
Diffstat (limited to 'doc/code')
-rw-r--r--doc/code/pangemma.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/doc/code/pangemma.md b/doc/code/pangemma.md
index eef522e..b588b7e 100644
--- a/doc/code/pangemma.md
+++ b/doc/code/pangemma.md
@@ -204,3 +204,11 @@ ZeroMQ provides a minimalistic message passing interface in most languages. It w
## Sharing data in RAM
There are several methods for sharing data between threads and processes. First we can first use Linux copy on write for instantiated processes. The Linux kernel als has shared memory support and, more interesting, memory mapping support --- which is also used in lmdb. Lmdb is multi-platform and works on non-POSIX systems. It is very fast, but may need tweaking, for example by disabling read-ahead with MDB_NORDAHEAD. We'll get to that.
+## Build system
+
+The build system for development relies on Guix. See the header of [guix.scm](../guix.scm).
+Guix handles depencies well, so it is a great base to work from.
+
+For the actual build system we'll probably roll our own.
+All build tools I know are too messy, including CMake, meson and make itself. So, as a real hacker, we
+reinvent the wheel. A starting point is Arun's [g-exp blog](https://systemreboot.net/post/g-expressions-makings-of-a-make-killer).