changelog shortlog graph tags branches files raw help

Mercurial > infra / changeset: autogen updates

changeset 254: e2b8d0be0d24
parent 253: ff7589f4656d
child 255: ad70dec68fa1
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 12 Jun 2024 23:02:34 -0400
files: autogen.lisp bootstrap.sh check.sh default.sxp skelfile
description: autogen updates
     1.1--- a/autogen.lisp	Wed Jun 12 13:56:58 2024 -0400
     1.2+++ b/autogen.lisp	Wed Jun 12 23:02:34 2024 -0400
     1.3@@ -1,6 +1,6 @@
     1.4-;;; bootstrap.lisp --- let 'er rip
     1.5+;;; autogen.lisp --- Setup the current directory for 
     1.6 
     1.7-;;
     1.8+;; sbcl --load autogen.lisp
     1.9 
    1.10 ;;; Code:
    1.11 (in-package :std-user)
    1.12@@ -11,35 +11,60 @@
    1.13         :cli/progress :cli/ansi :cli/ed :cli/prompt
    1.14         :cli/shell :std/hash-table :std/alien :std/macs
    1.15         :std/fmt))
    1.16+
    1.17 (in-package :infra/bootstrap)
    1.18+
    1.19 (in-readtable :shell)
    1.20 
    1.21-(eval-when (:compile-toplevel)
    1.22-  (defstruct host name cpus mem arch kernel core)
    1.23-  (defparameter *profile* (read-sxp-file
    1.24-                           (if-let ((profile (sb-posix:getenv "BUILD_PROFILE")))
    1.25-                             profile
    1.26-                             #P"default.sxp")))
    1.27-  (defparameter *core* sb-ext:*core-pathname*)
    1.28-  (defparameter *host-config* (read-sxp-file
    1.29-                               (let ((hcfg (format nil "~a.sxp" (sb-unix:unix-gethostname))))
    1.30-                                 (unless (probe-file hcfg)
    1.31-                                   (print #0$./check.sh$#))
    1.32-                                 hcfg)))
    1.33-  (defparameter *env* (let ((table (make-hash-table :test 'equal))
    1.34-                            (keys (list "STASH" "STORE" "DIST" "PACKY_URL" "VC_URL" "INSTALL_PREFIX"
    1.35-                                        "CC" "AR" "HG" "GIT" "LISP" "RUST" "LD" "SHELL" "DEV" "DEV_HOME"
    1.36-                                        "DEV_ID" "WORKER" "WORKER_ID" "WORKER_HOME" "CARGO_HOME" "RUSTUP_HOME"
    1.37-                                        "LISP_HOME")))
    1.38-                  (dolist (k keys table)
    1.39-                    (setf (gethash k table) (sb-posix:getenv k))))))
    1.40+(defparameter *profile* (uiop:read-file-forms
    1.41+                         (if-let ((profile (sb-posix:getenv "INFRA_PROFILE")))
    1.42+                           profile
    1.43+                           #P"default.sxp")))
    1.44+(defparameter *core* sb-ext:*core-pathname*)
    1.45+(defparameter *host* (uiop:read-file-forms
    1.46+                             (let ((hcfg (format nil "~a.sxp" (sb-unix:unix-gethostname))))
    1.47+                               (unless (probe-file hcfg)
    1.48+                                 (print #0$./check.sh$#))
    1.49+                               hcfg)))
    1.50+(defun gethost (k) (getf *host* k))
    1.51+(defun getprofile (k) (getf *profile* k))
    1.52+(init-skel-vars)
    1.53+(setq *skel-project* (find-skelfile *default-pathname-defaults* :load t))
    1.54+(defparameter *host-env* (let ((table (make-hash-table :test 'equal))
    1.55+                               (keys (list "STASH" "STORE" "DIST" "PACKY_URL" "VC_URL" "INSTALL_PREFIX"
    1.56+                                           "CC" "AR" "HG" "GIT" "LISP" "RUST" "LD" "SHELL" "DEV" "DEV_HOME"
    1.57+                                           "DEV_ID" "WORKER" "WORKER_ID" "WORKER_HOME" "CARGO_HOME" "RUSTUP_HOME"
    1.58+                                           "LISP_HOME" "INFRA_PROFILE")))
    1.59+                           (dolist (k keys table)
    1.60+                             (setf (gethash k table) (sb-posix:getenv k)))))
    1.61+(defun getenv (k) (gethash *host-env* k))
    1.62 
    1.63-(println "starting bootstrap.lisp")
    1.64-;; (println sb-sys::*machine-version*)
    1.65-;; (trace! "env:" (hash-table-alist *env*))
    1.66+(info! "starting autogen.lisp" sb-ext:*core-pathname*)
    1.67+(terpri)
    1.68+(format t "core: ~A~%" *core*)
    1.69+(terpri)
    1.70+(println "host:")
    1.71+(loop for (k v) on *host* by 'cddr
    1.72+      do (format t "  ~A = ~A~%" k v))
    1.73+(println "env:")
    1.74+(loop for k being the hash-key
    1.75+      using (hash-value v) of *host-env*
    1.76+      do (format t "  ~A = ~:A~%" k v))
    1.77+(println "profile:")
    1.78+(loop for (k v) on *profile* by 'cddr
    1.79+      do (format t "  ~A = ~A~%" k v))
    1.80 
    1.81-;; build-config
    1.82-(defun apply-build-config ()
    1.83-  (setf *log-level* :trace))
    1.84+;;; init stash (via skel)
    1.85+(sk-call* *skel-project* :clean :src)
    1.86 
    1.87-;; host-config
    1.88+(let ((rocksdb-builder (sb-thread:make-thread (lambda () (sk-call* *skel-project* :rocksdb))))
    1.89+      (sbcl-builder (sb-thread:make-thread (lambda () (sk-call* *skel-project* :sbcl :sbcl-shared))))
    1.90+      (archlinux-pod-builder (sb-thread:make-thread (lambda () (sk-call *skel-project* :archlinux))))
    1.91+      (alpine-pod-builder (sb-thread:make-thread (lambda () (sk-call *skel-project* :alpine)))))
    1.92+  (std/thread:wait-for-threads
    1.93+   (list rocksdb-builder sbcl-builder archlinux-pod-builder alpine-pod-builder)))
    1.94+;;; *host*
    1.95+
    1.96+;;; *profile*
    1.97+
    1.98+(sb-ext:quit)
     2.1--- a/bootstrap.sh	Wed Jun 12 13:56:58 2024 -0400
     2.2+++ b/bootstrap.sh	Wed Jun 12 23:02:34 2024 -0400
     2.3@@ -26,7 +26,7 @@
     2.4   ensure download "$_rocksdb_url" "${_stash}/src/rocksdb.tar.zst" "$_arch"
     2.5   ensure download "$_sk_url" "${_stash}/bin/sk" "$_arch"
     2.6   chmod +x "${_stash}/bin/sk"
     2.7-  say "OK ${_stash}/bin/sk"
     2.8+  say "${_stash}/bin/sk"
     2.9 }
    2.10 
    2.11 _read() {
     3.1--- a/check.sh	Wed Jun 12 13:56:58 2024 -0400
     3.2+++ b/check.sh	Wed Jun 12 23:02:34 2024 -0400
     3.3@@ -22,6 +22,7 @@
     3.4   local _mem_total="$RETVAL"
     3.5   check_disk
     3.6   check_mod kvm
     3.7+  check_mod btrfs
     3.8   get_architecture || return 1
     3.9   local _arch="$RETVAL"
    3.10   assert_nz "$_arch" "arch"
    3.11@@ -41,6 +42,7 @@
    3.12     *)
    3.13       _write ":ext nil"
    3.14   esac
    3.15+  say $INFRA_HOST_CONFIG
    3.16 }
    3.17 
    3.18 say() {
     4.1--- a/default.sxp	Wed Jun 12 13:56:58 2024 -0400
     4.2+++ b/default.sxp	Wed Jun 12 23:02:34 2024 -0400
     4.3@@ -1,5 +1,5 @@
     4.4 ;; -*- mode:skel -*-
     4.5-:sbcl-version "2.4.4" ;; SBCL is always required for bootstrap
     4.6+:sbcl-version "2.4.5" ;; SBCL is always required for bootstrap
     4.7 
     4.8 :cc "clang"
     4.9 
     5.1--- a/skelfile	Wed Jun 12 13:56:58 2024 -0400
     5.2+++ b/skelfile	Wed Jun 12 23:02:34 2024 -0400
     5.3@@ -8,8 +8,10 @@
     5.4 :vc (:hg "https://vc.compiler.company/comp/infra")
     5.5 :docs ((:org "readme"))
     5.6 :scripts "scripts"
     5.7+:stash #p".stash"
     5.8+:store #p"/usr/local/store"
     5.9 :rules
    5.10-((check (#$./check.sh$#))
    5.11+((check () #$./check.sh$#)
    5.12  (clean () #$rm -rvf .stash$#)
    5.13  ;; containers
    5.14  (archlinux () #$podman build -f containers/Containerfile.archlinux --no-cache -t localhost/archlinux$#)
    5.15@@ -21,6 +23,7 @@
    5.16  (containers (archlinux alpine ubuntu box worker operator))
    5.17  ;; programs
    5.18  (src () #$mkdir -pv .stash/src$#)
    5.19+ (bin () #$mkdir -pv .stash/bin$#)
    5.20  (emacs (src) #$./scripts/get-emacs.sh$#
    5.21         #$cd .stash/src/emacs && ./autogen.sh$#
    5.22         #$./scripts/build-emacs.sh$#)