Images in plain text and the terminal; bounded build parallelism (from dev 16f82cc887af)

- @image under txt and ansi is a picture in characters, in five styles
  (Image_txt_style: halfblock the default, shade, ascii, quadrant,
  braille), sized to the terminal's width less a margin when ktext runs
  in one, every cell in its own colours under ansi; a figure's caption
  is centred under it and no txt caption is ruled off any more.
- The build compiles as many files at once as the machine has cores
  (JOBS; make -C com JOBS=1 for a small machine): the sub-makes' bare -j
  meant unlimited parallelism and exhausted 8 GB machines. The three
  install pages say "make -C com".

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ackandClaude Fable 5.1 committed 2026-09-30 16:13:23 +02:00
1 parent d14da90bbf
commit ed7bedf5a7
13 files changed
+335 -41

No files matched your search

+10
View File
@@ -55,6 +55,16 @@ PYTHON_INC := $(shell python3-config --includes)
PYTHON_LIB := $(shell python3-config --ldflags --embed)
endif
# How many compiles run at once. Every sub-make below passes -j$(JOBS): a
# bare "-j" means UNLIMITED to GNU make, and from 2026-02 until 2026-09-30
# that is what the sub-makes carried -- all ~47 optimising compiles at once,
# which no one noticed on the development machines' memory and which put an
# 8 GB Raspberry Pi 5 into an out-of-memory livelock three times in a day
# (and was the Windows Sandbox's "parallel OOM"). The outer command never
# governed it: "make -C com" without -j was not serial. Override for a
# small machine: make -C com JOBS=1.
JOBS ?= $(shell nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
# Flags common to all platforms.
CPPFLAGS = -I$(KLAMMERTEXT_HOME)/mac $(PYTHON_INC)
CXXFLAGS = -Wall -Wextra -Weffc++ -Wshadow -std=$(CPP_VERSION) -fPIC $(OPTIMIZE) $(SANITIZE)