changelog shortlog graph tags branches files raw help

Mercurial > org > docs / changeset: doc updates

changeset 23: 411eeaebc6d2
parent 22: 889970442a12
child 24: 141ebff9d543
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 02 Jun 2024 00:42:41 -0400
files: core/api.org core/api/readme.org core/app/cc-init.org core/app/diz.org core/app/homer.org core/app/krypt.org core/app/mailman.org core/app/organ.org core/app/packy.org core/app/rdb.org core/app/readme.org core/app/skel.org core/app/tz.org core/bin/homer.org core/bin/krypt.org core/bin/mailman.org core/bin/organ.org core/bin/packy.org core/bin/rdb.org core/bin/readme.org core/bin/skel.org core/ffi.org core/install.org core/readme.org core/stats.org core/tests.org demo/readme.org demo/stats.org infra/quickstart.org infra/stats.org readme.org
description: doc updates
     1.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2+++ b/core/api.org	Sun Jun 02 00:42:41 2024 -0400
     1.3@@ -0,0 +1,16 @@
     1.4+#+title: Core API
     1.5+#+author: Richard Westhaver
     1.6+#+options: ^:nil toc:nil num:nil html-postamble:nil
     1.7+#+export_file_name: index
     1.8+
     1.9+This documentation is automatically generated based on the default
    1.10+branch of the [[https://vc.compiler.company/comp/core][core]].
    1.11+
    1.12+#+begin_src lisp :results silent
    1.13+(ql:quickload :user)
    1.14+#+end_src
    1.15+
    1.16+#+begin_src lisp :results output replace
    1.17+#+end_src
    1.18+
    1.19+#+RESULTS:
     2.1--- a/core/api/readme.org	Mon May 27 22:04:39 2024 -0400
     2.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3@@ -1,41 +0,0 @@
     2.4-{{{header(Core API Docs,Richard Westhaver,ellis@rwest.io)}}}
     2.5-#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil
     2.6-#+EXPORT_FILE_NAME: index
     2.7-
     2.8-=TODO=
     2.9-
    2.10-This documentation is automatically generated based on the default
    2.11-branch of the [[https://vc.compiler.company/comp/core][core]].
    2.12-
    2.13-#+begin_src lisp :results silent
    2.14-(ql:quickload :dot)
    2.15-#+end_src
    2.16-
    2.17-#+begin_src lisp :results output replace
    2.18-  (defmethod dot:graph-object-node ((graph (eql 'core-api)) (obj cons))
    2.19-    (make-instance 'dot:node 
    2.20-      :attributes '(:shape :box)))
    2.21-
    2.22-  (defmethod dot:graph-object-points-to ((graph (eql 'core-api)) (obj cons))
    2.23-    (list (car obj)
    2.24-          (make-instance 'dot:attributed
    2.25-            :object (cdr obj)
    2.26-            :attributes '(:weight 3))))
    2.27-
    2.28-  (defmethod graph-object-node ((graph (eql 'core-api)) (obj symbol))
    2.29-    (make-instance 'dot:node
    2.30-      :attributes `(:label ,obj
    2.31-                    :shape :hexagon)))
    2.32-
    2.33-
    2.34-  (dot:print-graph 
    2.35-   (dot:generate-graph-from-roots 'core-api (list)
    2.36-                                  '(:rankdir "LR" :layout "twopi" :labelloc "t")))
    2.37-#+end_src
    2.38-
    2.39-#+RESULTS:
    2.40-: digraph {
    2.41-: rankdir=LR;
    2.42-: layout="twopi";
    2.43-: labelloc="t";
    2.44-: }
     3.1--- a/core/app/cc-init.org	Mon May 27 22:04:39 2024 -0400
     3.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3@@ -1,16 +0,0 @@
     3.4-{{{header(cc-init,Richard Westhaver,ellis@rwest.io)}}}
     3.5-* help
     3.6-#+begin_src shell :results pp replace
     3.7-cc-init -h
     3.8-#+end_src
     3.9-
    3.10-#+RESULTS:
    3.11-: cc-init 0.1.0-0941fa04c53d+ (x86_64-linux-gnu)
    3.12-: 
    3.13-: Usage: cc-init [OPTIONS]
    3.14-: 
    3.15-: Options:
    3.16-:   -y              Disable confirmation prompts
    3.17-:   -l, --level...  Set the log level
    3.18-:   -h, --help      Print help
    3.19-:   -V, --version   Print version
     4.1--- a/core/app/diz.org	Mon May 27 22:04:39 2024 -0400
     4.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3@@ -1,8 +0,0 @@
     4.4-{{{header(diz,Richard Westhaver,ellis@rwest.io)}}}
     4.5-
     4.6-The ~diz~ disassembly tool.
     4.7-
     4.8-* help
     4.9-#+begin_src shell
    4.10-diz -h
    4.11-#+end_src
     5.1--- a/core/app/homer.org	Mon May 27 22:04:39 2024 -0400
     5.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3@@ -1,20 +0,0 @@
     5.4-{{{header(homer,Richard Westhaver,ellis@rwest.io)}}}
     5.5-* help
     5.6-#+begin_src shell :results pp replace
     5.7-homer -h
     5.8-#+end_src
     5.9-
    5.10-#+RESULTS:
    5.11-#+begin_example
    5.12-homer v0.1.0
    5.13-  usage: homer [global] <command> [<arg>]
    5.14-
    5.15-  home manager
    5.16-  options:
    5.17-     -l/--level* :  set the log level
    5.18-     -h/--help* :  print help
    5.19-     -v/--version* :  print version
    5.20-  commands:
    5.21-    show  
    5.22-    
    5.23-#+end_example
     6.1--- a/core/app/krypt.org	Mon May 27 22:04:39 2024 -0400
     6.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3@@ -1,25 +0,0 @@
     6.4-{{{header(kyrpt,Richard Westhaver,ellis@rwest.io)}}}
     6.5-* help
     6.6-#+begin_src shell :results pp replace
     6.7-krypt -h
     6.8-#+end_src
     6.9-
    6.10-#+RESULTS:
    6.11-#+begin_example
    6.12-Krypt CLI
    6.13-
    6.14-Usage: krypt [OPTIONS] [COMMAND]
    6.15-
    6.16-Commands:
    6.17-  check   check service providers and config
    6.18-  show    Show Krypt info
    6.19-  search  Query the Krypt
    6.20-  help    Print this message or the help of the given subcommand(s)
    6.21-
    6.22-Options:
    6.23-  -c, --cfg <CFG>    Set the default config file [env: KRYPT_CONFIG_FILE=]
    6.24-  -u, --user <USER>  Set a user for this command [env: USER=ellis]
    6.25-  -l, --level...     Set log level
    6.26-  -h, --help         Print help
    6.27-  -V, --version      Print version
    6.28-#+end_example
     7.1--- a/core/app/mailman.org	Mon May 27 22:04:39 2024 -0400
     7.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3@@ -1,26 +0,0 @@
     7.4-{{{header(mailman,Richard Westhaver,ellis@rwest.io)}}}
     7.5-* help
     7.6-#+begin_src shell :results pp replace
     7.7-mailman -h
     7.8-#+end_src
     7.9-
    7.10-#+RESULTS:
    7.11-#+begin_example
    7.12-Mail client util
    7.13-
    7.14-Usage: mailman [OPTIONS] [COMMAND]
    7.15-
    7.16-Commands:
    7.17-  ping    Ping the server
    7.18-  search  Search for items
    7.19-  import  Import an account
    7.20-  export  Export an account
    7.21-  help    Print this message or the help of the given subcommand(s)
    7.22-
    7.23-Options:
    7.24-  -c, --cfg <CFG>    Set the default config file [env: MAILMAN_CONFIG_FILE=]
    7.25-  -u, --user <USER>  Set a user for this command [env: USER=ellis]
    7.26-  -l, --level...     Set log level
    7.27-  -h, --help         Print help
    7.28-  -V, --version      Print version
    7.29-#+end_example
     8.1--- a/core/app/organ.org	Mon May 27 22:04:39 2024 -0400
     8.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3@@ -1,46 +0,0 @@
     8.4-{{{header(organ,Richard Westhaver,ellis@rwest.io)}}}
     8.5-
     8.6-The =organ= CLI tool is used to manipulate [[https://orgmode.org/][Org Mode]] files.
     8.7-
     8.8-* Overview
     8.9-=Org-mode= the application depends on Emacs (it's written in Emacs
    8.10-Lisp) but that doesn't mean we need to. To solve the issue of
    8.11-interoperability between different systems, we are developing a tool
    8.12-called [[https://lab.rwest.io/comp/core/-/tree/branch/default/lisp/lib/organ][organ]]. The purpose of =organ= is to provide an external API for
    8.13-Org documents that doesn't depend on GNU Emacs.
    8.14-
    8.15-If we were designing a /personal/ note-taking system, I would argue
    8.16-that we don't need this tool. The problem is it's /not/ personal - we
    8.17-have a much wider intended audience and need to present information in
    8.18-many different ways. This means thinking about hundreds to thousands
    8.19-of documents instead of tens, about processing those documents into a
    8.20-full-text search database, and reducing cost along the way.
    8.21-
    8.22-Emacs can do all of these things, but do you really want it to?
    8.23-
    8.24-* help
    8.25-#+begin_src shell :results pp replace
    8.26-organ -h
    8.27-#+end_src
    8.28-
    8.29-#+RESULTS:
    8.30-#+begin_example
    8.31-organ v0.0.1
    8.32-  usage: organ [global] <command> [<arg>]
    8.33-
    8.34-  org-mode toolbox
    8.35-  options:
    8.36-     -l/--level* :  set the log level
    8.37-     -h/--help* :  print help
    8.38-     -v/--version* :  print version
    8.39-  commands:
    8.40-    inspect  :  inspect an org file
    8.41-     -i/--input  :  path to org file
    8.42-    
    8.43-    show  :  display local org info
    8.44-    
    8.45-    parse  
    8.46-     -i/--input  :  input source
    8.47-     -o/--output  :  compiler output
    8.48-    
    8.49-#+end_example
     9.1--- a/core/app/packy.org	Mon May 27 22:04:39 2024 -0400
     9.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3@@ -1,10 +0,0 @@
     9.4-{{{header(packy,Richard Westhaver,ellis@rwest.io)}}}
     9.5-
     9.6-Packy is a universal package manager. The packy CLI tool is used to
     9.7-query and download resources from local or remote stores.
     9.8-* help
     9.9-#+begin_src shell :results pp replace
    9.10-packy -h
    9.11-#+end_src
    9.12-
    9.13-#+RESULTS:
    10.1--- a/core/app/rdb.org	Mon May 27 22:04:39 2024 -0400
    10.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3@@ -1,19 +0,0 @@
    10.4-{{{header(rdb,Richard Westhaver,ellis@rwest.io)}}}
    10.5-
    10.6-The =rdb= cli tool is a simple RocksDB management utility.
    10.7-
    10.8-* help
    10.9-#+begin_src shell :results pp replace
   10.10-rdb -h
   10.11-#+end_src
   10.12-
   10.13-#+RESULTS:
   10.14-: rdb v0.1.0
   10.15-:   usage: rdb [global] <command> [<arg>]
   10.16-: 
   10.17-:   richard's database
   10.18-:   options:
   10.19-:      -l/--level* :  set the log level
   10.20-:      -h/--help* :  print help
   10.21-:      -v/--version* :  print version
   10.22-:   commands:
    11.1--- a/core/app/readme.org	Mon May 27 22:04:39 2024 -0400
    11.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3@@ -1,13 +0,0 @@
    11.4-{{{header(Core App Docs,Richard Westhaver,ellis@rwest.io)}}}
    11.5-#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil
    11.6-#+EXPORT_FILE_NAME: index
    11.7-* [[file:skel.org][skel]]                                                                 :lisp:
    11.8-* [[file:organ.org][organ]]                                                                :lisp:
    11.9-* [[file:packy.org][packy]]                                                                :lisp:
   11.10-* [[file:homer.org][homer]]                                                                :lisp:
   11.11-* [[file:rdb.org][rdb]]                                                                  :lisp:
   11.12-* [[file:diz.org][diz]]                                                                  :lisp:
   11.13-* [[file:tz.org][tz]]                                                                   :rust:
   11.14-* [[file:mailman.org][mailman]]                                                              :rust:
   11.15-* [[file:cc-init.org][cc-init]]                                                              :rust:
   11.16-* [[file:krypt.org][krypt]]                                                                :rust:
    12.1--- a/core/app/skel.org	Mon May 27 22:04:39 2024 -0400
    12.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3@@ -1,187 +0,0 @@
    12.4-{{{header(skel,Richard Westhaver,ellis@rwest.io)}}}
    12.5-
    12.6-The =skel= CLI is the primary build tool for contributors and serves a
    12.7-similar role to language-agnostic build tools like [[https://www.gnu.org/software/make/][GNU Make]], but with
    12.8-the features and ease-of-use of language-specific build tools like
    12.9-Rust's [[https://github.com/rust-lang/cargo][Cargo]].
   12.10-
   12.11-* features
   12.12-** configuration
   12.13-The ~skel~ tool can be configured at runtime using the CLI flags, or
   12.14-via local configuration files. The configuration files are in the
   12.15-~skelfile~ format and are assigned the following locations by default:
   12.16-- ~*default-user-skelrc*~ :: =$HOME/.skelrc=
   12.17-- ~*default-system-skelrc*~ :: =/etc/skel/skelrc=
   12.18-
   12.19-Both files are optional and the user skelrc takes precedence over
   12.20-system.
   12.21-
   12.22-Example =~/.skelrc=:
   12.23-#+begin_src skel :results pp replace :exports both
   12.24-  ;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*-
   12.25-  :author "Richard Westhaver <ellis@rwest.io>"
   12.26-  :user "ellis"
   12.27-  :version "0.1.0"
   12.28-  :tags ("auto")
   12.29-  :fmt :collapsed
   12.30-  :vc :hg
   12.31-  :auto-insert t
   12.32-  :license "MPL"
   12.33-  :log-level nil
   12.34-  :shed "~/lab/shed"
   12.35-  :stash "~/lab/stash"
   12.36-  :scripts "~/bin/sh"
   12.37-  :alias-list
   12.38-  (("p" "vc push")
   12.39-   ("P" "vc pull")
   12.40-   ("ci" "vc commit"))
   12.41-#+end_src
   12.42-
   12.43-** projects
   12.44-Projects are the main top-level object users interact with. A project
   12.45-consists of a list of slots which are populated automatically or by
   12.46-the user. Once a project is initialized the slots can be accessed and
   12.47-a set of high-level operations can be performed.
   12.48-
   12.49-The easiest way to initialize a project is with a ~skelfile~. These
   12.50-files are parsed as a simplified Lisp dialect and generate
   12.51-~sk-project~ objects based on their contents.
   12.52-
   12.53-The simplest project looks like this:
   12.54-
   12.55-#+begin_src skel :results pp replace :exports both
   12.56-:name hello-world
   12.57-#+end_src
   12.58-
   12.59-Don't worry, this is still lisp - the parentheses are implied. All we
   12.60-actually need is a name to generate an object, and we can fill in the
   12.61-blanks later as the project develops.
   12.62-
   12.63-Here is a more verbose example, still with only metadata:
   12.64-
   12.65-#+begin_src skel :results pp replace :exports both
   12.66-;;; skelfile --- core skelfile -*- mode: skel; -*-
   12.67-:name "core"
   12.68-:author "Richard Westhaver <ellis@rwest.io>"
   12.69-:version "0.1.0"
   12.70-:license "MPL"
   12.71-:description "The Compiler Company Core"
   12.72-:vc :hg
   12.73-:tags ("core")
   12.74-:docs ((:org "readme") (:org "install") (:org "tests") (:org "todo"))
   12.75-:imports ("lisp/lisp.sk" "rust/rust.sk")
   12.76-#+end_src
   12.77-
   12.78-Another example with rules and components:
   12.79-
   12.80-#+begin_src skel
   12.81-;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*-
   12.82-:name skel
   12.83-:author "ellis"
   12.84-:version "0.1.0"
   12.85-:description "a hacker's project compiler"
   12.86-:license "MPL"
   12.87-:vc :hg
   12.88-:tags ("lisp")
   12.89-:rules ((build () (print (asdf:make :skel/cli)))
   12.90-        (clean () #$rm -rf */*.fasl$#))
   12.91-:docs ((:org "readme"))
   12.92-:components
   12.93-((:elisp "sk"))
   12.94-:stash "~/dev/comp/stash"
   12.95-:shed "~/dev/comp/shed"
   12.96-:snippets
   12.97-((autogen #$sbcl --eval '(ql:quickload :app/cli/skel)' --eval '(asdf:make :app/cli/skel)'$#))
   12.98-#+end_src
   12.99-** version control
  12.100-=skel= integrates closely with our Version Control System (VCS) which
  12.101-is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]]
  12.102-repositories.
  12.103-
  12.104-The =skel= tool helps us abstract away the differences between git/hg
  12.105-and make maximum use of their utility. When you run a =skel vc=
  12.106-command the currently active ~sk-project~ and configuration are used
  12.107-to determine the appropriate VC backend to call. New backends can of
  12.108-course be added as extensions.
  12.109-
  12.110-** TODO compilers
  12.111-- State "TODO"       from              [2023-12-09 Sat 19:28]
  12.112-One of the most unusual features of =skel= is the compiler set. With
  12.113-the =skel= CLI you can compile the following types of files for your
  12.114-project directly from a ~skelfile~:
  12.115-- Makefile (.mk)
  12.116-- Lisp system defs (.asd)
  12.117-- Cargo.toml
  12.118-- Containerfile
  12.119-- .hgignore/.gitignore
  12.120-
  12.121-We treat skelfiles as the mother of all build formats and consolidate
  12.122-different formats into our own project DSL. This helps reduce
  12.123-complexity while increasing capability and portability.
  12.124-
  12.125-Project compilation occurs on demand with the =sk compile= command.
  12.126-
  12.127-** TODO virtualization
  12.128-- State "TODO"       from              [2023-12-09 Sat 18:55]
  12.129-
  12.130-  =skel= offers a mechanism for generating and running Virtual
  12.131-  Machines (VMs) and Containers. Under the hood we depend on [[https://podman.io/][podman]]
  12.132-  for our container runtime as well as [[https://www.qemu.org/][QEMU]] for some
  12.133-  functionality.
  12.134-
  12.135-** TODO emacs integration
  12.136-- State "TODO"       from              [2023-12-09 Sat 19:30]
  12.137-=sk.el= is the Emacs support package for skel. It contains a
  12.138-=skel-mode= for working with skelfiles and will soon contain
  12.139-additional built-in integrations for =project.el=, =vc.el=, and more.
  12.140-** TODO deployment
  12.141-- State "TODO"       from              [2023-12-09 Sat 19:37]
  12.142-** TODO visualization
  12.143-- State "TODO"       from              [2023-12-09 Sat 19:37]
  12.144-* help
  12.145-#+begin_src shell :results pp replace :exports both
  12.146-skel -h
  12.147-#+end_src
  12.148-
  12.149-#+RESULTS:
  12.150-#+begin_example
  12.151-skel v0.1.1
  12.152-  usage: skel [global] <command> [<arg>]
  12.153-
  12.154-  A hacker's project compiler and build tool.
  12.155-  options:
  12.156-     -h/--help* :  print this message
  12.157-     -v/--version* :  print version
  12.158-     -d/--debug* :  set log level (debug,info,trace,warn)
  12.159-     -c/--config* :  set a custom skel user config
  12.160-     -i/--input  :  input source
  12.161-     -o/--output  :  output target
  12.162-  commands:
  12.163-    init  :  initialize a skelfile in the current directory
  12.164-     -n/--name  :  project name
  12.165-    
  12.166-    show  :  describe the project skelfile
  12.167-     -f/--file  :  path to skelfile
  12.168-    
  12.169-    inspect  :  inspect the project skelfile
  12.170-     -f/--file  :  path to skelfile
  12.171-    
  12.172-    make  :  build project targets
  12.173-     -t/--target  :  target to build
  12.174-    
  12.175-    run  :  run a script or command
  12.176-    
  12.177-    push  :  push the current project upstream
  12.178-    
  12.179-    pull  :  pull the current project from remote
  12.180-    
  12.181-    clone  :  clone a remote project
  12.182-    
  12.183-    commit  :  commit changes to the project vc
  12.184-    
  12.185-    edit  :  edit a project file
  12.186-    
  12.187-    shell  :  open the sk-shell interpreter
  12.188-    
  12.189-#+end_example
  12.190-
    13.1--- a/core/app/tz.org	Mon May 27 22:04:39 2024 -0400
    13.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3@@ -1,12 +0,0 @@
    13.4-{{{header(tz,Richard Westhaver,ellis@rwest.io)}}}
    13.5-
    13.6-=tz= is a small binary for packing and unpacking compressed archives
    13.7-(tar+zstd).
    13.8-
    13.9-* help
   13.10-#+begin_src shell :results pp replace
   13.11-tz -h
   13.12-#+end_src
   13.13-
   13.14-#+RESULTS:
   13.15-: mtz [pack|unpack|unpackr] PATH
    14.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2+++ b/core/bin/homer.org	Sun Jun 02 00:42:41 2024 -0400
    14.3@@ -0,0 +1,26 @@
    14.4+#+title: homer
    14.5+#+author: Richard Westhaver
    14.6+* help
    14.7+#+begin_src shell :results pp replace
    14.8+homer -h
    14.9+#+end_src
   14.10+
   14.11+#+RESULTS:
   14.12+#+begin_example
   14.13+homer v0.1.0 --- user home manager
   14.14+
   14.15+  usage: homer [global] <command> [<arg>]
   14.16+
   14.17+options:
   14.18+  -l/--level* :  set the log level
   14.19+  -h/--help* :  print help
   14.20+  -v/--version* :  print version
   14.21+  -f/--force* :  use force
   14.22+
   14.23+commands:
   14.24+  show 
   14.25+  check 
   14.26+  push 
   14.27+  pull 
   14.28+  install 
   14.29+#+end_example
    15.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2+++ b/core/bin/krypt.org	Sun Jun 02 00:42:41 2024 -0400
    15.3@@ -0,0 +1,26 @@
    15.4+#+title: krypt
    15.5+#+author: Richard Westhaver
    15.6+* help
    15.7+#+begin_src shell :results pp replace
    15.8+krypt -h
    15.9+#+end_src
   15.10+
   15.11+#+RESULTS:
   15.12+#+begin_example
   15.13+Krypt CLI
   15.14+
   15.15+Usage: krypt [OPTIONS] [COMMAND]
   15.16+
   15.17+Commands:
   15.18+  check   check service providers and config
   15.19+  show    Show Krypt info
   15.20+  search  Query the Krypt
   15.21+  help    Print this message or the help of the given subcommand(s)
   15.22+
   15.23+Options:
   15.24+  -c, --cfg <CFG>    Set the default config file [env: KRYPT_CONFIG_FILE=]
   15.25+  -u, --user <USER>  Set a user for this command [env: USER=ellis]
   15.26+  -l, --level...     Set log level
   15.27+  -h, --help         Print help
   15.28+  -V, --version      Print version
   15.29+#+end_example
    16.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2+++ b/core/bin/mailman.org	Sun Jun 02 00:42:41 2024 -0400
    16.3@@ -0,0 +1,27 @@
    16.4+#+title: mailman
    16.5+#+author: Richard Westhaver
    16.6+* help
    16.7+#+begin_src shell :results pp replace
    16.8+mailman -h
    16.9+#+end_src
   16.10+
   16.11+#+RESULTS:
   16.12+#+begin_example
   16.13+Mail client util
   16.14+
   16.15+Usage: mailman [OPTIONS] [COMMAND]
   16.16+
   16.17+Commands:
   16.18+  ping    Ping the server
   16.19+  search  Search for items
   16.20+  import  Import an account
   16.21+  export  Export an account
   16.22+  help    Print this message or the help of the given subcommand(s)
   16.23+
   16.24+Options:
   16.25+  -c, --cfg <CFG>    Set the default config file [env: MAILMAN_CONFIG_FILE=]
   16.26+  -u, --user <USER>  Set a user for this command [env: USER=ellis]
   16.27+  -l, --level...     Set log level
   16.28+  -h, --help         Print help
   16.29+  -V, --version      Print version
   16.30+#+end_example
    17.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2+++ b/core/bin/organ.org	Sun Jun 02 00:42:41 2024 -0400
    17.3@@ -0,0 +1,43 @@
    17.4+#+title: organ
    17.5+#+author: Richard Westhaver
    17.6+
    17.7+The =organ= CLI tool is used to manipulate [[https://orgmode.org/][Org Mode]] files.
    17.8+
    17.9+* Overview
   17.10+=Org-mode= the application depends on Emacs (it's written in Emacs
   17.11+Lisp) but that doesn't mean we need to. To solve the issue of
   17.12+interoperability between different systems, we are developing a tool
   17.13+called [[https://lab.rwest.io/comp/core/-/tree/branch/default/lisp/lib/organ][organ]]. The purpose of =organ= is to provide an external API for
   17.14+Org documents that doesn't depend on GNU Emacs.
   17.15+
   17.16+If we were designing a /personal/ note-taking system, I would argue
   17.17+that we don't need this tool. The problem is it's /not/ personal - we
   17.18+have a much wider intended audience and need to present information in
   17.19+many different ways. This means thinking about hundreds to thousands
   17.20+of documents instead of tens, about processing those documents into a
   17.21+full-text search database, and reducing cost along the way.
   17.22+
   17.23+Emacs can do all of these things, but do you really want it to?
   17.24+
   17.25+* help
   17.26+#+begin_src shell :results pp replace
   17.27+organ -h
   17.28+#+end_src
   17.29+
   17.30+#+RESULTS:
   17.31+#+begin_example
   17.32+organ v0.0.1 --- org-mode toolbox
   17.33+
   17.34+  usage: organ [global] <command> [<arg>]
   17.35+
   17.36+options:
   17.37+  -l/--level* :  set the log level
   17.38+  -h/--help* :  print help
   17.39+  -v/--version* :  print version
   17.40+
   17.41+commands:
   17.42+  inspect : inspect an org file
   17.43+  show : display local org info
   17.44+  describe : describe local org info
   17.45+  parse 
   17.46+#+end_example
    18.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2+++ b/core/bin/packy.org	Sun Jun 02 00:42:41 2024 -0400
    18.3@@ -0,0 +1,31 @@
    18.4+#+title: packy
    18.5+#+author: Richard Westhaver
    18.6+
    18.7+Packy is a universal package manager. The packy CLI tool is used to
    18.8+query and download resources from local or remote stores.
    18.9+* help
   18.10+#+begin_src shell :results pp replace
   18.11+packy -h
   18.12+#+end_src
   18.13+
   18.14+#+RESULTS:
   18.15+#+begin_example
   18.16+#:debug 0.190001; (#S(CLI-NODE
   18.17+                      :KIND OPT
   18.18+                      :FORM #<CLI-OPT help :global T :val T>))
   18.19+packy v0.1.0 --- Universal Package Manager
   18.20+
   18.21+  usage: packy [global] <command> [<arg>]
   18.22+
   18.23+options:
   18.24+  -l/--level* :  set the log level
   18.25+  -h/--help* :  print help
   18.26+  -v/--version* :  print version
   18.27+
   18.28+commands:
   18.29+  show 
   18.30+#:debug 0.193334; /home/ellis/comp/org/docs/core/bin
   18.31+; #(#<CLI-OPT help :global T :val NIL>)
   18.32+; NIL
   18.33+; #()
   18.34+#+end_example
    19.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2+++ b/core/bin/rdb.org	Sun Jun 02 00:42:41 2024 -0400
    19.3@@ -0,0 +1,11 @@
    19.4+#+title: rdb
    19.5+#+author: Richard Westhaver
    19.6+
    19.7+The =rdb= cli tool is a simple RocksDB management utility.
    19.8+
    19.9+* help
   19.10+#+begin_src shell :results pp replace
   19.11+rdb -h
   19.12+#+end_src
   19.13+
   19.14+#+RESULTS:
    20.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2+++ b/core/bin/readme.org	Sun Jun 02 00:42:41 2024 -0400
    20.3@@ -0,0 +1,12 @@
    20.4+#+title: 
    20.5+#+author: Richard Westhaver
    20.6+#+description: Core Program Docs
    20.7+#+options: ^:nil toc:nil num:nil html-postamble:nil
    20.8+#+export_file_name: index
    20.9+* [[file:skel.org][skel]]                                                                 :lisp:
   20.10+* [[file:organ.org][organ]]                                                                :lisp:
   20.11+* [[file:packy.org][packy]]                                                                :lisp:
   20.12+* [[file:homer.org][homer]]                                                                :lisp:
   20.13+* [[file:rdb.org][rdb]]                                                                  :lisp:
   20.14+* [[file:mailman.org][mailman]]                                                              :rust:
   20.15+* [[file:krypt.org][krypt]]                                                           :rust:lisp:
    21.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2+++ b/core/bin/skel.org	Sun Jun 02 00:42:41 2024 -0400
    21.3@@ -0,0 +1,192 @@
    21.4+#+title: skel
    21.5+#+author: Richard Westhaver
    21.6+
    21.7+The =skel= CLI is the primary build tool for contributors and serves a
    21.8+similar role to language-agnostic build tools like [[https://www.gnu.org/software/make/][GNU Make]], but with
    21.9+the features and ease-of-use of language-specific build tools like
   21.10+Rust's [[https://github.com/rust-lang/cargo][Cargo]].
   21.11+
   21.12+* features
   21.13+** configuration
   21.14+The ~skel~ tool can be configured at runtime using the CLI flags, or
   21.15+via local configuration files. The configuration files are in the
   21.16+~skelfile~ format and are assigned the following locations by default:
   21.17+- ~*default-user-skelrc*~ :: =$HOME/.skelrc=
   21.18+- ~*default-system-skelrc*~ :: =/etc/skel/skelrc=
   21.19+
   21.20+Both files are optional and the user skelrc takes precedence over
   21.21+system.
   21.22+
   21.23+Example =~/.skelrc=:
   21.24+#+begin_src shell :results output
   21.25+cat ~/.skelrc
   21.26+#+end_src
   21.27+
   21.28+#+RESULTS:
   21.29+#+begin_example
   21.30+;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*-
   21.31+:name "Richard Westhaver <ellis@rwest.io>"
   21.32+:user "ellis"
   21.33+:version "0.1.0"
   21.34+:tags ("auto")
   21.35+:fmt :pretty
   21.36+:vc :hg
   21.37+:auto-insert t
   21.38+:license :mpl2
   21.39+:log-level :info
   21.40+:stash ".stash"
   21.41+;; :scratch ".stash/scratch"
   21.42+:cache ".cache"
   21.43+:registry ".data/skel/registry"
   21.44+:scripts ("/usr/local/share/stash/scripts" "~/stash/scripts")
   21.45+:alias-list
   21.46+(("p" "vc push")
   21.47+ ("P" "vc pull")
   21.48+ ("ci" "vc commit"))
   21.49+#+end_example
   21.50+
   21.51+** projects
   21.52+Projects are the highest-level objects int the ~skel~ system. A project
   21.53+consists of a list of slots which are populated automatically or by
   21.54+the user. Once a project is initialized the slots can be accessed and
   21.55+a set of high-level operations can be performed.
   21.56+
   21.57+The easiest way to initialize a project is with a ~skelfile~. These
   21.58+files are parsed as a simplified Lisp dialect and generate
   21.59+~sk-project~ objects based on their contents.
   21.60+
   21.61+The simplest project looks like this:
   21.62+
   21.63+#+begin_src skel :results pp replace :exports both
   21.64+:name hello-world
   21.65+#+end_src
   21.66+
   21.67+Don't worry, this is still lisp - the parentheses are implied. All we
   21.68+actually need is a name to generate an object, and we can fill in the
   21.69+blanks later as the project develops.
   21.70+
   21.71+Here is a more verbose example, still with only metadata:
   21.72+
   21.73+#+begin_src skel :results pp replace :exports both
   21.74+;;; skelfile --- core skelfile -*- mode: skel; -*-
   21.75+:name "core"
   21.76+:author "Richard Westhaver <ellis@rwest.io>"
   21.77+:version "0.1.0"
   21.78+:license "MPL"
   21.79+:description "The Compiler Company Core"
   21.80+:vc :hg
   21.81+:tags ("core")
   21.82+:docs ((:org "readme") (:org "install") (:org "tests") (:org "todo"))
   21.83+:import ("lisp/lisp.sk" "rust/rust.sk")
   21.84+#+end_src
   21.85+
   21.86+Another example with rules and components:
   21.87+
   21.88+#+begin_src skel
   21.89+;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*-
   21.90+:name skel
   21.91+:author "ellis"
   21.92+:version "0.1.0"
   21.93+:description "a hacker's project compiler"
   21.94+:license "MPL"
   21.95+:vc :hg
   21.96+:tags ("lisp")
   21.97+:rules ((build () (print (asdf:make :skel/cli)))
   21.98+        (clean () #$rm -rf */*.fasl$#))
   21.99+:docs ((:org "readme"))
  21.100+:components
  21.101+((:elisp "sk"))
  21.102+:stash "~/dev/comp/stash"
  21.103+#+end_src
  21.104+** version control
  21.105+=skel= integrates closely with our Version Control System (VCS) which
  21.106+is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]]
  21.107+repositories.
  21.108+
  21.109+The =skel= tool helps us abstract away the differences between git/hg
  21.110+and make maximum use of their utility. When you run a =skel vc=
  21.111+command the currently active ~sk-project~ and configuration are used
  21.112+to determine the appropriate VC backend to call. New backends can of
  21.113+course be added as extensions.
  21.114+
  21.115+** TODO compilers
  21.116+- State "TODO"       from              [2023-12-09 Sat 19:28]
  21.117+One of the most unusual features of =skel= is the compiler set. With
  21.118+the =skel= CLI you can compile the following types of files for your
  21.119+project directly from a ~skelfile~:
  21.120+- Makefile (.mk)
  21.121+- Lisp system defs (.asd)
  21.122+- Cargo.toml
  21.123+- Containerfile
  21.124+- .hgignore/.gitignore
  21.125+
  21.126+We treat skelfiles as the mother of all build formats and consolidate
  21.127+different formats into our own project DSL. This helps reduce
  21.128+complexity while increasing capability and portability.
  21.129+
  21.130+Project compilation occurs on demand with the =sk compile= command.
  21.131+
  21.132+** TODO virtualization
  21.133+- State "TODO"       from              [2023-12-09 Sat 18:55]
  21.134+
  21.135+  =skel= offers a mechanism for generating and running Virtual
  21.136+  Machines (VMs) and Containers. Under the hood we depend on [[https://podman.io/][podman]]
  21.137+  for our container runtime as well as [[https://www.qemu.org/][QEMU]] for some
  21.138+  functionality.
  21.139+
  21.140+** TODO emacs integration
  21.141+- State "TODO"       from              [2023-12-09 Sat 19:30]
  21.142+=sk.el= is the Emacs support package for skel. It contains a
  21.143+=skel-mode= for working with skelfiles and will soon contain
  21.144+additional built-in integrations for =project.el=, =vc.el=, and more.
  21.145+** TODO deployment
  21.146+- State "TODO"       from              [2023-12-09 Sat 19:37]
  21.147+** TODO visualization
  21.148+- State "TODO"       from              [2023-12-09 Sat 19:37]
  21.149+* help
  21.150+#+begin_src shell :results pp replace :exports both
  21.151+skel -h
  21.152+#+end_src
  21.153+
  21.154+#+RESULTS:
  21.155+#+begin_example
  21.156+skel v0.1.1 --- A hacker's project compiler.
  21.157+
  21.158+  usage: skel [global] <command> [<arg>]
  21.159+
  21.160+options:
  21.161+  -h/--help* :  print this message
  21.162+  -v/--version* :  print version
  21.163+  -l/--level* :  set log level (warn,info,debug,trace)
  21.164+  -c/--config* :  set a custom skel user config
  21.165+  -i/--input* :  input source
  21.166+  -o/--output* :  output target
  21.167+
  21.168+commands:
  21.169+  init : initialize a skelfile in the current directory
  21.170+    -n/--name :  project name
  21.171+  new : make a new skel project
  21.172+    -n/--name :  project name
  21.173+  describe : describe a skelfile
  21.174+  show : show project slots
  21.175+    -f/--file :  path to skelfile
  21.176+    -u/--user :  print user configuration
  21.177+    -s/--system :  print system configuration
  21.178+  vc : version control
  21.179+    -r/--root :  repository path
  21.180+  id : print the project id
  21.181+  rev : print the current vc revision id
  21.182+  inspect : inspect the project skelfile
  21.183+    -f/--file :  path to skelfile
  21.184+  make : build project targets
  21.185+    -t/--target :  target to build
  21.186+  run : run a script or command
  21.187+  status : print the vc status
  21.188+  push : push the current project upstream
  21.189+  pull : pull the current project from remote
  21.190+  clone : clone a remote project
  21.191+  commit : commit changes to the project vc
  21.192+  edit : edit a project file in emacs.
  21.193+  shell : open the sk-shell interpreter
  21.194+#+end_example
  21.195+
    22.1--- a/core/ffi.org	Mon May 27 22:04:39 2024 -0400
    22.2+++ b/core/ffi.org	Sun Jun 02 00:42:41 2024 -0400
    22.3@@ -1,5 +1,5 @@
    22.4-{{{header(core/ffi,Richard Westhaver,ellis@rwest.io)}}}
    22.5-
    22.6+#+title: ffi
    22.7+#+author: Richard Westhaver
    22.8 This doc is about the [[https://en.wikipedia.org/wiki/Foreign_function_interface][Foreign Function Interface]] (FFI) features of the
    22.9 =core=. 
   22.10 
    23.1--- a/core/install.org	Mon May 27 22:04:39 2024 -0400
    23.2+++ b/core/install.org	Sun Jun 02 00:42:41 2024 -0400
    23.3@@ -1,30 +1,12 @@
    23.4-{{{header(core/install,Richard Westhaver,ellis@rwest.io,core installation
    23.5-guide)}}} 
    23.6-#+property: header-args :dir /home/ellis/dev/comp/core/
    23.7+#+title: install
    23.8+#+author: Richard Westhaver
    23.9+#+email: ellis@rwest.io
   23.10+#+property: header-args :dir /home/ellis/comp/core/
   23.11 The core is distributed via our public package registry:
   23.12 [[https://packy.compiler.company][packy.compiler.company]]. You can install any part of the core - from a
   23.13 complete Linux system to individual packages. Refer to the packy
   23.14 documentation for details.
   23.15 
   23.16-The simplest way to get started is by getting the installer for your
   23.17-platform with the following script:
   23.18-
   23.19-#+begin_src shell :results pp replace :exports both :noeval t
   23.20-curl --proto '=https' --tlsv1.2 -sSf https://packy.compiler.company/do/init.sh | sh # -s -- --help
   23.21-#+end_src
   23.22-
   23.23-#+RESULTS:
   23.24-#+begin_example
   23.25-
   23.26-cc-init 0.1.0-0941fa04c53d+
   23.27-
   23.28-Usage: cc-init [OPTIONS]
   23.29-
   23.30-Options:
   23.31-  -y              Disable confirmation prompts
   23.32-  -l, --level...  Set the log level
   23.33-  -h, --help      Print help
   23.34-  -V, --version   Print version
   23.35 #+end_example
   23.36 * TODO Packages
   23.37 - State "TODO"       from              [2023-11-25 Sat 18:28]
    24.1--- a/core/readme.org	Mon May 27 22:04:39 2024 -0400
    24.2+++ b/core/readme.org	Sun Jun 02 00:42:41 2024 -0400
    24.3@@ -10,14 +10,16 @@
    24.4 - [[file:todo.org][Todo]] :: Project Tasks
    24.5 - [[file:notes.org][Notes]] :: Internal Notes
    24.6 
    24.7+* [[file:api.org][API]] 
    24.8+API Docs
    24.9+
   24.10 * [[file:app][APP]] 
   24.11 App Docs
   24.12-
   24.13 * [[file:lib][LIB]] 
   24.14 Library Docs
   24.15-
   24.16 * [[file:ffi.org][FFI]] 
   24.17 FFI Docs
   24.18-
   24.19-* [[file:api][API]] 
   24.20-API Reference
   24.21+* [[file:ref][REF]]
   24.22+Reference Manual
   24.23+* [[file:man][MAN]]
   24.24+User Manual
    25.1--- a/core/stats.org	Mon May 27 22:04:39 2024 -0400
    25.2+++ b/core/stats.org	Sun Jun 02 00:42:41 2024 -0400
    25.3@@ -1,5 +1,6 @@
    25.4 # -*- org-export-babel-evaluate: nil -*-
    25.5-{{{header(docs/core,Richard Westhaver,ellis@rwest.io)}}}
    25.6+#+title: stats
    25.7+#+author: Richard Westhaver
    25.8 #+property: header-args :dir /home/ellis/comp/core/
    25.9 * vc
   25.10 #+begin_src shell :results pp :exports results
   25.11@@ -14,7 +15,8 @@
   25.12 : 2024-02   5701 *****
   25.13 : 2024-03  27292 ***************************
   25.14 : 2024-04  23322 ***********************
   25.15-: 2024-05  15468 ***************
   25.16+: 2024-05  24141 ***********************
   25.17+: 2024-06    341 
   25.18 
   25.19 * files
   25.20 #+begin_src shell :results pp :exports results
    26.1--- a/core/tests.org	Mon May 27 22:04:39 2024 -0400
    26.2+++ b/core/tests.org	Sun Jun 02 00:42:41 2024 -0400
    26.3@@ -1,5 +1,6 @@
    26.4 # -*- org-export-babel-evaluate: nil -*-
    26.5-{{{header(tests,Richard Westhaver,ellis@rwest.io,core test results)}}}
    26.6+#+title: tests
    26.7+#+author: Richard Westhaver
    26.8 #+property: header-args :dir /home/ellis/dev/comp/core/
    26.9 Unit tests are performed on a per-lang basis and described in the
   26.10 sections below. 
    27.1--- a/demo/readme.org	Mon May 27 22:04:39 2024 -0400
    27.2+++ b/demo/readme.org	Sun Jun 02 00:42:41 2024 -0400
    27.3@@ -1,4 +1,5 @@
    27.4-{{{header(docs/demo,Richard Westhaver,ellis@rwest.io)}}}
    27.5+#+title: demo
    27.6+#+author: Richard Westhaver
    27.7 #+EXPORT_FILE_NAME: index
    27.8 
    27.9 - [[file:stats.org][Stats]] :: Project Statistics
    28.1--- a/demo/stats.org	Mon May 27 22:04:39 2024 -0400
    28.2+++ b/demo/stats.org	Sun Jun 02 00:42:41 2024 -0400
    28.3@@ -1,5 +1,18 @@
    28.4-{{{header(demo/stats,Richard Westhaver,ellis@rwest.io)}}}
    28.5-#+property: header-args :dir /home/ellis/dev/comp/demo/
    28.6+#+title: stats
    28.7+#+author: Richard Westhaver
    28.8+#+property: header-args :dir /home/ellis/comp/demo/
    28.9+#+begin_src shell :results pp :exports results
   28.10+  hg churn -f "%Y-%m" -s
   28.11+#+end_src
   28.12+
   28.13+#+RESULTS:
   28.14+: 2023-04    949 *
   28.15+: 2023-05   7233 ***********
   28.16+: 2023-06  37455 *************************************************************
   28.17+: 2023-08     99 
   28.18+: 2023-12    350 
   28.19+: 2024-04    737 *
   28.20+
   28.21 #+begin_src shell :results pp :exports results
   28.22   tokei
   28.23 #+end_src
   28.24@@ -9,11 +22,11 @@
   28.25 ===============================================================================
   28.26  Language            Files        Lines         Code     Comments       Blanks
   28.27 ===============================================================================
   28.28- Lisp                   22          688          505           63          120
   28.29+ Lisp                   41         3077         2346          243          488
   28.30  Makefile                1           23           20            3            0
   28.31- Org                     2          131          127            0            4
   28.32- Shell                   1          592          459           63           70
   28.33- Plain Text              2            2            0            2            0
   28.34+ Org                     2           45           45            0            0
   28.35+ Shell                   2          618          477           64           77
   28.36+ Plain Text              4            6            0            6            0
   28.37  TOML                    6           85           81            0            4
   28.38 -------------------------------------------------------------------------------
   28.39  HTML                    1            7            7            0            0
   28.40@@ -24,6 +37,6 @@
   28.41  |- Markdown             9           36            0           32            4
   28.42  (Total)                            779          635           35          109
   28.43 ===============================================================================
   28.44- Total                  52         2271         1834          134          303
   28.45+ Total                  74         4604         3611          319          674
   28.46 ===============================================================================
   28.47 #+end_example
    29.1--- a/infra/quickstart.org	Mon May 27 22:04:39 2024 -0400
    29.2+++ b/infra/quickstart.org	Sun Jun 02 00:42:41 2024 -0400
    29.3@@ -4,8 +4,7 @@
    29.4 Infra Quickstart Guide)}}}
    29.5 #+property: header-args :dir /home/ellis/comp/infra/
    29.6 
    29.7-The CC =infra= project can be thought of as one big Makefile, and
    29.8-currently it is one.
    29.9+The CC =infra= project is the CC software deployment toolkit.
   29.10 
   29.11 - *Host Requirements*
   29.12   - x86_64 4 core CPU
   29.13@@ -59,21 +58,12 @@
   29.14 | CARGO_HOME=     |
   29.15 | RUSTUP_HOME=    |
   29.16 
   29.17-* TODO install.sh
   29.18-Install core dependencies.
   29.19-
   29.20-This script will install missing core binaries and libraries to the
   29.21-=infra= stash directory.
   29.22-- sbcl
   29.23-- librocksdb
   29.24-- rust
   29.25-
   29.26 * TODO bootstrap.sh
   29.27 Bootstrap the core.
   29.28 
   29.29-- download and run =cc-install=
   29.30-- install the latest =infra= lisp core from
   29.31-  https://packy.compiler.company to the stash
   29.32+- download and prepare target-specific dependencies
   29.33+- install the latest =sk= binary from https://packy.compiler.company
   29.34+  to the stash
   29.35 - compile and load =bootstrap.lisp=
   29.36 
   29.37 Upon completion a local =stash= directory is provisioned. At this
   29.38@@ -95,3 +85,7 @@
   29.39 the build-config and skelfile slots.
   29.40 
   29.41 Production deployments end up at https://packy.compiler.company.
   29.42+
   29.43+
   29.44+* TODO install.lisp
   29.45+Install core packages locally.
    30.1--- a/infra/stats.org	Mon May 27 22:04:39 2024 -0400
    30.2+++ b/infra/stats.org	Sun Jun 02 00:42:41 2024 -0400
    30.3@@ -1,8 +1,26 @@
    30.4-{{{header(docs/core,Richard Westhaver,ellis@rwest.io)}}}
    30.5+#+title: stats
    30.6+#+author: Richard Westhaver
    30.7+#+email: ellis@rwest.io
    30.8 #+property: header-args :dir /home/ellis/comp/infra/
    30.9 
   30.10+#+begin_src shell :results pp
   30.11+  hg churn -f "%Y-%m" -s
   30.12+#+end_src
   30.13+
   30.14+#+RESULTS:
   30.15+: 2023-07     61 
   30.16+: 2023-11   5004 ***************************
   30.17+: 2023-12   2690 **************
   30.18+: 2024-01  11278 *************************************************************
   30.19+: 2024-02   1021 *****
   30.20+: 2024-03     21 
   30.21+: 2024-04   2063 ***********
   30.22+: 2024-05   8443 *********************************************
   30.23+: 2024-06     35 
   30.24+
   30.25+
   30.26 #+begin_src shell :results pp :exports results
   30.27-  tokei -e{build,cdn,dist}/*
   30.28+  tokei -e{.stash}/*
   30.29 #+end_src
   30.30 
   30.31 #+RESULTS:
   30.32@@ -11,10 +29,10 @@
   30.33  Language            Files        Lines         Code     Comments       Blanks
   30.34 ===============================================================================
   30.35  Lisp                    4          208          144           21           43
   30.36- Makefile                1          276          213           28           35
   30.37+ Makefile                1          277          214           28           35
   30.38  Org                     3           36           30            0            6
   30.39- Shell                  56         1726         1276          270          180
   30.40+ Shell                  70         1584         1147          283          154
   30.41 ===============================================================================
   30.42- Total                  64         2246         1663          319          264
   30.43+ Total                  78         2105         1535          332          238
   30.44 ===============================================================================
   30.45 #+end_example
    31.1--- a/readme.org	Mon May 27 22:04:39 2024 -0400
    31.2+++ b/readme.org	Sun Jun 02 00:42:41 2024 -0400
    31.3@@ -1,12 +1,24 @@
    31.4-{{{header(
    31.5-  docs,
    31.6-  Richard Westhaver,
    31.7-  ellis@rwest.io,
    31.8-  The Compiler Company Documentation)}}}
    31.9+#+title: Documentation
   31.10+#+author: Richard Westhaver
   31.11+#+email: ellis@rwest.io
   31.12+#+description: The Compiler Company Documentation Repository
   31.13 #+EXPORT_FILE_NAME: index
   31.14 
   31.15+This project contains the sources for all CC documentation. Choose one
   31.16+of the categories below to get started.
   31.17+
   31.18 * [[file:meta][Meta]]
   31.19+Meta-docs. Contains some internal system ramblings.
   31.20 * [[file:core][Core]]
   31.21+Documentation for the Core software suite.
   31.22 * [[file:infra][Infra]]
   31.23+Infrastructure Documentation.
   31.24 * products
   31.25+Products are a moving target for us at the moment. This section is
   31.26+bound to change.
   31.27 ** [[https://compiler.company/docs/nas-t][NAS-T]]
   31.28+Network Attached Storage Technology.
   31.29+
   31.30+LAN Boxes and modules. Storage Tech Consulting, Distributed
   31.31+Infra/Compute.
   31.32+** OTOM8