1.1--- a/emacs/lib/sk.el Fri Jul 05 22:30:33 2024 -0400
1.2+++ b/emacs/lib/sk.el Sun Jul 07 00:49:54 2024 -0400
1.3@@ -79,6 +79,8 @@
1.4 :group 'skel
1.5 (skel-minor-mode 1))
1.6
1.7+(org-babel-make-language-alias "skel" "lisp")
1.8+
1.9 (defun maybe-skel-minor-mode ()
1.10 "Check the current environment and determine if `skel-minor-mode' should
1.11 be enabled. This function is added as a hook to
2.1--- a/lisp/bin/skel.lisp Fri Jul 05 22:30:33 2024 -0400
2.2+++ b/lisp/bin/skel.lisp Sun Jul 07 00:49:54 2024 -0400
2.3@@ -76,6 +76,7 @@
2.4
2.5 (defcmd skc-compile ()
2.6 (sk-call *skel-project* :compile))
2.7+
2.8 (defcmd skc-build ()
2.9 (sk-call *skel-project* :build))
2.10 (defcmd skc-dist ()
3.1--- a/lisp/lib/skel/comp/asd.lisp Fri Jul 05 22:30:33 2024 -0400
3.2+++ b/lisp/lib/skel/comp/asd.lisp Sun Jul 07 00:49:54 2024 -0400
3.3@@ -47,7 +47,8 @@
3.4 (declare (ignore kind))
3.5 (parse-sk-lisp-system (pathname-name path) path))
3.6
3.7-;; (defmethod sk-compile ((self sk-lisp-system) stream &key &allow-other-keys))
3.8+(defmethod sk-compile ((self sk-lisp-system) &key force force-not verbose version &allow-other-keys)
3.9+ (asdf:compile-system self :force force :force-not force-not :verbose verbose :version version))
3.10
3.11 (defun sk-write-asd-components (module)
3.12 (etypecase module
4.1--- a/lisp/lib/skel/comp/cargo.lisp Fri Jul 05 22:30:33 2024 -0400
4.2+++ b/lisp/lib/skel/comp/cargo.lisp Sun Jul 07 00:49:54 2024 -0400
4.3@@ -29,7 +29,7 @@
4.4 (declare (ignore kind))
4.5 (parse-sk-rust-system path))
4.6
4.7-(defmethod sk-compile ((self sk-rust-system) stream &key &allow-other-keys))
4.8+(defmethod sk-compile ((self sk-rust-system) &key &allow-other-keys))
4.9
4.10 (defmethod sk-write-file ((self sk-rust-system) &key path))
4.11
5.1--- a/lisp/lib/skel/comp/makefile.lisp Fri Jul 05 22:30:33 2024 -0400
5.2+++ b/lisp/lib/skel/comp/makefile.lisp Sun Jul 07 00:49:54 2024 -0400
5.3@@ -61,7 +61,7 @@
5.4 (destructuring-bind (k v) self
5.5 (setf (gethash k (mk-vars place)) v)))
5.6
5.7-(defmethod sk-compile ((self makefile) stream &key &allow-other-keys)
5.8+(defmethod sk-compile ((self makefile) &key stream &allow-other-keys)
5.9 "Compile the makefile SELF to output STREAM."
5.10 (with-open-stream (s stream)
5.11 (with-slots (directives variables explicit implicit) self
6.1--- a/lisp/lib/skel/core/pkg.lisp Fri Jul 05 22:30:33 2024 -0400
6.2+++ b/lisp/lib/skel/core/pkg.lisp Sun Jul 07 00:49:54 2024 -0400
6.3@@ -86,10 +86,11 @@
6.4 :load-skelfile
6.5 :find-skelfile
6.6 :find-sk-file
6.7- :get-config-slot*
6.8+ :get-skelrc-slot*
6.9 :find-project-root
6.10 :describe-skeleton
6.11- :describe-project))
6.12+ :describe-project
6.13+ :parse-sk-path))
6.14
6.15 (defpackage :skel/core/vm
6.16 (:use :cl :std :skel/core/err)
7.1--- a/lisp/lib/skel/core/proto.lisp Fri Jul 05 22:30:33 2024 -0400
7.2+++ b/lisp/lib/skel/core/proto.lisp Sun Jul 07 00:49:54 2024 -0400
7.3@@ -21,8 +21,8 @@
7.4 (:documentation "load or reload object SELF."))
7.5 (defgeneric sk-load-component (kind form)
7.6 (:documentation "load a component of type KIND from provided FORM."))
7.7-(defgeneric sk-compile (self stream &key &allow-other-keys)
7.8- (:documentation "compile object SELF to output STREAM"))
7.9+(defgeneric sk-compile (self &key &allow-other-keys)
7.10+ (:documentation "compile object SELF."))
7.11 (defgeneric sk-transform (self other &key &allow-other-keys)
7.12 (:documentation "transform SELF to object of type OTHER"))
7.13 (defgeneric sk-convert (self)
8.1--- a/lisp/lib/skel/core/util.lisp Fri Jul 05 22:30:33 2024 -0400
8.2+++ b/lisp/lib/skel/core/util.lisp Sun Jul 07 00:49:54 2024 -0400
8.3@@ -116,7 +116,7 @@
8.4 "Open the current system configuration using ED."
8.5 (ed *system-skelrc*))
8.6
8.7-(defun get-config-slot* (slot)
8.8+(defun get-skelrc-slot* (slot)
8.9 "First check *SKEL-USER-CONFIG* for a slot value, and if a valid value
8.10 isn't found check *SKEL-SYSTEM-CONFIG*."
8.11 (let ((slot (find-symbol (string-upcase (string slot)) :skel/core/obj)))
8.12@@ -140,8 +140,23 @@
8.13 (load-skelrc)
8.14 (when-let ((project (find-skelfile *default-pathname-defaults*)))
8.15 (setq *skel-project* (load-skelfile project)))
8.16- (setq *skel-cache* (get-config-slot* :cache)
8.17- *skel-store* (get-config-slot* :store)
8.18- *skel-stash* (get-config-slot* :stash)
8.19- *skel-registry* (get-config-slot* :registry))
8.20+ (setq *skel-cache* (get-skelrc-slot* :cache)
8.21+ *skel-store* (get-skelrc-slot* :store)
8.22+ *skel-stash* (get-skelrc-slot* :stash)
8.23+ *skel-registry* (get-skelrc-slot* :registry))
8.24 (values))
8.25+
8.26+;;; Paths
8.27+
8.28+(defun parse-sk-path (input &optional (start 0) end)
8.29+ "An 'sk-path' is a CLI argument which can be translated into a corresponding
8.30+nested object."
8.31+ (with-input-from-string (s input)
8.32+ (loop for i from start below end
8.33+ collect (read-char s))))
8.34+
8.35+;; (defmacro sk-apply-path-relevancy (path &optional (context *default-pathname-defaults*)))
8.36+
8.37+(defun find-sk-path (path &optional skel)
8.38+ "Find an sk-path string in a skel object, or attempt to match it against all
8.39+active objects.")
9.1--- a/skelfile Fri Jul 05 22:30:33 2024 -0400
9.2+++ b/skelfile Sun Jul 07 00:49:54 2024 -0400
9.3@@ -21,11 +21,11 @@
9.4 #$find lisp -name '*.fasl' -type f -delete$#
9.5 #$echo 'cargo clean:' && cd rust && cargo clean$#)
9.6 (box () #$podman build . --build-arg IMAGE=box -t core$#)
9.7- (tree-sitter-alien ()
9.8- #$ cd lisp/ffi/tree-sitter &&
9.9+ (tree-sitter-alien () #$cd lisp/ffi/tree-sitter &&
9.10 clang -g -O2 -Wall -Wno-unused-value -ltree-sitter -shared \
9.11- alien.c -o /usr/local/lib/libtree-sitter-alien.so$#
9.12- (info! "installed /usr/local/lib/libtree-sitter-alien.so"))
9.13+ alien.c -o ../../../.stash/libtree-sitter-alien.so$#)
9.14+ (tree-sitter-alien-install () #$cp .stash/libtree-sitter-alien.so /usr/local/lib/$#)
9.15+
9.16 (psl.dat () ;; req:fetch works in slime and sk-shell but not here? hmm..
9.17 (with-open-file
9.18 (st ".stash/psl.dat" :direction :output :element-type 'octet)
9.19@@ -77,6 +77,7 @@
9.20 mkdir -pv core/bin core/share/lisp/fasl
9.21 mv *.core core/share/lisp/
9.22 mv *.fasl core/share/lisp/fasl/
9.23+ mv *.so core/lib/
9.24 mv $(find -maxdepth 1 -type f ! -name "*.*") core/bin/
9.25 tar -I 'zstd' -cf core.tar.zst core/*$#)
9.26 (dist-clean (clean) #$cd .. && tar -I 'zstd' -cf core/core-source.tar.zst core/* && cd core