changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / skelfile

changeset 532: f6a340b92274
parent: 89c39817bf20
child: ecfb1a9127b2
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 08 Jul 2024 18:43:42 -0400
permissions: -rwxr-xr-x
description: tests and fixes, added sbcl tools
1 ;;; skelfile --- CC/core skelfile -*- mode: skel; -*-
2 :name "core"
3 :author ("Richard Westhaver" . "ellis@rwest.io>")
4 :version "0.1.0"
5 :license "MPL"
6 :stash ".stash"
7 :store ".store"
8 :description "The Compiler Company Core"
9 :tags ("core" "lisp" "rust" "emacs" "c")
10 :include ("lisp.sk" "rust.sk" "emacs.sk")
11 :vc (:hg "https://vc.compiler.company/comp/core")
12 :scripts ((:lisp "x.lisp"))
13 :env ((cc "clang"))
14 :components ((:dir-locals ".dir-locals")
15  (:org "readme"))
16 :rules
17 ((all (compile std prelude user infra core tests build fasl rust-bin tree-sitter-alien)) ;; TODO: add keyword args -- (emacs :stage 'install)
18  (clean ()
19  #$rm -vrf .stash$#
20  #$find emacs -name '*.elc' -type f -delete$#
21  #$find lisp -name '*.fasl' -type f -delete$#
22  #$echo 'cargo clean:' && cd rust && cargo clean$#)
23  (box () #$podman build . --build-arg IMAGE=box -t core$#)
24  (tree-sitter-alien () #$cd lisp/ffi/tree-sitter &&
25  clang -g -O2 -Wall -Wno-unused-value -ltree-sitter -shared \
26  alien.c -o ../../../.stash/libtree-sitter-alien.so$#)
27  (tree-sitter-alien-install () #$cp .stash/libtree-sitter-alien.so /usr/local/lib/$#)
28 
29  (psl.dat () ;; req:fetch works in slime and sk-shell but not here? hmm..
30  (with-open-file
31  (st ".stash/psl.dat" :direction :output :element-type 'octet)
32  (loop for x across (req:get "https://publicsuffix.org/list/public_suffix_list.dat" :force-binary t)
33  do (write-byte x st))))
34  ;; lisp
35  (rdb () #$./x.lisp build rdb$#)
36  (skel () #$./x.lisp build skel$#)
37  (skel-gui () #$sbcl --eval "(progn (push :tools *features*) (ql:quickload :bin/skel) (asdf:make :bin/skel))"
38  mv lisp/bin/skel .stash/$#)
39  (organ () #$./x.lisp build organ$#)
40  (homer () #$./x.lisp build homer$#)
41  (packy () #$./x.lisp build packy$#)
42  (build () #$./x.lisp build$#)
43  (compile () #$./x.lisp compile$#)
44  (std () #$./x.lisp save std$#)
45  (prelude () #$./x.lisp save prelude$#)
46  (user () #$./x.lisp save user$#)
47  (infra () #$./x.lisp save infra$#)
48  (core () #$./x.lisp save core$#)
49  (tests () #$./x.lisp save tests$#)
50  (prelude-fasl () #$./x.lisp make prelude$#)
51  (user-fasl () #$./x.lisp make user$#)
52  (core-fasl () #$./x.lisp make core$#)
53  (tests-fasl () #$./x.lisp make core/tests$#)
54  (bench-fasl () #$./x.lisp make core/bench$#)
55  (fasl (core-fasl tests-fasl bench-fasl user-fasl prelude-fasl))
56  ;; rust
57  (mailman () #$cd rust && cargo build -Z unstable-options --bin mailman --artifact-dir ../.stash/$#)
58  (alik () #$cd rust && cargo build -Z unstable-options --bin alik --artifact-dir ../.stash/$#)
59  (rust-bin (mailman alik))
60  (alik-ui () #$trunk build --config rust/ui/alik/Trunk.toml$#)
61  ;; install
62  (install () #$d=/usr/local/bin
63  cd .stash
64  for f in $(find . -type f ! -name "*.*")
65  do echo "$(basename $f) -> $d"
66  install -C -m 755 $f $d
67  done
68  d=/usr/local/share/lisp
69  if [ -d $d ];
70  then
71  for f in $(find . -type f -name "*.core")
72  do echo "$(basename $f) -> $d"
73  install -C -m 755 $f $d
74  done fi$#)
75  (emacs-user () #$make -C emacs$#)
76  (dist () #$cd .stash
77  mkdir -pv core/bin core/share/lisp/fasl core/lib
78  mv *.core core/share/lisp/
79  mv *.fasl core/share/lisp/fasl/
80  mv *.so core/lib/
81  mv $(find -maxdepth 1 -type f ! -name "*.*") core/bin/
82  tar -I 'zstd' -cf core.tar.zst core/*$#)
83  (dist-clean (clean) #$cd .. && tar -I 'zstd' -cf core/core-source.tar.zst core/* && cd core
84  mkdir -pv .stash
85  mv core-source.tar.zst .stash/$#))