# HG changeset patch # User Richard Westhaver # Date 1725762887 14400 # Node ID 9f2e9e64733350f6efe9ac7d8ce7b43b42c5d799 # Parent ac162428d5e349407a391c42dead8c962c210d20 core documentation and stats diff -r ac162428d5e3 -r 9f2e9e647333 core/api.org --- a/core/api.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#+title: Core API -#+author: Richard Westhaver -#+options: ^:nil toc:nil num:nil html-postamble:nil -#+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content -This documentation is automatically generated based on the default -branch of the [[https://vc.compiler.company/core][core]]. - -#+begin_src lisp :results silent -(ql:quickload :user) -#+end_src - -#+begin_src lisp :results output replace -#+end_src - -#+RESULTS: diff -r ac162428d5e3 -r 9f2e9e647333 core/app/homer.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/homer.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,32 @@ +#+title: homer +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +* help +:PROPERTIES: +:ID: c7d8f1e6-cbcf-4736-b48b-d76f70c3a745 +:END: +#+begin_src shell :results pp replace :exports both +homer -h +#+end_src + +#+RESULTS: +#+begin_example +homer v0.1.0 --- user home manager + + usage: homer [global] [] + +options: + -l/--level* : set the log level + -h/--help* : print help + -v/--version* : print version + -f/--force* : use force + +commands: + show + check + push + pull + install +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/app/krypt.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/krypt.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,32 @@ +#+title: krypt +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +* help +:PROPERTIES: +:ID: cefd6977-2f05-4541-a04e-3d8e20d82b02 +:END: +#+begin_src shell :results pp replace :exports both +krypt -h +#+end_src + +#+RESULTS: +#+begin_example +Krypt CLI + +Usage: krypt [OPTIONS] [COMMAND] + +Commands: + check check service providers and config + show Show Krypt info + search Query the Krypt + help Print this message or the help of the given subcommand(s) + +Options: + -c, --cfg Set the default config file [env: KRYPT_CONFIG_FILE=] + -u, --user Set a user for this command [env: USER=ellis] + -l, --level... Set log level + -h, --help Print help + -V, --version Print version +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/app/mailman.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/mailman.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,33 @@ +#+title: mailman +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +* help +:PROPERTIES: +:ID: 2f0abc41-8748-4946-acec-cf3ee30a1bf4 +:END: +#+begin_src shell :results pp replace :exports both +mailman -h +#+end_src + +#+RESULTS: +#+begin_example +Mail client util + +Usage: mailman [OPTIONS] [COMMAND] + +Commands: + ping Ping the server + search Search for items + import Import an account + export Export an account + help Print this message or the help of the given subcommand(s) + +Options: + -c, --cfg Set the default config file [env: MAILMAN_CONFIG_FILE=] + -u, --user Set a user for this command [env: USER=ellis] + -l, --level... Set log level + -h, --help Print help + -V, --version Print version +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/app/organ.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/organ.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,51 @@ +#+title: organ +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +The =organ= CLI tool is used to manipulate [[https://orgmode.org/][Org Mode]] files. + +* Overview +:PROPERTIES: +:ID: ff9147a1-da33-46b1-b398-b87049e6c197 +:END: +=Org-mode= the application depends on Emacs (it's written in Emacs +Lisp) but that doesn't mean we need to. To solve the issue of +interoperability between different systems, we are developing a tool +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 +Org documents that doesn't depend on GNU Emacs. + +If we were designing a /personal/ note-taking system, I would argue +that we don't need this tool. The problem is it's /not/ personal - we +have a much wider intended audience and need to present information in +many different ways. This means thinking about hundreds to thousands +of documents instead of tens, about processing those documents into a +full-text search database, and reducing cost along the way. + +Emacs can do all of these things, but do you really want it to? + +* help +:PROPERTIES: +:ID: 36603658-8f85-435c-b6b3-f8da47237f5c +:END: +#+begin_src shell :results pp replace :exports both +organ -h +#+end_src + +#+RESULTS: +#+begin_example +organ v0.0.1 --- org-mode toolbox + + usage: organ [global] [] + +options: + -l/--level* : set the log level + -h/--help* : print help + -v/--version* : print version + +commands: + inspect : inspect an org file + show : display local org info + describe : describe local org info + parse +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/app/packy.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/packy.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,33 @@ +#+title: packy +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +Packy is a universal package manager. The packy CLI tool is used to +query and download resources from local or remote stores. +* help +:PROPERTIES: +:ID: 167ef450-85d0-449d-8ef1-4a8699678610 +:END: +#+begin_src shell :results pp replace +packy -h +#+end_src + +#+RESULTS: +#+begin_example +packy v0.1.0 --- Universal Package Manager + + usage: packy [global] [] + +options: + -l/--level* : set the log level + -h/--help* : print help + -v/--version* : print version + +commands: + show + -n/--name* + -t/--target + -t/--thunk* + -p/--pk-target* +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/app/rdb.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/rdb.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,6 @@ +#+title: rdb +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +The =rdb= cli tool is a simple RocksDB management utility. diff -r ac162428d5e3 -r 9f2e9e647333 core/app/readme.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/readme.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,36 @@ +#+title: Applications +#+author: Richard Westhaver +#+description: Core Program Docs +#+options: ^:nil toc:nil num:nil html-postamble:nil +#+export_file_name: index +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +* [[file:skel.org][skel]] :lisp: +:PROPERTIES: +:ID: 8950ca5b-b546-444e-ac8f-75a35b895a0f +:END: +* [[file:organ.org][organ]] :lisp: +:PROPERTIES: +:ID: ba0a3a00-fee2-41e8-9a94-d798317b6540 +:END: +* [[file:packy.org][packy]] :lisp: +:PROPERTIES: +:ID: d21d2652-b5d4-45bd-b312-bab85d6c28a7 +:END: +* [[file:homer.org][homer]] :lisp: +:PROPERTIES: +:ID: 6170e3b4-5e87-40f0-88a5-e18096db5199 +:END: +* [[file:rdb.org][rdb]] :lisp: +:PROPERTIES: +:ID: bdc834cc-d38b-471c-96c2-43126e98ce6e +:END: +* [[file:mailman.org][mailman]] :rust: +:PROPERTIES: +:ID: 51f950dc-cef2-43ce-ab62-b8def98c26bb +:END: +* [[file:krypt.org][krypt]] :rust:lisp: +:PROPERTIES: +:ID: 837d12da-c732-4b1a-aff0-bbe992b48c98 +:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/app/skel.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/app/skel.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,236 @@ +#+title: skel +#+author: Richard Westhaver +#+setupfile: ../../../clean.theme +#+OPTIONS: num:nil + +=skel= is the primary build tool for contributors and serves a +similar role to language-agnostic build tools like [[https://www.gnu.org/software/make/][GNU Make]], but with +the features and ease-of-use of language-specific build tools like +Rust's [[https://github.com/rust-lang/cargo][Cargo]]. + +* features +:PROPERTIES: +:ID: 90d78420-e6d9-4f18-8222-89c4670633b4 +:END: +** configuration +:PROPERTIES: +:ID: 2658a3d1-cfa5-436e-b2b0-9cf42a6f66c6 +:END: +The ~skel~ tool can be configured at runtime using the CLI flags, or +via local configuration files. The configuration files are in the +~skelfile~ format and are assigned the following locations by default: +- ~*default-user-skelrc*~ :: =$HOME/.skelrc= +- ~*default-system-skelrc*~ :: =/etc/skel/skelrc= + +Both files are optional and the user skelrc takes precedence over +system. + +Example =~/.skelrc=: +#+begin_src shell :results output +cat ~/.skelrc +#+end_src + +#+RESULTS: +#+begin_example +;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*- +:name "Richard Westhaver" +:email "richard.westhaver@gmail.com" +:user "ellis" +:version "0.1.0" +:tags ("auto") +:fmt :pretty +:vc :hg +:auto-insert t +:license :mpl2 +:log-level :info +:stash ".stash" +;; :scratch ".stash/scratch" +:cache ".stash/cache" +:registry ".data/skel/registry" +:scripts ("/usr/local/share/stash/scripts" "~/stash/scripts") +#+end_example + +** projects +:PROPERTIES: +:ID: 359441da-1b61-4d73-8563-605ea7262b58 +:END: +Projects are the highest-level objects int the ~skel~ system. A project +consists of a list of slots which are populated automatically or by +the user. Once a project is initialized the slots can be accessed and +a set of high-level operations can be performed. + +The easiest way to initialize a project is with a ~skelfile~. These +files are parsed as a simplified Lisp dialect and generate +~sk-project~ objects based on their contents. + +The simplest project looks like this: + +#+begin_src skel :noeval t +:name hello-world +#+end_src + +Don't worry, this is still lisp - the parentheses are implied. All we +actually need is a name to generate an object, and we can fill in the +blanks later as the project develops. + +Here is a more verbose example, still with only metadata: + +#+begin_src skel :noeval t +;;; skelfile --- core skelfile -*- mode: skel; -*- +:name "core" +:author "Richard Westhaver " +:version "0.1.0" +:license "MPL" +:description "The Compiler Company Core" +:vc :hg +:tags ("core") +:docs ((:org "readme") (:org "install") (:org "tests") (:org "todo")) +:import ("lisp/lisp.sk" "rust/rust.sk") +#+end_src + +Another example with rules and components: + +#+begin_src skel :noeval t +;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*- +:name skel +:author "ellis" +:version "0.1.0" +:description "a hacker's project compiler" +:license "MPL" +:vc :hg +:tags ("lisp") +:rules ((build () (print (asdf:make :skel/cli))) + (clean () #$rm -rf */*.fasl$#)) +:docs ((:org "readme")) +:components +((:elisp "sk")) +:stash "~/dev/comp/stash" +#+end_src +** version control +:PROPERTIES: +:ID: c15f58b5-d55e-425b-acf5-7001ef4591e4 +:END: +=skel= integrates closely with our Version Control System which +is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]] +repositories. + +The =skel= tool helps us abstract away the differences between git/hg +and make maximum use of their utility. When you run a =skel vc= +command the currently active ~sk-project~ and configuration are used +to determine the appropriate VC backend to call. New backends can of +course be added as extensions. + +** TODO compilers +:PROPERTIES: +:ID: 5ec3ae9d-8846-4374-a42b-5701606ad119 +:END: +- State "TODO" from [2023-12-09 Sat 19:28] +One of the most unusual features of =skel= is the compiler set. With +the =skel= CLI you can compile the following types of files for your +project directly from a ~skelfile~: +- Makefile (.mk) +- Lisp system defs (.asd) +- Cargo.toml +- Containerfile +- .hgignore/.gitignore + +We treat skelfiles as the mother of all build formats and consolidate +different formats into our own project DSL. This helps reduce +complexity while increasing capability and portability. + +Project compilation occurs on demand with the =sk compile= command. + +** TODO virtualization +:PROPERTIES: +:ID: fea87861-30c2-4739-b964-1ecb87d3ddff +:END: +- State "TODO" from [2023-12-09 Sat 18:55] + + =skel= offers a mechanism for generating and running Virtual + Machines (VMs) and Containers. Under the hood we depend on [[https://podman.io/][podman]] + for our container runtime as well as [[https://www.qemu.org/][QEMU]] for some functionality. + +** TODO emacs integration +:PROPERTIES: +:ID: 3df22a04-3f6b-4738-bd5f-3eb91977d3af +:END: +- State "TODO" from [2023-12-09 Sat 19:30] +=sk.el= is the Emacs support package for skel. It contains a +=skel-mode= for working with skelfiles and will soon contain +additional built-in integrations for =project.el=, =vc.el=, and more. +** TODO deployment +:PROPERTIES: +:ID: 7e66bdf6-304e-423e-8db4-783e7f6ccfd7 +:END: +- State "TODO" from [2023-12-09 Sat 19:37] +** TODO visualization +:PROPERTIES: +:ID: efa22675-70d6-453f-b377-8e76875e5f1f +:END: +- State "TODO" from [2023-12-09 Sat 19:37] +* help +:PROPERTIES: +:ID: f8e9fab4-67dc-4e7f-b172-7e0fc21047ad +:END: +#+begin_src shell :results pp replace :exports both +skel -h +#+end_src + +#+RESULTS: +#+begin_example +skel v0.1.1:97dd03beda03+ --- A hacker's project compiler. + + usage: skel [global] [] + +options: + -h/--help* : print this message + -v/--version* : print version + -l/--level* : set log level (warn,info,debug,trace) + -c/--config* : set a custom skel user config + -i/--input* : input source + -o/--output* : output target + +commands: + init : initialize a skelfile in the current directory + -n/--name* + -n/--name + -d/--description* + -p/--project name + -k/--kind* + -s/--string* + new : make a new skel project + -n/--name : project name + describe : describe a skelfile + show : show project slots + -f/--file : path to skelfile + -u/--user : print user configuration + -s/--system : print system configuration + vc : version control + -r/--root : repository path + id : print the project id + inspect : inspect the project skelfile + -f/--file : path to skelfile + make : build project targets + -t/--target : target to build + run : run a script or command + compile : compile source code + build : build programs and libraries + dist : distribute build artifacts + install : install stuff + pack : pack stuff + unpack : unpack stuff + bundle : bundle source code + unbundle : unbundle source code + clean : clean up the project + test : run tests + bench : run benchmark + status : print the vc status + push : push the current project upstream + pull : pull the current project from remote + clone : clone a remote project + commit : commit changes to the project vc + edit : edit a project file in emacs. + shell : open the sk-shell interpreter + +#+end_example + diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/homer.org --- a/core/bin/homer.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -#+title: homer -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showall - -* help -:PROPERTIES: -:ID: c7d8f1e6-cbcf-4736-b48b-d76f70c3a745 -:END: -#+begin_src shell :results pp replace :exports both -homer -h -#+end_src - -#+RESULTS: -#+begin_example -homer v0.1.0 --- user home manager - - usage: homer [global] [] - -options: - -l/--level* : set the log level - -h/--help* : print help - -v/--version* : print version - -f/--force* : use force - -commands: - show - check - push - pull - install -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/krypt.org --- a/core/bin/krypt.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -#+title: krypt -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showal - -* help -:PROPERTIES: -:ID: cefd6977-2f05-4541-a04e-3d8e20d82b02 -:END: -#+begin_src shell :results pp replace :exports both -krypt -h -#+end_src - -#+RESULTS: -#+begin_example -Krypt CLI - -Usage: krypt [OPTIONS] [COMMAND] - -Commands: - check check service providers and config - show Show Krypt info - search Query the Krypt - help Print this message or the help of the given subcommand(s) - -Options: - -c, --cfg Set the default config file [env: KRYPT_CONFIG_FILE=] - -u, --user Set a user for this command [env: USER=ellis] - -l, --level... Set log level - -h, --help Print help - -V, --version Print version -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/mailman.org --- a/core/bin/mailman.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -#+title: mailman -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showall - -* help -:PROPERTIES: -:ID: 2f0abc41-8748-4946-acec-cf3ee30a1bf4 -:END: -#+begin_src shell :results pp replace :exports both -mailman -h -#+end_src - -#+RESULTS: -#+begin_example -Mail client util - -Usage: mailman [OPTIONS] [COMMAND] - -Commands: - ping Ping the server - search Search for items - import Import an account - export Export an account - help Print this message or the help of the given subcommand(s) - -Options: - -c, --cfg Set the default config file [env: MAILMAN_CONFIG_FILE=] - -u, --user Set a user for this command [env: USER=ellis] - -l, --level... Set log level - -h, --help Print help - -V, --version Print version -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/organ.org --- a/core/bin/organ.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -#+title: organ -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showall - -The =organ= CLI tool is used to manipulate [[https://orgmode.org/][Org Mode]] files. - -* Overview -:PROPERTIES: -:ID: ff9147a1-da33-46b1-b398-b87049e6c197 -:END: -=Org-mode= the application depends on Emacs (it's written in Emacs -Lisp) but that doesn't mean we need to. To solve the issue of -interoperability between different systems, we are developing a tool -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 -Org documents that doesn't depend on GNU Emacs. - -If we were designing a /personal/ note-taking system, I would argue -that we don't need this tool. The problem is it's /not/ personal - we -have a much wider intended audience and need to present information in -many different ways. This means thinking about hundreds to thousands -of documents instead of tens, about processing those documents into a -full-text search database, and reducing cost along the way. - -Emacs can do all of these things, but do you really want it to? - -* help -:PROPERTIES: -:ID: 36603658-8f85-435c-b6b3-f8da47237f5c -:END: -#+begin_src shell :results pp replace :exports both -organ -h -#+end_src - -#+RESULTS: -#+begin_example -organ v0.0.1 --- org-mode toolbox - - usage: organ [global] [] - -options: - -l/--level* : set the log level - -h/--help* : print help - -v/--version* : print version - -commands: - inspect : inspect an org file - show : display local org info - describe : describe local org info - parse -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/packy.org --- a/core/bin/packy.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -#+title: packy -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showall - -Packy is a universal package manager. The packy CLI tool is used to -query and download resources from local or remote stores. -* help -:PROPERTIES: -:ID: 167ef450-85d0-449d-8ef1-4a8699678610 -:END: -#+begin_src shell :results pp replace -packy -h -#+end_src - -#+RESULTS: -#+begin_example -#:debug 0.190001; (#S(CLI-NODE - :KIND OPT - :FORM #)) -packy v0.1.0 --- Universal Package Manager - - usage: packy [global] [] - -options: - -l/--level* : set the log level - -h/--help* : print help - -v/--version* : print version - -commands: - show -#:debug 0.193334; /home/ellis/comp/org/docs/core/bin -; #(#) -; NIL -; #() -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/rdb.org --- a/core/bin/rdb.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -#+title: rdb -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:showall - -The =rdb= cli tool is a simple RocksDB management utility. - -* help -:PROPERTIES: -:ID: d66cd17e-10a8-401e-aaf8-85ff6df3ee63 -:END: -#+begin_src shell :results pp replace :exports both -rdb -h -#+end_src - -#+RESULTS: -#+begin_example -rdb v0.1.0 --- A simple helper for RocksDB. - - usage: rdb [global] [] - -options: - -l/--level* : set the log level - -h/--help* : print help - -v/--version* : print version - -d/--db* : target db - -commands: - new - show - set - get - fuzz - destroy -#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/readme.org --- a/core/bin/readme.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -#+title: Core Program Binaries -#+author: Richard Westhaver -#+description: Core Program Docs -#+options: ^:nil toc:nil num:nil html-postamble:nil -#+export_file_name: index -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:content - -* [[file:skel.org][skel]] :lisp: -:PROPERTIES: -:ID: 8950ca5b-b546-444e-ac8f-75a35b895a0f -:END: -* [[file:organ.org][organ]] :lisp: -:PROPERTIES: -:ID: ba0a3a00-fee2-41e8-9a94-d798317b6540 -:END: -* [[file:packy.org][packy]] :lisp: -:PROPERTIES: -:ID: d21d2652-b5d4-45bd-b312-bab85d6c28a7 -:END: -* [[file:homer.org][homer]] :lisp: -:PROPERTIES: -:ID: 6170e3b4-5e87-40f0-88a5-e18096db5199 -:END: -* [[file:rdb.org][rdb]] :lisp: -:PROPERTIES: -:ID: bdc834cc-d38b-471c-96c2-43126e98ce6e -:END: -* [[file:mailman.org][mailman]] :rust: -:PROPERTIES: -:ID: 51f950dc-cef2-43ce-ab62-b8def98c26bb -:END: -* [[file:krypt.org][krypt]] :rust:lisp: -:PROPERTIES: -:ID: 837d12da-c732-4b1a-aff0-bbe992b48c98 -:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/bin/skel.org --- a/core/bin/skel.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -#+title: skel -#+author: Richard Westhaver -#+setupfile: ../../../clean.theme -#+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:content - -The =skel= CLI is the primary build tool for contributors and serves a -similar role to language-agnostic build tools like [[https://www.gnu.org/software/make/][GNU Make]], but with -the features and ease-of-use of language-specific build tools like -Rust's [[https://github.com/rust-lang/cargo][Cargo]]. - -* features -:PROPERTIES: -:ID: 90d78420-e6d9-4f18-8222-89c4670633b4 -:END: -** configuration -:PROPERTIES: -:ID: 2658a3d1-cfa5-436e-b2b0-9cf42a6f66c6 -:END: -The ~skel~ tool can be configured at runtime using the CLI flags, or -via local configuration files. The configuration files are in the -~skelfile~ format and are assigned the following locations by default: -- ~*default-user-skelrc*~ :: =$HOME/.skelrc= -- ~*default-system-skelrc*~ :: =/etc/skel/skelrc= - -Both files are optional and the user skelrc takes precedence over -system. - -Example =~/.skelrc=: -#+begin_src shell :results output -cat ~/.skelrc -#+end_src - -#+RESULTS: -#+begin_example -;;; .skelrc @ 2023-10-12.02:58:08 -*- mode: skel; -*- -:name "Richard Westhaver" -:email "richard.westhaver@gmail.com" -:user "ellis" -:version "0.1.0" -:tags ("auto") -:fmt :pretty -:vc :hg -:auto-insert t -:license :mpl2 -:log-level :info -:stash ".stash" -;; :scratch ".stash/scratch" -:cache ".stash/cache" -:registry ".data/skel/registry" -:scripts ("/usr/local/share/stash/scripts" "~/stash/scripts") -#+end_example - -** projects -:PROPERTIES: -:ID: 359441da-1b61-4d73-8563-605ea7262b58 -:END: -Projects are the highest-level objects int the ~skel~ system. A project -consists of a list of slots which are populated automatically or by -the user. Once a project is initialized the slots can be accessed and -a set of high-level operations can be performed. - -The easiest way to initialize a project is with a ~skelfile~. These -files are parsed as a simplified Lisp dialect and generate -~sk-project~ objects based on their contents. - -The simplest project looks like this: - -#+begin_src skel :noeval t -:name hello-world -#+end_src - -Don't worry, this is still lisp - the parentheses are implied. All we -actually need is a name to generate an object, and we can fill in the -blanks later as the project develops. - -Here is a more verbose example, still with only metadata: - -#+begin_src skel :noeval t -;;; skelfile --- core skelfile -*- mode: skel; -*- -:name "core" -:author "Richard Westhaver " -:version "0.1.0" -:license "MPL" -:description "The Compiler Company Core" -:vc :hg -:tags ("core") -:docs ((:org "readme") (:org "install") (:org "tests") (:org "todo")) -:import ("lisp/lisp.sk" "rust/rust.sk") -#+end_src - -Another example with rules and components: - -#+begin_src skel :noeval t -;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*- -:name skel -:author "ellis" -:version "0.1.0" -:description "a hacker's project compiler" -:license "MPL" -:vc :hg -:tags ("lisp") -:rules ((build () (print (asdf:make :skel/cli))) - (clean () #$rm -rf */*.fasl$#)) -:docs ((:org "readme")) -:components -((:elisp "sk")) -:stash "~/dev/comp/stash" -#+end_src -** version control -:PROPERTIES: -:ID: c15f58b5-d55e-425b-acf5-7001ef4591e4 -:END: -=skel= integrates closely with our Version Control System (VCS) which -is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]] -repositories. - -The =skel= tool helps us abstract away the differences between git/hg -and make maximum use of their utility. When you run a =skel vc= -command the currently active ~sk-project~ and configuration are used -to determine the appropriate VC backend to call. New backends can of -course be added as extensions. - -** TODO compilers -:PROPERTIES: -:ID: 5ec3ae9d-8846-4374-a42b-5701606ad119 -:END: -- State "TODO" from [2023-12-09 Sat 19:28] -One of the most unusual features of =skel= is the compiler set. With -the =skel= CLI you can compile the following types of files for your -project directly from a ~skelfile~: -- Makefile (.mk) -- Lisp system defs (.asd) -- Cargo.toml -- Containerfile -- .hgignore/.gitignore - -We treat skelfiles as the mother of all build formats and consolidate -different formats into our own project DSL. This helps reduce -complexity while increasing capability and portability. - -Project compilation occurs on demand with the =sk compile= command. - -** TODO virtualization -:PROPERTIES: -:ID: fea87861-30c2-4739-b964-1ecb87d3ddff -:END: -- State "TODO" from [2023-12-09 Sat 18:55] - - =skel= offers a mechanism for generating and running Virtual - Machines (VMs) and Containers. Under the hood we depend on [[https://podman.io/][podman]] - for our container runtime as well as [[https://www.qemu.org/][QEMU]] for some - functionality. - -** TODO emacs integration -:PROPERTIES: -:ID: 3df22a04-3f6b-4738-bd5f-3eb91977d3af -:END: -- State "TODO" from [2023-12-09 Sat 19:30] -=sk.el= is the Emacs support package for skel. It contains a -=skel-mode= for working with skelfiles and will soon contain -additional built-in integrations for =project.el=, =vc.el=, and more. -** TODO deployment -:PROPERTIES: -:ID: 7e66bdf6-304e-423e-8db4-783e7f6ccfd7 -:END: -- State "TODO" from [2023-12-09 Sat 19:37] -** TODO visualization -:PROPERTIES: -:ID: efa22675-70d6-453f-b377-8e76875e5f1f -:END: -- State "TODO" from [2023-12-09 Sat 19:37] -* help -:PROPERTIES: -:ID: f8e9fab4-67dc-4e7f-b172-7e0fc21047ad -:END: -#+begin_src shell :results pp replace :exports both -skel -h -#+end_src - -#+RESULTS: -#+begin_example -skel v0.1.1 --- A hacker's project compiler. - - usage: skel [global] [] - -options: - -h/--help* : print this message - -v/--version* : print version - -l/--level* : set log level (warn,info,debug,trace) - -c/--config* : set a custom skel user config - -i/--input* : input source - -o/--output* : output target - -commands: - init : initialize a skelfile in the current directory - -n/--name : project name - new : make a new skel project - -n/--name : project name - describe : describe a skelfile - show : show project slots - -f/--file : path to skelfile - -u/--user : print user configuration - -s/--system : print system configuration - vc : version control - -r/--root : repository path - id : print the project id - rev : print the current vc revision id - inspect : inspect the project skelfile - -f/--file : path to skelfile - make : build project targets - -t/--target : target to build - run : run a script or command - status : print the vc status - push : push the current project upstream - pull : pull the current project from remote - clone : clone a remote project - commit : commit changes to the project vc - edit : edit a project file in emacs. - shell : open the sk-shell interpreter -#+end_example - diff -r ac162428d5e3 -r 9f2e9e647333 core/ffi.org --- a/core/ffi.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -#+title: ffi -#+author: Richard Westhaver -#+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content -This doc is about the [[https://en.wikipedia.org/wiki/Foreign_function_interface][Foreign Function Interface]] (FFI) features of the -=core=. - -Besides accessing system, OS, and external libraries via binding code -(dynamically in Lisp, statically in Rust), we also expose parts of the -core in a C-compatible fashion. In Lisp, we use the SB-ALIEN interface -to load (with dlopen) and call foreign symbols. In Rust we mostly use -rust-bindgen and the built-in rustc features. - -* Libraries -:PROPERTIES: -:ID: 1eb797dc-d617-46cc-89e8-7b6103e526d2 -:END: -The following binding libraries are provided with supporting -code. There is some cross-over between the Lisp and Rust bindings -depending on what library features we need and where. Some of the -bindings are very minimal or for experimental-use only only. -** xkb -:PROPERTIES: -:ID: 79b3a686-efe9-411e-9d1e-358113622949 -:END: -These bindings are actually directed at libxkbcommon instead of -x11/xkb directly. -*** xkbcommon -:PROPERTIES: -:ID: 9b9be592-1314-4926-940a-908ff4844e29 -:END: -https://xkbcommon.org/doc/current/md_doc_2quick-guide.html -** rocksdb -:PROPERTIES: -:ID: 5a1fd665-b72a-4d62-af4c-4967825f69c6 -:END: -[[https://github.com/facebook/rocksdb/wiki][RocksDB Wiki]] -** btrfs -:PROPERTIES: -:ID: 6b3dc423-0e1c-458d-9f8e-bf7456f9a048 -:END: -The kernel headers btrfs and btrfs_tree will be wrapped at some point -in addition to the userspace library (btrfsutil) documented below. -*** btrfsutil -:PROPERTIES: -:ID: 7296995d-2b67-45ec-94d9-8fe23126a602 -:END: -https://github.com/kdave/btrfs-progs -** uring -:PROPERTIES: -:ID: c0750228-7ba8-445a-8790-ca0310cf0a7d -:END: -https://man.archlinux.org/man/io_uring.7.en -** zstd -:PROPERTIES: -:ID: 6dbfed55-0d07-4090-bc3b-ea9317d9bfe5 -:END: -zstd compression bindings: https://github.com/facebook/zstd -** tree-sitter -:PROPERTIES: -:ID: 8527c382-ae65-4ad9-8f70-9ff5c6b152f0 -:END: -bindings to tree-sitter parser generator and language libraries: https://github.com/tree-sitter/tree-sitter -** COMMENT blake3 -:PROPERTIES: -:ID: a1807b79-9811-49f0-9524-cbf5e88c1a66 -:END: -temporary package for CL implementation of Blake3 SHA. Wraps C -implementation (libblake3). -** COMMENT alpm -:PROPERTIES: -:ID: cdd1682c-39b0-450e-a979-a5637cd15f43 -:END: -https://man.archlinux.org/man/core/pacman/libalpm.3.en -https://github.com/archlinux/alpm.rs/tree/382af70cdbff8e1f65c0bf8df79693786f44429c/alpm/examples - -** COMMENT bqn -:PROPERTIES: -:ID: 5014f979-5b3a-4dfc-89e3-5a5a23462a29 -:END: -These bindings are for libcbqn which can be build from CBQN: -https://github.com/dzaima/CBQN -** COMMENT k -:PROPERTIES: -:ID: 47a60640-e387-4ac7-ab45-4f7a763e9611 -:END: -https://codeberg.org/ngn/k -bindings for ngn/k (libk). -** COMMENT nuklear -:PROPERTIES: -:ID: e1e942b2-ebe0-48e9-bdd3-f4e27b7fed7c -:END: -** COMMENT ssh2 -:PROPERTIES: -:ID: 3c9e02d8-2c59-4ef5-8232-8422fd9e8ed3 -:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/install.org --- a/core/install.org Wed Sep 04 17:00:36 2024 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -#+title: install -#+author: Richard Westhaver -#+email: ellis@rwest.io -#+property: header-args :dir /home/ellis/comp/core/ -#+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:showall -The core is distributed via our public package registry: -[[https://packy.compiler.company][packy.compiler.company]]. You can install any part of the core - from a -complete Linux system to individual packages. Refer to the packy -documentation for details. - -#+end_example -* TODO Packages -:PROPERTIES: -:ID: 6152ea24-3ff8-4d63-b67b-a0dc27554088 -:END: -- State "TODO" from [2023-11-25 Sat 18:28] -** Crates :rust: -:PROPERTIES: -:ID: f75312a3-128e-4f1e-b7b9-aeada4aed456 -:END: -** ELPA :emacs: -:PROPERTIES: -:ID: 21e904b6-d85d-4028-a30e-2abca9f3ee74 -:END: -** Quicklisp Dist :lisp: -:PROPERTIES: -:ID: 7d04b352-ac48-4198-9e60-920fa2d5ff33 -:END: -** PKGBUILDs :pacman: -:PROPERTIES: -:ID: 2bcf0ab3-ff04-459c-a34a-c1095c950179 -:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/lib/cli.org --- a/core/lib/cli.org Wed Sep 04 17:00:36 2024 -0400 +++ b/core/lib/cli.org Sat Sep 07 22:34:47 2024 -0400 @@ -1,24 +1,16 @@ -#+title: CLI +#+title: cli #+author: Richard Westhaver #+description: Command-line Interface Library #+setupfile: ../../../clean.theme #+filetags: lisp cli #+property: header-args :dir ~/comp/core/ :exports both #+setupfile: ../../../clean.theme -#+INFOJS_OPT: toc:nil - * Overview :PROPERTIES: :ID: fb7c1b49-e293-41b7-863c-f38eaa361080 :END: -The =cli= library is a fully-featured toolkit for building [[https://en.wikipedia.org/wiki/Command-line_interface][CLI]] -programs. - - -* stats -:PROPERTIES: -:ID: 36ae93c8-83f4-4a03-a348-8eee8554c59a -:END: +The =cli= library is a fully-featured toolkit for working with and +building [[https://en.wikipedia.org/wiki/Command-line_interface][CLI]] programs. ** dependencies :PROPERTIES: :ID: 5d0f369d-5de0-41b1-8288-2633a84c3a42 @@ -33,6 +25,7 @@ - std - log - dat +- obj ** dependents :PROPERTIES: @@ -46,12 +39,15 @@ #+RESULTS: - user +- prelude - packy +- box - pod +- net - vc - skel -- prelude - cli/tests +- core/lib ** files :PROPERTIES: @@ -79,6 +75,7 @@ - tools/pacman.lisp - tools/cc.lisp - tools/systemd.lisp +- tools/wg.lisp - tools/cargo.lisp - tools/sbcl.lisp - clap/pkg.lisp @@ -102,32 +99,33 @@ #+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/TOOLS/CC -- CLI/CLAP/VARS -- CLI/TESTS -- CLI/TOOLS/TMUX - CLI/REPL - CLI/CLAP/UTIL +- CLI/CLAP/PROTO +- CLI/TOOLS/PACMAN +- CLI/CLAP/OBJ - CLI/ENV -- CLI/PROGRESS +- CLI/CLAP/MACS +- CLI/TOOLS/SBCL +- CLI/TOOLS/WG +- CLI/TOOLS/SYSTEMD - CLI/PROMPT - CLI-USER +- CLI/PROGRESS +- CLI/CLAP +- CLI/TOOLS/TMUX +- CLI/TESTS +- CLI/ANSI - CLI/SPARK -- CLI/CLAP/MACS -- CLI/TOOLS/SYSTEMD +- CLI/TOOLS/TERM +- CLI/CLAP/AST +- CLI/CLAP/VARS +- CLI/ED +- CLI/TOOLS/CARGO +- CLI/CLAP/SIMPLE +- CLI/TOOLS/CC +- CLI +- CLI/SHELL ** tests :PROPERTIES: @@ -135,11 +133,12 @@ :END: #+begin_src lisp :output replace (ql:quickload :cli/tests) + (rt:in-suite :cli) (print rt:*test-suite* nil) #+end_src #+RESULTS: -: # +: # #+begin_src lisp :output replace (rt:tests rt:*test-suite*) @@ -147,15 +146,30 @@ #+RESULTS: #+begin_example -(# - # - # - # - # - # - # - # - # - # - #) +(# + # + # + # + # + # + # + # + # + # + #) #+end_example +* Packages +** cli/clap +- nicknames :: clap + +=clap= is a name borrowed from the [[https://github.com/clap-rs/clap][clap.rs]] Command Line Argument +Parser. What can I say, it's a good acronym. + +Besides the system tests, you can find this package used in our lisp +applications (=lisp/bin=). + +=clap= provides an object protocol and classes which parse input into +a simple AST and execute the appropriate option and command handlers. + +Several macros form the public API used to build a CLI including +=defcommand=, =defopt=, =define-cli=, and =defmain=. diff -r ac162428d5e3 -r 9f2e9e647333 core/lib/ffi.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/ffi.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,96 @@ +#+title: ffi +#+author: Richard Westhaver +#+setupfile: ../../clean.theme +#+OPTIONS: num:nil +This doc is about the [[https://en.wikipedia.org/wiki/Foreign_function_interface][Foreign Function Interface]] (FFI) features of the +=core=. + +Besides accessing system, OS, and external libraries via binding code +(dynamically in Lisp, statically in Rust), we also expose parts of the +core in a C-compatible fashion. In Lisp, we use the SB-ALIEN interface +to load (with dlopen) and call foreign symbols. In Rust we mostly use +rust-bindgen and the built-in rustc features. + +* Libraries +:PROPERTIES: +:ID: 1eb797dc-d617-46cc-89e8-7b6103e526d2 +:END: +The following binding libraries are provided with supporting +code. There is some cross-over between the Lisp and Rust bindings +depending on what library features we need and where. Some of the +bindings are very minimal or for experimental-use only only. +** xkb +:PROPERTIES: +:ID: 79b3a686-efe9-411e-9d1e-358113622949 +:END: +These bindings are actually directed at libxkbcommon instead of +x11/xkb directly. +*** xkbcommon +:PROPERTIES: +:ID: 9b9be592-1314-4926-940a-908ff4844e29 +:END: +https://xkbcommon.org/doc/current/md_doc_2quick-guide.html +** rocksdb +:PROPERTIES: +:ID: 5a1fd665-b72a-4d62-af4c-4967825f69c6 +:END: +[[https://github.com/facebook/rocksdb/wiki][RocksDB Wiki]] +** btrfs +:PROPERTIES: +:ID: 6b3dc423-0e1c-458d-9f8e-bf7456f9a048 +:END: +The kernel headers btrfs and btrfs_tree will be wrapped at some point +in addition to the userspace library (btrfsutil) documented below. +*** btrfsutil +:PROPERTIES: +:ID: 7296995d-2b67-45ec-94d9-8fe23126a602 +:END: +https://github.com/kdave/btrfs-progs +** uring +:PROPERTIES: +:ID: c0750228-7ba8-445a-8790-ca0310cf0a7d +:END: +https://man.archlinux.org/man/io_uring.7.en +** zstd +:PROPERTIES: +:ID: 6dbfed55-0d07-4090-bc3b-ea9317d9bfe5 +:END: +zstd compression bindings: https://github.com/facebook/zstd +** tree-sitter +:PROPERTIES: +:ID: 8527c382-ae65-4ad9-8f70-9ff5c6b152f0 +:END: +bindings to tree-sitter parser generator and language libraries: https://github.com/tree-sitter/tree-sitter +** COMMENT blake3 +:PROPERTIES: +:ID: a1807b79-9811-49f0-9524-cbf5e88c1a66 +:END: +temporary package for CL implementation of Blake3 SHA. Wraps C +implementation (libblake3). +** COMMENT alpm +:PROPERTIES: +:ID: cdd1682c-39b0-450e-a979-a5637cd15f43 +:END: +https://man.archlinux.org/man/core/pacman/libalpm.3.en +https://github.com/archlinux/alpm.rs/tree/382af70cdbff8e1f65c0bf8df79693786f44429c/alpm/examples + +** COMMENT bqn +:PROPERTIES: +:ID: 5014f979-5b3a-4dfc-89e3-5a5a23462a29 +:END: +These bindings are for libcbqn which can be build from CBQN: +https://github.com/dzaima/CBQN +** COMMENT k +:PROPERTIES: +:ID: 47a60640-e387-4ac7-ab45-4f7a763e9611 +:END: +https://codeberg.org/ngn/k +bindings for ngn/k (libk). +** COMMENT nuklear +:PROPERTIES: +:ID: e1e942b2-ebe0-48e9-bdd3-f4e27b7fed7c +:END: +** COMMENT ssh2 +:PROPERTIES: +:ID: 3c9e02d8-2c59-4ef5-8232-8422fd9e8ed3 +:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/lib/readme.org --- a/core/lib/readme.org Wed Sep 04 17:00:36 2024 -0400 +++ b/core/lib/readme.org Sat Sep 07 22:34:47 2024 -0400 @@ -4,8 +4,6 @@ #+EXPORT_FILE_NAME: index #+SETUPFILE: ../../../clean.theme #+OPTIONS: num:nil -#+INFOJS_OPT: toc:nil view:content - * [[file:skel.org][skel]] :lisp: :PROPERTIES: :ID: 83b68f7e-441e-441b-a3ed-b7bedf315826 @@ -26,11 +24,11 @@ :PROPERTIES: :ID: 09fccaf4-3146-480a-850c-c504e6ed202b :END: -* [[file:aud.org][aud]] :lisp: +* [[file:aud.org][aud]] :lisp: :PROPERTIES: :ID: 3dab36fa-f36d-4573-ac93-74a0d7322e78 :END: -* [[file:krypt.org][krypt]] :rust:lisp: +* [[file:krypt.org][krypt]] :lisp: :PROPERTIES: :ID: cf8ceb4c-fef3-45f0-9e5b-dd9fb910c52c :END: @@ -46,7 +44,7 @@ :PROPERTIES: :ID: 2217d09a-4be9-4259-bc66-58042bd7c8f1 :END: -* [[file:io.org][io]] :lisp: +* [[file:io.org][io]] :lisp: :PROPERTIES: :ID: df1dcb54-4e5e-4420-89fa-1e5aa91f31c0 :END: diff -r ac162428d5e3 -r 9f2e9e647333 core/man.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/man.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,48 @@ +#+title: Core User Manual +#+author: Richard Westhaver +#+email: ellis@rwest.io +#+property: header-args :dir ~/comp/core/ +#+setupfile: ../../clean.theme +#+texinfo_filename: core.info +#+texinfo_dir_category: Software development +#+texinfo_dir_title: Core: (core) +#+texinfo_dir_desc: CC Software Development Ecosystem +This manual documents the [[comp:][CC]] [[vc:core][core]] software. The core is a +multi-language library and framework used to build advanced +applications. It is composed of language-specific collections of +interconnected libraries providing an exceptionally powerful +development ecosystem. + +* Introduction +:PROPERTIES: +:ID: 156ffb70-9e00-4532-be47-b921c1825a91 +:END: +Welcome to the core, the software development ecosystem of [[comp:][CC]]. + +The idea of a =core= is probably one that you are quite familiar with +as a developer of software. It implies something that is fundamental; +the 'machine behind the machine', whatever the machine may be. + +The =core= is often the most important part of your application - the +one you want to get right. Where things get tricky is when you have +many different applications, all which have a =core=, which you +need to get right to avoid embarassment. + +The natural evolution is to start abstracting away the commonalities +between your application core, refactoring them into a new project. As +your applications grow, you keep searching for common patterns and +refactoring. The circle of life goes on. + +This is *not* how the CC core is developed. Our core does not inherit +from applications. It is not a 'top-down' system. Instead, it is built +'bottom-up' from scratch and kept insulated (but not completely +isolated) from applications. + +This design decision is rooted in a philosophy which favors the +developer, or more specifically the /hacker/ over all other +stake-holders in our systems. + +* Overview +:PROPERTIES: +:ID: ceb67759-c656-411d-a0c0-df19b18732e5 +:END: diff -r ac162428d5e3 -r 9f2e9e647333 core/readme.org --- a/core/readme.org Wed Sep 04 17:00:36 2024 -0400 +++ b/core/readme.org Sat Sep 07 22:34:47 2024 -0400 @@ -4,37 +4,31 @@ #+options: num:nil toc:nil #+EXPORT_FILE_NAME: index #+setupfile: ../../clean.theme -- [[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]] +* [[file:ref.org][REF]] :PROPERTIES: -:ID: 7a7f4c1c-91d3-44f5-a4c8-ecbe8af8ccf7 +:ID: e758fcdb-eb07-4549-81cb-103e52eb2023 :END: -API Docs -* [[file:app][APP]] -:PROPERTIES: -:ID: 65f9b0db-5d7f-4b3e-a6ad-0f18abba83a2 -:END: -App Docs -* [[file:lib][LIB]] +API Reference +** [[file:lib][LIB]] :PROPERTIES: :ID: c22675d3-4563-447a-a4a6-7bad2aa5ba04 :END: -Library Docs -* [[file:ffi.org][FFI]] +Library APIs +*** [[file:ffi.org][FFI]] :PROPERTIES: :ID: a19243db-8b05-4e43-963e-e82bc5a1793c :END: -FFI Docs -* [[file:ref][REF]] -:PROPERTIES: -:ID: e758fcdb-eb07-4549-81cb-103e52eb2023 -:END: -Reference Manual -* [[file:man][MAN]] +FFI Bindings +* [[file:man.org][MAN]] :PROPERTIES: :ID: 94b7c326-421d-4fa2-9673-52466c846aab :END: User Manual +** [[file:app][APP]] +:PROPERTIES: +:ID: 65f9b0db-5d7f-4b3e-a6ad-0f18abba83a2 +:END: +Application Manuals diff -r ac162428d5e3 -r 9f2e9e647333 core/ref.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/ref.org Sat Sep 07 22:34:47 2024 -0400 @@ -0,0 +1,14 @@ +#+title: Core API +#+author: Richard Westhaver +#+options: ^:nil toc:nil num:nil html-postamble:nil +#+setupfile: ../../clean.theme +#+OPTIONS: num:nil +This documentation is automatically generated based on the default +branch of the [[https://vc.compiler.company/core][core]]. + +#+call: user-slime() + +#+begin_src lisp :results output replace +#+end_src + +#+RESULTS: diff -r ac162428d5e3 -r 9f2e9e647333 core/stats.org --- a/core/stats.org Wed Sep 04 17:00:36 2024 -0400 +++ b/core/stats.org Sat Sep 07 22:34:47 2024 -0400 @@ -1,18 +1,37 @@ -# -*- org-export-babel-evaluate: nil -*- #+title: stats #+author: Richard Westhaver -#+property: header-args :dir /home/ellis/comp/core/ +#+OPTIONS: num:nil +#+property: header-args :dir ~/comp/core/ :exports results +#+location: ~/comp/core #+setupfile: ../../clean.theme -#+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content -#+property: header-args :dir /home/ellis/comp/core/ :eval no-export -* vc -:PROPERTIES: -:ID: c5078cb0-d8bf-4281-a320-a49d258585bc -:END: -#+begin_src shell :results pp :exports results - hg churn -f "%Y-%m" -s -#+end_src +#+BEGIN: project-info +#+CALL: project-details() :dir ~/comp/core/ + +#+RESULTS: +|-------------+-------------------------------------------------------------------------| +| name | core | +| version | 0.1.0 | +| description | The Compiler Company Core | +| id | 15bc-b763-ec92-1cf5 | +| root | ~/comp/core/ | +| vc | :hg [[https://vc.compiler.company/core][vc.compiler.company/core]] :rev [[https://vc.compiler.company/core/rev/b88bf15f60d0][b88bf15f60d0]] :id 637+ | +| tags | (core lisp rust emacs c) | +| updated | 3 days ago | +| langs | (c cheader elisp html javascript json lisp makefile org rust text toml) | +| lines | 95432 :λ 73671 :# 10159 :_ 11602 | +|-------------+-------------------------------------------------------------------------| + +#+CALL: hg-status() :dir ~/comp/core/ + +#+RESULTS: +| M | emacs/default.el | +| M | emacs/lib/graph.el | +| M | emacs/lib/inbox.el | +| M | emacs/lib/publish.el | +| M | emacs/lib/scrum.el | +| M | emacs/lib/ulang.el | + +#+CALL: hg-churn() :dir ~/comp/core/ #+RESULTS: #+begin_example @@ -26,36 +45,26 @@ 2024-05 24141 *********************** 2024-06 17608 ***************** 2024-07 9757 ********* -2024-08 13993 ************* +2024-08 16177 **************** +2024-09 2430 ** #+end_example -* files -:PROPERTIES: -:ID: 5fc970df-a6d1-4670-9673-e53ce70354bb -:END: -#+begin_src shell :results pp :exports results - cd rust && cargo clean && cd .. - tokei -t='rust','lisp','c','c header','makefile','shell' -#+end_src +#+CALL: files() :dir ~/comp/core/ #+RESULTS: -#+begin_example -=============================================================================== - Language Files Lines Code Comments Blanks -=============================================================================== - C 1 65 35 11 19 - C Header 2 1194 318 721 155 - Lisp 507 74118 56975 7867 9276 - 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 87525 67811 9067 10647 -=============================================================================== -#+end_example +| file | size | updated | +|------------+------+------------------| +| emacs | 110 | 2024-09-07-19:30 | +| emacs.sk | 100 | 2024-07-26-21:46 | +| lisp | 182 | 2024-09-02-17:12 | +| lisp.sk | 240 | 2024-08-15-21:56 | +| readme.org | 13K | 2024-09-04-20:22 | +| rust | 86 | 2024-08-25-20:40 | +| rust.sk | 194 | 2024-06-25-19:51 | +| skelfile | 6.0K | 2024-09-03-17:01 | +| x.lisp | 11K | 2024-08-23-18:40 | +#+END: * lisp :PROPERTIES: :ID: 7293eb8c-a5e7-414f-b1eb-33239adf7873 @@ -183,6 +192,265 @@ (doc:doc-files s)))))) #+end_src +#+RESULTS: +| lisp/std/defpkg.lisp | +| lisp/std/pkg.lisp | +| lisp/std/condition.lisp | +| lisp/std/sym.lisp | +| lisp/std/list.lisp | +| lisp/std/type.lisp | +| lisp/std/num/float.lisp | +| lisp/std/num/parse.lisp | +| lisp/std/num/leb128.lisp | +| lisp/std/stream.lisp | +| lisp/std/fu/curry.lisp | +| lisp/std/array.lisp | +| lisp/std/hash-table.lisp | +| lisp/std/alien.lisp | +| lisp/std/mop.lisp | +| lisp/std/readtable.lisp | +| lisp/std/macs/ana.lisp | +| lisp/std/macs/pan.lisp | +| lisp/std/macs/const.lisp | +| lisp/std/macs/collecting.lisp | +| lisp/std/macs/loop.lisp | +| lisp/std/macs/control.lisp | +| lisp/std/bit.lisp | +| lisp/std/thread.lisp | +| lisp/std/task.lisp | +| lisp/std/fmt.lisp | +| lisp/std/path.lisp | +| lisp/std/os.lisp | +| lisp/std/file.lisp | +| lisp/std/string.lisp | +| lisp/std/seq.lisp | +| lisp/std/sys.lisp | +| lisp/lib/cli/pkg.lisp | +| lisp/lib/cli/ansi.lisp | +| lisp/lib/cli/env.lisp | +| lisp/lib/cli/progress.lisp | +| lisp/lib/cli/spark.lisp | +| lisp/lib/cli/repl.lisp | +| lisp/lib/cli/shell.lisp | +| lisp/lib/cli/prompt.lisp | +| lisp/lib/cli/ed.lisp | +| lisp/lib/cli/tools/pkg.lisp | +| lisp/lib/cli/tools/term.lisp | +| lisp/lib/cli/tools/tmux.lisp | +| lisp/lib/cli/tools/pacman.lisp | +| lisp/lib/cli/tools/cc.lisp | +| lisp/lib/cli/tools/systemd.lisp | +| lisp/lib/cli/tools/wg.lisp | +| lisp/lib/cli/tools/cargo.lisp | +| lisp/lib/cli/tools/sbcl.lisp | +| lisp/lib/cli/clap/pkg.lisp | +| lisp/lib/cli/clap/ast.lisp | +| lisp/lib/cli/clap/vars.lisp | +| lisp/lib/cli/clap/util.lisp | +| lisp/lib/cli/clap/macs.lisp | +| lisp/lib/cli/clap/proto.lisp | +| lisp/lib/cli/clap/opt.lisp | +| lisp/lib/cli/clap/cmd.lisp | +| lisp/lib/cli/clap/cli.lisp | +| lisp/lib/cli/cli.lisp | +| lisp/lib/log/pkg.lisp | +| lisp/lib/log/err.lisp | +| lisp/lib/log/log.lisp | +| lisp/lib/log/stream.lisp | +| lisp/lib/dat/pkg.lisp | +| lisp/lib/dat/proto.lisp | +| lisp/lib/dat/sxp.lisp | +| lisp/lib/dat/dot.lisp | +| lisp/lib/dat/csv.lisp | +| lisp/lib/dat/json.lisp | +| lisp/lib/dat/parquet/gen.lisp | +| lisp/lib/dat/parquet/pkg.lisp | +| lisp/lib/dat/parquet/obj.lisp | +| lisp/lib/dat/parquet/thrift.lisp | +| lisp/lib/dat/parquet/tcompact.lisp | +| lisp/lib/dat/parquet/io.lisp | +| lisp/lib/dat/parquet/rle.lisp | +| lisp/lib/dat/parquet/proto.lisp | +| lisp/lib/dat/xml/xml.lisp | +| lisp/lib/dat/xml/pkg.lisp | +| lisp/lib/dat/xml/svg.lisp | +| lisp/lib/dat/xml/fixml.lisp | +| lisp/lib/dat/html/const.lisp | +| lisp/lib/dat/html/entity.lisp | +| lisp/lib/dat/html/html.lisp | +| lisp/lib/dat/handlebars.lisp | +| lisp/lib/dat/mime.lisp | +| lisp/lib/dat/toml.lisp | +| lisp/lib/dat/arff.lisp | +| lisp/lib/dat/midi.lisp | +| lisp/lib/dat/base64.lisp | +| lisp/ffi/rocksdb/pkg.lisp | +| lisp/ffi/rocksdb/prim.lisp | +| lisp/ffi/rocksdb/types.lisp | +| lisp/ffi/rocksdb/opts.lisp | +| lisp/ffi/rocksdb/sst.lisp | +| lisp/ffi/rocksdb/db.lisp | +| lisp/ffi/rocksdb/checkpoint.lisp | +| lisp/ffi/rocksdb/metadata.lisp | +| lisp/ffi/rocksdb/merge.lisp | +| lisp/ffi/rocksdb/compaction.lisp | +| lisp/ffi/rocksdb/comparator.lisp | +| lisp/ffi/rocksdb/slicetransform.lisp | +| lisp/ffi/rocksdb/writebatch.lisp | +| lisp/ffi/rocksdb/logger.lisp | +| lisp/ffi/rocksdb/stats.lisp | +| lisp/ffi/rocksdb/vars.lisp | +| lisp/ffi/rocksdb/macs.lisp | +| lisp/ffi/btrfs/pkg.lisp | +| lisp/ffi/btrfs/constants.lisp | +| lisp/ffi/btrfs/util.lisp | +| lisp/lib/doc/pkg.lisp | +| lisp/lib/doc/proto.lisp | +| lisp/lib/doc/err.lisp | +| lisp/lib/doc/symbol.lisp | +| lisp/lib/doc/file.lisp | +| lisp/lib/doc/package.lisp | +| lisp/lib/doc/system.lisp | +| lisp/lib/doc/dist.lisp | +| lisp/lib/doc/reprex.lisp | +| lisp/lib/doc/explain.lisp | +| lisp/lib/doc/image.lisp | +| lisp/ffi/alsa/pkg.lisp | +| lisp/ffi/alsa/constants.lisp | +| lisp/lib/nlp/pkg.lisp | +| lisp/lib/nlp/data.lisp | +| lisp/lib/nlp/tokenize.lisp | +| lisp/lib/nlp/doc.lisp | +| lisp/lib/nlp/stem/porter.lisp | +| lisp/lib/nlp/textrank.lisp | +| lisp/lib/nlp/dbscan.lisp | +| lisp/lib/nlp/section.lisp | +| lisp/lib/skel/core/pkg.lisp | +| lisp/lib/skel/core/err.lisp | +| lisp/lib/skel/core/types.lisp | +| lisp/lib/skel/core/proto.lisp | +| lisp/lib/skel/core/header.lisp | +| lisp/lib/skel/core/vars.lisp | +| lisp/lib/skel/core/obj.lisp | +| lisp/lib/skel/core/print.lisp | +| lisp/lib/skel/core/util.lisp | +| lisp/lib/skel/core/vm.lisp | +| lisp/lib/skel/comp/pkg.lisp | +| lisp/lib/skel/comp/asd.lisp | +| lisp/lib/skel/comp/cargo.lisp | +| lisp/lib/skel/comp/container.lisp | +| lisp/lib/skel/comp/org.lisp | +| lisp/lib/skel/comp/dir-locals.lisp | +| lisp/lib/skel/comp/makefile.lisp | +| lisp/lib/skel/pkg.lisp | +| lisp/lib/skel/tools/pkg.lisp | +| lisp/lib/skel/tools/deploy.lisp | +| lisp/lib/skel/tools/viz.lisp | +| lisp/lib/skel/ext/pkg.lisp | +| lisp/lib/skel/ext/asdf.lisp | +| lisp/lib/skel/ext/inspect.lisp | +| lisp/lib/skel/ext/krypt.lisp | +| lisp/lib/skel/ext/packy.lisp | +| lisp/lib/skel/ext/net.lisp | +| lisp/lib/syn/pkg.lisp | +| lisp/lib/organ/pkg.lisp | +| lisp/lib/organ/vars.lisp | +| lisp/lib/organ/err.lisp | +| lisp/lib/organ/proto.lisp | +| lisp/lib/organ/util.lisp | +| lisp/lib/organ/macs.lisp | +| lisp/lib/organ/object/markup.lisp | +| lisp/lib/organ/object/entity.lisp | +| lisp/lib/organ/object/citation.lisp | +| lisp/lib/organ/object/footnote-ref.lisp | +| lisp/lib/organ/object/inline-babel-call.lisp | +| lisp/lib/organ/object/inline-source-block.lisp | +| lisp/lib/organ/object/line-break.lisp | +| lisp/lib/organ/object/link.lisp | +| lisp/lib/organ/object/macro.lisp | +| lisp/lib/organ/object/export-snippet.lisp | +| lisp/lib/organ/object/sscript.lisp | +| lisp/lib/organ/object/stat-cookie.lisp | +| lisp/lib/organ/object/table-cell.lisp | +| lisp/lib/organ/object/target.lisp | +| lisp/lib/organ/object/timestamp.lisp | +| lisp/lib/organ/element/lesser/paragraph.lisp | +| lisp/lib/organ/element/lesser/block.lisp | +| lisp/lib/organ/element/lesser/clock.lisp | +| lisp/lib/organ/element/lesser/diary-sexp.lisp | +| lisp/lib/organ/element/lesser/latex-env.lisp | +| lisp/lib/organ/element/lesser/comment.lisp | +| lisp/lib/organ/element/lesser/fixed-width.lisp | +| lisp/lib/organ/element/lesser/horizontal-rule.lisp | +| lisp/lib/organ/element/lesser/keyword.lisp | +| lisp/lib/organ/element/lesser/planning.lisp | +| lisp/lib/organ/element/lesser/table-row.lisp | +| lisp/lib/organ/element/lesser/node-property.lisp | +| lisp/lib/organ/element/greater/plain-list.lisp | +| lisp/lib/organ/element/greater/block.lisp | +| lisp/lib/organ/element/greater/drawer.lisp | +| lisp/lib/organ/element/greater/footnote-def.lisp | +| lisp/lib/organ/element/greater/item.lisp | +| lisp/lib/organ/element/greater/table.lisp | +| lisp/lib/organ/element/headline.lisp | +| lisp/lib/organ/section.lisp | +| lisp/lib/organ/heading.lisp | +| lisp/lib/organ/document.lisp | +| lisp/lib/packy/pkg.lisp | +| lisp/lib/packy/vars.lisp | +| lisp/lib/packy/proto.lisp | +| lisp/lib/packy/pkgbuild.lisp | +| lisp/lib/packy/db.lisp | +| lisp/lib/packy/client.lisp | +| lisp/lib/packy/server.lisp | +| lisp/lib/obj/pkg.lisp | +| lisp/lib/obj/meta/pkg.lisp | +| lisp/lib/obj/meta/sealed.lisp | +| lisp/lib/obj/meta/stealth.lisp | +| lisp/lib/obj/meta/typed.lisp | +| lisp/lib/obj/meta/filtered.lisp | +| lisp/lib/obj/meta/fast.lisp | +| lisp/lib/obj/meta/lazy.lisp | +| lisp/lib/obj/meta/overloaded.lisp | +| lisp/lib/obj/meta/storable.lisp | +| lisp/lib/obj/hash/hasher.lisp | +| lisp/lib/obj/hash/chash.lisp | +| lisp/lib/obj/hash/map.lisp | +| lisp/lib/obj/hash/set.lisp | +| lisp/lib/obj/hash/castable.lisp | +| lisp/lib/obj/id.lisp | +| lisp/lib/obj/uri/pkg.lisp | +| lisp/lib/obj/uri/domain.lisp | +| lisp/lib/obj/uri/uri.lisp | +| lisp/lib/obj/uri/mask.lisp | +| lisp/lib/obj/uri/state.lisp | +| lisp/lib/obj/uri/parse.lisp | +| lisp/lib/obj/uri/print.lisp | +| lisp/lib/obj/uri/path.lisp | +| lisp/lib/obj/uri/intern.lisp | +| lisp/lib/obj/url.lisp | +| lisp/lib/obj/seq.lisp | +| lisp/lib/obj/tree/node.lisp | +| lisp/lib/obj/tree/avl.lisp | +| lisp/lib/obj/tree/rb.lisp | +| lisp/lib/obj/tree/bro.lisp | +| lisp/lib/obj/graph/pkg.lisp | +| lisp/lib/obj/equiv.lisp | +| lisp/lib/obj/color/color.lisp | +| lisp/lib/obj/color/util.lisp | +| lisp/lib/obj/color/x11.lisp | +| lisp/lib/obj/color/palette.lisp | +| lisp/lib/obj/music/music.lisp | +| lisp/lib/obj/time/local.lisp | +| lisp/lib/obj/time/util.lisp | +| lisp/lib/obj/uuid.lisp | +| lisp/lib/obj/temperature.lisp | +| lisp/lib/obj/direction.lisp | +| lisp/lib/obj/shape.lisp | +| lisp/lib/obj/query.lisp | +| lisp/lib/obj/secret.lisp | +| ... | + ** images :PROPERTIES: :ID: a2c797aa-e7e0-44d7-b02d-261811ab4d71 @@ -210,7 +478,7 @@ :ID: 243a971e-8312-4950-ad90-ac5dafceeab4 :END: #+begin_src shell :exports both :results output -cd rust && cargo tree --workspace --depth 1 --all-features +cd rust && cargo tree --workspace --depth 1 #+end_src #+RESULTS: diff -r ac162428d5e3 -r 9f2e9e647333 core/tests.org --- a/core/tests.org Wed Sep 04 17:00:36 2024 -0400 +++ b/core/tests.org Sat Sep 07 22:34:47 2024 -0400 @@ -4,7 +4,6 @@ #+property: header-args :dir /home/ellis/comp/core/ :eval no-export #+setupfile: ../../clean.theme #+OPTIONS: num:nil -#+infojs_opt: toc:nil home:https://compiler.company up:./ view:content Unit tests are performed on a per-lang basis and described in the sections below. @@ -12,95 +11,10 @@ :PROPERTIES: :ID: aab59686-a82b-4718-a8ed-93d96c2846fe :END: -** sys -:PROPERTIES: -:ID: 01a2b4f4-f289-49cd-9108-cfd35d591403 -:END: -These crates contain FFI bindings to foreign libraries, usually in C. -*** btrfs -:PROPERTIES: -:ID: 5fe13144-8651-413f-b2a7-6c57bb780d60 -:END: -*** btrfsutil -:PROPERTIES: -:ID: 0d74253d-634c-4865-afcd-1a2875062ed3 -:END: -*** rocksdb -:PROPERTIES: -:ID: b78abbdb-aeb4-4a7f-8712-f39b4ce14e23 -:END: ** lib :PROPERTIES: :ID: b43b62b5-fad3-4ff0-9d90-ff5d6b60d84a :END: -*** TODO alch -:PROPERTIES: -:ID: 8706627d-902d-4943-b775-f72a823d74a8 -:END: -*** audio -:PROPERTIES: -:ID: 7ef2a0b3-4457-4b6f-8aa4-40f1707d6a99 -:END: -#+begin_src shell :results output replace :exports results - cd rust/lib/audio - cargo test -#+end_src - -#+RESULTS: -#+begin_example - -running 1 test -test default_device ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -#+end_example - -*** crypto -:PROPERTIES: -:ID: 04a1b07d-0a9e-44eb-8791-242d69982867 -:END: -#+begin_src shell :results output replace :exports results -cd rust/lib/crypto -cargo test -#+end_src - -#+RESULTS: -#+begin_example - -running 6 tests -test tests::salsa20_key0_ivhi ... ok -test tests::salsa20_key1_iv0 ... ok -test tests::salsa20_key0_iv1 ... ok -test tests::xsalsa20_encrypt_hello_world ... ok -test tests::xsalsa20_encrypt_zeros ... ok -test tests::gen_keypair ... ok - -test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -#+end_example - -*** TODO db -:PROPERTIES: -:ID: 82ef593a-1b9b-4e6d-9975-02634e2aa529 -:END: -#+begin_src shell :results output replace :exports results :eval no -cd rust/lib/db -cargo test -#+end_src - -#+RESULTS: - *** flate :PROPERTIES: :ID: 23599c41-ffde-4cb9-86de-018fea66de76 @@ -125,38 +39,6 @@ #+end_example -*** hash -:PROPERTIES: -:ID: 92cc5cfc-8112-4019-835f-71a437cec034 -:END: -#+begin_src shell :results output replace :exports results -cd rust/lib/hash -cargo test -#+end_src - -#+RESULTS: -#+begin_example - -running 5 tests -test tests::hex_hash ... ok -test tests::id_hex ... ok -test tests::id_state_hash ... ok -test tests::rand_id ... ok -test tests::random_demon_id_is_valid ... ok - -test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s - - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -#+end_example - -*** krypt -:PROPERTIES: -:ID: a8bd94aa-61a9-44ed-8b6b-8d0b880da45c -:END: *** logger :PROPERTIES: :ID: 75607e41-c411-4e20-b00b-1a50c900e556 @@ -248,10 +130,6 @@ #+end_example -*** tenex -:PROPERTIES: -:ID: ebc2e94b-d4ce-4d96-ab02-fa1c6926dde7 -:END: *** util :PROPERTIES: :ID: 5c490df8-7039-4729-bfa3-bfeebfac7533 @@ -284,12 +162,11 @@ #+begin_src lisp :results silent :exports code (ql:quickload :prelude) ;; (require 'sb-cover) - (defpackage :core-coverage-report - (:use :cl :std :rt :rt/tracing)) - (in-package :core-coverage-report) + (in-package :std-user) + (use-package :rt/tracing) - (defun gen-report (system &optional (directory #P"/mnt/y/data/packy/report/cover/core/")) + (defun gen-report (system &optional (directory #P"/tmp/core/")) (progn (declaim (optimize sb-cover:store-coverage-data)) (asdf:compile-system system) @@ -307,19 +184,18 @@ (gen-report :vc) (gen-report :syn) (gen-report :parse) - (gen-report :cli) - (gen-report :xkb) - ;; (gen-report :btrfs) - (gen-report :tree-sitter) - ;; (gen-report :uring) - ;; (gen-report :zstd) + ;; (gen-report :cli) + ;; (gen-report :xkb) + (gen-report :btrfs) + ;; (gen-report :tree-sitter) + (gen-report :uring) + (gen-report :zstd) ;; (gen-report :blake3) - (gen-report :rocksdb) + ;; (gen-report :rocksdb) (gen-report :rdb) - ;; (gen-report :xdb) (gen-report :skel) (gen-report :organ) - (gen-report :nlp) + ;; (gen-report :nlp) (gen-report :obj) (gen-report :log) (gen-report :net) @@ -328,13 +204,13 @@ #+name: gen-trace-report #+begin_src lisp :results output :exports code - (trace "STD" "PARSE" "CLI" "XKB" "SKEL" "ORGAN" - "OBJ" "XDB" "LOG" "NET" "PACKY" "NLP" "DAT" - "ROCKSDB" "BTRFS" "TREE-SITTER" "ZSTD" "BLAKE3" "URING") + (trace "STD" "PARSE" "SKEL" "ORGAN" ;; "CLI" "NLP" + "OBJ" "LOG" "NET" "PACKY" "DAT" + "RDB" "BTRFS" "SYN" "ZSTD" "URING") (rt/tracing:start-tracing) (gen-core-coverage-report) (rt/tracing:stop-tracing) - (rt/tracing:save-report "/mnt/y/data/packy/report/trace/core.json") + (rt/tracing:save-report "/tmp/core/core.json") (sb-thread:print-allocator-histogram) (std:dump-thread) #+end_src diff -r ac162428d5e3 -r 9f2e9e647333 demo/stats.org --- a/demo/stats.org Wed Sep 04 17:00:36 2024 -0400 +++ b/demo/stats.org Sat Sep 07 22:34:47 2024 -0400 @@ -14,15 +14,20 @@ #+end_src #+RESULTS: -: 2023-04 949 * -: 2023-05 7233 *********** -: 2023-06 37455 ************************************************************* -: 2023-08 99 -: 2023-12 350 -: 2024-04 737 * -: 2024-06 2259 *** -: 2024-07 1766 ** -: 2024-08 5 +#+begin_example +2023-10 36394 ************************************ +2023-11 12777 ************ +2023-12 61624 ************************************************************* +2024-01 4923 **** +2024-02 5701 ***** +2024-03 27292 *************************** +2024-04 23322 *********************** +2024-05 24141 *********************** +2024-06 17608 ***************** +2024-07 9757 ********* +2024-08 16177 **************** +2024-09 2430 ** +#+end_example * files :PROPERTIES: @@ -33,12 +38,30 @@ #+end_src #+RESULTS: -: =============================================================================== -: Language Files Lines Code Comments Blanks -: =============================================================================== -: Lisp 22 2713 2059 231 423 -: Org 1 1 1 0 0 -: Plain Text 2 5 0 5 0 -: =============================================================================== -: Total 25 2719 2060 236 423 -: =============================================================================== +#+begin_example +=============================================================================== + Language Files Lines Code Comments Blanks +=============================================================================== + C 1 65 35 11 19 + C Header 2 1194 318 721 155 + Emacs Lisp 20 5181 3628 840 713 + JavaScript 1 25 21 2 2 + JSON 1 159 159 0 0 + Lisp 513 75259 57999 7900 9360 + Makefile 1 6 6 0 0 + Org 2 470 391 4 75 + Plain Text 6 202 0 177 25 + TOML 32 576 519 23 34 +------------------------------------------------------------------------------- + HTML 1 35 20 8 7 + |- CSS 1 84 65 9 10 + |- JavaScript 1 6 5 1 0 + (Total) 125 90 18 17 +------------------------------------------------------------------------------- + Rust 145 12142 10477 468 1197 + |- Markdown 103 801 0 706 95 + (Total) 12943 10477 1174 1292 +=============================================================================== + Total 725 95314 73573 10154 11587 +=============================================================================== +#+end_example diff -r ac162428d5e3 -r 9f2e9e647333 otom8/readme.org --- a/otom8/readme.org Wed Sep 04 17:00:36 2024 -0400 +++ b/otom8/readme.org Sat Sep 07 22:34:47 2024 -0400 @@ -1,4 +1,4 @@ -#+title: docs/otom8 +#+title: otom8 #+description: OTOM8 Documentation #+author: Richard Westhaver #+email:richard.westhaver@gmail.com