changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / skelfile

changeset 545: 312eb5995ed4
parent: d84e518059be
child: 32bd859533b3
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 14 Jul 2024 19:59:58 -0400
permissions: -rwxr-xr-x
description: adjust skelfile
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 (%stash
18  psl.dat parquet.json
19  compile std prelude user
20  infra core tests rdb
21  skel organ homer packy
22  fasl rust-bin tree-sitter-alien))
23  (clean ()
24  #$rm -vrf .stash$#
25  #$find emacs -name '*.elc' -type f -delete$#
26  #$find lisp -name '*.fasl' -type f -delete$#
27  #$echo 'cargo clean:' && cd rust && cargo clean$#)
28  (tree-sitter-alien () #$cd lisp/ffi/tree-sitter &&
29  clang -g -O2 -Wall -Wno-unused-value -ltree-sitter -shared \
30  alien.c -o ../../../.stash/libtree-sitter-alien.so$#)
31  (tree-sitter-alien-install () #$cp .stash/libtree-sitter-alien.so /usr/local/lib/$#)
32  (psl.dat () ;; req:fetch works in slime and sk-shell but not here? hmm..
33  (with-open-file
34  (st ".stash/psl.dat" :direction :output :element-type 'octet)
35  (loop for x across (req:get "https://publicsuffix.org/list/public_suffix_list.dat" :force-binary t)
36  do (write-byte x st))))
37  (parquet.thrift ()
38  (with-open-file
39  (st ".stash/parquet.thrift" :direction :output :element-type 'octet)
40  (loop for x across (req:get "https://raw.githubusercontent.com/apache/parquet-format/master/src/main/thrift/parquet.thrift" :force-binary t)
41  do (write-byte x st)))
42  #$thrift --gen json -out .stash .stash/parquet.thrift$#)
43  (parquet.json ()
44  (with-open-file
45  (st ".stash/parquet.json" :direction :output :element-type 'octet)
46  (loop for x across (req:get "https://packy.compiler.company/data/parquet.json" :force-binary t)
47  do (write-byte x st))))
48  ;; lisp
49  (%stash () #$mkdir -pv .stash$#)
50  (rdb (%stash) (with-sbcl (:noinform t :quit t)
51  (ql:quickload :bin/rdb)
52  (asdf:make :bin/rdb)
53  #0$mv lisp/bin/rdb .stash/$#))
54  (skel (%stash) (with-sbcl (:noinform t :quit t)
55  (ql:quickload :bin/skel)
56  (asdf:make :bin/skel)
57  #0$mv lisp/bin/skel .stash/$#))
58  (skel-gui (%stash) (with-sbcl (:noinform t :quit t)
59  (push :tools *features*)
60  (ql:quickload :bin/skel)
61  (asdf:make :bin/skel)
62  #0$mv lisp/bin/skel .stash/$#))
63  (organ (%stash) (with-sbcl (:noinform t :quit t)
64  (ql:quickload :bin/organ)
65  (asdf:make :bin/organ)
66  #0$mv lisp/bin/organ .stash/$#))
67  (homer (%stash) (with-sbcl (:noinform t :quit t)
68  (ql:quickload :bin/homer)
69  (asdf:make :bin/homer)
70  #0$mv lisp/bin/homer .stash/$#))
71  (packy (%stash) (with-sbcl (:noinform t :quit t)
72  (ql:quickload :bin/packy)
73  (asdf:make :bin/packy)
74  #0$mv lisp/bin/packy .stash/$#))
75  (build (rdb skel organ homer packy))
76  (compile () #$./x.lisp compile$#)
77  (std () #$./x.lisp save std$#)
78  (prelude () #$./x.lisp save prelude$#)
79  (user () #$./x.lisp save user$#)
80  (infra () #$./x.lisp save infra$#)
81  (core () #$./x.lisp save core$#)
82  (tests () #$./x.lisp save tests$#)
83  (prelude-fasl () #$./x.lisp make prelude$#)
84  (user-fasl () #$./x.lisp make user$#)
85  (core-fasl () #$./x.lisp make core$#)
86  (tests-fasl () #$./x.lisp make core/tests$#)
87  (bench-fasl () #$./x.lisp make core/bench$#)
88  (fasl (core-fasl tests-fasl bench-fasl user-fasl prelude-fasl))
89  ;; rust
90  (mailman () #$cd rust && cargo build -Z unstable-options --bin mailman --artifact-dir ../.stash/$#)
91  (alik () #$cd rust && cargo build -Z unstable-options --bin alik --artifact-dir ../.stash/$#)
92  (rust-bin (mailman alik))
93  (alik-ui () #$trunk build --config rust/ui/alik/Trunk.toml$#)
94  ;; install
95  (install () #$d=/usr/local/bin
96  cd .stash
97  for f in $(find . -type f ! -name "*.*")
98  do echo "$(basename $f) -> $d"
99  install -C -m 755 $f $d
100  done
101  d=/usr/local/share/lisp
102  if [ -d $d ];
103  then
104  for f in $(find . -type f -name "*.core")
105  do echo "$(basename $f) -> $d"
106  install -C -m 755 $f $d
107  done fi$#)
108  (emacs () #$make -C emacs$#)
109  (dist () #$cd .stash
110  mkdir -pv core/bin core/share/lisp/fasl core/lib
111  mv *.core core/share/lisp/
112  mv *.fasl core/share/lisp/fasl/
113  mv *.so core/lib/
114  mv $(find -maxdepth 1 -type f ! -name "*.*") core/bin/
115  tar -I 'zstd' -cf core.tar.zst core/*$#)
116  (dist-clean (clean) #$cd .. && tar -I 'zstd' -cf core/core-source.tar.zst core/* && cd core
117  mkdir -pv .stash
118  mv core-source.tar.zst .stash/$#))