1.1--- a/core/bin/skel.org Sat Jul 27 02:45:49 2024 -0400
1.2+++ b/core/bin/skel.org Sun Aug 11 10:09:50 2024 -0400
1.3@@ -28,7 +28,8 @@
1.4 #+RESULTS:
1.5 #+begin_example
1.6 ;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*-
1.7-:name "Richard Westhaver <ellis@rwest.io>"
1.8+:name "Richard Westhaver"
1.9+:email "richard.westhaver@gmail.com"
1.10 :user "ellis"
1.11 :version "0.1.0"
1.12 :tags ("auto")
1.13@@ -39,13 +40,9 @@
1.14 :log-level :info
1.15 :stash ".stash"
1.16 ;; :scratch ".stash/scratch"
1.17-:cache ".cache"
1.18+:cache ".stash/cache"
1.19 :registry ".data/skel/registry"
1.20 :scripts ("/usr/local/share/stash/scripts" "~/stash/scripts")
1.21-:alias-list
1.22-(("p" "vc push")
1.23- ("P" "vc pull")
1.24- ("ci" "vc commit"))
1.25 #+end_example
1.26
1.27 ** projects
2.1--- a/core/lib/cli.org Sat Jul 27 02:45:49 2024 -0400
2.2+++ b/core/lib/cli.org Sun Aug 11 10:09:50 2024 -0400
2.3@@ -23,6 +23,7 @@
2.4 #+RESULTS:
2.5 - std
2.6 - log
2.7+- dat
2.8
2.9 ** dependents
2.10 #+begin_src lisp :results list
2.11@@ -32,14 +33,13 @@
2.12 #+end_src
2.13
2.14 #+RESULTS:
2.15-- prelude
2.16+- user
2.17+- packy
2.18 - pod
2.19-- packy
2.20 - vc
2.21 - skel
2.22-- obj
2.23+- prelude
2.24 - cli/tests
2.25-- user
2.26
2.27 ** files
2.28 #+begin_src lisp :output replace :results list
2.29@@ -58,8 +58,14 @@
2.30 - shell.lisp
2.31 - prompt.lisp
2.32 - ed.lisp
2.33+- tools/pkg.lisp
2.34+- tools/term.lisp
2.35 - tools/tmux.lisp
2.36 - tools/pacman.lisp
2.37+- tools/cc.lisp
2.38+- tools/systemd.lisp
2.39+- tools/cargo.lisp
2.40+- tools/sbcl.lisp
2.41 - clap/pkg.lisp
2.42 - clap/ast.lisp
2.43 - clap/vars.lisp
2.44@@ -78,17 +84,23 @@
2.45 #+end_src
2.46
2.47 #+RESULTS:
2.48+- CLI/TOOLS/SBCL
2.49 - CLI/CLAP/OBJ
2.50 - CLI/CLAP/SIMPLE
2.51 - CLI/SHELL
2.52+- CLI/TOOLS/TERM
2.53 - CLI/ANSI
2.54 - CLI/CLAP/PROTO
2.55 - CLI/CLAP/AST
2.56 - CLI/ED
2.57+- CLI/TOOLS/PACMAN
2.58+- CLI/TOOLS/CARGO
2.59+- CLI/CLAP
2.60 - CLI
2.61-- CLI/CLAP
2.62+- CLI/TOOLS/CC
2.63 - CLI/CLAP/VARS
2.64 - CLI/TESTS
2.65+- CLI/TOOLS/TMUX
2.66 - CLI/REPL
2.67 - CLI/CLAP/UTIL
2.68 - CLI/ENV
2.69@@ -96,8 +108,8 @@
2.70 - CLI/PROMPT
2.71 - CLI-USER
2.72 - CLI/SPARK
2.73-- CLI/TMUX
2.74 - CLI/CLAP/MACS
2.75+- CLI/TOOLS/SYSTEMD
2.76
2.77 ** tests
2.78 #+begin_src lisp :output replace
2.79@@ -106,7 +118,7 @@
2.80 #+end_src
2.81
2.82 #+RESULTS:
2.83-: #<RT:TEST-SUITE CLI [10:10:0:0] {103BAFED63}>
2.84+: #<RT:TEST-SUITE CLI [11:11:0:0] {101709DC53}>
2.85
2.86 #+begin_src lisp :output replace
2.87 (rt:tests rt:*test-suite*)
2.88@@ -114,14 +126,15 @@
2.89
2.90 #+RESULTS:
2.91 #+begin_example
2.92-(#<RT:TEST MAIN-OUTPUT :fn MAIN-OUTPUT-TEST2479 {103BB3F5C3}>
2.93- #<RT:TEST CLAP-AST :fn CLAP-AST-TEST2478 {103BB3F4E3}>
2.94- #<RT:TEST ENV :fn ENV-TEST2477 {103BB3F403}>
2.95- #<RT:TEST REPL :fn REPL-TEST2476 {103BB3F323}>
2.96- #<RT:TEST SPARK :fn SPARK-TEST2475 {103BB3F243}>
2.97- #<RT:TEST PROGRESS :fn PROGRESS-TEST2474 {103BB3F163}>
2.98- #<RT:TEST CLAP-OPTS :fn CLAP-OPTS-TEST2473 {103BB3F083}>
2.99- #<RT:TEST CLAP-BASIC :fn CLAP-BASIC-TEST2472 {103BB3EF73}>
2.100- #<RT:TEST CLI-PROMPT :fn CLI-PROMPT-TEST2471 {103BB10603}>
2.101- #<RT:TEST ANSI :fn ANSI-TEST2470 {103BAFEF73}>)
2.102+(#<RT:TEST SBCL-TOOLS :fn SBCL-TOOLS-TEST749 {10170B9CF3}>
2.103+ #<RT:TEST MAIN-OUTPUT :fn MAIN-OUTPUT-TEST748 {10170B9C03}>
2.104+ #<RT:TEST CLAP-AST :fn CLAP-AST-TEST747 {10170B9B13}>
2.105+ #<RT:TEST ENV :fn ENV-TEST746 {10170B9A23}>
2.106+ #<RT:TEST REPL :fn REPL-TEST745 {10170B9933}>
2.107+ #<RT:TEST SPARK :fn SPARK-TEST744 {10170B9843}>
2.108+ #<RT:TEST PROGRESS :fn PROGRESS-TEST743 {10170B9753}>
2.109+ #<RT:TEST CLAP-OPTS :fn CLAP-OPTS-TEST742 {10170B9663}>
2.110+ #<RT:TEST CLAP-BASIC :fn CLAP-BASIC-TEST741 {10170B9543}>
2.111+ #<RT:TEST CLI-PROMPT :fn CLI-PROMPT-TEST740 {101709EFF3}>
2.112+ #<RT:TEST ANSI :fn ANSI-TEST739 {101709DE63}>)
2.113 #+end_example
3.1--- a/core/lib/io.org Sat Jul 27 02:45:49 2024 -0400
3.2+++ b/core/lib/io.org Sun Aug 11 10:09:50 2024 -0400
3.3@@ -1,6 +1,6 @@
3.4 #+title: io
3.5 #+author: Richard Westhaver
3.6-#+description:
3.7+#+description: IO Library
3.8 #+setupfile: ../../../clean.theme
3.9
3.10 IO library
4.1--- a/core/lib/rdb.org Sat Jul 27 02:45:49 2024 -0400
4.2+++ b/core/lib/rdb.org Sun Aug 11 10:09:50 2024 -0400
4.3@@ -3,3 +3,13 @@
4.4 #+setupfile: ../../../clean.theme
4.5
4.6 #+call: make-info-tbl() :dir "/home/ellis/comp/" :name "core"
4.7+
4.8+#+RESULTS:
4.9+|---------+----------------------|
4.10+| name | [[https://compiler.company//docs/nil][nil]] |
4.11+| version | 0.1.0 |
4.12+| vc | [[https://vc.compiler.company/comp/nil][nil:nil]] |
4.13+| updated | nil |
4.14+| lines | 402 = λ:361 #:0 _:41 |
4.15+| langs | (Org) |
4.16+|---------+----------------------|
5.1--- a/core/readme.org Sat Jul 27 02:45:49 2024 -0400
5.2+++ b/core/readme.org Sun Aug 11 10:09:50 2024 -0400
5.3@@ -1,13 +1,14 @@
5.4 #+title: docs/core
5.5+#+author: Richard Westhaver
5.6+#+email: richard.westhaver@gmail.com
5.7+#+options: num:nil
5.8 #+EXPORT_FILE_NAME: index
5.9 #+setupfile: ../../clean.theme
5.10-#+OPTIONS: num:nil
5.11-#+INFOJS_OPT: toc:nil view:overview
5.12-#+infojs_opt: toc:nil home:https://compiler.company up:../ view:overview
5.13+
5.14 - [[file:install.org][Install]] :: Install Guide
5.15 - [[file:tests.org][Tests]] :: Testing Guide
5.16 - [[file:stats.org][Stats]] :: Project Statistics
5.17-
5.18+- [[comp:plan/tasks/core.html][Tasks]] :: Project Tasks
5.19 * [[file:api.org][API]]
5.20 API Docs
5.21
6.1--- a/core/stats.org Sat Jul 27 02:45:49 2024 -0400
6.2+++ b/core/stats.org Sun Aug 11 10:09:50 2024 -0400
6.3@@ -16,13 +16,14 @@
6.4 2023-10 36394 ************************************
6.5 2023-11 12777 ************
6.6 2023-12 61624 *************************************************************
6.7-2024-01 4923 ****u
6.8+2024-01 4923 ****
6.9 2024-02 5701 *****
6.10 2024-03 27292 ***************************
6.11 2024-04 23322 ***********************
6.12 2024-05 24141 ***********************
6.13 2024-06 17608 *****************
6.14-2024-07 6390 ******
6.15+2024-07 9757 *********
6.16+2024-08 5655 *****
6.17 #+end_example
6.18
6.19 * files
6.20@@ -38,14 +39,14 @@
6.21 ===============================================================================
6.22 C 2 130 70 21 39
6.23 C Header 18 9990 4990 3555 1445
6.24- Lisp 490 70427 54246 7426 8755
6.25+ Lisp 504 74157 57425 7701 9031
6.26 Makefile 1 6 6 0 0
6.27 -------------------------------------------------------------------------------
6.28 Rust 145 12142 10477 468 1197
6.29 |- Markdown 103 801 0 706 95
6.30 (Total) 12943 10477 1174 1292
6.31 ===============================================================================
6.32- Total 656 92695 69789 11470 11436
6.33+ Total 670 96425 72968 11745 11712
6.34 ===============================================================================
6.35 #+end_example
6.36
6.37@@ -83,12 +84,13 @@
6.38 #+RESULTS:
6.39 - /home/ellis/comp/core/lisp/std/defpkg.lisp
6.40 - /home/ellis/comp/core/lisp/std/pkg.lisp
6.41-- /home/ellis/comp/core/lisp/std/err.lisp
6.42+- /home/ellis/comp/core/lisp/std/condition.lisp
6.43 - /home/ellis/comp/core/lisp/std/sym.lisp
6.44 - /home/ellis/comp/core/lisp/std/list.lisp
6.45 - /home/ellis/comp/core/lisp/std/type.lisp
6.46 - /home/ellis/comp/core/lisp/std/num/float.lisp
6.47 - /home/ellis/comp/core/lisp/std/num/parse.lisp
6.48+- /home/ellis/comp/core/lisp/std/num/leb128.lisp
6.49 - /home/ellis/comp/core/lisp/std/stream.lisp
6.50 - /home/ellis/comp/core/lisp/std/fu/curry.lisp
6.51 - /home/ellis/comp/core/lisp/std/array.lisp
6.52@@ -136,9 +138,9 @@
6.53 - /home/ellis/comp/core/lisp/lib/obj/meta/overloaded.lisp
6.54 - /home/ellis/comp/core/lisp/lib/obj/meta/storable.lisp
6.55 - /home/ellis/comp/core/lisp/lib/obj/hash/hasher.lisp
6.56+- /home/ellis/comp/core/lisp/lib/obj/hash/chash.lisp
6.57 - /home/ellis/comp/core/lisp/lib/obj/hash/map.lisp
6.58 - /home/ellis/comp/core/lisp/lib/obj/hash/set.lisp
6.59-- /home/ellis/comp/core/lisp/lib/obj/hash/chash.lisp
6.60 - /home/ellis/comp/core/lisp/lib/obj/hash/castable.lisp
6.61 - /home/ellis/comp/core/lisp/lib/obj/id.lisp
6.62 - /home/ellis/comp/core/lisp/lib/obj/uri/pkg.lisp
6.63@@ -159,11 +161,12 @@
6.64 - /home/ellis/comp/core/lisp/lib/obj/graph/pkg.lisp
6.65 - /home/ellis/comp/core/lisp/lib/obj/equiv.lisp
6.66 - /home/ellis/comp/core/lisp/lib/obj/color/color.lisp
6.67+- /home/ellis/comp/core/lisp/lib/obj/color/util.lisp
6.68+- /home/ellis/comp/core/lisp/lib/obj/color/x11.lisp
6.69 - /home/ellis/comp/core/lisp/lib/obj/color/palette.lisp
6.70-- /home/ellis/comp/core/lisp/lib/obj/color/util.lisp
6.71-- /home/ellis/comp/core/lisp/lib/obj/color/x11-colors.lisp
6.72 - /home/ellis/comp/core/lisp/lib/obj/music/music.lisp
6.73 - /home/ellis/comp/core/lisp/lib/obj/time/local.lisp
6.74+- /home/ellis/comp/core/lisp/lib/obj/time/util.lisp
6.75 - /home/ellis/comp/core/lisp/lib/obj/uuid.lisp
6.76 - /home/ellis/comp/core/lisp/lib/obj/temperature.lisp
6.77 - /home/ellis/comp/core/lisp/lib/obj/direction.lisp
6.78@@ -183,6 +186,7 @@
6.79 - /home/ellis/comp/core/lisp/lib/net/codec/dns.lisp
6.80 - /home/ellis/comp/core/lisp/lib/net/codec/tlv.lisp
6.81 - /home/ellis/comp/core/lisp/lib/net/codec/osc.lisp
6.82+- /home/ellis/comp/core/lisp/lib/net/proto/crew.lisp
6.83 - /home/ellis/comp/core/lisp/lib/net/proto/swank.lisp
6.84 - /home/ellis/comp/core/lisp/lib/net/proto/http.lisp
6.85 - /home/ellis/comp/core/lisp/lib/net/proto/dns.lisp
6.86@@ -209,6 +213,13 @@
6.87 - /home/ellis/comp/core/lisp/lib/dat/dot.lisp
6.88 - /home/ellis/comp/core/lisp/lib/dat/csv.lisp
6.89 - /home/ellis/comp/core/lisp/lib/dat/json.lisp
6.90+- /home/ellis/comp/core/lisp/lib/dat/parquet/gen.lisp
6.91+- /home/ellis/comp/core/lisp/lib/dat/parquet/pkg.lisp
6.92+- /home/ellis/comp/core/lisp/lib/dat/parquet/obj.lisp
6.93+- /home/ellis/comp/core/lisp/lib/dat/parquet/tcompact.lisp
6.94+- /home/ellis/comp/core/lisp/lib/dat/parquet/io.lisp
6.95+- /home/ellis/comp/core/lisp/lib/dat/parquet/rle.lisp
6.96+- /home/ellis/comp/core/lisp/lib/dat/parquet/proto.lisp
6.97 - /home/ellis/comp/core/lisp/lib/dat/xml/xml.lisp
6.98 - /home/ellis/comp/core/lisp/lib/dat/xml/pkg.lisp
6.99 - /home/ellis/comp/core/lisp/lib/dat/xml/svg.lisp
6.100@@ -230,12 +241,11 @@
6.101 #+end_src
6.102
6.103 #+RESULTS:
6.104-| 361M | .stash/core.core |
6.105-| 20M | .stash/infra.core |
6.106-| 492M | .stash/prelude.core |
6.107-| 359M | .stash/std.core |
6.108-| 480M | .stash/tests.core |
6.109-| 385M | .stash/user.core |
6.110+| 454M | .stash/core.core |
6.111+| 22M | .stash/infra.core |
6.112+| 538M | .stash/prelude.core |
6.113+| 452M | .stash/std.core |
6.114+| 531M | .stash/user.core |
6.115
6.116 * rust
6.117 ** crates
6.118@@ -250,7 +260,7 @@
6.119 └── memmap2 v0.5.10
6.120
6.121 alik v0.1.0 (/home/ellis/comp/core/rust/bin/alik)
6.122-├── clap v4.5.7
6.123+├── clap v4.5.9
6.124 ├── db v0.1.0 (/home/ellis/comp/core/rust/lib/db)
6.125 │ [dev-dependencies]
6.126 ├── krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt)
6.127@@ -258,10 +268,10 @@
6.128 ├── net v0.1.0 (/home/ellis/comp/core/rust/lib/net)
6.129 ├── obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj)
6.130 │ [dev-dependencies]
6.131-├── serde v1.0.203
6.132+├── serde v1.0.204
6.133 ├── tenex v0.1.0 (/home/ellis/comp/core/rust/lib/tenex)
6.134 │ [dev-dependencies]
6.135-├── tokio v1.38.0
6.136+├── tokio v1.38.1
6.137 └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util)
6.138 [build-dependencies]
6.139 └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util)
6.140@@ -270,9 +280,9 @@
6.141 ├── eframe v0.27.2 (https://github.com/emilk/egui?branch=emilk/release-0.27.2#014327e3)
6.142 ├── egui v0.27.2 (https://github.com/emilk/egui?branch=emilk/release-0.27.2#014327e3)
6.143 ├── futures v0.3.30
6.144-├── log v0.4.21
6.145+├── log v0.4.22
6.146 ├── rfd v0.14.1
6.147-└── serde v1.0.203 (*)
6.148+└── serde v1.0.204 (*)
6.149
6.150 audio v0.1.0 (/home/ellis/comp/core/rust/lib/audio)
6.151 ├── cpal v0.13.5
6.152@@ -280,10 +290,10 @@
6.153 └── hound v3.5.1
6.154
6.155 aws v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/aws)
6.156-├── aws-config v1.5.1
6.157-├── aws-sdk-iam v1.30.0
6.158-├── aws-sdk-route53 v1.30.0
6.159-└── tokio v1.38.0 (*)
6.160+├── aws-config v1.5.4
6.161+├── aws-sdk-iam v1.36.0
6.162+├── aws-sdk-route53 v1.36.0
6.163+└── tokio v1.38.1 (*)
6.164
6.165 btrfs-sys v0.1.0 (/home/ellis/comp/core/rust/sys/btrfs)
6.166 [build-dependencies]
6.167@@ -301,7 +311,7 @@
6.168 └── totp-rs v5.5.1
6.169
6.170 dash v0.1.0 (/home/ellis/comp/core/rust/ui/alik/dash)
6.171-└── rerun v0.16.1
6.172+└── rerun v0.17.0
6.173 [build-dependencies]
6.174
6.175 db v0.1.0 (/home/ellis/comp/core/rust/lib/db) (*)
6.176@@ -312,14 +322,14 @@
6.177 ├── env_proxy v0.4.1
6.178 ├── once_cell v1.19.0
6.179 ├── reqwest v0.11.27
6.180-├── thiserror v1.0.61
6.181-└── url v2.5.1
6.182+├── thiserror v1.0.63
6.183+└── url v2.5.2
6.184 [dev-dependencies]
6.185 ├── http-body-util v0.1.2
6.186-├── hyper v1.3.1
6.187-├── hyper-util v0.1.5
6.188+├── hyper v1.4.1
6.189+├── hyper-util v0.1.6
6.190 ├── tempfile v3.10.1
6.191-└── tokio v1.38.0 (*)
6.192+└── tokio v1.38.1 (*)
6.193
6.194 dsp v0.1.0 (/home/ellis/comp/core/rust/lib/audio/dsp) (*)
6.195
6.196@@ -333,10 +343,10 @@
6.197 freesound v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/freesound)
6.198 ├── futures-util v0.3.30
6.199 ├── reqwest v0.11.27 (*)
6.200-├── serde v1.0.203 (*)
6.201-├── serde_json v1.0.117
6.202+├── serde v1.0.204 (*)
6.203+├── serde_json v1.0.120
6.204 ├── tenex-util v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/util)
6.205-└── tokio v1.38.0 (*)
6.206+└── tokio v1.38.1 (*)
6.207
6.208 gitlab v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/gitlab)
6.209 ├── gitlab v0.1611.0
6.210@@ -345,56 +355,56 @@
6.211 hash v0.1.0 (/home/ellis/comp/core/rust/lib/hash) (*)
6.212
6.213 ipapi v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/ipapi)
6.214-├── log v0.4.21 (*)
6.215+├── log v0.4.22 (*)
6.216 ├── reqwest v0.11.27 (*)
6.217-└── serde_json v1.0.117 (*)
6.218+└── serde_json v1.0.120 (*)
6.219
6.220 krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt) (*)
6.221
6.222 logger v0.1.0 (/home/ellis/comp/core/rust/lib/logger) (*)
6.223
6.224 mailman-cli v0.1.0 (/home/ellis/comp/core/rust/bin/mailman)
6.225-├── clap v4.5.7 (*)
6.226+├── clap v4.5.9 (*)
6.227 ├── jmap-client v0.3.2
6.228 ├── krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt) (*)
6.229 ├── logger v0.1.0 (/home/ellis/comp/core/rust/lib/logger) (*)
6.230 ├── obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj) (*)
6.231-├── tokio v1.38.0 (*)
6.232+├── tokio v1.38.1 (*)
6.233 └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util) (*)
6.234
6.235 net v0.1.0 (/home/ellis/comp/core/rust/lib/net) (*)
6.236
6.237 nws v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/nws)
6.238 ├── chrono v0.4.38
6.239-├── log v0.4.21 (*)
6.240+├── log v0.4.22 (*)
6.241 ├── reqwest v0.11.27 (*)
6.242-├── serde v1.0.203 (*)
6.243-└── serde_json v1.0.117 (*)
6.244+├── serde v1.0.204 (*)
6.245+└── serde_json v1.0.120 (*)
6.246
6.247 obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj) (*)
6.248
6.249 sbcl-sys v0.1.0 (/home/ellis/comp/core/rust/sys/sbcl)
6.250 ├── libc v0.2.155
6.251-└── libloading v0.8.3
6.252+└── libloading v0.8.4
6.253
6.254 sxp v0.1.0 (/home/ellis/comp/core/rust/lib/sxp)
6.255 ├── indexmap v2.2.6
6.256 ├── itoa v1.0.11
6.257 ├── ryu v1.0.18
6.258-└── serde v1.0.203 (*)
6.259+└── serde v1.0.204 (*)
6.260 [dev-dependencies]
6.261 ├── rand v0.8.5
6.262-└── serde_derive v1.0.203 (proc-macro)
6.263+└── serde_derive v1.0.204 (proc-macro)
6.264
6.265 tenex v0.1.0 (/home/ellis/comp/core/rust/lib/tenex) (*)
6.266
6.267 tenex-util v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/util) (*)
6.268
6.269 ui v0.1.0 (/home/ellis/comp/core/rust/lib/ui)
6.270-├── serde v1.0.203 (*)
6.271-└── slint v1.6.0
6.272+├── serde v1.0.204 (*)
6.273+└── slint v1.7.0
6.274 [build-dependencies]
6.275-└── slint-build v1.6.0
6.276+└── slint-build v1.7.0
6.277
6.278 util v0.1.0 (/home/ellis/comp/core/rust/lib/util) (*)
6.279
7.1--- a/core/tests.org Sat Jul 27 02:45:49 2024 -0400
7.2+++ b/core/tests.org Sun Aug 11 10:09:50 2024 -0400
7.3@@ -1,7 +1,7 @@
7.4 # -*- org-export-babel-evaluate: nil -*-
7.5 #+title: tests
7.6 #+author: Richard Westhaver
7.7-#+property: header-args :dir /home/ellis/comp/core/
7.8+#+property: header-args :dir /home/ellis/comp/core/ :eval no
7.9 #+setupfile: ../../clean.theme
7.10 #+OPTIONS: num:nil
7.11 #+infojs_opt: toc:nil home:https://compiler.company up:./ view:content
8.1--- a/core/todo.org Sat Jul 27 02:45:49 2024 -0400
8.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
8.3@@ -1,408 +0,0 @@
8.4-#+title: core/todo
8.5-#+author: Richard Westhaver
8.6-#+email: richard.westhaver@gmail.com
8.7-#+setupfile: ../../clean.theme
8.8-#+OPTIONS: num:nil
8.9-#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content
8.10-* DONE migrate to sb-grovel [9/9] :lisp:ffi:
8.11-:LOGBOOK:
8.12-- State "TODO" from [2023-11-27 Mon 23:42]
8.13-- State "DONE" from "TODO" [2024-02-04 Sun 20:30]
8.14-:END:
8.15-:PROPERTIES:
8.16-:ID: bb365025-e5e7-4407-acba-32e30d1a245a
8.17-:END:
8.18-[[file:lisp/ffi/]]
8.19-** DONE blake3
8.20-:LOGBOOK:
8.21-- State "TODO" from [2023-11-29 Wed 19:00]
8.22-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.23-:END:
8.24-:PROPERTIES:
8.25-:ID: 656c2683-8780-407c-b955-3defc4959595
8.26-:END:
8.27-** DONE bqn
8.28-:LOGBOOK:
8.29-- State "TODO" from [2023-11-29 Wed 19:00]
8.30-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.31-:END:
8.32-:PROPERTIES:
8.33-:ID: b4757746-525b-49e4-b8ac-677375867d8f
8.34-:END:
8.35-** DONE btrfs
8.36-:LOGBOOK:
8.37-- State "TODO" from [2023-11-29 Wed 19:00]
8.38-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.39-:END:
8.40-:PROPERTIES:
8.41-:ID: b3b411fe-6b2d-4338-9e23-83536336a487
8.42-:END:
8.43-** DONE k
8.44-:LOGBOOK:
8.45-- State "TODO" from [2023-11-29 Wed 19:00]
8.46-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.47-:END:
8.48-:PROPERTIES:
8.49-:ID: 8a463084-efa0-4535-8239-b1c4955bde4c
8.50-:END:
8.51-** DONE rocksdb
8.52-:LOGBOOK:
8.53-- State "TODO" from [2023-11-29 Wed 19:00]
8.54-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.55-:END:
8.56-:PROPERTIES:
8.57-:ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92
8.58-:END:
8.59-** DONE tree-sitter
8.60-:LOGBOOK:
8.61-- State "TODO" from [2023-11-29 Wed 19:00]
8.62-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.63-:END:
8.64-:PROPERTIES:
8.65-:ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf
8.66-:END:
8.67-** DONE uring
8.68-:LOGBOOK:
8.69-- State "TODO" from [2023-11-29 Wed 19:00]
8.70-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.71-:END:
8.72-:PROPERTIES:
8.73-:ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731
8.74-:END:
8.75-** DONE zstd
8.76-:LOGBOOK:
8.77-- State "TODO" from [2023-11-29 Wed 19:00]
8.78-- State "DONE" from "TODO" [2023-12-09 Sat 01:57]
8.79-:END:
8.80-:PROPERTIES:
8.81-:ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06
8.82-:END:
8.83-** DONE xkb
8.84-:LOGBOOK:
8.85-- State "TODO" from [2023-11-29 Wed 19:27]
8.86-- State "WIP" from "TODO" [2023-12-10 Sun 22:47]
8.87-- State "DONE" from "WIP" [2024-02-04 Sun 20:30]
8.88-:END:
8.89-:PROPERTIES:
8.90-:ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c
8.91-:END:
8.92-* TODO parse 0.1 [0/2] :lisp:lib:
8.93-:LOGBOOK:
8.94-- State "TODO" from "TODO" [2023-12-13 Wed 18:24]
8.95-:END:
8.96-:PROPERTIES:
8.97-:ID: parse
8.98-:ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8
8.99-:END:
8.100-- State "TODO" from [2023-11-29 Wed 19:01]
8.101-- lalr.lisp
8.102-- lex.lisp
8.103-- obj api
8.104-** TODO tests
8.105-:LOGBOOK:
8.106-- State "TODO" from [2023-12-24 Sun 19:28]
8.107-:END:
8.108-add tests for lexer and LALR. figure out if there are any gaps that we
8.109-need to fill.
8.110-** TODO toml impl
8.111-:LOGBOOK:
8.112-- State "TODO" from [2023-12-24 Sun 19:28]
8.113-:END:
8.114-the toml parser on quicklisp is based on esrap, make a comparable one
8.115-using our parser module.
8.116-* TODO organ 0.2 [0/2] :lisp:organ:
8.117-:LOGBOOK:
8.118-- State "TODO" from [2023-11-29 Wed 21:25]
8.119-:END:
8.120-:PROPERTIES:
8.121-:ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4
8.122-:END:
8.123-** TBD organ-export
8.124-:LOGBOOK:
8.125-- State "TBD" from "TODO" [2023-11-29 Wed 21:24]
8.126-:END:
8.127-:PROPERTIES:
8.128-:ID: 189584f5-fc22-4129-bd47-5d494a088684
8.129-:END:
8.130-** TODO org-parse
8.131-:LOGBOOK:
8.132-- State "TODO" from [2023-11-29 Wed 21:26]
8.133-:END:
8.134-:PROPERTIES:
8.135-:DEPENDENCIES: parse
8.136-:HOOKS: organ-export
8.137-:ID: 63774177-9730-4961-8535-414fac7a6f4f
8.138-:END:
8.139-** TBD parse org-elements as sxp :sxp:
8.140-:LOGBOOK:
8.141-- State "TODO" from [2023-09-25 Mon 15:23]
8.142-- State "TBD" from "TODO" [2023-12-13 Wed 18:10]
8.143-:END:
8.144-#+name: oe-init
8.145-#+begin_src emacs-lisp :results silent
8.146- (slime-start)
8.147-#+end_src
8.148-
8.149-#+begin_src lisp :results silent
8.150- (ql:quickload :organ)
8.151-#+end_src
8.152-
8.153-#+name: oe-form
8.154-#+begin_src emacs-lisp :results output replace
8.155- (macroexpand-1 (org-element-parse-buffer))
8.156-#+end_src
8.157-
8.158-#+RESULTS: oe-form
8.159-
8.160-#+name: oe-sxp
8.161-#+begin_src lisp :results output :var in=oe-form()
8.162- (let ((sxp (sxp:make-sxp)))
8.163- ;; SIMPLE-READER-ERROR #\) when using read
8.164- (sxp:wrap-from-string! sxp in)
8.165- (describe sxp))
8.166-#+end_src
8.167-
8.168-#+RESULTS: oe-sxp
8.169-: #<SXP:SXP {1001532593}>
8.170-: [standard-object]
8.171-:
8.172-: Slots with :INSTANCE allocation:
8.173-: AST = NIL
8.174-
8.175-* TODO rdb 0.2 [0/6] :lisp:rdb:
8.176-:LOGBOOK:
8.177-- State "TODO" from "TODO" [2023-12-13 Wed 18:26]
8.178-:END:
8.179-** TODO error handling
8.180-:LOGBOOK:
8.181-- State "TODO" from [2023-12-10 Sun 22:57]
8.182-:END:
8.183-- need to unwrap the pointer (* (* t))
8.184-- cast to string,int,bool
8.185-- wrap segfault handlers
8.186-- add restarts for common errors (bad path)
8.187-- add cleanup routines
8.188-** TODO client api
8.189-:LOGBOOK:
8.190-- State "TODO" from [2023-12-10 Sun 22:59]
8.191-:END:
8.192-- clients are fully dynamic
8.193-- generated from RDB instances
8.194-- compiles in CF/option/multithread/type info
8.195-- clients implement custom Q language
8.196-** TODO sequence/iterator impl
8.197-:LOGBOOK:
8.198-- State "TODO" from [2023-12-10 Sun 23:09]
8.199-:END:
8.200-- use SBCL built-ins to extend the api - wrap the raw FFI iterator
8.201-- define mixins
8.202-** TODO comparator impl
8.203-:LOGBOOK:
8.204-- State "TODO" from [2023-12-10 Sun 23:11]
8.205-:END:
8.206-- supply custom comparators to rocksdb from lisp
8.207-** TODO type system
8.208-:LOGBOOK:
8.209-- State "TODO" from [2023-12-10 Sun 23:12]
8.210-:END:
8.211-- capture types of: kv, cf
8.212-- specs
8.213- - kv-spec = (kv-spec val-spec)
8.214- - must be serialized to/from vec<char>
8.215- - cf-spec
8.216- - used as superclass
8.217- - methods for abstracting CFs
8.218-** TODO set-opt/get-opt
8.219-:LOGBOOK:
8.220-- State "TODO" from [2023-12-16 Sat 00:49]
8.221-:END:
8.222-- need better api
8.223-- may just want to use the generic C fn that takes string as input
8.224-- I feel this may be less efficient but haven't benched it (requires additional arg)
8.225-- separate packages are a pain to query symbols with
8.226-
8.227-* TODO vc 0.1 :vc:
8.228-:LOGBOOK:
8.229-- State "TODO" from [2024-02-29 Thu 16:10]
8.230-:END:
8.231-** TODO git :vc:git:
8.232-:LOGBOOK:
8.233-- State "TODO" from [2023-12-16 Sat 00:55]
8.234-:END:
8.235-** TODO hg :vc:hg:
8.236-:LOGBOOK:
8.237-- State "TODO" from [2023-12-16 Sat 00:56]
8.238-:END:
8.239-
8.240-* TODO skel 0.2 [0/3] :lisp:skel:
8.241-:LOGBOOK:
8.242-- State "TODO" from [2023-12-16 Sat 00:55]
8.243-:END:
8.244-** TODO eval rules from CLI
8.245-:LOGBOOK:
8.246-- State "TODO" from [2023-12-16 Sat 00:56]
8.247-:END:
8.248-- need new command or flag for rules
8.249-- evaluate forms instead of looking in skelfile
8.250-* TODO std 0.2 [1/6] :lisp:std:
8.251-:LOGBOOK:
8.252-- State "TODO" from [2023-12-12 Tue 19:49]
8.253-:END:
8.254-** DONE refactor system definition
8.255-:LOGBOOK:
8.256-- State "TODO" from [2023-12-13 Wed 15:17]
8.257-- State "DONE" from "TODO" [2023-12-13 Wed 19:38]
8.258-:END:
8.259-- remove package-inferred
8.260-- minimize number of systems
8.261-- use pkg.lisp files
8.262-** TODO cleanup fu
8.263-:LOGBOOK:
8.264-- State "TODO" from [2023-12-13 Wed 19:39]
8.265-:END:
8.266-** TODO documentation sweep
8.267-:LOGBOOK:
8.268-- State "TODO" from [2024-02-29 Thu 16:09]
8.269-:END:
8.270-** TODO CLTL2 impl
8.271-:LOGBOOK:
8.272-- State "TODO" from [2024-02-29 Thu 16:09]
8.273-:END:
8.274-** TODO more bits
8.275-:LOGBOOK:
8.276-- State "TODO" from [2024-02-29 Thu 16:09]
8.277-:END:
8.278-** TODO list-package-symbols, etc
8.279-:LOGBOOK:
8.280-- State "TODO" from [2024-02-29 Thu 16:09]
8.281-:END:
8.282-
8.283-* TODO sxp 0.2 [0/1] :lisp:sxp:
8.284-:LOGBOOK:
8.285-- State "TODO" from [2023-12-12 Tue 19:49]
8.286-:END:
8.287-** TODO WRAP-OBJECT :skel:
8.288-:LOGBOOK:
8.289-- State "TODO" from [2023-12-12 Tue 19:49]
8.290-:END:
8.291-- use to replace LOAD-AST for sk-project and friends
8.292-- requires mop
8.293-- take a look at UNWRAP-OBJECT too, may need rewrite for a better API
8.294-* TODO obj 0.1 [1/2] :lisp:obj:
8.295-:LOGBOOK:
8.296-- State "TODO" from [2023-12-17 Sun 00:59]
8.297-:END:
8.298-** NOPE uri
8.299-:LOGBOOK:
8.300-- State "TODO" from [2023-12-17 Sun 01:00]
8.301-- Note taken on [2023-12-20 Wed 18:26] \\
8.302- the franz impl doesn't play well with SBCL, at least with our hacks. I'm not sure how faithfully I want to follow the RFCs anyhow.. maybe we go for the dead simple approach and focus on MOP for a path and URI protocol.
8.303-:END:
8.304-- mostly just need the tests and to finish porting the Franz implementation
8.305-** TODO db
8.306-:LOGBOOK:
8.307-- State "TODO" from [2023-12-20 Wed 18:26]
8.308-:END:
8.309-- ported from XDB2
8.310-* TODO net 0.1 [0/7] :lisp:net:
8.311-:LOGBOOK:
8.312-- State "TODO" from [2023-12-17 Sun 01:00]
8.313-:END:
8.314-** TODO tcp :core:
8.315-:LOGBOOK:
8.316-- State "TODO" from [2023-12-17 Sun 01:01]
8.317-:END:
8.318-** TODO udp :core:
8.319-:LOGBOOK:
8.320-- State "TODO" from [2023-12-17 Sun 01:01]
8.321-:END:
8.322-** TODO crew :proto:
8.323-:LOGBOOK:
8.324-- State "TODO" from [2023-12-17 Sun 01:01]
8.325-:END:
8.326-
8.327-** TODO http :proto:
8.328-:LOGBOOK:
8.329-- State "TODO" from [2023-12-17 Sun 01:01]
8.330-:END:
8.331-** TODO dns :proto:
8.332-:LOGBOOK:
8.333-- State "TODO" from [2023-12-17 Sun 01:01]
8.334-:END:
8.335-
8.336-** TODO tlv :codec:
8.337-:LOGBOOK:
8.338-- State "TODO" from [2023-12-17 Sun 01:01]
8.339-:END:
8.340-
8.341-** TODO osc :codec:
8.342-:LOGBOOK:
8.343-- State "TODO" from [2023-12-17 Sun 01:03]
8.344-:END:
8.345-* TODO pwn 0.1 [0/1] :lisp:pwn:
8.346-:LOGBOOK:
8.347-- State "TODO" from [2023-12-17 Sun 01:04]
8.348-- Note taken on [2024-02-29 Thu 16:11] \\
8.349- Should this be a separate application? Lisp exploit development framework
8.350-:END:
8.351-** TODO diz
8.352-:LOGBOOK:
8.353-- State "TODO" from [2023-12-17 Sun 01:04]
8.354-:END:
8.355-* TODO gui 0.1 [0/2] :lisp:gui:
8.356-:LOGBOOK:
8.357-- State "TODO" from [2023-12-17 Sun 03:40]
8.358-:END:
8.359-** TODO wayland protocol bindings
8.360-:LOGBOOK:
8.361-- State "TODO" from [2023-12-17 Sun 03:40]
8.362-:END:
8.363-** TBD wayland compositor :rust:lisp:
8.364-:LOGBOOK:
8.365-- State "TBD" from "TODO" [2023-11-29 Wed 21:25]
8.366-:END:
8.367-:PROPERTIES:
8.368-:ID: e18a90d7-10bc-44d3-8508-56483d29d385
8.369-:END:
8.370-* TODO rt 0.1 [0/2] :rt:
8.371-:LOGBOOK:
8.372-- State "TODO" from [2024-02-29 Thu 16:06]
8.373-:END:
8.374-** TODO redirect I/O in tests
8.375-:LOGBOOK:
8.376-- State "TODO" from [2024-02-29 Thu 16:06]
8.377-:END:
8.378-prevent tests from printing implicitly. redirect stream locally, cache
8.379-it somehow for review.
8.380-** TODO *test-on-def*
8.381-:LOGBOOK:
8.382-- State "TODO" from [2024-02-29 Thu 17:17]
8.383-:END:
8.384-- simple flag to test when file is defined (part of deftest macro)
8.385-* NOPE dot 0.1 [1/1] :lisp:dot:
8.386-:LOGBOOK:
8.387-- State "TODO" from [2023-12-20 Wed 18:27]
8.388-:END:
8.389-** NOPE PARSE-SPECIALIZER-USING-CLASS
8.390-:LOGBOOK:
8.391-- State "TODO" from [2023-12-20 Wed 18:28]
8.392-:END:
8.393-- experimental SB-MOP generic, may be useful in places where we would
8.394- typically use =(eql OBJECT)= as a specializer for GRAPH.
8.395-
8.396-* TBD homer 0.1 [0/2] :lisp:homer:
8.397-:LOGBOOK:
8.398-- State "TBD" from "TODO" [2023-12-12 Tue 19:53]
8.399-:END:
8.400-** TODO review GNU stow API
8.401-:LOGBOOK:
8.402-- State "TODO" from [2023-12-24 Sun 19:32]
8.403-:END:
8.404-[[https://www.gnu.org/software/stow/][homepage]]
8.405-'symlink farm manager'
8.406-rust impl: https://github.com/qboileau/rstow
8.407-
8.408-** TODO consolidate with skel
8.409-:LOGBOOK:
8.410-- State "TODO" from [2023-12-24 Sun 19:32]
8.411-:END:
9.1--- a/meta/business.org Sat Jul 27 02:45:49 2024 -0400
9.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
9.3@@ -1,17 +0,0 @@
9.4-#+title: business
9.5-#+author: Richard Westhaver
9.6-#+email: ellis@rwest.io
9.7-#+description: The Compiler Company Business Model
9.8-#+setupfile: ../../clean.theme
9.9-In short, this document describes the business aspects of The Compiler
9.10-Company LLC. We are designed to be small, fast, and agile. We
9.11-infiltrate a market, apply our methodology, and develop solutions that
9.12-are simply years ahead of the competition. We treat the market like
9.13-we're the only supplier, because we can. This is in part due to our
9.14-internal research & development pursuits, but also our approach to
9.15-business. We build businesses and revenue streams the exact same way
9.16-we build software -- with a bottom up approach. This is our secret
9.17-weapon, and what gives us the ability to adapt to any environment
9.18-where our interests lie.
9.19-
9.20-#+TOC: headlines 3
10.1--- a/meta/mindset.org Sat Jul 27 02:45:49 2024 -0400
10.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
10.3@@ -1,4 +0,0 @@
10.4-#+title: mindset
10.5-#+author: Richard Westhaver
10.6-#+description: A Reflection on the CC Mindset
10.7-#+setupfile: ../../clean.theme
11.1--- a/meta/pitch.org Sat Jul 27 02:45:49 2024 -0400
11.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
11.3@@ -1,31 +0,0 @@
11.4-#+title: the big picture
11.5-#+author: Richard Westhaver <ellis@rwest.io>
11.6-#+setupfile: ../../clean.theme
11.7-* Get Off of My Cloud
11.8- - industry has moved away from client-side, distributed compute in
11.9- favor of centralized server-side compute resources behind API
11.10- gateways.
11.11- - entire businesses are built on a single Cloud Provider and are
11.12- fundamentally incapable of moving off that Cloud.
11.13- - they /think/ in terms of that Provider. The Provider influences
11.14- all of their decisions.
11.15- - users control very little compute power
11.16- - personal computing hardware (consumer-grade) is limited in capability
11.17- - non-servicable architectures, planned obsolescence, closed firmware
11.18- - mainstream operating systems don't optimize for resource
11.19- efficiency - they maximize for the volume of telemetry data they
11.20- can collect and profit from
11.21-
11.22-* Death of the Programmer
11.23- - The role of the programmer is changing
11.24- - programmers are no longer required to understand how computers
11.25- work to have a successful career
11.26- - Cloud Providers wrap all low-level details in their own
11.27- proprietary vocabulary and APIs
11.28- - To program on the cloud, you need to use the Cloud vocabulary
11.29- and are discouraged from thinking of computers as they actually
11.30- exist in the real world
11.31- - Cloud Providers influence college cirruculums, replacing compute
11.32- and systems theory with courses designed to teach you how to
11.33- configure Cloud Services.
11.34-
12.1--- a/meta/readme.org Sat Jul 27 02:45:49 2024 -0400
12.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
12.3@@ -1,12 +0,0 @@
12.4-#+title: Meta Docs
12.5-#+author: Richard Westhaver
12.6-#+email: ellis@rwest.io
12.7-#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil
12.8-#+EXPORT_FILE_NAME: index
12.9-#+setupfile: ../../clean.theme
12.10-* [[file:ulang.org][ulang]]
12.11-* [[file:style.org][style]]
12.12-* [[file:tech.org][tech]]
12.13-* [[file:business.org][business]]
12.14-* [[file:mindset.org][mindset]]
12.15-* [[file:workflows.org][workflows]]
13.1--- a/meta/style.org Sat Jul 27 02:45:49 2024 -0400
13.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
13.3@@ -1,66 +0,0 @@
13.4-#+title: The Compiler Company Styleguide
13.5-#+author: Richard Westhaver
13.6-#+email: ellis@rwest.io
13.7-#+setupfile: ../../clean.theme
13.8-As an organization we maintain a styleguide[fn:1] which lists all of
13.9-the style guidelines we use for our code. If you are contributing to
13.10-one of our projects, you should review and understand the relevant
13.11-sections below.
13.12-
13.13-You should also review the [[file:ulang.org][ulang]] document, which may shine some light
13.14-on code comments and developer docs.
13.15-
13.16-[fn:1] https://google.github.io/styleguide/
13.17-
13.18-* General Programming
13.19-- indent-offset = 2
13.20-- max-line-width = 80
13.21-- page-length ~ 32
13.22-- module-length ~ 512
13.23-- file-size ~ 1024
13.24-
13.25-- start every source-file with a header comment
13.26-- use outline headings to organize your program
13.27-- use ulang-comments as needed for referencing bugs, notes, etc.
13.28-- inline documentation should be declarative. your code explains your
13.29- comments for you.
13.30-- variables, imports, and exports belong at the top of a file
13.31-- =main= functions belong at the bottom of a file
13.32-- use LSP wherever possible (eglot, slime)
13.33-* Common Lisp
13.34-- prefer symbol docs to comments
13.35-- use stdin/stdout/stderr correctly - see [[https://zenodo.org/records/3414191][CDR-11]]
13.36-- always prefer =core= libraries over vendored dependencies
13.37-- use the compiler built-ins - if a function or class is generally
13.38- useful, add it to the core
13.39-- use conditions, restarts, and error handling where appropriate
13.40-- save type declarations and hairy optimizations for when the API is
13.41- polished
13.42-- don't be afraid of macros
13.43-** Systems
13.44-- define systems using keyword symbols
13.45-- use slash instead of dash for path separation in system names: =:foo/bar=
13.46-- define your test system in the same file with a name of: =:foo/tests=
13.47-- where possible, avoid collisions with systems in Quicklisp
13.48-** Packages
13.49-- declare packages in a file named =pkg.lisp=
13.50-- when multiple packages are being declared, consider a wrapper
13.51- package
13.52- - declare with ~UIOP:DEFINE-PACKAGE~ and ~:USE-REEXPORT~
13.53-- package names are either the same as their system name or have the
13.54- system name as their root path.
13.55-- use ~:NICKNAMES~ to declare alternative names for your package
13.56-** CLOS
13.57-- prefer =:default-initargs= over =:initform=.
13.58-* Rust
13.59-- always prefer =core= libraries to vendored dependencies
13.60-- don't make =mod.rs= files
13.61- - use the =foo.rs=, =foo/*= pattern instead
13.62-- derive =Debug= and =Clone= always
13.63-- write a sensible =Display= impl
13.64-- derive default methods for =Default=, =Hash=, =Copy=, etc where possible
13.65-- use generics where appropriate: =foo<P:AsRef<Path>>(path:P){p.as_ref();}=
13.66-* Emacs Lisp
13.67-* Org-mode
13.68-* Shell
13.69-* Python
14.1--- a/meta/tech.org Sat Jul 27 02:45:49 2024 -0400
14.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
14.3@@ -1,66 +0,0 @@
14.4-#+title: tech
14.5-#+author: Richard Westhaver
14.6-#+email: ellis@rwest.io
14.7-#+description: The Compiler Company Core Technologies
14.8-#+setupfile: ../../clean.theme
14.9-
14.10-* OS
14.11-We primarily support [[https://unix.org][Unix-based]] Operating Systems. Check
14.12-project-specific docs for officially supported targets.
14.13-
14.14-Development and CI is ran on [[https://archlinux.org/][Arch Linux]] (btw).
14.15-* Core
14.16-** [[https://lisp-lang.org/][Lisp]]
14.17-** [[https://www.rust-lang.org/][Rust]]
14.18-** [[https://www.gnu.org/software/emacs/][Emacs]]
14.19-* Libs
14.20-** [[https://rocksdb.org/][rocksdb]]
14.21-** [[https://archlinux.org/pacman/][pacman]]
14.22-** [[https://docs.kernel.org/filesystems/btrfs.html][btrfs]]
14.23-** [[https://tree-sitter.github.io/tree-sitter/][tree-sitter]]
14.24-** [[https://kernel.dk/io_uring.pdf][uring]]
14.25-** [[https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf][blake3]]
14.26-* Extras
14.27-** [[https://ngn.codeberg.page/k][k]]
14.28-** [[https://mlochbaum.github.io/BQN/][BQN]]
14.29-
14.30-* Our Software
14.31-The software provided by /The Compiler Company/ is a powerful but
14.32-opinionated programming environment. It consists of a GNU/Linux
14.33-kernel, some vendored programs and libraries, and a suite of custom
14.34-software.
14.35-
14.36-The software is modular by design. You can pick and choose which
14.37-components to embed in your own projects and you are encouraged to
14.38-modify any part of the system to meet your goals.
14.39-
14.40-In general, our software is designed for:
14.41-- early adoption :: integrate research, protocols, libraries, and
14.42- hardware features from leading research orgs faster than anyone else
14.43-- rapid development :: interaction, code introspection, tooling, and
14.44- automation built for prototyping at massive scale
14.45-- power :: using our environment should feel like cheating - macros,
14.46- DSLs, and unmatched hackability
14.47-
14.48-** Langs
14.49-/The Compiler Company/ is above all, a =Lisp Company=. The most
14.50-powerful software requires the most powerful code.
14.51-
14.52-Lisp isn't enough though. =Rust= is our imperative language of choice
14.53-at the time of writing and generally suited for system-level software
14.54-components.
14.55-
14.56-We make use of the Steel Bank Common Lisp compiler (SBCL) and the
14.57-nightly Rust compiler toolchain.
14.58-
14.59-** OS
14.60-/The Compiler Company/ is a =Linux Company=. There may be minimal
14.61-support for Darwin-based systems, but Microsoft Windows systems will
14.62-never be officially supported.
14.63-
14.64-One of the /anti-goals/ of our software is ~portability~. For all of
14.65-the features we optimize for, portability becomes a burden, especially
14.66-with closed-source OS kernels. We are also explicitly driven to reduce
14.67-consumer dependence on these closed-source systems, especially in a
14.68-distributed network. They are simply unfit for use with the software
14.69-we produce and the systems we build.
15.1--- a/meta/ulang.org Sat Jul 27 02:45:49 2024 -0400
15.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
15.3@@ -1,163 +0,0 @@
15.4-#+title: Universal Languages
15.5-#+author: Richard Westhaver
15.6-#+email: ellis@rwest.io
15.7-#+OPTIONS: toc:t
15.8-#+setupfile: ../../clean.theme
15.9-
15.10-This document describes a *U-Language* as described by the late great
15.11-[[https://iep.utm.edu/haskell-brooks-curry/][Haskell Curry]]:
15.12-
15.13-#+begin_quote
15.14-Every investigation, including the present one, has to be communicated
15.15-from one person to another by means of language. It is expedient to
15.16-begin our study by calling attention to this obvious fact, by giving a
15.17-name to the language being used, and by being explicit about a few of
15.18-its features. We shall call the language being used the
15.19-U-Language. [...] There would be no point in calling attention to it,
15.20-if it were not for the fact that language is more intimately related
15.21-to our job than of most others.
15.22-#+end_quote
15.23-
15.24-In this document, we will be calling attention to our own language -
15.25-examining it, and describing how it works.
15.26-
15.27-Our job is to solve problems. Hard problems preferred. So we ought to
15.28-pay close attention to the language we use because it brings the
15.29-reader and writer /closer/ to the problem at hand.
15.30-
15.31-For starters, we are primarily concerned with /written languages/ like
15.32-the one you're reading now. We will skip past the obvious details -
15.33-English is our primary form of communication for example. The line you
15.34-are reading currently is a sentence which is part of a paragraph.
15.35-
15.36-There are some non-obvious questions which deserve inquiry though.
15.37-
15.38-- *Who is this for?* \\
15.39- This document is for authors and readers alike. It is a loose
15.40- specification, but also serves as introductory material into our
15.41- communication and design philosophy.
15.42-
15.43-- *What is this for?* \\
15.44- The purpose of this document is to provide a /standard of
15.45- communication/.
15.46-
15.47- All sources we write attempt to conform to this standard but this is
15.48- not strictly enforced. If there is a reason to not comply with a
15.49- rule, it is already broken.
15.50-
15.51-* Org Mode
15.52-:PROPERTIES:
15.53-:ID: 98a02bb2-3f39-49c6-898a-68ccd8f3cbe1
15.54-:END:
15.55-[[https://www.gnu.org/software/emacs/][GNU Emacs]] is our text editor, so naturally [[https://orgmode.org/][Org Mode]] is our word
15.56-processor.
15.57-
15.58-If you are already familiar with Emacs and Org-Mode, I recommend
15.59-opening the source of this document in Emacs and following along.
15.60-
15.61-If not, I recommend browsing through the [[https://orgmode.org/worg/][Worg resources]], but we won't
15.62-be getting too deep into tribal hacker knowledge of Emacs.
15.63-
15.64-What's important to know is this: There is /Org Syntax/ and
15.65-/Org-mode/ - these are different things.
15.66-
15.67-Our =ulang= is almost /exclusively/ based on /Org Syntax/ and we are
15.68-not concerned about /Org-mode/ the application in this document.
15.69-
15.70-* ulang
15.71-:PROPERTIES:
15.72-:ID: ulang
15.73-:END:
15.74-As the title suggest we refer to our *U-Language* as *ulang*. Each
15.75-section of this document describes a feature.
15.76-** Outlines
15.77-In Org, headings can be summarize as any line starting with a star: =*
15.78-H1=. Headings can be nested or 'demoted' by prepending another star:
15.79-=** H2=.
15.80-
15.81-This is a useful pattern which we apply outside of Org - most commonly
15.82-in our code comments.
15.83-
15.84-In our source code, we use the comment character instead of a star:
15.85-#+begin_src lisp
15.86-;;; foo
15.87-(print "H1") ;; just an inline comment
15.88-;;;; bar
15.89-(print "H2")
15.90-;;; baz
15.91-(print "H1")
15.92-#+end_src
15.93-
15.94-A collection of /headings/ is what we call an *Outline* - which is
15.95-also the name of the major-mode utilized for this feature and of
15.96-course - what Org itself is derived from.
15.97-
15.98-** Keywords
15.99-:PROPERTIES:
15.100-:ID: 2cadda9a-22a3-4b42-ad4e-d7a774f74cba
15.101-:END:
15.102-
15.103-The following keywords indicate the state of an element. They often
15.104-appear as the first word in a heading to indicate a [[*Tasks][Task]].
15.105-
15.106-- TBD :: A task to be done at a later date.
15.107-- TODO :: A task yet to be done.
15.108-- FIXME :: Item that needs fixing.
15.109-- WIP :: Work In Progress task.
15.110-- WAIT :: A suspended task.
15.111-- DEAD :: Item that will not be completed.
15.112-- DONE :: Completed task.
15.113-- BUG :: Designate a bug item.
15.114-- IDEA :: Designate an idea item.
15.115-- NOTE :: Designates a note item.
15.116-- DRAFT :: Designates a draft item.
15.117-- COMMENT :: A 'commented' item.
15.118-** Tasks
15.119-Tasks as they are known in Org, usually consist of a heading that
15.120-starts with a [[#2cadda9a-22a3-4b42-ad4e-d7a774f74cba][Keyword]]. Here we describe some additional sections and
15.121-metadata which are present in our collection of tasks.
15.122-
15.123-Our task management system is roughly a hybrid of two more
15.124-conventional methods: GTD and Agile. For convenience I will describe
15.125-these styles and how I use them separately, but the concepts may be
15.126-spliced differently in real tasks.
15.127-
15.128-- *GTD* \\
15.129-- *Agile* \\
15.130- It's a dirty word in some tech circles - the dreaded PIs, daily
15.131- standups, and still nobody knows what's going on, Oh my! Do not
15.132- worry. For the most part we just borrow the vocabulary.
15.133-
15.134- Our /Agile/ workflow consists of roadmaps, features (epics/ARTs),
15.135- issues (user stories), and of course, tasks.
15.136-** IDs
15.137-We reference two different types of identifiers in documentation:
15.138-- UUID :: ID property
15.139-- User-defined :: CUSTOM_ID property
15.140-
15.141-Most of the time these Ids don't add any information for the reader -
15.142-the UUIDs are used to index and graph documents, CUSTOM_IDs are for
15.143-convenience but are rarely necessary given the many ways of
15.144-identifying a headline.
15.145-** Macros
15.146-:PROPERTIES:
15.147-:ID: cdb4976b-1d0d-49df-bfb1-3dbd5d99590e
15.148-:END:
15.149-Several *global* [[https://orgmode.org/manual/Macro-Replacement.html][Org Macros]] are used throughout our documents. They are listed
15.150-here for convenience.
15.151-
15.152-#+name: ulang-macros
15.153-#+begin_src emacs-lisp :exports both :results replace pp
15.154- org-export-global-macros
15.155-#+end_src
15.156-
15.157-#+RESULTS: ulang-macros
15.158-: (("header" .
15.159-: "#+TITLE: $1\n#+AUTHOR: $2\n#+EMAIL: $3\n#+DESCRIPTION: $4\n#+SUBTITLE: $4\n#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil\n#+HTML_HEAD: <link rel=\"stylesheet\" href=\"https://fonts.xz.style/serve/inter.css\"/>\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.compiler.company/css/new.min.css\"/>\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.compiler.company/css/night.css\"/>\n")
15.160-: ("opts" . "#+OPTIONS: $1\n"))
15.161-
15.162-Macros /are not expanded/ in source files - you will see them in the
15.163-form ={{{NAME(ARGS)}}}=. You will need the relevant macro definition
15.164-(in =ulang.el=) in order to use some Org-Mode functions (org-export)
15.165-with our docs.
15.166-
16.1--- a/meta/workflows.org Sat Jul 27 02:45:49 2024 -0400
16.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
16.3@@ -1,17 +0,0 @@
16.4-#+title: meta/workflows
16.5-#+author: Richard Westhaver
16.6-#+email: ellis@rwest.io
16.7-#+description: Meta Workflows
16.8-#+setupfile: ../../clean.theme
16.9-
16.10-* Task Management
16.11-
16.12-* Project Management
16.13-
16.14-* Roadmap
16.15-
16.16-* Source Code Management
16.17-
16.18-* Data Management
16.19-
16.20-* Resource Management