Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: CL builds use same animal name, show LISP tag on boot screen

- CL variant inherits the C build's animal name instead of "cl-<hash>"
- /etc/ac-build metadata file written during docker-build (name, hash, ts, variant)
- CL boot splash shows build name at bottom center and golden "LISP" tag top-right
- AC_BUILD_VARIANT=cl passed to CL Docker builds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+37 -2
+28
fedac/native/cl/main.lisp
··· 152 152 (clrhash *active-voices*) 153 153 (clrhash *active-notes*)) 154 154 155 + ;;; ── Build metadata ── 156 + 157 + (defvar *build-name* "dev" "Build name from /etc/ac-build.") 158 + (defvar *build-variant* "c" "Build variant: c or cl.") 159 + 160 + (defun load-build-metadata () 161 + "Read /etc/ac-build: line 1=name, 2=hash, 3=timestamp, 4=variant." 162 + (handler-case 163 + (when (probe-file "/etc/ac-build") 164 + (with-open-file (s "/etc/ac-build" :direction :input) 165 + (let ((name (read-line s nil nil)) 166 + (hash (read-line s nil nil)) 167 + (ts (read-line s nil nil)) 168 + (variant (read-line s nil nil))) 169 + (declare (ignore hash ts)) 170 + (when name (setf *build-name* name)) 171 + (when variant (setf *build-variant* variant))))) 172 + (error () nil))) 173 + 155 174 ;;; ── Boot splash ── 156 175 157 176 (defun time-greeting () ··· 321 340 (force-output *error-output*) 322 341 323 342 (font-init) 343 + (load-build-metadata) 324 344 325 345 ;; ── Boot splash ── 326 346 (let* ((cfg (ac-native.config:load-config)) ··· 366 386 (graph-ink graph (make-color :r 140 :g 160 :b 200 :a 180)) 367 387 (font-draw graph "notepat" 368 388 (- (floor sw 2) (floor (font-measure "notepat") 2)) (+ cy 18))))) 389 + ;; Build name (bottom center) 390 + (graph-ink graph (make-color :r 60 :g 60 :b 80 :a 120)) 391 + (font-draw graph *build-name* 392 + (- (floor sw 2) (floor (font-measure *build-name*) 2)) (- sh 20)) 393 + ;; LISP tag (top right) when CL variant 394 + (when (string= *build-variant* "cl") 395 + (graph-ink graph (make-color :r 255 :g 200 :b 80 :a 200)) 396 + (font-draw graph "LISP" (- sw (font-measure "LISP") 6) 6))) 369 397 (ac-native.drm:drm-present display screen scale) 370 398 (frame-sync-60fps))) 371 399
+7
fedac/native/docker-build.sh
··· 322 322 log " Initramfs: $TOTAL_FILES files, $BROKEN_FINAL broken symlinks" 323 323 [ "$BROKEN_FINAL" -gt 0 ] && err " WARNING: broken symlinks remain!" 324 324 325 + # Write build metadata (C variant by default, CL overrides below) 326 + mkdir -p "$IROOT/etc" 327 + printf '%s\n%s\n%s\nc\n' "$BUILD_NAME" "$GIT_HASH" "$BUILD_TS" > "$IROOT/etc/ac-build" 328 + 325 329 # ── Optional: Swap in Common Lisp binary ── 326 330 if [ "${AC_BUILD_LISP:-0}" = "1" ]; then 327 331 log "Step 2b: Building ac-native (Common Lisp)..." ··· 360 364 for lib in /lib64/libzstd.so*; do 361 365 [ -f "$lib" ] && cp -L "$lib" "$IROOT/lib64/" 2>/dev/null 362 366 done 367 + # Write build metadata for CL to read at runtime 368 + mkdir -p "$IROOT/etc" 369 + printf '%s\n%s\n%s\ncl\n' "$BUILD_NAME" "$GIT_HASH" "$BUILD_TS" > "$IROOT/etc/ac-build" 363 370 log " Swapped CL binary into initramfs (with QuickJS)" 364 371 else 365 372 err "CL binary not produced — using C binary"
+2 -2
oven/native-builder.mjs
··· 432 432 addLogLine(job, "stdout", "Phase 5: Building Common Lisp variant..."); 433 433 const clCidFile = `/tmp/oven-cl-cid-${job.id}`; 434 434 const clVmlinuzOut = `/tmp/oven-cl-vmlinuz-${job.id}`; 435 - const clBuildName = `cl-${job.ref.slice(0, 7)}`; 435 + const clBuildName = job.buildName || `cl-${job.ref.slice(0, 7)}`; 436 436 437 437 await runPhase(job, "cl-build", "bash", ["-c", [ 438 - `CID=$(docker create -e AC_BUILD_NAME=${clBuildName} -e AC_BUILD_LISP=1 ac-os-builder)`, 438 + `CID=$(docker create -e AC_BUILD_NAME=${clBuildName} -e AC_BUILD_VARIANT=cl -e AC_BUILD_LISP=1 ac-os-builder)`, 439 439 `echo $CID > ${clCidFile}`, 440 440 `docker start -a $CID`, 441 441 ].join(" && ")], repoDir);