1.1--- a/readme.org Sun Sep 08 21:14:30 2024 -0400
1.2+++ b/readme.org Tue Sep 10 21:26:30 2024 -0400
1.3@@ -6,9 +6,20 @@
1.4 #+property: header-args :eval no-export
1.5 - [[https://compiler.company/docs/core][Documentation]]
1.6
1.7-* Overview
1.8 This repository contains the monolothic core of [[comp:][The Compiler Company]].
1.9
1.10+* Overview
1.11+The CC core is categorized into language-specific modules. Our
1.12+languages at time of writing are Common Lisp, Rust, and Emacs Lisp.
1.13+
1.14+The top-level modules are contained in the directories =lisp=, =rust=,
1.15+and =emacs= respectively. At the root directory you will also find a
1.16+=skelfile= and a =sk= file for each module. These files contain
1.17+project definitions which are used by our =skel= program to perform a
1.18+variety of actions on the core such as running tests and building
1.19+binaries.
1.20+
1.21+* Bootstrap
1.22 To bootstrap the core you will need recent versions of [[https://www.rust-lang.org/][Rust]], [[http://www.sbcl.org/][SBCL]], and
1.23 a C compiler (clang or gcc). Only Unix systems are explicitly
1.24 supported.
1.25@@ -176,243 +187,3 @@
1.26 The core contains a collection of Emacs Lisp libraries under =emacs=
1.27 which may be installed for the current user using the corresponding
1.28 Makefile.
1.29-
1.30-** TODO Bootstrap from packy :experimental:
1.31-The following can (maybe someday) be used to bootstrap the core without a full
1.32-lisp compiler.
1.33-#+begin_src shell :results output
1.34- curl --proto '=https' \
1.35- --tlsv1.3 \
1.36- -sSf \
1.37- https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/bin/sk \
1.38- --output /tmp/sk
1.39- chmod +x /tmp/sk
1.40- /tmp/sk make skel
1.41-#+end_src
1.42-
1.43-#+RESULTS:
1.44-#+begin_example
1.45-This is SBCL 2.4.5, an implementation of ANSI Common Lisp.
1.46-More information about SBCL is available at <http://www.sbcl.org/>.
1.47-
1.48-SBCL is free software, provided as is, with absolutely no warranty.
1.49-It is mostly in the public domain; some portions are provided under
1.50-BSD-style licenses. See the CREDITS and COPYING files in the
1.51-distribution for more information.
1.52-To load "rt":
1.53- Load 1 ASDF system:
1.54- rt
1.55-; Loading "rt"
1.56-
1.57-saving skel to: /home/ellis/comp/core/.stash/skel
1.58-To load "bin/skel":
1.59- Load 1 ASDF system:
1.60- bin/skel
1.61-; Loading "bin/skel"
1.62-.........
1.63-[undoing binding stack and other enclosing state... done]
1.64-[performing final GC... done]
1.65-[saving current Lisp image into /home/ellis/comp/core/.stash/skel:
1.66-writing 15984 bytes from the static space at 0x50100000
1.67-writing 339476480 bytes from the dynamic space at 0x1000000000
1.68-writing 12498752 bytes from the read-only space at 0x74232dc00000
1.69-writing 0 bytes from the text space at (nil)
1.70-done]
1.71-#+end_example
1.72-
1.73-* Programs
1.74-This section lists all program binaries provided by the core.
1.75-** skel :lisp:
1.76-#+begin_src shell :results output :exports both
1.77- skel --help
1.78-#+end_src
1.79-
1.80-#+RESULTS:
1.81-#+begin_example
1.82-skel v0.1.1:ce91ffc6cc7a+ --- A hacker's project compiler.
1.83-
1.84- usage: skel [global] <command> [<arg>]
1.85-
1.86-options:
1.87- -h/--help* : print this message
1.88- -v/--version* : print version
1.89- -l/--level* : set log level (warn,info,debug,trace)
1.90- -c/--config* : set a custom skel user config
1.91- -i/--input* : input source
1.92- -o/--output* : output target
1.93-
1.94-commands:
1.95- init : initialize a skelfile in the current directory
1.96- -n/--name : project name
1.97- new : make a new skel project
1.98- -n/--name : project name
1.99- describe : describe a skelfile
1.100- show : show project slots
1.101- -f/--file : path to skelfile
1.102- -u/--user : print user configuration
1.103- -s/--system : print system configuration
1.104- vc : version control
1.105- -r/--root : repository path
1.106- id : print the project id
1.107- inspect : inspect the project skelfile
1.108- -f/--file : path to skelfile
1.109- make : build project targets
1.110- -t/--target : target to build
1.111- run : run a script or command
1.112- compile : compile source code
1.113- build : build programs and libraries
1.114- dist : distribute build artifacts
1.115- install : install stuff
1.116- pack : pack stuff
1.117- unpack : unpack stuff
1.118- bundle : bundle source code
1.119- unbundle : unbundle source code
1.120- clean : clean up the project
1.121- test : run tests
1.122- bench : run benchmark
1.123- status : print the vc status
1.124- push : push the current project upstream
1.125- pull : pull the current project from remote
1.126- clone : clone a remote project
1.127- commit : commit changes to the project vc
1.128- edit : edit a project file in emacs.
1.129- shell : open the sk-shell interpreter
1.130-
1.131-#+end_example
1.132-** organ :lisp:
1.133-#+begin_src shell :results output :exports both
1.134-organ --help
1.135-#+end_src
1.136-
1.137-#+RESULTS:
1.138-#+begin_example
1.139-organ v0.0.1 --- org-mode toolbox
1.140-
1.141- usage: organ [global] <command> [<arg>]
1.142-
1.143-options:
1.144- -l/--level* : set the log level
1.145- -h/--help* : print help
1.146- -v/--version* : print version
1.147-
1.148-commands:
1.149- inspect : inspect an org file
1.150- show : display local org info
1.151- describe : describe local org info
1.152- parse
1.153-#+end_example
1.154-
1.155-** packy :lisp:
1.156-#+begin_src shell :results output :exports both
1.157-packy --help
1.158-#+end_src
1.159-
1.160-#+RESULTS:
1.161-#+begin_example
1.162-packy v0.1.0 --- Universal Package Manager
1.163-
1.164- usage: packy [global] <command> [<arg>]
1.165-
1.166-options:
1.167- -l/--level* : set the log level
1.168- -h/--help* : print help
1.169- -v/--version* : print version
1.170-
1.171-commands:
1.172- show
1.173- -n/--name*
1.174- -t/--target
1.175- -t/--thunk*
1.176- -p/--pk-target*
1.177-#+end_example
1.178-
1.179-** rdb :lisp:
1.180-#+begin_src shell :results output :exports both
1.181-rdb --help
1.182-#+end_src
1.183-
1.184-#+RESULTS:
1.185-
1.186-** homer :lisp:
1.187-#+begin_src shell :results output :exports both
1.188-homer --help
1.189-#+end_src
1.190-
1.191-#+RESULTS:
1.192-#+begin_example
1.193-homer v0.1.0 --- user home manager
1.194-
1.195- usage: homer [global] <command> [<arg>]
1.196-
1.197-options:
1.198- -l/--level* : set the log level
1.199- -h/--help* : print help
1.200- -v/--version* : print version
1.201- -f/--force* : use force
1.202-
1.203-commands:
1.204- show
1.205- check
1.206- push
1.207- pull
1.208- install
1.209-#+end_example
1.210-
1.211-** COMMENT alik :rust:
1.212-#+begin_src shell :results output :exports both
1.213-alik --help
1.214-#+end_src
1.215-
1.216-#+RESULTS:
1.217-
1.218-** COMMENT krypt :lisp:
1.219-#+begin_src shell :results output :exports both
1.220-krypt --help
1.221-#+end_src
1.222-
1.223-#+RESULTS:
1.224-#+begin_example
1.225-Krypt CLI
1.226-
1.227-Usage: krypt [OPTIONS] [COMMAND]
1.228-
1.229-Commands:
1.230- check check service providers and config
1.231- show Show Krypt info
1.232- search Query the Krypt
1.233- help Print this message or the help of the given subcommand(s)
1.234-
1.235-Options:
1.236- -c, --cfg <CFG> Set the default config file [env: KRYPT_CONFIG_FILE=]
1.237- -u, --user <USER> Set a user for this command [env: USER=ellis]
1.238- -l, --level... Set log level
1.239- -h, --help Print help
1.240- -V, --version Print version
1.241-#+end_example
1.242-
1.243-** mailman :rust:
1.244-#+begin_src shell :results output :exports both
1.245-mailman --help
1.246-#+end_src
1.247-
1.248-#+RESULTS:
1.249-#+begin_example
1.250-Mail client util
1.251-
1.252-Usage: mailman [OPTIONS] [COMMAND]
1.253-
1.254-Commands:
1.255- ping Ping the server
1.256- search Search for items
1.257- import Import an account
1.258- export Export an account
1.259- help Print this message or the help of the given subcommand(s)
1.260-
1.261-Options:
1.262- -c, --cfg <CFG> Set the default config file [env: MAILMAN_CONFIG_FILE=]
1.263- -u, --user <USER> Set a user for this command [env: USER=ellis]
1.264- -l, --level... Set log level
1.265- -h, --help Print help
1.266- -V, --version Print version
1.267-#+end_example
1.268-