# HG changeset patch # User Richard Westhaver # Date 1723385390 14400 # Node ID 6303e1f79470f8ec92bcf53a37939e8e7842d196 # Parent 6b8a06dfe3c3b8e254d641c5660e91f1541c4f38 refactor meta diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/bin/skel.org --- a/core/bin/skel.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/bin/skel.org Sun Aug 11 10:09:50 2024 -0400 @@ -28,7 +28,8 @@ #+RESULTS: #+begin_example ;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*- -:name "Richard Westhaver " +:name "Richard Westhaver" +:email "richard.westhaver@gmail.com" :user "ellis" :version "0.1.0" :tags ("auto") @@ -39,13 +40,9 @@ :log-level :info :stash ".stash" ;; :scratch ".stash/scratch" -:cache ".cache" +:cache ".stash/cache" :registry ".data/skel/registry" :scripts ("/usr/local/share/stash/scripts" "~/stash/scripts") -:alias-list -(("p" "vc push") - ("P" "vc pull") - ("ci" "vc commit")) #+end_example ** projects diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/lib/cli.org --- a/core/lib/cli.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/lib/cli.org Sun Aug 11 10:09:50 2024 -0400 @@ -23,6 +23,7 @@ #+RESULTS: - std - log +- dat ** dependents #+begin_src lisp :results list @@ -32,14 +33,13 @@ #+end_src #+RESULTS: -- prelude +- user +- packy - pod -- packy - vc - skel -- obj +- prelude - cli/tests -- user ** files #+begin_src lisp :output replace :results list @@ -58,8 +58,14 @@ - shell.lisp - prompt.lisp - ed.lisp +- tools/pkg.lisp +- tools/term.lisp - tools/tmux.lisp - tools/pacman.lisp +- tools/cc.lisp +- tools/systemd.lisp +- tools/cargo.lisp +- tools/sbcl.lisp - clap/pkg.lisp - clap/ast.lisp - clap/vars.lisp @@ -78,17 +84,23 @@ #+end_src #+RESULTS: +- CLI/TOOLS/SBCL - CLI/CLAP/OBJ - CLI/CLAP/SIMPLE - CLI/SHELL +- CLI/TOOLS/TERM - CLI/ANSI - CLI/CLAP/PROTO - CLI/CLAP/AST - CLI/ED +- CLI/TOOLS/PACMAN +- CLI/TOOLS/CARGO +- CLI/CLAP - CLI -- CLI/CLAP +- CLI/TOOLS/CC - CLI/CLAP/VARS - CLI/TESTS +- CLI/TOOLS/TMUX - CLI/REPL - CLI/CLAP/UTIL - CLI/ENV @@ -96,8 +108,8 @@ - CLI/PROMPT - CLI-USER - CLI/SPARK -- CLI/TMUX - CLI/CLAP/MACS +- CLI/TOOLS/SYSTEMD ** tests #+begin_src lisp :output replace @@ -106,7 +118,7 @@ #+end_src #+RESULTS: -: # +: # #+begin_src lisp :output replace (rt:tests rt:*test-suite*) @@ -114,14 +126,15 @@ #+RESULTS: #+begin_example -(# - # - # - # - # - # - # - # - # - #) +(# + # + # + # + # + # + # + # + # + # + #) #+end_example diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/lib/io.org --- a/core/lib/io.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/lib/io.org Sun Aug 11 10:09:50 2024 -0400 @@ -1,6 +1,6 @@ #+title: io #+author: Richard Westhaver -#+description: +#+description: IO Library #+setupfile: ../../../clean.theme IO library diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/lib/rdb.org --- a/core/lib/rdb.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/lib/rdb.org Sun Aug 11 10:09:50 2024 -0400 @@ -3,3 +3,13 @@ #+setupfile: ../../../clean.theme #+call: make-info-tbl() :dir "/home/ellis/comp/" :name "core" + +#+RESULTS: +|---------+----------------------| +| name | [[https://compiler.company//docs/nil][nil]] | +| version | 0.1.0 | +| vc | [[https://vc.compiler.company/comp/nil][nil:nil]] | +| updated | nil | +| lines | 402 = λ:361 #:0 _:41 | +| langs | (Org) | +|---------+----------------------| diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/readme.org --- a/core/readme.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/readme.org Sun Aug 11 10:09:50 2024 -0400 @@ -1,13 +1,14 @@ #+title: docs/core +#+author: Richard Westhaver +#+email: richard.westhaver@gmail.com +#+options: num:nil #+EXPORT_FILE_NAME: index #+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:overview -#+infojs_opt: toc:nil home:https://compiler.company up:../ view:overview + - [[file:install.org][Install]] :: Install Guide - [[file:tests.org][Tests]] :: Testing Guide - [[file:stats.org][Stats]] :: Project Statistics - +- [[comp:plan/tasks/core.html][Tasks]] :: Project Tasks * [[file:api.org][API]] API Docs diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/stats.org --- a/core/stats.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/stats.org Sun Aug 11 10:09:50 2024 -0400 @@ -16,13 +16,14 @@ 2023-10 36394 ************************************ 2023-11 12777 ************ 2023-12 61624 ************************************************************* -2024-01 4923 ****u +2024-01 4923 **** 2024-02 5701 ***** 2024-03 27292 *************************** 2024-04 23322 *********************** 2024-05 24141 *********************** 2024-06 17608 ***************** -2024-07 6390 ****** +2024-07 9757 ********* +2024-08 5655 ***** #+end_example * files @@ -38,14 +39,14 @@ =============================================================================== C 2 130 70 21 39 C Header 18 9990 4990 3555 1445 - Lisp 490 70427 54246 7426 8755 + Lisp 504 74157 57425 7701 9031 Makefile 1 6 6 0 0 ------------------------------------------------------------------------------- Rust 145 12142 10477 468 1197 |- Markdown 103 801 0 706 95 (Total) 12943 10477 1174 1292 =============================================================================== - Total 656 92695 69789 11470 11436 + Total 670 96425 72968 11745 11712 =============================================================================== #+end_example @@ -83,12 +84,13 @@ #+RESULTS: - /home/ellis/comp/core/lisp/std/defpkg.lisp - /home/ellis/comp/core/lisp/std/pkg.lisp -- /home/ellis/comp/core/lisp/std/err.lisp +- /home/ellis/comp/core/lisp/std/condition.lisp - /home/ellis/comp/core/lisp/std/sym.lisp - /home/ellis/comp/core/lisp/std/list.lisp - /home/ellis/comp/core/lisp/std/type.lisp - /home/ellis/comp/core/lisp/std/num/float.lisp - /home/ellis/comp/core/lisp/std/num/parse.lisp +- /home/ellis/comp/core/lisp/std/num/leb128.lisp - /home/ellis/comp/core/lisp/std/stream.lisp - /home/ellis/comp/core/lisp/std/fu/curry.lisp - /home/ellis/comp/core/lisp/std/array.lisp @@ -136,9 +138,9 @@ - /home/ellis/comp/core/lisp/lib/obj/meta/overloaded.lisp - /home/ellis/comp/core/lisp/lib/obj/meta/storable.lisp - /home/ellis/comp/core/lisp/lib/obj/hash/hasher.lisp +- /home/ellis/comp/core/lisp/lib/obj/hash/chash.lisp - /home/ellis/comp/core/lisp/lib/obj/hash/map.lisp - /home/ellis/comp/core/lisp/lib/obj/hash/set.lisp -- /home/ellis/comp/core/lisp/lib/obj/hash/chash.lisp - /home/ellis/comp/core/lisp/lib/obj/hash/castable.lisp - /home/ellis/comp/core/lisp/lib/obj/id.lisp - /home/ellis/comp/core/lisp/lib/obj/uri/pkg.lisp @@ -159,11 +161,12 @@ - /home/ellis/comp/core/lisp/lib/obj/graph/pkg.lisp - /home/ellis/comp/core/lisp/lib/obj/equiv.lisp - /home/ellis/comp/core/lisp/lib/obj/color/color.lisp +- /home/ellis/comp/core/lisp/lib/obj/color/util.lisp +- /home/ellis/comp/core/lisp/lib/obj/color/x11.lisp - /home/ellis/comp/core/lisp/lib/obj/color/palette.lisp -- /home/ellis/comp/core/lisp/lib/obj/color/util.lisp -- /home/ellis/comp/core/lisp/lib/obj/color/x11-colors.lisp - /home/ellis/comp/core/lisp/lib/obj/music/music.lisp - /home/ellis/comp/core/lisp/lib/obj/time/local.lisp +- /home/ellis/comp/core/lisp/lib/obj/time/util.lisp - /home/ellis/comp/core/lisp/lib/obj/uuid.lisp - /home/ellis/comp/core/lisp/lib/obj/temperature.lisp - /home/ellis/comp/core/lisp/lib/obj/direction.lisp @@ -183,6 +186,7 @@ - /home/ellis/comp/core/lisp/lib/net/codec/dns.lisp - /home/ellis/comp/core/lisp/lib/net/codec/tlv.lisp - /home/ellis/comp/core/lisp/lib/net/codec/osc.lisp +- /home/ellis/comp/core/lisp/lib/net/proto/crew.lisp - /home/ellis/comp/core/lisp/lib/net/proto/swank.lisp - /home/ellis/comp/core/lisp/lib/net/proto/http.lisp - /home/ellis/comp/core/lisp/lib/net/proto/dns.lisp @@ -209,6 +213,13 @@ - /home/ellis/comp/core/lisp/lib/dat/dot.lisp - /home/ellis/comp/core/lisp/lib/dat/csv.lisp - /home/ellis/comp/core/lisp/lib/dat/json.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/gen.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/pkg.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/obj.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/tcompact.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/io.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/rle.lisp +- /home/ellis/comp/core/lisp/lib/dat/parquet/proto.lisp - /home/ellis/comp/core/lisp/lib/dat/xml/xml.lisp - /home/ellis/comp/core/lisp/lib/dat/xml/pkg.lisp - /home/ellis/comp/core/lisp/lib/dat/xml/svg.lisp @@ -230,12 +241,11 @@ #+end_src #+RESULTS: -| 361M | .stash/core.core | -| 20M | .stash/infra.core | -| 492M | .stash/prelude.core | -| 359M | .stash/std.core | -| 480M | .stash/tests.core | -| 385M | .stash/user.core | +| 454M | .stash/core.core | +| 22M | .stash/infra.core | +| 538M | .stash/prelude.core | +| 452M | .stash/std.core | +| 531M | .stash/user.core | * rust ** crates @@ -250,7 +260,7 @@ └── memmap2 v0.5.10 alik v0.1.0 (/home/ellis/comp/core/rust/bin/alik) -├── clap v4.5.7 +├── clap v4.5.9 ├── db v0.1.0 (/home/ellis/comp/core/rust/lib/db) │ [dev-dependencies] ├── krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt) @@ -258,10 +268,10 @@ ├── net v0.1.0 (/home/ellis/comp/core/rust/lib/net) ├── obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj) │ [dev-dependencies] -├── serde v1.0.203 +├── serde v1.0.204 ├── tenex v0.1.0 (/home/ellis/comp/core/rust/lib/tenex) │ [dev-dependencies] -├── tokio v1.38.0 +├── tokio v1.38.1 └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util) [build-dependencies] └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util) @@ -270,9 +280,9 @@ ├── eframe v0.27.2 (https://github.com/emilk/egui?branch=emilk/release-0.27.2#014327e3) ├── egui v0.27.2 (https://github.com/emilk/egui?branch=emilk/release-0.27.2#014327e3) ├── futures v0.3.30 -├── log v0.4.21 +├── log v0.4.22 ├── rfd v0.14.1 -└── serde v1.0.203 (*) +└── serde v1.0.204 (*) audio v0.1.0 (/home/ellis/comp/core/rust/lib/audio) ├── cpal v0.13.5 @@ -280,10 +290,10 @@ └── hound v3.5.1 aws v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/aws) -├── aws-config v1.5.1 -├── aws-sdk-iam v1.30.0 -├── aws-sdk-route53 v1.30.0 -└── tokio v1.38.0 (*) +├── aws-config v1.5.4 +├── aws-sdk-iam v1.36.0 +├── aws-sdk-route53 v1.36.0 +└── tokio v1.38.1 (*) btrfs-sys v0.1.0 (/home/ellis/comp/core/rust/sys/btrfs) [build-dependencies] @@ -301,7 +311,7 @@ └── totp-rs v5.5.1 dash v0.1.0 (/home/ellis/comp/core/rust/ui/alik/dash) -└── rerun v0.16.1 +└── rerun v0.17.0 [build-dependencies] db v0.1.0 (/home/ellis/comp/core/rust/lib/db) (*) @@ -312,14 +322,14 @@ ├── env_proxy v0.4.1 ├── once_cell v1.19.0 ├── reqwest v0.11.27 -├── thiserror v1.0.61 -└── url v2.5.1 +├── thiserror v1.0.63 +└── url v2.5.2 [dev-dependencies] ├── http-body-util v0.1.2 -├── hyper v1.3.1 -├── hyper-util v0.1.5 +├── hyper v1.4.1 +├── hyper-util v0.1.6 ├── tempfile v3.10.1 -└── tokio v1.38.0 (*) +└── tokio v1.38.1 (*) dsp v0.1.0 (/home/ellis/comp/core/rust/lib/audio/dsp) (*) @@ -333,10 +343,10 @@ freesound v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/freesound) ├── futures-util v0.3.30 ├── reqwest v0.11.27 (*) -├── serde v1.0.203 (*) -├── serde_json v1.0.117 +├── serde v1.0.204 (*) +├── serde_json v1.0.120 ├── tenex-util v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/util) -└── tokio v1.38.0 (*) +└── tokio v1.38.1 (*) gitlab v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/gitlab) ├── gitlab v0.1611.0 @@ -345,56 +355,56 @@ hash v0.1.0 (/home/ellis/comp/core/rust/lib/hash) (*) ipapi v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/ipapi) -├── log v0.4.21 (*) +├── log v0.4.22 (*) ├── reqwest v0.11.27 (*) -└── serde_json v1.0.117 (*) +└── serde_json v1.0.120 (*) krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt) (*) logger v0.1.0 (/home/ellis/comp/core/rust/lib/logger) (*) mailman-cli v0.1.0 (/home/ellis/comp/core/rust/bin/mailman) -├── clap v4.5.7 (*) +├── clap v4.5.9 (*) ├── jmap-client v0.3.2 ├── krypt v0.1.0 (/home/ellis/comp/core/rust/lib/krypt) (*) ├── logger v0.1.0 (/home/ellis/comp/core/rust/lib/logger) (*) ├── obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj) (*) -├── tokio v1.38.0 (*) +├── tokio v1.38.1 (*) └── util v0.1.0 (/home/ellis/comp/core/rust/lib/util) (*) net v0.1.0 (/home/ellis/comp/core/rust/lib/net) (*) nws v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/models/nws) ├── chrono v0.4.38 -├── log v0.4.21 (*) +├── log v0.4.22 (*) ├── reqwest v0.11.27 (*) -├── serde v1.0.203 (*) -└── serde_json v1.0.117 (*) +├── serde v1.0.204 (*) +└── serde_json v1.0.120 (*) obj v0.1.0 (/home/ellis/comp/core/rust/lib/obj) (*) sbcl-sys v0.1.0 (/home/ellis/comp/core/rust/sys/sbcl) ├── libc v0.2.155 -└── libloading v0.8.3 +└── libloading v0.8.4 sxp v0.1.0 (/home/ellis/comp/core/rust/lib/sxp) ├── indexmap v2.2.6 ├── itoa v1.0.11 ├── ryu v1.0.18 -└── serde v1.0.203 (*) +└── serde v1.0.204 (*) [dev-dependencies] ├── rand v0.8.5 -└── serde_derive v1.0.203 (proc-macro) +└── serde_derive v1.0.204 (proc-macro) tenex v0.1.0 (/home/ellis/comp/core/rust/lib/tenex) (*) tenex-util v0.1.0 (/home/ellis/comp/core/rust/lib/tenex/util) (*) ui v0.1.0 (/home/ellis/comp/core/rust/lib/ui) -├── serde v1.0.203 (*) -└── slint v1.6.0 +├── serde v1.0.204 (*) +└── slint v1.7.0 [build-dependencies] -└── slint-build v1.6.0 +└── slint-build v1.7.0 util v0.1.0 (/home/ellis/comp/core/rust/lib/util) (*) diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/tests.org --- a/core/tests.org Sat Jul 27 02:45:49 2024 -0400 +++ b/core/tests.org Sun Aug 11 10:09:50 2024 -0400 @@ -1,7 +1,7 @@ # -*- org-export-babel-evaluate: nil -*- #+title: tests #+author: Richard Westhaver -#+property: header-args :dir /home/ellis/comp/core/ +#+property: header-args :dir /home/ellis/comp/core/ :eval no #+setupfile: ../../clean.theme #+OPTIONS: num:nil #+infojs_opt: toc:nil home:https://compiler.company up:./ view:content diff -r 6b8a06dfe3c3 -r 6303e1f79470 core/todo.org --- a/core/todo.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,408 +0,0 @@ -#+title: core/todo -#+author: Richard Westhaver -#+email: richard.westhaver@gmail.com -#+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content -* DONE migrate to sb-grovel [9/9] :lisp:ffi: -:LOGBOOK: -- State "TODO" from [2023-11-27 Mon 23:42] -- State "DONE" from "TODO" [2024-02-04 Sun 20:30] -:END: -:PROPERTIES: -:ID: bb365025-e5e7-4407-acba-32e30d1a245a -:END: -[[file:lisp/ffi/]] -** DONE blake3 -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 656c2683-8780-407c-b955-3defc4959595 -:END: -** DONE bqn -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: b4757746-525b-49e4-b8ac-677375867d8f -:END: -** DONE btrfs -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: b3b411fe-6b2d-4338-9e23-83536336a487 -:END: -** DONE k -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 8a463084-efa0-4535-8239-b1c4955bde4c -:END: -** DONE rocksdb -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92 -:END: -** DONE tree-sitter -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf -:END: -** DONE uring -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731 -:END: -** DONE zstd -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:00] -- State "DONE" from "TODO" [2023-12-09 Sat 01:57] -:END: -:PROPERTIES: -:ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06 -:END: -** DONE xkb -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 19:27] -- State "WIP" from "TODO" [2023-12-10 Sun 22:47] -- State "DONE" from "WIP" [2024-02-04 Sun 20:30] -:END: -:PROPERTIES: -:ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c -:END: -* TODO parse 0.1 [0/2] :lisp:lib: -:LOGBOOK: -- State "TODO" from "TODO" [2023-12-13 Wed 18:24] -:END: -:PROPERTIES: -:ID: parse -:ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8 -:END: -- State "TODO" from [2023-11-29 Wed 19:01] -- lalr.lisp -- lex.lisp -- obj api -** TODO tests -:LOGBOOK: -- State "TODO" from [2023-12-24 Sun 19:28] -:END: -add tests for lexer and LALR. figure out if there are any gaps that we -need to fill. -** TODO toml impl -:LOGBOOK: -- State "TODO" from [2023-12-24 Sun 19:28] -:END: -the toml parser on quicklisp is based on esrap, make a comparable one -using our parser module. -* TODO organ 0.2 [0/2] :lisp:organ: -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 21:25] -:END: -:PROPERTIES: -:ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4 -:END: -** TBD organ-export -:LOGBOOK: -- State "TBD" from "TODO" [2023-11-29 Wed 21:24] -:END: -:PROPERTIES: -:ID: 189584f5-fc22-4129-bd47-5d494a088684 -:END: -** TODO org-parse -:LOGBOOK: -- State "TODO" from [2023-11-29 Wed 21:26] -:END: -:PROPERTIES: -:DEPENDENCIES: parse -:HOOKS: organ-export -:ID: 63774177-9730-4961-8535-414fac7a6f4f -:END: -** TBD parse org-elements as sxp :sxp: -:LOGBOOK: -- State "TODO" from [2023-09-25 Mon 15:23] -- State "TBD" from "TODO" [2023-12-13 Wed 18:10] -:END: -#+name: oe-init -#+begin_src emacs-lisp :results silent - (slime-start) -#+end_src - -#+begin_src lisp :results silent - (ql:quickload :organ) -#+end_src - -#+name: oe-form -#+begin_src emacs-lisp :results output replace - (macroexpand-1 (org-element-parse-buffer)) -#+end_src - -#+RESULTS: oe-form - -#+name: oe-sxp -#+begin_src lisp :results output :var in=oe-form() - (let ((sxp (sxp:make-sxp))) - ;; SIMPLE-READER-ERROR #\) when using read - (sxp:wrap-from-string! sxp in) - (describe sxp)) -#+end_src - -#+RESULTS: oe-sxp -: # -: [standard-object] -: -: Slots with :INSTANCE allocation: -: AST = NIL - -* TODO rdb 0.2 [0/6] :lisp:rdb: -:LOGBOOK: -- State "TODO" from "TODO" [2023-12-13 Wed 18:26] -:END: -** TODO error handling -:LOGBOOK: -- State "TODO" from [2023-12-10 Sun 22:57] -:END: -- need to unwrap the pointer (* (* t)) -- cast to string,int,bool -- wrap segfault handlers -- add restarts for common errors (bad path) -- add cleanup routines -** TODO client api -:LOGBOOK: -- State "TODO" from [2023-12-10 Sun 22:59] -:END: -- clients are fully dynamic -- generated from RDB instances -- compiles in CF/option/multithread/type info -- clients implement custom Q language -** TODO sequence/iterator impl -:LOGBOOK: -- State "TODO" from [2023-12-10 Sun 23:09] -:END: -- use SBCL built-ins to extend the api - wrap the raw FFI iterator -- define mixins -** TODO comparator impl -:LOGBOOK: -- State "TODO" from [2023-12-10 Sun 23:11] -:END: -- supply custom comparators to rocksdb from lisp -** TODO type system -:LOGBOOK: -- State "TODO" from [2023-12-10 Sun 23:12] -:END: -- capture types of: kv, cf -- specs - - kv-spec = (kv-spec val-spec) - - must be serialized to/from vec - - cf-spec - - used as superclass - - methods for abstracting CFs -** TODO set-opt/get-opt -:LOGBOOK: -- State "TODO" from [2023-12-16 Sat 00:49] -:END: -- need better api -- may just want to use the generic C fn that takes string as input -- I feel this may be less efficient but haven't benched it (requires additional arg) -- separate packages are a pain to query symbols with - -* TODO vc 0.1 :vc: -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:10] -:END: -** TODO git :vc:git: -:LOGBOOK: -- State "TODO" from [2023-12-16 Sat 00:55] -:END: -** TODO hg :vc:hg: -:LOGBOOK: -- State "TODO" from [2023-12-16 Sat 00:56] -:END: - -* TODO skel 0.2 [0/3] :lisp:skel: -:LOGBOOK: -- State "TODO" from [2023-12-16 Sat 00:55] -:END: -** TODO eval rules from CLI -:LOGBOOK: -- State "TODO" from [2023-12-16 Sat 00:56] -:END: -- need new command or flag for rules -- evaluate forms instead of looking in skelfile -* TODO std 0.2 [1/6] :lisp:std: -:LOGBOOK: -- State "TODO" from [2023-12-12 Tue 19:49] -:END: -** DONE refactor system definition -:LOGBOOK: -- State "TODO" from [2023-12-13 Wed 15:17] -- State "DONE" from "TODO" [2023-12-13 Wed 19:38] -:END: -- remove package-inferred -- minimize number of systems -- use pkg.lisp files -** TODO cleanup fu -:LOGBOOK: -- State "TODO" from [2023-12-13 Wed 19:39] -:END: -** TODO documentation sweep -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:09] -:END: -** TODO CLTL2 impl -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:09] -:END: -** TODO more bits -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:09] -:END: -** TODO list-package-symbols, etc -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:09] -:END: - -* TODO sxp 0.2 [0/1] :lisp:sxp: -:LOGBOOK: -- State "TODO" from [2023-12-12 Tue 19:49] -:END: -** TODO WRAP-OBJECT :skel: -:LOGBOOK: -- State "TODO" from [2023-12-12 Tue 19:49] -:END: -- use to replace LOAD-AST for sk-project and friends -- requires mop -- take a look at UNWRAP-OBJECT too, may need rewrite for a better API -* TODO obj 0.1 [1/2] :lisp:obj: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 00:59] -:END: -** NOPE uri -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:00] -- Note taken on [2023-12-20 Wed 18:26] \\ - 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. -:END: -- mostly just need the tests and to finish porting the Franz implementation -** TODO db -:LOGBOOK: -- State "TODO" from [2023-12-20 Wed 18:26] -:END: -- ported from XDB2 -* TODO net 0.1 [0/7] :lisp:net: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:00] -:END: -** TODO tcp :core: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: -** TODO udp :core: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: -** TODO crew :proto: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: - -** TODO http :proto: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: -** TODO dns :proto: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: - -** TODO tlv :codec: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:01] -:END: - -** TODO osc :codec: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:03] -:END: -* TODO pwn 0.1 [0/1] :lisp:pwn: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:04] -- Note taken on [2024-02-29 Thu 16:11] \\ - Should this be a separate application? Lisp exploit development framework -:END: -** TODO diz -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 01:04] -:END: -* TODO gui 0.1 [0/2] :lisp:gui: -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 03:40] -:END: -** TODO wayland protocol bindings -:LOGBOOK: -- State "TODO" from [2023-12-17 Sun 03:40] -:END: -** TBD wayland compositor :rust:lisp: -:LOGBOOK: -- State "TBD" from "TODO" [2023-11-29 Wed 21:25] -:END: -:PROPERTIES: -:ID: e18a90d7-10bc-44d3-8508-56483d29d385 -:END: -* TODO rt 0.1 [0/2] :rt: -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:06] -:END: -** TODO redirect I/O in tests -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 16:06] -:END: -prevent tests from printing implicitly. redirect stream locally, cache -it somehow for review. -** TODO *test-on-def* -:LOGBOOK: -- State "TODO" from [2024-02-29 Thu 17:17] -:END: -- simple flag to test when file is defined (part of deftest macro) -* NOPE dot 0.1 [1/1] :lisp:dot: -:LOGBOOK: -- State "TODO" from [2023-12-20 Wed 18:27] -:END: -** NOPE PARSE-SPECIALIZER-USING-CLASS -:LOGBOOK: -- State "TODO" from [2023-12-20 Wed 18:28] -:END: -- experimental SB-MOP generic, may be useful in places where we would - typically use =(eql OBJECT)= as a specializer for GRAPH. - -* TBD homer 0.1 [0/2] :lisp:homer: -:LOGBOOK: -- State "TBD" from "TODO" [2023-12-12 Tue 19:53] -:END: -** TODO review GNU stow API -:LOGBOOK: -- State "TODO" from [2023-12-24 Sun 19:32] -:END: -[[https://www.gnu.org/software/stow/][homepage]] -'symlink farm manager' -rust impl: https://github.com/qboileau/rstow - -** TODO consolidate with skel -:LOGBOOK: -- State "TODO" from [2023-12-24 Sun 19:32] -:END: diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/business.org --- a/meta/business.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#+title: business -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+description: The Compiler Company Business Model -#+setupfile: ../../clean.theme -In short, this document describes the business aspects of The Compiler -Company LLC. We are designed to be small, fast, and agile. We -infiltrate a market, apply our methodology, and develop solutions that -are simply years ahead of the competition. We treat the market like -we're the only supplier, because we can. This is in part due to our -internal research & development pursuits, but also our approach to -business. We build businesses and revenue streams the exact same way -we build software -- with a bottom up approach. This is our secret -weapon, and what gives us the ability to adapt to any environment -where our interests lie. - -#+TOC: headlines 3 diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/mindset.org --- a/meta/mindset.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -#+title: mindset -#+author: Richard Westhaver -#+description: A Reflection on the CC Mindset -#+setupfile: ../../clean.theme diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/pitch.org --- a/meta/pitch.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -#+title: the big picture -#+author: Richard Westhaver -#+setupfile: ../../clean.theme -* Get Off of My Cloud - - industry has moved away from client-side, distributed compute in - favor of centralized server-side compute resources behind API - gateways. - - entire businesses are built on a single Cloud Provider and are - fundamentally incapable of moving off that Cloud. - - they /think/ in terms of that Provider. The Provider influences - all of their decisions. - - users control very little compute power - - personal computing hardware (consumer-grade) is limited in capability - - non-servicable architectures, planned obsolescence, closed firmware - - mainstream operating systems don't optimize for resource - efficiency - they maximize for the volume of telemetry data they - can collect and profit from - -* Death of the Programmer - - The role of the programmer is changing - - programmers are no longer required to understand how computers - work to have a successful career - - Cloud Providers wrap all low-level details in their own - proprietary vocabulary and APIs - - To program on the cloud, you need to use the Cloud vocabulary - and are discouraged from thinking of computers as they actually - exist in the real world - - Cloud Providers influence college cirruculums, replacing compute - and systems theory with courses designed to teach you how to - configure Cloud Services. - diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/readme.org --- a/meta/readme.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#+title: Meta Docs -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil -#+EXPORT_FILE_NAME: index -#+setupfile: ../../clean.theme -* [[file:ulang.org][ulang]] -* [[file:style.org][style]] -* [[file:tech.org][tech]] -* [[file:business.org][business]] -* [[file:mindset.org][mindset]] -* [[file:workflows.org][workflows]] diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/style.org --- a/meta/style.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -#+title: The Compiler Company Styleguide -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+setupfile: ../../clean.theme -As an organization we maintain a styleguide[fn:1] which lists all of -the style guidelines we use for our code. If you are contributing to -one of our projects, you should review and understand the relevant -sections below. - -You should also review the [[file:ulang.org][ulang]] document, which may shine some light -on code comments and developer docs. - -[fn:1] https://google.github.io/styleguide/ - -* General Programming -- indent-offset = 2 -- max-line-width = 80 -- page-length ~ 32 -- module-length ~ 512 -- file-size ~ 1024 - -- start every source-file with a header comment -- use outline headings to organize your program -- use ulang-comments as needed for referencing bugs, notes, etc. -- inline documentation should be declarative. your code explains your - comments for you. -- variables, imports, and exports belong at the top of a file -- =main= functions belong at the bottom of a file -- use LSP wherever possible (eglot, slime) -* Common Lisp -- prefer symbol docs to comments -- use stdin/stdout/stderr correctly - see [[https://zenodo.org/records/3414191][CDR-11]] -- always prefer =core= libraries over vendored dependencies -- use the compiler built-ins - if a function or class is generally - useful, add it to the core -- use conditions, restarts, and error handling where appropriate -- save type declarations and hairy optimizations for when the API is - polished -- don't be afraid of macros -** Systems -- define systems using keyword symbols -- use slash instead of dash for path separation in system names: =:foo/bar= -- define your test system in the same file with a name of: =:foo/tests= -- where possible, avoid collisions with systems in Quicklisp -** Packages -- declare packages in a file named =pkg.lisp= -- when multiple packages are being declared, consider a wrapper - package - - declare with ~UIOP:DEFINE-PACKAGE~ and ~:USE-REEXPORT~ -- package names are either the same as their system name or have the - system name as their root path. -- use ~:NICKNAMES~ to declare alternative names for your package -** CLOS -- prefer =:default-initargs= over =:initform=. -* Rust -- always prefer =core= libraries to vendored dependencies -- don't make =mod.rs= files - - use the =foo.rs=, =foo/*= pattern instead -- derive =Debug= and =Clone= always -- write a sensible =Display= impl -- derive default methods for =Default=, =Hash=, =Copy=, etc where possible -- use generics where appropriate: =foo>(path:P){p.as_ref();}= -* Emacs Lisp -* Org-mode -* Shell -* Python diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/tech.org --- a/meta/tech.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -#+title: tech -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+description: The Compiler Company Core Technologies -#+setupfile: ../../clean.theme - -* OS -We primarily support [[https://unix.org][Unix-based]] Operating Systems. Check -project-specific docs for officially supported targets. - -Development and CI is ran on [[https://archlinux.org/][Arch Linux]] (btw). -* Core -** [[https://lisp-lang.org/][Lisp]] -** [[https://www.rust-lang.org/][Rust]] -** [[https://www.gnu.org/software/emacs/][Emacs]] -* Libs -** [[https://rocksdb.org/][rocksdb]] -** [[https://archlinux.org/pacman/][pacman]] -** [[https://docs.kernel.org/filesystems/btrfs.html][btrfs]] -** [[https://tree-sitter.github.io/tree-sitter/][tree-sitter]] -** [[https://kernel.dk/io_uring.pdf][uring]] -** [[https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf][blake3]] -* Extras -** [[https://ngn.codeberg.page/k][k]] -** [[https://mlochbaum.github.io/BQN/][BQN]] - -* Our Software -The software provided by /The Compiler Company/ is a powerful but -opinionated programming environment. It consists of a GNU/Linux -kernel, some vendored programs and libraries, and a suite of custom -software. - -The software is modular by design. You can pick and choose which -components to embed in your own projects and you are encouraged to -modify any part of the system to meet your goals. - -In general, our software is designed for: -- early adoption :: integrate research, protocols, libraries, and - hardware features from leading research orgs faster than anyone else -- rapid development :: interaction, code introspection, tooling, and - automation built for prototyping at massive scale -- power :: using our environment should feel like cheating - macros, - DSLs, and unmatched hackability - -** Langs -/The Compiler Company/ is above all, a =Lisp Company=. The most -powerful software requires the most powerful code. - -Lisp isn't enough though. =Rust= is our imperative language of choice -at the time of writing and generally suited for system-level software -components. - -We make use of the Steel Bank Common Lisp compiler (SBCL) and the -nightly Rust compiler toolchain. - -** OS -/The Compiler Company/ is a =Linux Company=. There may be minimal -support for Darwin-based systems, but Microsoft Windows systems will -never be officially supported. - -One of the /anti-goals/ of our software is ~portability~. For all of -the features we optimize for, portability becomes a burden, especially -with closed-source OS kernels. We are also explicitly driven to reduce -consumer dependence on these closed-source systems, especially in a -distributed network. They are simply unfit for use with the software -we produce and the systems we build. diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/ulang.org --- a/meta/ulang.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -#+title: Universal Languages -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+OPTIONS: toc:t -#+setupfile: ../../clean.theme - -This document describes a *U-Language* as described by the late great -[[https://iep.utm.edu/haskell-brooks-curry/][Haskell Curry]]: - -#+begin_quote -Every investigation, including the present one, has to be communicated -from one person to another by means of language. It is expedient to -begin our study by calling attention to this obvious fact, by giving a -name to the language being used, and by being explicit about a few of -its features. We shall call the language being used the -U-Language. [...] There would be no point in calling attention to it, -if it were not for the fact that language is more intimately related -to our job than of most others. -#+end_quote - -In this document, we will be calling attention to our own language - -examining it, and describing how it works. - -Our job is to solve problems. Hard problems preferred. So we ought to -pay close attention to the language we use because it brings the -reader and writer /closer/ to the problem at hand. - -For starters, we are primarily concerned with /written languages/ like -the one you're reading now. We will skip past the obvious details - -English is our primary form of communication for example. The line you -are reading currently is a sentence which is part of a paragraph. - -There are some non-obvious questions which deserve inquiry though. - -- *Who is this for?* \\ - This document is for authors and readers alike. It is a loose - specification, but also serves as introductory material into our - communication and design philosophy. - -- *What is this for?* \\ - The purpose of this document is to provide a /standard of - communication/. - - All sources we write attempt to conform to this standard but this is - not strictly enforced. If there is a reason to not comply with a - rule, it is already broken. - -* Org Mode -:PROPERTIES: -:ID: 98a02bb2-3f39-49c6-898a-68ccd8f3cbe1 -:END: -[[https://www.gnu.org/software/emacs/][GNU Emacs]] is our text editor, so naturally [[https://orgmode.org/][Org Mode]] is our word -processor. - -If you are already familiar with Emacs and Org-Mode, I recommend -opening the source of this document in Emacs and following along. - -If not, I recommend browsing through the [[https://orgmode.org/worg/][Worg resources]], but we won't -be getting too deep into tribal hacker knowledge of Emacs. - -What's important to know is this: There is /Org Syntax/ and -/Org-mode/ - these are different things. - -Our =ulang= is almost /exclusively/ based on /Org Syntax/ and we are -not concerned about /Org-mode/ the application in this document. - -* ulang -:PROPERTIES: -:ID: ulang -:END: -As the title suggest we refer to our *U-Language* as *ulang*. Each -section of this document describes a feature. -** Outlines -In Org, headings can be summarize as any line starting with a star: =* -H1=. Headings can be nested or 'demoted' by prepending another star: -=** H2=. - -This is a useful pattern which we apply outside of Org - most commonly -in our code comments. - -In our source code, we use the comment character instead of a star: -#+begin_src lisp -;;; foo -(print "H1") ;; just an inline comment -;;;; bar -(print "H2") -;;; baz -(print "H1") -#+end_src - -A collection of /headings/ is what we call an *Outline* - which is -also the name of the major-mode utilized for this feature and of -course - what Org itself is derived from. - -** Keywords -:PROPERTIES: -:ID: 2cadda9a-22a3-4b42-ad4e-d7a774f74cba -:END: - -The following keywords indicate the state of an element. They often -appear as the first word in a heading to indicate a [[*Tasks][Task]]. - -- TBD :: A task to be done at a later date. -- TODO :: A task yet to be done. -- FIXME :: Item that needs fixing. -- WIP :: Work In Progress task. -- WAIT :: A suspended task. -- DEAD :: Item that will not be completed. -- DONE :: Completed task. -- BUG :: Designate a bug item. -- IDEA :: Designate an idea item. -- NOTE :: Designates a note item. -- DRAFT :: Designates a draft item. -- COMMENT :: A 'commented' item. -** Tasks -Tasks as they are known in Org, usually consist of a heading that -starts with a [[#2cadda9a-22a3-4b42-ad4e-d7a774f74cba][Keyword]]. Here we describe some additional sections and -metadata which are present in our collection of tasks. - -Our task management system is roughly a hybrid of two more -conventional methods: GTD and Agile. For convenience I will describe -these styles and how I use them separately, but the concepts may be -spliced differently in real tasks. - -- *GTD* \\ -- *Agile* \\ - It's a dirty word in some tech circles - the dreaded PIs, daily - standups, and still nobody knows what's going on, Oh my! Do not - worry. For the most part we just borrow the vocabulary. - - Our /Agile/ workflow consists of roadmaps, features (epics/ARTs), - issues (user stories), and of course, tasks. -** IDs -We reference two different types of identifiers in documentation: -- UUID :: ID property -- User-defined :: CUSTOM_ID property - -Most of the time these Ids don't add any information for the reader - -the UUIDs are used to index and graph documents, CUSTOM_IDs are for -convenience but are rarely necessary given the many ways of -identifying a headline. -** Macros -:PROPERTIES: -:ID: cdb4976b-1d0d-49df-bfb1-3dbd5d99590e -:END: -Several *global* [[https://orgmode.org/manual/Macro-Replacement.html][Org Macros]] are used throughout our documents. They are listed -here for convenience. - -#+name: ulang-macros -#+begin_src emacs-lisp :exports both :results replace pp - org-export-global-macros -#+end_src - -#+RESULTS: ulang-macros -: (("header" . -: "#+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: \n#+HTML_HEAD: \n#+HTML_HEAD: \n") -: ("opts" . "#+OPTIONS: $1\n")) - -Macros /are not expanded/ in source files - you will see them in the -form ={{{NAME(ARGS)}}}=. You will need the relevant macro definition -(in =ulang.el=) in order to use some Org-Mode functions (org-export) -with our docs. - diff -r 6b8a06dfe3c3 -r 6303e1f79470 meta/workflows.org --- a/meta/workflows.org Sat Jul 27 02:45:49 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#+title: meta/workflows -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+description: Meta Workflows -#+setupfile: ../../clean.theme - -* Task Management - -* Project Management - -* Roadmap - -* Source Code Management - -* Data Management - -* Resource Management