1.1--- a/lisp/bin/skel.lisp Tue May 28 23:50:43 2024 -0400 1.2+++ b/lisp/bin/skel.lisp Wed May 29 23:29:40 2024 -0400 1.3@@ -2,11 +2,10 @@ 1.4 1.5 ;; TODO 2024-05-09: add shell configurables to rules - maybe at sk-command 1.6 ;; level. :INPUT :WAIT :OUTPUT 1.7- 1.8-(uiop:define-package :bin/skel 1.9- (:use :cl :std :cli/clap :vc :sb-ext) 1.10+(in-package :sk-user) 1.11+(defpkg :bin/skel 1.12+ (:use :cl :std :cli/clap :vc :sb-ext :skel :log :dat/sxp) 1.13 (:import-from :cli/shell :*shell-input*) 1.14- (:use-reexport :skel :log) 1.15 (:export :main)) 1.16 1.17 (in-package :bin/skel) 1.18@@ -14,10 +13,11 @@ 1.19 1.20 (defopt skc-help (print-help $cli) $val) 1.21 (defopt skc-version (print-version $cli)) 1.22-(defopt skc-level *log-level* (setq *log-level* (if $val (if (stringp $val) 1.23- (sb-int:keywordicate (string-upcase $val)) 1.24- $val) 1.25- :info))) 1.26+(defopt skc-level *log-level* 1.27+ (setq *log-level* (if $val (if (stringp $val) 1.28+ (sb-int:keywordicate (string-upcase $val)) 1.29+ $val) 1.30+ :info))) 1.31 1.32 ;; TODO 2023-10-13: almost there 1.33 ;; (defopt skc-config 1.34@@ -30,8 +30,8 @@ 1.35 (defcmd skc-init 1.36 (let ((file (when $args (pop $args))) 1.37 (name (when (> $argc 1) (pop $args)))) ;; TODO: test, may need to be 1.38- ;; sequential for side-effect 1.39- ;; of pop 1.40+ ;; sequential for side-effect 1.41+ ;; of pop 1.42 (handler-bind 1.43 ((sb-ext:file-exists 1.44 #'(lambda (s) 1.45@@ -176,14 +176,14 @@ 1.46 (trace! "starting skel shell") 1.47 (setq *no-exit* t) 1.48 (cli/clap::with-cli-handlers 1.49- (progn 1.50- (in-package :sk-user) 1.51- (use-package :cl-user) 1.52- (use-package :sb-ext) 1.53- (use-package :std-user) 1.54- (init-skel-vars) 1.55- (println "Welcome to SKEL") 1.56- (sb-impl::toplevel-repl nil)))) 1.57+ (progn 1.58+ (in-package :sk-user) 1.59+ (use-package :cl-user) 1.60+ (use-package :sb-ext) 1.61+ (use-package :std-user) 1.62+ (init-skel-vars) 1.63+ (println "Welcome to SKEL") 1.64+ (sb-impl::toplevel-repl nil)))) 1.65 1.66 (define-cli $cli 1.67 :name "skel" 1.68@@ -259,9 +259,6 @@ 1.69 :description "open the sk-shell interpreter" 1.70 :thunk skc-shell))) 1.71 1.72-(defpackage :sk-user 1.73- (:use :cl :std :skel)) 1.74- 1.75 (defmain () 1.76 (in-package :sk-user) 1.77 (let ((*log-level* :info))
2.1--- a/lisp/lib/obj/equiv.lisp Tue May 28 23:50:43 2024 -0400 2.2+++ b/lisp/lib/obj/equiv.lisp Wed May 29 23:29:40 2024 -0400 2.3@@ -67,3 +67,5 @@ 2.4 (defgeneric nequiv (a b)) 2.5 2.6 (defgeneric neqv (a b)) 2.7+ 2.8+(defgeneric equals (a b &rest args))
3.1--- a/lisp/lib/skel/comp/asd.lisp Tue May 28 23:50:43 2024 -0400 3.2+++ b/lisp/lib/skel/comp/asd.lisp Wed May 29 23:29:40 2024 -0400 3.3@@ -10,7 +10,7 @@ 3.4 ;; will end up violating all that is DRY and holy. 3.5 3.6 ;;; Code: 3.7-(in-package :skel/comp) 3.8+(in-package :skel/comp/asd) 3.9 3.10 ;; (describe (asdf:find-system :skel)) 3.11
4.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2+++ b/lisp/lib/skel/comp/cargo.lisp Wed May 29 23:29:40 2024 -0400 4.3@@ -0,0 +1,21 @@ 4.4+;;; lib/skel/comp/cargo.lisp --- Cargo.toml Compiler 4.5+ 4.6+;; 4.7+ 4.8+;;; Code: 4.9+(in-package :skel/comp/cargo) 4.10+ 4.11+(defparameter *default-cargo-manifest* "Cargo.toml") 4.12+(defparameter *cargo-manifest-extension* "toml") 4.13+ 4.14+(defclass sk-rust-system (skel sk-meta) 4.15+ ()) 4.16+ 4.17+(defclass sk-rust-component (skel) 4.18+ (type value)) 4.19+ 4.20+(defmethod sk-compile ((self sk-rust-system) stream &key &allow-other-keys)) 4.21+ 4.22+(defmethod sk-write-file ((self sk-rust-system) &key path)) 4.23+ 4.24+(defmethod sk-read-file ((self sk-rust-system) path))
5.1--- a/lisp/lib/skel/comp/makefile.lisp Tue May 28 23:50:43 2024 -0400 5.2+++ b/lisp/lib/skel/comp/makefile.lisp Wed May 29 23:29:40 2024 -0400 5.3@@ -19,7 +19,7 @@ 5.4 ;; https://www.gnu.org/software/make/manual/html_node/Parsing-Makefiles.html 5.5 5.6 ;;; Code: 5.7-(in-package :skel/comp) 5.8+(in-package :skel/comp/makefile) 5.9 5.10 (defparameter *default-makefile* "makefile") 5.11 (defparameter *makefile-extension* "mk") 5.12@@ -31,11 +31,11 @@ 5.13 5.14 (deftype mk-val-designator () '(member nil :simple :immediate :conditional :recursive :once :append :shell)) 5.15 5.16-(defstruct mk-val "" (kind nil :type mk-val-designator) (val nil :type sxp:form)) 5.17+(defstruct mk-val (kind nil :type mk-val-designator) (val nil :type sxp:form)) 5.18 5.19-(defstruct mk-var "" 5.20- (key "" :type string) 5.21- (val (make-mk-val) :type mk-val)) 5.22+(defstruct mk-var 5.23+ (key "" :type string) 5.24+ (val (make-mk-val) :type mk-val)) 5.25 5.26 ;; https://www.gnu.org/software/make/manual/html_node/Makefile-Contents.html 5.27 (defclass makefile (skel sk-meta) 5.28@@ -49,15 +49,15 @@ 5.29 :type (vector sk-rule) :accessor mk-irules)) 5.30 (:documentation "A virtual GNU Makefile.")) 5.31 5.32-(defmethod push-rule ((self sk-rule) (place makefile) &optional implicit) 5.33+(defmethod push-mk-rule ((self sk-rule) (place makefile) &optional implicit) 5.34 (if implicit 5.35 (vector-push-extend self (mk-irules place)) 5.36 (vector-push-extend self (mk-erules place)))) 5.37 5.38-(defmethod push-directive ((self sk-command) (place makefile)) 5.39+(defmethod push-mk-directive ((self sk-command) (place makefile)) 5.40 (vector-push-extend self (mk-directives place))) 5.41 5.42-(defmethod push-var ((self cons) (place makefile)) 5.43+(defmethod push-mk-var ((self cons) (place makefile)) 5.44 (destructuring-bind (k v) self 5.45 (setf (gethash k (mk-vars place)) v))) 5.46 5.47@@ -100,3 +100,20 @@ 5.48 5.49 (defmethod sk-read-file ((self makefile) path) 5.50 (with-open-file (in path :direction :input))) 5.51+ 5.52+;;; Readtable 5.53+(defreadtable :makefile 5.54+ (:merge :std)) 5.55+ 5.56+;;; Auto Vars 5.57+ 5.58+;; simplified version of GNU Make Automatic Variables 5.59+ 5.60+;; don't need these: $% $? $+ $* 5.61+ 5.62+(defmacro def-mk-auto (sym ll &body body)) 5.63+ 5.64+(def-mk-auto $@ (rule) (sk-rule-target rule)) 5.65+(def-mk-auto $< (rule) (car (sk-rule-source rule))) 5.66+(def-mk-auto $^ (rule) (sk-rule-source rule)) 5.67+
6.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2+++ b/lisp/lib/skel/comp/pkg.lisp Wed May 29 23:29:40 2024 -0400 6.3@@ -0,0 +1,19 @@ 6.4+(defpackage :skel/comp/makefile 6.5+ (:use :cl :std :skel/core/obj :skel/core/proto :skel/core/header) 6.6+ (:export 6.7+ :*default-makefile* :*makefile-extension* 6.8+ :*mk-magic-vars* :*mk-command-prefixes* 6.9+ :push-mk-rule :push-mk-var :push-mk-directive 6.10+ :mk-val-designator 6.11+ :mk-val :mk-var 6.12+ :makefile)) 6.13+ 6.14+(defpackage :skel/comp/pkgbuild 6.15+ (:use :cl :std :skel/core/obj :skel/core/proto)) 6.16+ 6.17+(defpackage :skel/comp/cargo 6.18+ (:use :cl :std :skel/core/obj)) 6.19+ 6.20+(defpackage :skel/comp/asd 6.21+ (:use :cl :std :skel/core/obj) 6.22+ (:export :sk-asd))
7.1--- a/lisp/lib/skel/comp/pkgbuild.lisp Tue May 28 23:50:43 2024 -0400 7.2+++ b/lisp/lib/skel/comp/pkgbuild.lisp Wed May 29 23:29:40 2024 -0400 7.3@@ -1,1 +1,20 @@ 7.4-(in-package :skel/comp) 7.5+;;; lib/skel/comp/pkgbuild.lisp --- Archlinux PKGBUILD compiler 7.6+ 7.7+;; 7.8+ 7.9+;;; Code: 7.10+(in-package :skel/comp/pkgbuild) 7.11+ 7.12+(defparameter *default-pkgbuild* "PKGBUILD") 7.13+ 7.14+(defclass sk-pkgbuild-system (skel sk-meta) 7.15+ ()) 7.16+ 7.17+(defclass sk-pkgbuild-component (skel) 7.18+ (type value)) 7.19+ 7.20+(defmethod sk-compile ((self sk-pkgbuild-system) stream &key &allow-other-keys)) 7.21+ 7.22+(defmethod sk-write-file ((self sk-pkgbuild-system) &key path)) 7.23+ 7.24+(defmethod sk-read-file ((self sk-pkgbuild-system) path))
8.1--- a/lisp/lib/skel/core/err.lisp Tue May 28 23:50:43 2024 -0400 8.2+++ b/lisp/lib/skel/core/err.lisp Wed May 29 23:29:40 2024 -0400 8.3@@ -1,5 +1,8 @@ 8.4-;;; Conditions 8.5-(in-package :skel/core) 8.6+;;; skel/core/err.lisp --- Skel Errors 8.7+ 8.8+;;; Code: 8.9+(in-package :skel/core/err) 8.10+ 8.11 (eval-always 8.12 (deferror skel-error (std-error) () (:auto t))) 8.13
9.1--- a/lisp/lib/skel/core/header.lisp Tue May 28 23:50:43 2024 -0400 9.2+++ b/lisp/lib/skel/core/header.lisp Wed May 29 23:29:40 2024 -0400 9.3@@ -3,7 +3,8 @@ 9.4 ;; 9.5 9.6 ;;; Code: 9.7-(in-package :skel) 9.8+(in-package :skel/core/header) 9.9+ 9.10 ;;; File Headers 9.11 (deftype file-header-kind () '(member :source :shebang)) 9.12
10.1--- a/lisp/lib/skel/core/mk.lisp Tue May 28 23:50:43 2024 -0400 10.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3@@ -1,18 +0,0 @@ 10.4-(in-package :skel/core) 10.5- 10.6-(eval-when (:compile-toplevel :load-toplevel :execute) 10.7- (defreadtable :makefile 10.8- (:merge :std))) 10.9- 10.10-;;; Auto Vars 10.11- 10.12-;; simplified version of GNU Make Automatic Variables 10.13- 10.14-;; don't need these: $% $? $+ $* 10.15- 10.16-(defmacro def-mk-auto (sym ll &body body)) 10.17- 10.18-(def-mk-auto $@ (rule) (sk-rule-target rule)) 10.19-(def-mk-auto $< (rule) (car (sk-rule-source rule))) 10.20-(def-mk-auto $^ (rule) (sk-rule-source rule)) 10.21-
11.1--- a/lisp/lib/skel/core/obj.lisp Tue May 28 23:50:43 2024 -0400 11.2+++ b/lisp/lib/skel/core/obj.lisp Wed May 29 23:29:40 2024 -0400 11.3@@ -1,47 +1,8 @@ 11.4-;;; Objects 11.5-(in-package :skel/core) 11.6- 11.7-;;; Vars 11.8-(declaim (type vc-designator *default-skel-vc-kind*)) 11.9-(deftype vc-designator () '(member :hg :git list)) 11.10- 11.11-;; ref: https://spdx.org/licenses/ 11.12-(deftype license-designator () '(or string pathname (member :mpl2 :wtfpl :lgpg :llgpl :gpl :mit :mit0))) 11.13- 11.14-(defparameter *default-skel-vc-kind* :hg) 11.15-(defparameter *default-skel-license-kind* :mpl2) 11.16-(declaim (type sk-project *skel-project*)) 11.17-(defvar *skel-project*) 11.18-(defvar *skel-env*) 11.19-;; TODO (defvar *skelfile-boundary* nil "Set an upper bounds on how 11.20-;; many times and how far to walk an arbitrary file directory.") 11.21+;;; skel/core/obj.lisp --- Skel Objects 11.22 11.23-(declaim (type string *default-skel-user* *default-skelfile* *default-skel-extension*)) 11.24-(defparameter *default-skel-user* (uid-username (unix-getuid))) 11.25-(defparameter *default-skelfile* "skelfile") 11.26-(defparameter *default-skel-extension* "sk") 11.27-(defparameter *default-skelrc* ".skelrc") 11.28- 11.29-(declaim (type pathname *skel-stash* *skel-store* 11.30- *skel-cache* *user-skelrc* *system-skelrc*)) 11.31- 11.32-(defparameter *skel-stash* #P"/usr/local/share/skel/stash/") 11.33- 11.34-(defparameter *skel-store* #P"/usr/local/share/skel/store/") 11.35+;;; Code: 11.36+(in-package :skel/core/obj) 11.37 11.38-(defparameter *skel-cache* #P"/usr/local/share/skel/cache/") 11.39- 11.40-(defparameter *skel-registry* #P"/usr/local/share/skel/registry/") 11.41- 11.42-(defparameter *user-skelrc* (pathname (format nil "~~/~A" *default-skelrc*))) 11.43- 11.44-(defparameter *system-skelrc* (pathname "/etc/skelrc")) 11.45- 11.46-(defparameter *keep-ast* nil 11.47- "Whether to keep the :ast slot stored with an sk object, or set it to nil so 11.48-that it can be GC'd.") 11.49- 11.50-;;; Objects 11.51 (defclass skel (id) 11.52 () 11.53 (:documentation "Base class for skeleton objects. Inherits from `sxp'.")) 11.54@@ -201,9 +162,9 @@ 11.55 :export export 11.56 :attach attach)) 11.57 11.58-(defmethod print-object ((self sk-document) stream) 11.59- (print-unreadable-object (self stream :type t) 11.60- (format stream "~S ~A" (sb-int:keywordicate (sk-kind self)) (sk-path self)))) 11.61+;; (defmethod print-object ((self sk-document) (stream t)) 11.62+;; (print-unreadable-object (self stream :type t) 11.63+;; (format stream "~S ~A" (sk-kind self) (sk-path self)))) 11.64 11.65 (defmethod write-sxp-stream ((self sk-document) stream &key (pretty t) (case :downcase) &allow-other-keys) 11.66 (write `(,(keywordicate (sk-kind self)) ,(sk-path self) 11.67@@ -221,8 +182,6 @@ 11.68 (sk-write-string (sk-path self))) 11.69 11.70 ;;;; Script 11.71-(deftype script-designator () '(member :bin :sh :bash :zsh :nu :lisp :python)) 11.72- 11.73 (defclass sk-script (skel sk-meta sxp) 11.74 ((kind :initform nil :initarg :kind :type (or null script-designator) :accessor sk-kind))) 11.75 11.76@@ -358,8 +317,8 @@ 11.77 11.78 (declaim (type sk-user-config *skel-user-config*)) 11.79 (declaim (type sk-system-config *skel-system-config*)) 11.80-(defvar *skel-user-config* (default-sk-user-config)) 11.81-(defvar *skel-system-config* (default-sk-system-config)) 11.82+(defvar *sk-user-config* (default-sk-user-config)) 11.83+(defvar *sk-system-config* (default-sk-system-config)) 11.84 11.85 ;;;; Snippet 11.86 (defstruct sk-snippet 11.87@@ -383,7 +342,7 @@ 11.88 (kind *default-skel-vc-kind* :type vc-designator) 11.89 (remotes nil :type (or string list))) 11.90 11.91-(defmethod write-sxp-stream ((self sk-vc-meta) stream &key (pretty t) (case :downcase) (fmt :collapsed)) 11.92+(defmethod write-sxp-stream ((self sk-vc-meta) stream &key (pretty t) (case :downcase) (fmt :pretty)) 11.93 (if (= 0 (length (sk-vc-meta-remotes self))) 11.94 (write (sk-vc-meta-kind self) :stream stream :pretty pretty :case case :readably t :array t :escape t) 11.95 (progn 11.96@@ -426,8 +385,11 @@ 11.97 :accessor sk-imports 11.98 :type (vector pathname)))) 11.99 11.100+ 11.101 (defun find-sk-symbol (s) 11.102- (find-symbol* (symbol-name s) :skel/core nil)) 11.103+ (handler-bind ((error #'(lambda (con) 11.104+ (funcall #'skel-error con)))) 11.105+ (find-symbol* (symbol-name s) :skel/core/obj t))) 11.106 11.107 ;; ast -> obj 11.108 (defmethod load-ast ((self sk-project))
12.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2+++ b/lisp/lib/skel/core/pkg.lisp Wed May 29 23:29:40 2024 -0400 12.3@@ -0,0 +1,86 @@ 12.4+(defpackage :skel/core/err 12.5+ (:use :cl :std :dat/sxp) 12.6+ (:export 12.7+ :skel-error 12.8+ :skel-syntax-error 12.9+ :skel-fmt-error 12.10+ :skel-compile-error)) 12.11+ 12.12+(defpackage :skel/core/types 12.13+ (:use :cl :std) 12.14+ (:export :vc-designator :license-designator :script-designator)) 12.15+ 12.16+(defpackage :skel/core/proto 12.17+ (:use :cl :std) 12.18+ (:export 12.19+ :sk-run :sk-new :sk-save 12.20+ :sk-tangle :sk-weave 12.21+ :sk-call :sk-load 12.22+ :sk-print :sk-read 12.23+ :sk-compile :sk-transform 12.24+ :sk-write :sk-writeln 12.25+ :sk-write-string :sk-write-file 12.26+ :sk-read-file :sk-install-user-config 12.27+ :sk-vc-push :sk-vc-pull 12.28+ :sk-find-rule :sk-find-script)) 12.29+ 12.30+(defpackage :skel/core/header 12.31+ (:use :cl :std :skel/core/err) 12.32+ (:export 12.33+ :make-file-header 12.34+ :make-shebang-file-header 12.35+ :make-source-file-header 12.36+ :file-header-kind 12.37+ :file-header 12.38+ :make-source-header-comment 12.39+ :make-shebang-comment)) 12.40+ 12.41+(defpackage :skel/core/vars 12.42+ (:use :cl :std :skel/core/types) 12.43+ (:import-from :sb-unix :uid-username :unix-getuid) 12.44+ (:export :*user-skelrc* :*system-skelrc* :*keep-ast* 12.45+ :*skel-project* :*default-skelrc* 12.46+ :*skel-env* :*skel-project* 12.47+ :*skel-registry* :*skel-cache* :*skel-store* :*skel-stash* 12.48+ :*skel-registry* :*default-skelfile* :*default-skel-user* :*default-skel-vc-kind* 12.49+ :*default-skel-cache* :*skelfile-extension* :*skelfile-boundary*)) 12.50+ 12.51+(defpackage :skel/core/obj 12.52+ (:use :cl :std :obj 12.53+ :skel/core/proto :skel/core/err :skel/core/types :skel/core/vars 12.54+ :dat/sxp :skel/core/header :vc :log) 12.55+ (:import-from :uiop :ensure-absolute-pathname :read-file-forms) 12.56+ (:export :sk-license :sk-author :sk-path :sk-stash :sk-cache :sk-registry :sk-user 12.57+ :sk-store :sk-push :sk-pull :sk-imports 12.58+ :sk-tags :edit-skelrc :sk-target :skel 12.59+ :sk-meta :def-sk-class :sk-project :sk-source 12.60+ :sk-vc :sk-vars :sk-env :make-sk-rule 12.61+ :make-sk-vc-meta :sk-vc-meta :sk-vc-meta-kind :sk-vc-meta-remotes 12.62+ :sk-rule :sk-rule-target :sk-rule-source :sk-rule-recipe 12.63+ :sk-make :sk-description :sk-kind :sk-rules 12.64+ :sk-version :sk-name :sk-docs :sk-document 12.65+ :sk-command :sk-scripts :sk-script :sk-config 12.66+ :sk-snippets :sk-snippet :sk-abbrevs :sk-abbrev 12.67+ :sk-user-config :sk-system-config 12.68+ :*sk-user-config* :*sk-system-config*)) 12.69+ 12.70+(defpackage :skel/core/util 12.71+ (:use :cl :std :skel/core/obj :skel/core/vars :skel/core/proto :dat/sxp :skel/core/err) 12.72+ (:import-from :uiop/pathname :pathname-parent-directory-pathname) 12.73+ (:import-from :cli :find-exe) 12.74+ (:export 12.75+ :init-skelrc :load-skelrc 12.76+ :init-skel-vars 12.77+ :init-user-skelrc :load-user-skelrc 12.78+ :init-system-skelrc :load-system-skelrc 12.79+ :init-skelfile 12.80+ :load-skelfile 12.81+ :find-skelfile 12.82+ :find-sk-file 12.83+ :find-project-root 12.84+ :describe-skeleton 12.85+ :describe-project)) 12.86+ 12.87+(defpackage :skel/core/vm 12.88+ (:use :cl :std :skel/core/err) 12.89+ (:export :make-stack-slot :make-sk-vm :sks-ref :sks-pop :sks-push))
13.1--- a/lisp/lib/skel/core/proto.lisp Tue May 28 23:50:43 2024 -0400 13.2+++ b/lisp/lib/skel/core/proto.lisp Wed May 29 23:29:40 2024 -0400 13.3@@ -1,5 +1,5 @@ 13.4 ;;; Proto 13.5-(in-package :skel/core) 13.6+(in-package :skel/core/proto) 13.7 13.8 (defgeneric sk-run (self) 13.9 (:documentation "run the object SELF.")) 13.10@@ -21,6 +21,8 @@ 13.11 (:documentation "compile object SELF to output STREAM")) 13.12 (defgeneric sk-transform (self other &key &allow-other-keys) 13.13 (:documentation "transform SELF to object of type OTHER")) 13.14+(defgeneric sk-read (self stream) 13.15+ (:documentation "read and fill SELF with an object from STREAM.")) 13.16 (defgeneric sk-read-file (self path) 13.17 (:documentation "read a PATH from the filesystem with SELF.")) 13.18 (defgeneric sk-write (self stream)
14.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2+++ b/lisp/lib/skel/core/types.lisp Wed May 29 23:29:40 2024 -0400 14.3@@ -0,0 +1,8 @@ 14.4+(in-package :skel/core/types) 14.5+ 14.6+(deftype vc-designator () `(member :hg :git list)) 14.7+ 14.8+;; ref: https://spdx.org/licenses/ 14.9+(deftype license-designator () `(or string pathname (member :mpl2 :wtfpl :lgpg :llgpl :gpl :mit :mit0))) 14.10+ 14.11+(deftype script-designator () '(member :bin :sh :bash :zsh :nu :lisp :python))
15.1--- a/lisp/lib/skel/core/util.lisp Tue May 28 23:50:43 2024 -0400 15.2+++ b/lisp/lib/skel/core/util.lisp Wed May 29 23:29:40 2024 -0400 15.3@@ -1,5 +1,5 @@ 15.4 ;;; Utils 15.5-(in-package :skel/core) 15.6+(in-package :skel/core/util) 15.7 15.8 ;;; Configs 15.9 15.10@@ -11,15 +11,15 @@ 15.11 15.12 (defun init-user-skelrc (&optional (file *user-skelrc*)) 15.13 "Initialize a skelrc configuration based on the currently active 15.14-*SKEL-USER-CONFIG*. Defaults to ~/.skelrc." 15.15- (sk-write-file *skel-user-config* 15.16+*SK-USER-CONFIG*. Defaults to ~/.skelrc." 15.17+ (sk-write-file *sk-user-config* 15.18 :path file 15.19 :pretty t)) 15.20 15.21 (defun init-system-skelrc (&optional (file *system-skelrc*)) 15.22 "Initialize a system skelrc configuration based on the currently active 15.23-*SKEL-SYSTEM-CONFIG*." 15.24- (sk-write-file *skel-system-config* 15.25+*SK-SYSTEM-CONFIG*." 15.26+ (sk-write-file *sk-system-config* 15.27 :path file 15.28 :pretty t)) 15.29 15.30@@ -28,7 +28,7 @@ 15.31 15.32 If FILE does not exists, it is created with a default configuration." 15.33 (if-let ((f (probe-file file))) 15.34- (setq *skel-user-config* (load-ast 15.35+ (setq *sk-user-config* (load-ast 15.36 (make-instance 'sk-user-config 15.37 :ast #1=(file-read-forms f) :id (sxhash #1#) 15.38 :path f))) 15.39@@ -41,11 +41,11 @@ 15.40 doesn't exist, since it is assumed to be write-protected. This can be 15.41 overwritten with the AUTO flag." 15.42 (if-let ((f (probe-file file))) 15.43- (setq *skel-system-config* 15.44+ (setq *sk-system-config* 15.45 (load-ast (make-instance 'sk-system-config :ast #1=(file-read-forms f) :id (sxhash #1#) :path f))) 15.46 (when auto (init-system-skelrc)))) 15.47 15.48-(eval-when (:compile-toplevel :load-toplevel :execute) 15.49+(eval-always 15.50 (defun load-skelfile (file) 15.51 "Load the 'skelfile' FILE." 15.52 (load-ast (sk-read-file (make-instance 'sk-project) file))) 15.53@@ -104,19 +104,19 @@ 15.54 (ed *system-skelrc*)) 15.55 15.56 (defun get-config-slot* (slot) 15.57- "First check *SKEL-USER-CONFIG* for a slot value, and if a valid value 15.58-isn't found check *SKEL-SYSTEM-CONFIG*." 15.59- (when (boundp '*skel-user-config*) 15.60- (if (slot-unbound 'sk-user-config *skel-user-config* slot) 15.61- (when (boundp '*skel-system-config*) 15.62- (if (slot-unbound 'sk-system-config *skel-system-config* slot) 15.63+ "First check *SK-USER-CONFIG* for a slot value, and if a valid value 15.64+isn't found check *SK-SYSTEM-CONFIG*." 15.65+ (when (boundp '*sk-user-config*) 15.66+ (if (slot-unbound 'sk-user-config *sk-user-config* slot) 15.67+ (when (boundp '*sk-system-config*) 15.68+ (if (slot-unbound 'sk-system-config *sk-system-config* slot) 15.69 (error 'skel-error :message (format nil "slot is unbound: ~a" slot)) 15.70- (slot-value *skel-system-config* slot))) 15.71- (slot-value *skel-user-config* slot)))) 15.72+ (slot-value *sk-system-config* slot))) 15.73+ (slot-value *sk-user-config* slot)))) 15.74 15.75 (defun init-skel-vars () 15.76 "Initialize the global SKEL variables based on the active 15.77-*SKEL-USER-CONFIG*." 15.78- (setq *skel-cache* (sk-cache *skel-user-config*) 15.79- *skel-stash* (sk-stash *skel-user-config*) 15.80- *skel-registry* (sk-registry *skel-user-config*))) 15.81+*SK-USER-CONFIG*." 15.82+ (setq *skel-cache* (sk-cache *sk-user-config*) 15.83+ *skel-stash* (sk-stash *sk-user-config*) 15.84+ *skel-registry* (sk-registry *sk-user-config*)))
16.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2+++ b/lisp/lib/skel/core/vars.lisp Wed May 29 23:29:40 2024 -0400 16.3@@ -0,0 +1,35 @@ 16.4+(in-package :skel/core/vars) 16.5+ 16.6+(declaim (type vc-designator *default-skel-vc-kind*)) 16.7+(defparameter *default-skel-vc-kind* :hg) 16.8+(defparameter *default-skel-license-kind* :mpl2) 16.9+;; TODO (defvar *skelfile-boundary* nil "Set an upper bounds on how 16.10+;; many times and how far to walk an arbitrary file directory.") 16.11+(declaim (type string *default-skel-user* *default-skelfile* *default-skel-extension*)) 16.12+(defparameter *default-skel-user* (uid-username (unix-getuid))) 16.13+(defparameter *default-skelfile* "skelfile") 16.14+(defparameter *default-skel-extension* "sk") 16.15+(defparameter *default-skelrc* ".skelrc") 16.16+ 16.17+(declaim (type pathname *skel-stash* *skel-store* 16.18+ *skel-cache* *user-skelrc* *system-skelrc*)) 16.19+ 16.20+(defparameter *skel-stash* #P"/usr/local/share/skel/stash/") 16.21+ 16.22+(defparameter *skel-store* #P"/usr/local/share/skel/store/") 16.23+ 16.24+(defparameter *skel-cache* #P"/usr/local/share/skel/cache/") 16.25+ 16.26+(defparameter *skel-registry* #P"/usr/local/share/skel/registry/") 16.27+ 16.28+(defvar *skel-project*) 16.29+(defvar *skel-env*) 16.30+ 16.31+(defparameter *user-skelrc* (pathname (format nil "~~/~A" *default-skelrc*))) 16.32+ 16.33+(defparameter *system-skelrc* (pathname "/etc/skelrc")) 16.34+ 16.35+(defparameter *keep-ast* nil 16.36+ "Whether to keep the :ast slot stored with an sk object, or set it to nil so 16.37+that it can be GC'd.") 16.38+
17.1--- a/lisp/lib/skel/core/vm.lisp Tue May 28 23:50:43 2024 -0400 17.2+++ b/lisp/lib/skel/core/vm.lisp Wed May 29 23:29:40 2024 -0400 17.3@@ -1,10 +1,10 @@ 17.4-;;; VM 17.5+;;; skel/core/vm.lisp --- The Skel Virtual Machine 17.6 17.7 ;; Stack slots refer to objects. a Stack is a sequence of objects 17.8 ;; which can be output to a stream using a specialized function. 17.9 17.10 ;;; Code: 17.11-(in-package :skel) 17.12+(in-package :skel/core/vm) 17.13 (deftype stack-slot-kind () '(member :shell :lisp :comment :var :rule :directive :nop)) 17.14 17.15 (defstruct stack-slot
18.1--- a/lisp/lib/skel/ext/asdf.lisp Tue May 28 23:50:43 2024 -0400 18.2+++ b/lisp/lib/skel/ext/asdf.lisp Wed May 29 23:29:40 2024 -0400 18.3@@ -18,4 +18,4 @@ 18.4 ;; - https://github.com/atlas-engineer/nyxt/tree/master/libraries/nasdf 18.5 18.6 ;;; Code: 18.7-(defpackage :skel/asdf) 18.8+(in-package :skel/ext/asdf)
19.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 19.2+++ b/lisp/lib/skel/ext/box.lisp Wed May 29 23:29:40 2024 -0400 19.3@@ -0,0 +1,1 @@ 19.4+(in-package :skel/ext/box)
20.1--- a/lisp/lib/skel/ext/cargo.lisp Tue May 28 23:50:43 2024 -0400 20.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 20.3@@ -1,1 +0,0 @@ 20.4-(defpackage :skel/cargo)
21.1--- a/lisp/lib/skel/ext/inspect.lisp Tue May 28 23:50:43 2024 -0400 21.2+++ b/lisp/lib/skel/ext/inspect.lisp Wed May 29 23:29:40 2024 -0400 21.3@@ -1,8 +1,8 @@ 21.4-(in-package :skel/inspect) 21.5+(in-package :skel/ext/inspect) 21.6 21.7 (defgeneric sk-inspect (self &key) 21.8 (:documentation "Open a skel object in the clouseau inspector.")) 21.9 21.10+#+clouseau 21.11 (defmethod sk-inspect ((self sk-project) &key (wait t)) 21.12 (sb-thread:make-thread #'clouseau:inspect :name "SK-INSPECTOR" :arguments (list self))) 21.13-
22.1--- a/lisp/lib/skel/ext/krypt.lisp Tue May 28 23:50:43 2024 -0400 22.2+++ b/lisp/lib/skel/ext/krypt.lisp Wed May 29 23:29:40 2024 -0400 22.3@@ -1,1 +1,6 @@ 22.4-(defpackage :skel/krypt) 22.5+;;; skel/ext/krypt.lisp --- Skel Krypt Extension 22.6+ 22.7+;; 22.8+ 22.9+;;; Code: 22.10+(in-package :skel/ext/krypt)
23.1--- a/lisp/lib/skel/ext/net.lisp Tue May 28 23:50:43 2024 -0400 23.2+++ b/lisp/lib/skel/ext/net.lisp Wed May 29 23:29:40 2024 -0400 23.3@@ -1,5 +1,27 @@ 23.4 ;;; skel/ext/net.lisp --- Skel Network 23.5 23.6-;; 23.7+;; This extension adds a message-based network interface to the SKEL system 23.8+;; which can be initialized at runtime and used to communicate with remote 23.9+;; SKEL instances. 23.10+ 23.11+;;; Commentary: 23.12+ 23.13+;; The current design is meant to be as simple as possible. We currently only 23.14+;; support UDP socket communication over inet4 sockets. 23.15+ 23.16+;;;; Future Goals: 23.17+ 23.18+;; - unix sockets 23.19+ 23.20+;; - inet6 23.21+ 23.22+;; - wrapped streams (crypto) 23.23+ 23.24+;; - concurrency 23.25+ 23.26+;; - skelfile config 23.27+ 23.28+;; - protocol extensions 23.29 23.30 ;;; Code: 23.31+(in-package :skel/ext/net)
24.1--- a/lisp/lib/skel/ext/packy.lisp Tue May 28 23:50:43 2024 -0400 24.2+++ b/lisp/lib/skel/ext/packy.lisp Wed May 29 23:29:40 2024 -0400 24.3@@ -1,1 +1,1 @@ 24.4-(defpackage :skel/packy) 24.5+(in-package :skel/ext/packy)
25.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2+++ b/lisp/lib/skel/ext/pkg.lisp Wed May 29 23:29:40 2024 -0400 25.3@@ -0,0 +1,32 @@ 25.4+(defpackage :skel/ext/asdf 25.5+ (:use :cl :std :skel) 25.6+ (:export)) 25.7+ 25.8+(defpackage :skel/ext/net 25.9+ (:use :cl :std :skel :net/sans-io :dat/proto :obj/id) 25.10+ (:export)) 25.11+ 25.12+;; requires clouseau 25.13+(defpackage :skel/ext/inspect 25.14+ (:use :cl :std :skel) 25.15+ (:export :sk-inspect)) 25.16+ 25.17+(defpackage :skel/ext/krypt 25.18+ (:use :cl :std :skel :krypt) 25.19+ (:export)) 25.20+ 25.21+(defpackage :skel/ext/packy 25.22+ (:use :cl :std :skel :packy) 25.23+ (:export)) 25.24+ 25.25+(defpackage :skel/ext/asdf 25.26+ (:use :cl :std :skel :asdf/system) 25.27+ (:export)) 25.28+ 25.29+(defpackage :skel/ext/pod 25.30+ (:use :cl :std :skel :pod) 25.31+ (:export)) 25.32+ 25.33+(defpackage :skel/ext/box 25.34+ (:use :cl :std :skel :box) 25.35+ (:export))
27.1--- a/lisp/lib/skel/pkg.lisp Tue May 28 23:50:43 2024 -0400 27.2+++ b/lisp/lib/skel/pkg.lisp Wed May 29 23:29:40 2024 -0400 27.3@@ -30,107 +30,20 @@ 27.4 ;; 27.5 27.6 ;;; Code: 27.7-(defpackage :skel/core 27.8- (:use :cl :cl-ppcre :std :sb-mop :obj/id :sb-bsd-sockets :sb-unix :sxp :log :cli :obj :vc :sb-ext) 27.9- (:import-from :cli :find-exe) 27.10- (:import-from :uiop :read-file-forms :ensure-absolute-pathname) 27.11- (:import-from :uiop/pathname :pathname-parent-directory-pathname) 27.12- (:import-from :uiop :with-current-directory) 27.13- (:import-from :sb-ext :run-program :cas) 27.14- (:import-from :std :when-let :if-let :if-let*) 27.15- (:import-from :sxp :form) 27.16- (:export 27.17- ;; err 27.18- :skel-error 27.19- :skel-syntax-error 27.20- :skel-fmt-error 27.21- :skel-compile-error 27.22- ;; proto 27.23- :sk-run :sk-new :sk-save 27.24- :sk-tangle :sk-weave 27.25- :sk-call :sk-print :sk-load 27.26- :sk-compile :sk-transform 27.27- :sk-write :sk-writeln 27.28- :sk-write-string :sk-write-file 27.29- :sk-read-file :sk-install-user-config 27.30- :sk-find-rule 27.31- :sk-find-script 27.32- ;; header 27.33- :make-file-header 27.34- :make-shebang-file-header 27.35- :make-source-file-header 27.36- :file-header-kind 27.37- :make-source-header-comment 27.38- :make-shebang-comment 27.39- ;; virt 27.40- :containerfile 27.41- :*default-containerfile* 27.42- ;; obj 27.43- :*user-skelrc* :*system-skelrc* :*keep-ast* 27.44- :*skel-project* :*skel-user-config* :*skel-system-config* :*default-skelrc* :*skel-registry* :*skel-cache* 27.45- :*default-skelfile* :*default-skel-user* :*default-skel-cache* 27.46- :*skelfile-extension* :*skelfile-boundary* 27.47- :load-ast :sk-license 27.48- :sk-author :sk-path :sk-stash :sk-cache :sk-registry :sk-user :sk-store 27.49- :sk-push :sk-pull 27.50- :sk-tags :sk-imports 27.51- :edit-skelrc 27.52- :skel :sk-meta :def-sk-class :sk-project :sk-target :sk-source :sk-vc 27.53- :sk-vc-meta :sk-vc-meta-kind :sk-vc-meta-remotes 27.54- :sk-vars :sk-env 27.55- :sk-rule :sk-rule-target :sk-rule-source :sk-rule-recipe :make-sk-rule 27.56- :sk-make 27.57- :sk-description :sk-kind :sk-rules :sk-version :sk-name :sk-docs :sk-document 27.58- :sk-command :sk-scripts :sk-script :sk-config :sk-snippets :sk-snippet :sk-abbrevs :sk-abbrev 27.59- :sk-user-config 27.60- :sk-system-config 27.61- ;; util 27.62- :init-skelrc :load-skelrc 27.63- :init-skel-vars 27.64- :init-user-skelrc :load-user-skelrc 27.65- :init-system-skelrc :load-system-skelrc 27.66- :init-skelfile 27.67- :load-skelfile 27.68- :find-skelfile 27.69- :find-project-root 27.70- :describe-skeleton 27.71- :describe-project 27.72- ;; vm 27.73- :make-stack-slot :make-sk-vm :sks-ref :sks-pop :sks-push)) 27.74+(pkg:defpkg :skel/core 27.75+ (:use :cl :std) 27.76+ (:use-reexport :skel/core/err :skel/core/types :skel/core/proto :skel/core/vars :skel/core/header :skel/core/obj 27.77+ :skel/core/util :skel/core/vm :dat/sxp)) 27.78+ 27.79+(pkg:defpkg :skel/comp 27.80+ (:use :cl :std) 27.81+ (:use-reexport :skel/comp/asd :skel/comp/cargo :skel/comp/makefile :skel/comp/pkgbuild)) 27.82 27.83-(defpackage :skel/comp 27.84- (:use :cl :std :skel/core :sxp) 27.85- (:export 27.86- ;; asd 27.87- :sk-asd 27.88- ;; ignore 27.89- ;; containerfile 27.90- ;; makefile 27.91- :*default-makefile* :*makefile-extension* 27.92- :*mk-magic-vars* :*mk-command-prefixes* 27.93- :mk-val-designator 27.94- :mk-val :mk-var 27.95- :makefile :push-rule :push-directive :push-var)) 27.96- 27.97-(uiop:define-package :skel 27.98- (:use :cl :std :skel/core :skel/comp) 27.99- (:use-reexport :skel/core :skel/comp)) 27.100+(pkg:defpkg :skel 27.101+ (:nicknames :sk) 27.102+ (:use :cl :std) 27.103+ (:use-reexport :skel/core :skel/comp)) 27.104 27.105-;;; Tools 27.106-(defpackage :skel/viz 27.107- (:use :cl :std :skel) 27.108- (:export)) 27.109- 27.110-(defpackage :skel/deploy 27.111- (:use :cl :std :skel) 27.112- (:export)) 27.113- 27.114-;;; Extensions 27.115-(defpackage :skel/asdf 27.116- (:use :cl :std :skel) 27.117- (:export)) 27.118- 27.119-;; requires clouseau 27.120-(defpackage :skel/inspect 27.121- (:use :cl :std :skel) 27.122- (:export :sk-inspect)) 27.123+(pkg:defpkg :sk-user 27.124+ (:use :cl :std) 27.125+ (:use-reexport :skel))
28.1--- a/lisp/lib/skel/skel.asd Tue May 28 23:50:43 2024 -0400 28.2+++ b/lisp/lib/skel/skel.asd Wed May 29 23:29:40 2024 -0400 28.3@@ -5,34 +5,48 @@ 28.4 :bug-tracker "https://vc.compiler.company/comp/core/issues" 28.5 :depends-on (:uiop :asdf :sb-posix :sb-bsd-sockets :sb-concurrency :cl-ppcre :std 28.6 :obj :dat :cli :organ :doc :vc 28.7- (:feature :inspect :clouseau)) 28.8+ (:feature :ext :pod) 28.9+ (:feature :ext :box) 28.10+ (:feature :ext :krypt) 28.11+ (:feature :ext :packy) 28.12+ (:feature :ext :net) 28.13+ (:feature (:and :ext :clouseau) :clouseau)) 28.14 :serial t 28.15 :components 28.16- ((:file "pkg") 28.17- (:module "core" 28.18+ ((:module "core" 28.19 :serial t 28.20 :components 28.21- ((:file "err") 28.22+ ((:file "pkg") 28.23+ (:file "err") 28.24+ (:file "types") 28.25 (:file "proto") 28.26 (:file "header") 28.27- (:file "virt") 28.28+ (:file "vars") 28.29 (:file "obj") 28.30 (:file "util") 28.31 (:file "vm"))) 28.32 (:module "comp" 28.33 :components 28.34- ((:file "asd") 28.35+ ((:file "pkg") 28.36+ (:file "asd") 28.37 (:file "makefile") 28.38 (:file "pkgbuild"))) 28.39+ (:file "pkg") 28.40 (:module "tools" 28.41 :components 28.42- ((:file "deploy") 28.43- (:file "viz"))) 28.44+ ((:file "pkg") 28.45+ (:file "deploy") 28.46+ (:file "viz")) 28.47+ :if-feature :tools) 28.48 (:module "ext" 28.49 :components 28.50- ((:file "asdf") 28.51- #+inspect (:file "inspect") 28.52- (:file "net")))) 28.53+ ((:file "pkg") 28.54+ (:file "asdf") 28.55+ (:file "inspect" :if-feature :clouseau) 28.56+ (:file "krypt") 28.57+ (:file "packy") 28.58+ (:file "net")) 28.59+ :if-feature :ext)) 28.60 :in-order-to ((test-op (test-op "skel/tests")))) 28.61 28.62 (defsystem :skel/tests
30.1--- a/lisp/lib/skel/tests.lisp Tue May 28 23:50:43 2024 -0400 30.2+++ b/lisp/lib/skel/tests.lisp Wed May 29 23:29:40 2024 -0400 30.3@@ -1,6 +1,6 @@ 30.4 ;;; skel/tests.lisp --- skel tests 30.5 (defpackage :skel/tests 30.6- (:use :cl :skel/core :skel/comp :rt :sxp :log :obj/id) 30.7+ (:use :cl :skel :rt :log :obj :dat/sxp) 30.8 (:import-from :uiop :file-exists-p)) 30.9 30.10 (in-package :skel/tests) 30.11@@ -32,7 +32,7 @@ 30.12 This covers variations of make-source-header-comment, make-source-file-header, 30.13 make-shebang-comment, and make-shebang-file-header." 30.14 (is (eq (type-of (make-shebang-file-header 30.15- (make-shebang-comment "/dev/null"))) 30.16+ (make-shebang-comment "/dev/null"))) 30.17 'file-header)) 30.18 (is (eq (type-of (make-source-file-header 30.19 (make-source-header-comment 30.20@@ -46,7 +46,7 @@ 30.21 "Ensure skelfiles are created and loaded correctly and that they signal 30.22 the appropriate restarts." 30.23 (do-tmp-path (tmp-path "sk") 30.24- (is (sk-write-file (make-instance 'sk-project :name "nada" :path %tmp) :path %tmp :if-exists :supersede)) 30.25+ ;; (is (sk-write-file (make-instance 'sk-project :name "nada" :path "test") :path %tmp :if-exists :supersede)) 30.26 (ignore-errors (delete-file %tmp)) 30.27 (setf %tmp (tmp-path "sk")) 30.28 (is (init-skelfile %tmp)) 30.29@@ -64,7 +64,7 @@ 30.30 :path (or path %tmp) :description "barfood")) 30.31 (src (path) (make-instance 'sk-source :path path)) 30.32 (cmd (body) (make-instance 'sk-command :body body)) 30.33- (rule (tr sr) (make-sk-rule tr sr))) 30.34+ (rule (tr sr) (make-sk-rule tr sr nil))) 30.35 (is (null (sk-write-file (mk) :if-exists :supersede :path (tmp-path "mk")))) 30.36 (let* ((tr1 (tmp-path "t1")) 30.37 (tr2 (tmp-path "t2")) 30.38@@ -72,18 +72,18 @@ 30.39 (r1 (rule tr1 sr)) 30.40 (r2 (rule sr tr2)) 30.41 (mk1 (mk "test.mk"))) 30.42- (is (push-rule r1 mk1)) 30.43- (is (push-rule r2 mk1)) 30.44+ (is (push-mk-rule r1 mk1)) 30.45+ (is (push-mk-rule r2 mk1)) 30.46 ;; NOTE: not really useful yet 30.47 ;; (is (push-rule r2 mk1 t)) 30.48 ;; (is (push-rule r1 mk1 t)) 30.49- (is (push-directive 30.50+ (is (push-mk-directive 30.51 (cmd "ifeq ($(DEBUG),1) echo foo 30.52 endif") 30.53 mk1)) 30.54 ;; (is (push-directive (cmd "") mk1)) 30.55- (is (push-var '(a b) mk1)) 30.56- (is (push-var '(b c) mk1)) 30.57+ (is (push-mk-var '(a b) mk1)) 30.58+ (is (push-mk-var '(b c) mk1)) 30.59 ;; FIXME 30.60 ;; (is (null (sk-write-file mk1 :if-exists :supersede :path (tmp-path "mk")))) 30.61 ))))
31.1--- a/lisp/lib/skel/tools/deploy.lisp Tue May 28 23:50:43 2024 -0400 31.2+++ b/lisp/lib/skel/tools/deploy.lisp Wed May 29 23:29:40 2024 -0400 31.3@@ -11,4 +11,4 @@ 31.4 ;; multiple project pipelines this package will have the superior DX. 31.5 31.6 ;;; Code: 31.7-(in-package :skel/deploy) 31.8+(in-package :skel/tools/deploy)
32.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 32.2+++ b/lisp/lib/skel/tools/pkg.lisp Wed May 29 23:29:40 2024 -0400 32.3@@ -0,0 +1,9 @@ 32.4+(in-package :sk-user) 32.5+ 32.6+(defpkg :skel/tools/viz 32.7+ (:use :cl :std :skel) 32.8+ (:export)) 32.9+ 32.10+(defpkg :skel/tools/deploy 32.11+ (:use :cl :std :skel) 32.12+ (:export))
33.1--- a/lisp/lib/skel/tools/viz.lisp Tue May 28 23:50:43 2024 -0400 33.2+++ b/lisp/lib/skel/tools/viz.lisp Wed May 29 23:29:40 2024 -0400 33.3@@ -16,4 +16,4 @@ 33.4 ;; - wl :: wayland backend - look into widgets, mcclim, gtk4 33.5 33.6 ;;; Code: 33.7-(in-package :skel/viz) 33.8+(in-package :skel/tools/viz)
34.1--- a/lisp/std/defpkg.lisp Tue May 28 23:50:43 2024 -0400 34.2+++ b/lisp/std/defpkg.lisp Wed May 29 23:29:40 2024 -0400 34.3@@ -722,3 +722,19 @@ 34.4 #+(or clasp ecl gcl mkcl) (defpackage ,package (:use)) 34.5 (eval-when (:compile-toplevel :load-toplevel :execute) 34.6 ,ensure-form)))) 34.7+ 34.8+;; This macro is courtesy of Paul Werkowski. A very nice idea. (From LISA) 34.9+ 34.10+(defmacro define-lisp-package (pkg-name) 34.11+ (flet ((externals-of (pkg) 34.12+ (loop for s being each external-symbol in pkg collect s))) 34.13+ (let* ((pkg-externs (externals-of pkg-name)) 34.14+ (pkg-shadows (intersection (package-shadowing-symbols pkg-name) 34.15+ pkg-externs)) 34.16+ (cl-externs (externals-of "COMMON-LISP"))) 34.17+ `(defpackage ,(sb-int:symbolicate pkg-name "-LISP") 34.18+ (:use "COMMON-LISP") 34.19+ (:shadowing-import-from ,pkg-name ,@pkg-shadows) 34.20+ (:import-from ,pkg-name ,@(set-difference pkg-externs pkg-shadows)) 34.21+ (:export ,@cl-externs) 34.22+ (:export ,@pkg-externs)))))
35.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000 35.2+++ b/lisp/std/gc.log Wed May 29 23:29:40 2024 -0400 35.3@@ -0,0 +1,684 @@ 35.4+=== GC Start === 35.5+ Gen# Raw Boxed Mixed Cons Code Total 35.6+Small objects (in MiB): 35.7+ 0 0 0 311 94 0 406 35.8+ 5 1 2 2 2 3 12 35.9+ 6 1 6 2 4 13 28 35.10+Large objects: 35.11+ 0 0 0 3 0 0 3 35.12+ 3 0 0 0 0 0 0 35.13+ 5 0 0 0 0 0 1 35.14+ 6 0 0 0 0 0 0 35.15+=== GC End === 35.16+ Gen# Raw Boxed Mixed Cons Code Total 35.17+Small objects (in MiB): 35.18+ 0 0 0 5 4 0 10 35.19+ 5 1 2 2 2 3 12 35.20+ 6 1 6 2 4 13 28 35.21+Large objects: 35.22+ 0 0 0 1 0 0 1 35.23+ 5 0 0 0 0 0 0 35.24+ 6 0 0 0 0 0 0 35.25+=== GC Start === 35.26+ Gen# Raw Boxed Mixed Cons Code Total 35.27+Small objects (in MiB): 35.28+ 0 0 0 333 84 1 418 35.29+ 5 1 2 2 2 3 12 35.30+ 6 1 6 2 4 13 28 35.31+Large objects: 35.32+ 0 0 0 2 0 0 2 35.33+ 3 0 0 0 0 0 0 35.34+ 5 0 0 0 0 0 0 35.35+ 6 0 0 0 0 0 0 35.36+=== GC End === 35.37+ Gen# Raw Boxed Mixed Cons Code Total 35.38+Small objects (in MiB): 35.39+ 1 0 0 16 6 0 23 35.40+ 5 1 2 2 2 3 12 35.41+ 6 1 6 2 4 13 28 35.42+Large objects: 35.43+ 1 0 0 1 0 0 1 35.44+ 5 0 0 0 0 0 0 35.45+ 6 0 0 0 0 0 0 35.46+=== GC Start === 35.47+ Gen# Raw Boxed Mixed Cons Code Total 35.48+Small objects (in MiB): 35.49+ 0 0 0 278 128 0 407 35.50+ 1 0 0 16 6 0 23 35.51+ 5 1 2 2 2 3 12 35.52+ 6 1 6 2 4 13 28 35.53+Large objects: 35.54+ 0 0 0 2 0 0 2 35.55+ 1 0 0 1 0 0 1 35.56+ 3 0 0 0 0 0 0 35.57+ 5 0 0 0 0 0 0 35.58+ 6 0 0 0 0 0 0 35.59+=== GC End === 35.60+ Gen# Raw Boxed Mixed Cons Code Total 35.61+Small objects (in MiB): 35.62+ 0 0 0 18 4 0 23 35.63+ 1 0 0 16 6 0 23 35.64+ 5 1 2 2 2 3 12 35.65+ 6 1 6 2 4 13 28 35.66+Large objects: 35.67+ 0 0 0 1 0 0 1 35.68+ 1 0 0 1 0 0 1 35.69+ 5 0 0 0 0 0 0 35.70+ 6 0 0 0 0 0 0 35.71+=== GC Start === 35.72+ Gen# Raw Boxed Mixed Cons Code Total 35.73+Small objects (in MiB): 35.74+ 0 0 0 347 82 0 430 35.75+ 1 0 0 16 6 0 23 35.76+ 5 1 2 2 2 3 12 35.77+ 6 1 6 2 4 13 28 35.78+Large objects: 35.79+ 0 0 0 4 0 0 4 35.80+ 1 0 0 1 0 0 1 35.81+ 3 0 0 0 0 0 0 35.82+ 5 0 0 0 0 0 0 35.83+ 6 0 0 0 0 0 0 35.84+=== GC End === 35.85+ Gen# Raw Boxed Mixed Cons Code Total 35.86+Small objects (in MiB): 35.87+ 1 0 0 20 8 1 30 35.88+ 5 1 2 2 2 3 12 35.89+ 6 1 6 2 4 13 28 35.90+Large objects: 35.91+ 1 0 0 2 0 0 2 35.92+ 5 0 0 0 0 0 0 35.93+ 6 0 0 0 0 0 0 35.94+=== GC Start === 35.95+ Gen# Raw Boxed Mixed Cons Code Total 35.96+Small objects (in MiB): 35.97+ 0 0 0 323 81 0 405 35.98+ 1 0 0 20 8 1 30 35.99+ 5 1 2 2 2 3 12 35.100+ 6 1 6 2 4 13 28 35.101+Large objects: 35.102+ 0 0 0 3 0 0 3 35.103+ 1 0 0 2 0 0 2 35.104+ 3 0 0 0 0 0 0 35.105+ 5 0 0 0 0 0 0 35.106+ 6 0 0 0 0 0 0 35.107+=== GC End === 35.108+ Gen# Raw Boxed Mixed Cons Code Total 35.109+Small objects (in MiB): 35.110+ 0 0 0 11 5 0 17 35.111+ 1 0 0 20 8 1 30 35.112+ 5 1 2 2 2 3 12 35.113+ 6 1 6 2 4 13 28 35.114+Large objects: 35.115+ 0 0 0 1 0 0 1 35.116+ 1 0 0 2 0 0 2 35.117+ 5 0 0 0 0 0 0 35.118+ 6 0 0 0 0 0 0 35.119+=== GC Start === 35.120+ Gen# Raw Boxed Mixed Cons Code Total 35.121+Small objects (in MiB): 35.122+ 0 0 0 325 92 2 420 35.123+ 1 0 0 20 8 1 30 35.124+ 5 1 2 2 2 3 12 35.125+ 6 1 6 2 4 13 28 35.126+Large objects: 35.127+ 0 0 0 9 0 0 9 35.128+ 1 0 0 2 0 0 2 35.129+ 3 0 0 0 0 0 0 35.130+ 5 0 0 0 0 0 0 35.131+ 6 0 0 0 0 0 0 35.132+=== GC End === 35.133+ Gen# Raw Boxed Mixed Cons Code Total 35.134+Small objects (in MiB): 35.135+ 1 0 0 35 16 2 54 35.136+ 5 1 2 2 2 3 12 35.137+ 6 1 6 2 4 13 28 35.138+Large objects: 35.139+ 1 0 0 6 0 0 6 35.140+ 5 0 0 0 0 0 0 35.141+ 6 0 0 0 0 0 0 35.142+=== GC Start === 35.143+ Gen# Raw Boxed Mixed Cons Code Total 35.144+Small objects (in MiB): 35.145+ 0 0 0 312 89 1 404 35.146+ 1 0 0 35 16 2 54 35.147+ 5 1 2 2 2 3 12 35.148+ 6 1 6 2 4 13 28 35.149+Large objects: 35.150+ 0 0 0 6 0 0 6 35.151+ 1 0 0 6 0 0 6 35.152+ 3 0 0 0 0 0 0 35.153+ 5 0 0 0 0 0 0 35.154+ 6 0 0 0 0 0 0 35.155+=== GC End === 35.156+ Gen# Raw Boxed Mixed Cons Code Total 35.157+Small objects (in MiB): 35.158+ 0 0 0 25 7 0 33 35.159+ 1 0 0 35 16 2 54 35.160+ 5 1 2 2 2 3 12 35.161+ 6 1 6 2 4 13 28 35.162+Large objects: 35.163+ 0 0 0 0 0 0 0 35.164+ 1 0 0 6 0 0 6 35.165+ 5 0 0 0 0 0 0 35.166+ 6 0 0 0 0 0 0 35.167+=== GC Start === 35.168+ Gen# Raw Boxed Mixed Cons Code Total 35.169+Small objects (in MiB): 35.170+ 0 0 0 346 92 1 439 35.171+ 1 0 0 35 16 2 54 35.172+ 5 1 2 2 2 3 12 35.173+ 6 1 6 2 4 13 28 35.174+Large objects: 35.175+ 0 0 0 3 0 0 4 35.176+ 1 0 0 6 0 0 6 35.177+ 3 0 0 0 0 0 0 35.178+ 5 0 0 0 0 0 0 35.179+ 6 0 0 0 0 0 0 35.180+=== GC End === 35.181+ Gen# Raw Boxed Mixed Cons Code Total 35.182+Small objects (in MiB): 35.183+ 1 2 3 23 17 3 50 35.184+ 5 1 2 2 2 3 12 35.185+ 6 1 6 2 4 13 28 35.186+Large objects: 35.187+ 1 0 0 5 0 0 5 35.188+ 5 0 0 0 0 0 0 35.189+ 6 0 0 0 0 0 0 35.190+=== GC Start === 35.191+ Gen# Raw Boxed Mixed Cons Code Total 35.192+Small objects (in MiB): 35.193+ 0 0 0 291 114 2 407 35.194+ 1 2 3 23 17 3 50 35.195+ 5 1 2 2 2 3 12 35.196+ 6 1 6 2 4 13 28 35.197+Large objects: 35.198+ 0 0 0 1 0 0 1 35.199+ 1 0 0 5 0 0 5 35.200+ 3 0 0 0 0 0 0 35.201+ 5 0 0 0 0 0 1 35.202+ 6 0 0 0 0 0 0 35.203+=== GC End === 35.204+ Gen# Raw Boxed Mixed Cons Code Total 35.205+Small objects (in MiB): 35.206+ 0 0 0 35 9 1 45 35.207+ 1 2 3 23 17 3 50 35.208+ 5 1 2 2 2 3 12 35.209+ 6 1 6 2 4 13 28 35.210+Large objects: 35.211+ 0 0 0 0 0 0 0 35.212+ 1 0 0 5 0 0 5 35.213+ 5 0 0 0 0 0 0 35.214+ 6 0 0 0 0 0 0 35.215+=== GC Start === 35.216+ Gen# Raw Boxed Mixed Cons Code Total 35.217+Small objects (in MiB): 35.218+ 0 0 0 223 230 1 454 35.219+ 1 2 3 23 17 3 50 35.220+ 5 1 2 2 2 3 12 35.221+ 6 1 6 2 4 13 28 35.222+Large objects: 35.223+ 0 0 0 0 0 0 0 35.224+ 1 0 0 5 0 0 5 35.225+ 3 0 0 0 0 0 0 35.226+ 5 0 0 0 0 0 0 35.227+ 6 0 0 0 0 0 0 35.228+=== GC End === 35.229+ Gen# Raw Boxed Mixed Cons Code Total 35.230+Small objects (in MiB): 35.231+ 1 2 3 83 32 5 126 35.232+ 5 1 2 2 2 3 12 35.233+ 6 1 6 2 4 13 28 35.234+Large objects: 35.235+ 1 0 0 5 0 0 6 35.236+ 5 0 0 0 0 0 0 35.237+ 6 0 0 0 0 0 0 35.238+=== GC Start === 35.239+ Gen# Raw Boxed Mixed Cons Code Total 35.240+Small objects (in MiB): 35.241+ 0 0 0 95 314 0 409 35.242+ 1 2 3 83 32 5 126 35.243+ 5 1 2 2 2 3 12 35.244+ 6 1 6 2 4 13 28 35.245+Large objects: 35.246+ 1 0 0 5 0 0 6 35.247+ 3 0 0 0 0 0 0 35.248+ 5 0 0 0 0 0 0 35.249+ 6 0 0 0 0 0 0 35.250+=== GC End === 35.251+ Gen# Raw Boxed Mixed Cons Code Total 35.252+Small objects (in MiB): 35.253+ 0 0 0 1 0 0 1 35.254+ 1 2 3 83 32 5 126 35.255+ 5 1 2 2 2 3 12 35.256+ 6 1 6 2 4 13 28 35.257+Large objects: 35.258+ 1 0 0 5 0 0 6 35.259+ 5 0 0 0 0 0 0 35.260+ 6 0 0 0 0 0 0 35.261+=== GC Start === 35.262+ Gen# Raw Boxed Mixed Cons Code Total 35.263+Small objects (in MiB): 35.264+ 0 0 0 198 211 0 410 35.265+ 1 2 3 83 32 5 126 35.266+ 5 1 2 2 2 3 12 35.267+ 6 1 6 2 4 13 28 35.268+Large objects: 35.269+ 0 0 0 0 0 0 0 35.270+ 1 0 0 5 0 0 6 35.271+ 3 0 0 0 0 0 0 35.272+ 5 0 0 0 0 0 1 35.273+ 6 0 0 0 0 0 0 35.274+=== GC End === 35.275+ Gen# Raw Boxed Mixed Cons Code Total 35.276+Small objects (in MiB): 35.277+ 2 2 3 18 18 5 48 35.278+ 5 1 2 2 2 3 12 35.279+ 6 1 6 2 4 13 28 35.280+Large objects: 35.281+ 2 0 0 5 0 0 5 35.282+ 5 0 0 0 0 0 0 35.283+ 6 0 0 0 0 0 0 35.284+=== GC Start === 35.285+ Gen# Raw Boxed Mixed Cons Code Total 35.286+Small objects (in MiB): 35.287+ 0 0 0 198 209 0 408 35.288+ 2 2 3 18 18 5 48 35.289+ 5 1 2 2 2 3 12 35.290+ 6 1 6 2 4 13 28 35.291+Large objects: 35.292+ 0 0 0 1 0 0 1 35.293+ 2 0 0 5 0 0 5 35.294+ 3 0 0 0 0 0 0 35.295+ 5 0 0 0 0 0 0 35.296+ 6 0 0 0 0 0 0 35.297+=== GC End === 35.298+ Gen# Raw Boxed Mixed Cons Code Total 35.299+Small objects (in MiB): 35.300+ 0 0 0 31 5 0 37 35.301+ 2 2 3 18 18 5 48 35.302+ 5 1 2 2 2 3 12 35.303+ 6 1 6 2 4 13 28 35.304+Large objects: 35.305+ 0 0 0 0 0 0 0 35.306+ 2 0 0 5 0 0 5 35.307+ 5 0 0 0 0 0 0 35.308+ 6 0 0 0 0 0 0 35.309+=== GC Start === 35.310+ Gen# Raw Boxed Mixed Cons Code Total 35.311+Small objects (in MiB): 35.312+ 0 0 0 149 298 0 447 35.313+ 2 2 3 18 18 5 48 35.314+ 5 1 2 2 2 3 12 35.315+ 6 1 6 2 4 13 28 35.316+Large objects: 35.317+ 0 0 0 0 0 0 0 35.318+ 2 0 0 5 0 0 5 35.319+ 3 0 0 0 0 0 0 35.320+ 5 0 0 0 0 0 0 35.321+ 6 0 0 0 0 0 0 35.322+=== GC End === 35.323+ Gen# Raw Boxed Mixed Cons Code Total 35.324+Small objects (in MiB): 35.325+ 1 0 0 32 5 0 38 35.326+ 2 2 3 18 18 5 48 35.327+ 5 1 2 2 2 3 12 35.328+ 6 1 6 2 4 13 28 35.329+Large objects: 35.330+ 1 0 0 0 0 0 0 35.331+ 2 0 0 5 0 0 5 35.332+ 5 0 0 0 0 0 0 35.333+ 6 0 0 0 0 0 0 35.334+=== GC Start === 35.335+ Gen# Raw Boxed Mixed Cons Code Total 35.336+Small objects (in MiB): 35.337+ 0 0 0 130 279 0 409 35.338+ 1 0 0 32 5 0 38 35.339+ 2 2 3 18 18 5 48 35.340+ 5 1 2 2 2 3 12 35.341+ 6 1 6 2 4 13 28 35.342+Large objects: 35.343+ 0 0 0 0 0 0 0 35.344+ 1 0 0 0 0 0 0 35.345+ 2 0 0 5 0 0 5 35.346+ 3 0 0 0 0 0 0 35.347+ 5 0 0 0 0 0 0 35.348+ 6 0 0 0 0 0 0 35.349+=== GC End === 35.350+ Gen# Raw Boxed Mixed Cons Code Total 35.351+Small objects (in MiB): 35.352+ 0 0 0 8 0 0 9 35.353+ 1 0 0 32 5 0 38 35.354+ 2 2 3 18 18 5 48 35.355+ 5 1 2 2 2 3 12 35.356+ 6 1 6 2 4 13 28 35.357+Large objects: 35.358+ 0 0 0 0 0 0 0 35.359+ 1 0 0 0 0 0 0 35.360+ 2 0 0 5 0 0 5 35.361+ 5 0 0 0 0 0 0 35.362+ 6 0 0 0 0 0 0 35.363+=== GC Start === 35.364+ Gen# Raw Boxed Mixed Cons Code Total 35.365+Small objects (in MiB): 35.366+ 0 0 0 148 269 0 418 35.367+ 1 0 0 32 5 0 38 35.368+ 2 2 3 18 18 5 48 35.369+ 5 1 2 2 2 3 12 35.370+ 6 1 6 2 4 13 28 35.371+Large objects: 35.372+ 0 0 0 0 0 0 0 35.373+ 1 0 0 0 0 0 0 35.374+ 2 0 0 5 0 0 5 35.375+ 3 0 0 0 0 0 0 35.376+ 5 0 0 0 0 0 0 35.377+ 6 0 0 0 0 0 0 35.378+=== GC End === 35.379+ Gen# Raw Boxed Mixed Cons Code Total 35.380+Small objects (in MiB): 35.381+ 1 0 0 41 6 0 47 35.382+ 2 2 3 18 18 5 48 35.383+ 5 1 2 2 2 3 12 35.384+ 6 1 6 2 4 13 28 35.385+Large objects: 35.386+ 1 0 0 0 0 0 0 35.387+ 2 0 0 5 0 0 5 35.388+ 5 0 0 0 0 0 0 35.389+ 6 0 0 0 0 0 0 35.390+=== GC Start === 35.391+ Gen# Raw Boxed Mixed Cons Code Total 35.392+Small objects (in MiB): 35.393+ 0 0 0 139 270 0 409 35.394+ 1 0 0 41 6 0 47 35.395+ 2 2 3 18 18 5 48 35.396+ 5 1 2 2 2 3 12 35.397+ 6 1 6 2 4 13 28 35.398+Large objects: 35.399+ 1 0 0 0 0 0 0 35.400+ 2 0 0 5 0 0 5 35.401+ 3 0 0 0 0 0 0 35.402+ 5 0 0 0 0 0 0 35.403+ 6 0 0 0 0 0 0 35.404+=== GC End === 35.405+ Gen# Raw Boxed Mixed Cons Code Total 35.406+Small objects (in MiB): 35.407+ 0 0 0 8 0 0 8 35.408+ 1 0 0 41 6 0 47 35.409+ 2 2 3 18 18 5 48 35.410+ 5 1 2 2 2 3 12 35.411+ 6 1 6 2 4 13 28 35.412+Large objects: 35.413+ 1 0 0 0 0 0 0 35.414+ 2 0 0 5 0 0 5 35.415+ 5 0 0 0 0 0 0 35.416+ 6 0 0 0 0 0 0 35.417+=== GC Start === 35.418+ Gen# Raw Boxed Mixed Cons Code Total 35.419+Small objects (in MiB): 35.420+ 0 0 0 147 270 0 417 35.421+ 1 0 0 41 6 0 47 35.422+ 2 2 3 18 18 5 48 35.423+ 5 1 2 2 2 3 12 35.424+ 6 1 6 2 4 13 28 35.425+Large objects: 35.426+ 1 0 0 0 0 0 0 35.427+ 2 0 0 5 0 0 5 35.428+ 3 0 0 0 0 0 0 35.429+ 5 0 0 0 0 0 0 35.430+ 6 0 0 0 0 0 0 35.431+=== GC End === 35.432+ Gen# Raw Boxed Mixed Cons Code Total 35.433+Small objects (in MiB): 35.434+ 1 0 0 49 6 0 56 35.435+ 2 2 3 18 18 5 48 35.436+ 5 1 2 2 2 3 12 35.437+ 6 1 6 2 4 13 28 35.438+Large objects: 35.439+ 1 0 0 0 0 0 0 35.440+ 2 0 0 5 0 0 5 35.441+ 5 0 0 0 0 0 0 35.442+ 6 0 0 0 0 0 0 35.443+=== GC Start === 35.444+ Gen# Raw Boxed Mixed Cons Code Total 35.445+Small objects (in MiB): 35.446+ 0 0 0 135 274 0 409 35.447+ 1 0 0 49 6 0 56 35.448+ 2 2 3 18 18 5 48 35.449+ 5 1 2 2 2 3 12 35.450+ 6 1 6 2 4 13 28 35.451+Large objects: 35.452+ 1 0 0 0 0 0 0 35.453+ 2 0 0 5 0 0 5 35.454+ 3 0 0 0 0 0 0 35.455+ 5 0 0 0 0 0 0 35.456+ 6 0 0 0 0 0 0 35.457+=== GC End === 35.458+ Gen# Raw Boxed Mixed Cons Code Total 35.459+Small objects (in MiB): 35.460+ 0 0 0 5 0 0 5 35.461+ 1 0 0 49 6 0 56 35.462+ 2 2 3 18 18 5 48 35.463+ 5 1 2 2 2 3 12 35.464+ 6 1 6 2 4 13 28 35.465+Large objects: 35.466+ 1 0 0 0 0 0 0 35.467+ 2 0 0 5 0 0 5 35.468+ 5 0 0 0 0 0 0 35.469+ 6 0 0 0 0 0 0 35.470+=== GC Start === 35.471+ Gen# Raw Boxed Mixed Cons Code Total 35.472+Small objects (in MiB): 35.473+ 0 0 0 142 272 0 414 35.474+ 1 0 0 49 6 0 56 35.475+ 2 2 3 18 18 5 48 35.476+ 5 1 2 2 2 3 12 35.477+ 6 1 6 2 4 13 28 35.478+Large objects: 35.479+ 1 0 0 0 0 0 0 35.480+ 2 0 0 5 0 0 5 35.481+ 3 0 0 0 0 0 0 35.482+ 5 0 0 0 0 0 0 35.483+ 6 0 0 0 0 0 0 35.484+=== GC End === 35.485+ Gen# Raw Boxed Mixed Cons Code Total 35.486+Small objects (in MiB): 35.487+ 1 0 0 58 6 0 64 35.488+ 2 2 3 18 18 5 48 35.489+ 5 1 2 2 2 3 12 35.490+ 6 1 6 2 4 13 28 35.491+Large objects: 35.492+ 1 0 0 0 0 0 0 35.493+ 2 0 0 5 0 0 5 35.494+ 5 0 0 0 0 0 0 35.495+ 6 0 0 0 0 0 0 35.496+=== GC Start === 35.497+ Gen# Raw Boxed Mixed Cons Code Total 35.498+Small objects (in MiB): 35.499+ 0 0 0 137 271 0 409 35.500+ 1 0 0 58 6 0 64 35.501+ 2 2 3 18 18 5 48 35.502+ 5 1 2 2 2 3 12 35.503+ 6 1 6 2 4 13 28 35.504+Large objects: 35.505+ 1 0 0 0 0 0 0 35.506+ 2 0 0 5 0 0 5 35.507+ 3 0 0 0 0 0 0 35.508+ 5 0 0 0 0 0 0 35.509+ 6 0 0 0 0 0 0 35.510+=== GC End === 35.511+ Gen# Raw Boxed Mixed Cons Code Total 35.512+Small objects (in MiB): 35.513+ 0 0 0 8 0 0 8 35.514+ 1 0 0 58 6 0 64 35.515+ 2 2 3 18 18 5 48 35.516+ 5 1 2 2 2 3 12 35.517+ 6 1 6 2 4 13 28 35.518+Large objects: 35.519+ 1 0 0 0 0 0 0 35.520+ 2 0 0 5 0 0 5 35.521+ 5 0 0 0 0 0 0 35.522+ 6 0 0 0 0 0 0 35.523+=== GC Start === 35.524+ Gen# Raw Boxed Mixed Cons Code Total 35.525+Small objects (in MiB): 35.526+ 0 0 0 152 265 0 417 35.527+ 1 0 0 58 6 0 64 35.528+ 2 2 3 18 18 5 48 35.529+ 5 1 2 2 2 3 12 35.530+ 6 1 6 2 4 13 28 35.531+Large objects: 35.532+ 1 0 0 0 0 0 0 35.533+ 2 0 0 5 0 0 5 35.534+ 3 0 0 0 0 0 0 35.535+ 5 0 0 0 0 0 0 35.536+ 6 0 0 0 0 0 0 35.537+=== GC End === 35.538+ Gen# Raw Boxed Mixed Cons Code Total 35.539+Small objects (in MiB): 35.540+ 1 0 0 66 6 0 73 35.541+ 2 2 3 18 18 5 48 35.542+ 5 1 2 2 2 3 12 35.543+ 6 1 6 2 4 13 28 35.544+Large objects: 35.545+ 1 0 0 0 0 0 0 35.546+ 2 0 0 5 0 0 5 35.547+ 5 0 0 0 0 0 0 35.548+ 6 0 0 0 0 0 0 35.549+=== GC Start === 35.550+ Gen# Raw Boxed Mixed Cons Code Total 35.551+Small objects (in MiB): 35.552+ 0 0 0 146 263 0 409 35.553+ 1 0 0 66 6 0 73 35.554+ 2 2 3 18 18 5 48 35.555+ 5 1 2 2 2 3 12 35.556+ 6 1 6 2 4 13 28 35.557+Large objects: 35.558+ 1 0 0 0 0 0 0 35.559+ 2 0 0 5 0 0 5 35.560+ 3 0 0 0 0 0 0 35.561+ 5 0 0 0 0 0 0 35.562+ 6 0 0 0 0 0 0 35.563+=== GC End === 35.564+ Gen# Raw Boxed Mixed Cons Code Total 35.565+Small objects (in MiB): 35.566+ 0 0 0 8 0 0 8 35.567+ 1 0 0 66 6 0 73 35.568+ 2 2 3 18 18 5 48 35.569+ 5 1 2 2 2 3 12 35.570+ 6 1 6 2 4 13 28 35.571+Large objects: 35.572+ 1 0 0 0 0 0 0 35.573+ 2 0 0 5 0 0 5 35.574+ 5 0 0 0 0 0 0 35.575+ 6 0 0 0 0 0 0 35.576+=== GC Start === 35.577+ Gen# Raw Boxed Mixed Cons Code Total 35.578+Small objects (in MiB): 35.579+ 0 0 0 238 177 0 416 35.580+ 1 0 0 66 6 0 73 35.581+ 2 2 3 18 18 5 48 35.582+ 5 1 2 2 2 3 12 35.583+ 6 1 6 2 4 13 28 35.584+Large objects: 35.585+ 0 0 0 1 0 0 1 35.586+ 1 0 0 0 0 0 0 35.587+ 2 0 0 5 0 0 5 35.588+ 3 0 0 0 0 0 0 35.589+ 5 0 0 0 0 0 1 35.590+ 6 0 0 0 0 0 0 35.591+=== GC End === 35.592+ Gen# Raw Boxed Mixed Cons Code Total 35.593+Small objects (in MiB): 35.594+ 1 3 4 38 6 0 52 35.595+ 2 2 3 18 18 5 48 35.596+ 5 1 2 2 2 3 12 35.597+ 6 1 6 2 4 13 28 35.598+Large objects: 35.599+ 1 0 0 0 0 0 0 35.600+ 2 0 0 5 0 0 5 35.601+ 5 0 0 0 0 0 0 35.602+ 6 0 0 0 0 0 0 35.603+=== GC Start === 35.604+ Gen# Raw Boxed Mixed Cons Code Total 35.605+Small objects (in MiB): 35.606+ 0 0 0 316 88 1 406 35.607+ 1 3 4 38 6 0 52 35.608+ 2 2 3 18 18 5 48 35.609+ 5 1 2 2 2 3 12 35.610+ 6 1 6 2 4 13 28 35.611+Large objects: 35.612+ 0 0 0 3 0 0 3 35.613+ 1 0 0 0 0 0 0 35.614+ 2 0 0 5 0 0 5 35.615+ 3 0 0 0 0 0 0 35.616+ 5 0 0 0 0 0 0 35.617+ 6 0 0 0 0 0 0 35.618+=== GC End === 35.619+ Gen# Raw Boxed Mixed Cons Code Total 35.620+Small objects (in MiB): 35.621+ 0 0 0 6 2 1 10 35.622+ 1 3 4 38 6 0 52 35.623+ 2 2 3 18 18 5 48 35.624+ 5 1 2 2 2 3 12 35.625+ 6 1 6 2 4 13 28 35.626+Large objects: 35.627+ 0 0 0 0 0 0 1 35.628+ 1 0 0 0 0 0 0 35.629+ 2 0 0 5 0 0 5 35.630+ 5 0 0 0 0 0 0 35.631+ 6 0 0 0 0 0 0 35.632+=== GC Start === 35.633+ Gen# Raw Boxed Mixed Cons Code Total 35.634+Small objects (in MiB): 35.635+ 0 0 0 309 87 2 399 35.636+ 1 3 4 38 6 0 52 35.637+ 2 2 3 18 18 5 48 35.638+ 5 1 2 2 2 3 12 35.639+ 6 1 6 2 4 13 28 35.640+Large objects: 35.641+ 0 0 0 21 0 0 21 35.642+ 1 0 0 0 0 0 0 35.643+ 2 0 0 5 0 0 5 35.644+ 3 0 0 0 0 0 0 35.645+ 5 0 0 0 0 0 1 35.646+ 6 0 0 0 0 0 0 35.647+=== GC End === 35.648+ Gen# Raw Boxed Mixed Cons Code Total 35.649+Small objects (in MiB): 35.650+ 1 3 4 51 11 1 72 35.651+ 2 2 3 18 18 5 48 35.652+ 5 1 2 2 2 3 12 35.653+ 6 1 6 2 4 13 28 35.654+Large objects: 35.655+ 1 0 0 1 0 0 1 35.656+ 2 0 0 5 0 0 5 35.657+ 5 0 0 0 0 0 0 35.658+ 6 0 0 0 0 0 0 35.659+=== GC Start === 35.660+ Gen# Raw Boxed Mixed Cons Code Total 35.661+Small objects (in MiB): 35.662+ 0 0 0 222 134 0 358 35.663+ 1 3 4 51 11 1 72 35.664+ 2 2 3 18 18 5 48 35.665+ 5 1 2 2 2 3 12 35.666+ 6 1 6 2 4 13 28 35.667+Large objects: 35.668+ 0 0 0 58 0 0 58 35.669+ 1 0 0 1 0 0 1 35.670+ 2 0 0 5 0 0 5 35.671+ 3 0 0 0 0 0 0 35.672+ 5 0 0 0 0 0 1 35.673+ 6 0 0 0 0 0 0 35.674+=== GC End === 35.675+ Gen# Raw Boxed Mixed Cons Code Total 35.676+Small objects (in MiB): 35.677+ 0 0 0 5 1 0 7 35.678+ 1 3 4 51 11 1 72 35.679+ 2 2 3 18 18 5 48 35.680+ 5 1 2 2 2 3 12 35.681+ 6 1 6 2 4 13 28 35.682+Large objects: 35.683+ 0 0 0 0 0 0 0 35.684+ 1 0 0 1 0 0 1 35.685+ 2 0 0 5 0 0 5 35.686+ 5 0 0 0 0 0 0 35.687+ 6 0 0 0 0 0 0
36.1--- a/lisp/std/mop.lisp Tue May 28 23:50:43 2024 -0400 36.2+++ b/lisp/std/mop.lisp Wed May 29 23:29:40 2024 -0400 36.3@@ -1,4 +1,4 @@ 36.4-;;; std/mop.lisp --- Standard MOP 36.5+;;; std/mop.lisp --- Standard MOP Utilities 36.6 36.7 ;; 36.8
37.1--- a/lisp/std/pkg.lisp Tue May 28 23:50:43 2024 -0400 37.2+++ b/lisp/std/pkg.lisp Wed May 29 23:29:40 2024 -0400 37.3@@ -4,7 +4,7 @@ 37.4 (defpackage :std-user 37.5 (:use :cl :std/named-readtables :std/defpkg) 37.6 (:shadowing-import-from :std/defpkg :defpkg) 37.7- (:export :defpkg :in-readtable)) 37.8+ (:export :defpkg :in-readtable :define-lisp-package)) 37.9 37.10 (in-package :std-user) 37.11
38.1--- a/lisp/std/sys.lisp Tue May 28 23:50:43 2024 -0400 38.2+++ b/lisp/std/sys.lisp Wed May 29 23:29:40 2024 -0400 38.3@@ -1,4 +1,4 @@ 38.4-;;; std/sys.lisp @ 2023-10-14.03:28:40 -*- mode: lisp; -*- 38.5+;;; std/sys.lisp --- Lisp System Utilities 38.6 38.7 ;; 38.8 38.9@@ -60,17 +60,14 @@ 38.10 (zerop (sb-posix:wexitstatus status)))))))))))) 38.11 38.12 ;; TODO 2024-05-09: 38.13-;; (defun decode-all-debug-data () 38.14-;; (dolist (code (sb-vm:list-allocated-objects :all :type sb-vm:code-header-widetag)) 38.15-;; (let ((info (sb-kernel:%code-debug-info code))) 38.16-;; (when (typep info 'sb-c::compiled-debug-info) 38.17-;; (let ((fun-map (sb-di::get-debug-info-fun-map 38.18-;; (sb-kernel:%code-debug-info code)))) 38.19-;; (loop for i from 0 below (length fun-map) by 2 do 38.20-;; (let ((cdf (aref fun-map i))) 38.21-;; (sb-di::debug-fun-lambda-list 38.22-;; (sb-di::make-compiled-debug-fun cdf code)))))) 38.23-;; (print info)))) 38.24+(setq *test* (the integer 1)) 38.25+ 38.26+(defparameter *gc-logfile* #P"gc.log") 38.27+ 38.28+(defun enable-gc-logfile (&optional (file *gc-logfile*)) 38.29+ (setf (sb-ext:gc-logfile) file)) 38.30+ 38.31+(length (sb-di::list-allocated-objects :dynamic :test #'stringp)) 38.32 38.33 (defun forget-shared-objects () 38.34 "Set the DONT-SAVE slot of all objects in SB-SYS:*SHARED-OBJECTS* to T."