changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > core / readme.org

revision 643: f901de70a80e
parent 637: b88bf15f60d0
child 656: b499d4bcfc39
     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-