1. tasks

1.1. core

Archived entries from file /home/ellis/src/org/plan/tasks/core.org

1.1.1. DONE dot 0.1 [1/1]   lisp dot

logbook
  • State "TODO" from
  • State "DONE" from "NOPE"
  • implemented in dat/dot.lisp
  1. NOPE PARSE-SPECIALIZER-USING-CLASS
    logbook
    • State "TODO" from
    • experimental SB-MOP generic, may be useful in places where we would typically use (eql OBJECT) as a specializer for GRAPH.

1.1.2. DONE migrate to sb-grovel [9/9]   lisp ffi

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
properties

:ID: bb365025-e5e7-4407-acba-32e30d1a245a

lisp/ffi/

  1. DONE blake3
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 656c2683-8780-407c-b955-3defc4959595

  2. DONE bqn
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: b4757746-525b-49e4-b8ac-677375867d8f

  3. DONE btrfs
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: b3b411fe-6b2d-4338-9e23-83536336a487

  4. DONE k
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 8a463084-efa0-4535-8239-b1c4955bde4c

  5. DONE rocksdb
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92

  6. DONE tree-sitter
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf

  7. DONE uring
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731

  8. DONE zstd
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    properties

    :ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06

  9. DONE xkb
    logbook
    • State "TODO" from
    • State "WIP" from "TODO"
    • State "DONE" from "WIP"
    properties

    :ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c

    logbook
    • State "TODO" from

1.1.3. DONE writebatch

logbook
  • State "TODO" from
  • State "WIP" from "TODO"

CLOCK: (1:02)

CLOCK: (0:35)

  • State "DONE" from "WIP"
  1. file:///usr/include/rocksdb/c.h#org43a2291
    logbook
    • Refiled on

1.1.4. DONE logger

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.5. DONE merge-operator callbacks   rocksdb

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"
  • Note taken on
    still needs testing with actual data

1.1.6. DONE compactionfilter callbacks   rocksdb

logbook
  • State "TODO" from
  • State "WIP" from "TODO"

CLOCK: (0:00)

  • State "DONE" from "WIP"

https://github.com/facebook/rocksdb/wiki/Compaction-Filter

(rocksdb-compactionfilterfactory-create nil (alien-sap (alien-callable-function 'rocksdb-destructor))
                                        (alien-sap (alien-callable-function 'rocksdb-create-compaction-filter-never))
                                        (alien-sap (alien-callable-function 'rocksdb-name)))

1.1.7. DONE comparator callbacks   rocksdb

logbook
  • State "WIP" from
  • State "DONE" from "WIP"

1.1.8. DONE associative-merge implementation

logbook
  • Refiled on
  • State "DONE" from "TODO"
  • need to figure out what delete-value requires
    • simply passes state + value and value-length to a function
    • when the value is null it doesn't exist in db (noop) ?
    • unclear when the merge op actually runs in relation to deletion op - before or after?
  • https://docs.rs/rocks/latest/rocks/merge_operator/index.html
  1. DONE concat-merge
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    • Note taken on
      well it-s about time.. should have known the SUCCESS arg was the return value that the docs referenced..
  2. DONE index-merge
    logbook
    • State "TODO" from
    • State "WIP" from "TODO"
    • State "DONE" from "WIP"

1.1.9. DONE incf/decf-merge

logbook
  • State "TODO" from
  • State "TEST" from "TODO"
  • State "TBD" from "TEST"
  • Note taken on
    use the STATE param for this.
  • State "DONE" from "TBD"
  • Note taken on
    see index-merge

1.1.10. DONE define-merge-operator   macro

logbook
  • Refiled on
  • State "TODO" from "TODO"
  • State "TEST" from "TODO"

CLOCK: (0:39)

  • State "DONE" from "TEST"
  • Note taken on
    will need to do actual tests merging key/vals when we implement associative merge API
  • define macro which eases the process of making custom merge operators
(define-merge-operator :incf nil
  :full nil
  :partial nil)
(create-incf-mergeoperator)
#<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X75D288000C30 :TYPE (*
                                                            (SB-ALIEN:STRUCT
                                                             ROCKSDB::ROCKSDB-MERGEOPERATOR-T))>

1.1.11. DONE zstd

logbook
  • State "PROJECT" from
  • Note taken on
    can probably improve error handling but don't need to address until we are well under way with IO/FLATE.
  • State "DONE" from "PROJECT"
  1. DONE zstd cstream tests
    logbook
    • State "DONE" from "TODO"
    • v2 api
  2. DONE zdict
    logbook
    • State "TODO" from
    • Note taken on
      well this is annoying, there is one function which requires passing struct by value: ZDICTfinalizeDictionary
    • State "DONE" from "TODO"
    • A few structs that we can't grovel
    • A bunch of functions for pre-training a dictionary

1.1.12. DONE reference impls

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

1.1.13. DONE retire x.lisp   lisp skel

logbook
  • State "TODO" from
  • State "TBD" from "TODO"
  • State "TODO" from "TBD"
  • Note taken on
    actually let's move it to infra/scripts..
  • Note taken on
    on second look we really should start afresh lol
  • State "DONE" from "TODO"

with skel taking on more responsibility we no longer need a dedicated build tool.

  • migrate all functionality to skelfile
  • cleanup readme with installation instructions (with and without infra)
  • easy to break the skel binary and overwrite a LKG version, preventing future builds.
    • just be more careful
    • sanity checks
    • repurpose x.lisp to recover from situations like these specifically

1.1.14. DONE implement globals *cli* *opts* *args* etc

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.15. DONE opt/arg parsing

logbook
  • State "FIXME" from
  • State "WIP" from "FIXME"
  • State "TEST" from "WIP"
  • State "DONE" from "TEST"
  • Note taken on
    took far longer than expected to track this down - root cause was the zerop function. should be in much better shape now.
  • do not need to handle multiple commands
    • what do we want to do about subcommands?
  • do not need to support 'global' option for commands
  • use cli-parse to test.

1.1.16. DONE multipoint-images   lisp bin sys

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"
  • multiple entrypoint lisp images
  • create multiple links to core lisp image
  • support multiple low-level methods?
    • naive implementation is a single entry point with a switch dispatched on arg0.
    • could also create a thin shim in Rust/Zig and call the appropriate entrypoint after loading the core.
  • for now let's put this in lib/cli so that we can use defmain

1.1.17. DONE make-sql-data-frame

logbook
  • State "FIX" from
  • State "DONE" from "FIX"
  • finish implementation

1.1.18. DONE git   vc git

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.19. DONE hg   vc hg

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.20. DONE eval rules from CLI

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • need new command or flag for rules
  • evaluate forms instead of looking in skelfile

1.1.21. DONE refactor system definition

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • remove package-inferred
  • minimize number of systems
  • use pkg.lisp files

1.1.22. DONE cleanup fu

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.23. DONE CLTL2 impl

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.24. DONE list-package-symbols, etc

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.25. DONE std/tests refactor

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • a bit too large, time to shake it up
  • need separation of concerns (files) for task-pool/threaded tests in particular

1.1.26. DONE tasks

logbook
  • State "TODO" from
  • Note taken on
    currently includes jobs, supervisors, task-pool, kernel - a bit overloaded
  • State "DONE" from "TODO"

1.1.27. DONE more sb-alien utils   ffi

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.28. NOPE uri   net

logbook
  • State "TODO" from
  • Note taken on
    the franz impl doesn't play well with SBCL, at least with our hacks. I'm not sure how faithfully I want to follow the RFCs anyhow.. maybe we go for the dead simple approach and focus on MOP for a path and URI protocol.
  • mostly just need the tests and to finish porting the Franz implementation

1.1.29. DONE db   db

edges

<- org graph edges


logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Note taken on
    XDB2 is no longer used - instead provide a simple abstract API which builds up to high-level systems like RDB
  • ported from XDB2

1.1.30. DONE aggregate physical plan

logbook
  • State "DONE" from "TODO"

1.1.31. DONE Physical Expressions

logbook
  • State "TODO" from
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.32. DONE crew   proto

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.33. DONE http   proto

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.34. DONE dns   proto

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.35. DONE tlv   codec

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.36. DONE osc   codec

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.37. DONE Woo/+

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

1.1.38. DONE fixture api

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.39. DONE temporary files and directories

logbook
  • Refiled on

CLOCK: (1:35)

  • State "DONE" from "TODO"

1.1.40. DONE org graph edges

logbook
  • State "TODO" from
  • Note taken on
    dblock will come later. for now we are going with the same strategy as org-super-links - using a drawer. instead of "BACKLINKS" our drawer is called simply LINKS.
  • State "WIP" from "TODO"

CLOCK: (0:30)

CLOCK: (3:48)

CLOCK: (0:20)

  • State "DONE" from "WIP"
  • Note taken on
    initial implementation up and running
edgesnil
  • list of links between other headings
    • <= links to this item
    • => links from this item
    • == siblings
    • ^= parent
    • v= child
  • how should it look when exported?
  • org-graph-link-use-timestamp
  • org-graph-link properties? edge properties?
    • keyvals :key val - should probably align with whatever we use for CONSTRAINTS, for now read as sxp
  • EXPORTEDGES property?
* example
:PROPERTIES:
:ID:       id1
:CUSTOM_ID: demo
:END:
:EDGES:
<- bar
[2024-09-14 Sat 22:37] <- bar
[2024-09-14 Sat 22:50] :key val :foo (bar baz) <- bar
[2024-09-14 Sat 22:37] -> foo
[2024-09-14 Sat 22:39] -- sibling
[2024-09-14 Sat 22:39] >> parent
[2024-09-14 Sat 22:39] << child
:END:

1.1.41. DONE org-follow-location   org

logbook
  • State "TODO" from

CLOCK: (0:27)

  • State "WIP" from "REFILE"
  • State "DONE" from "WIP"
  • follow LOCATION property of heading at point
  • respect parent LOCATION, buffer local settings, etc

1.1.42. DONE org-set-location

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

similar to org-set-effort, to be called automatically on capture.

  • should prompt for directory then file - skip file with C-u or with RET
    • simpler to just prompt for value with completion using org-read-property-value

1.1.43. DONE flate [0/0]

logbook
  • State "TODO" from
  • State "PROJECT" from "TODO"
  • State "DONE" from "PROJECT"

1.1.44. DONE review GNU stow API

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

homepage 'symlink farm manager' rust impl: https://github.com/qboileau/rstow

1.1.45. DONE consolidate with skel   skel

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.46. DONE cli tests crashing

logbook
  • State "FIXME" from "TODO"
  • State "DONE" from "FIXME"

1.1.47. DONE :scripts regression   infra

logbook
  • State "DONE" from "TODO"

1.1.48. NOPE readline   cli

logbook
  • State "TODO" from
  • Note taken on
    we have removed readline in favor of the lisp-native cli/linedit.

1.1.49. DONE impl rocksdb/slicetransform callbacks

logbook
  • State "TODO" from
  • New deadline from "" on
  • Refiled on
  • New deadline from "" on
  • State "TEST" from "TODO"
  • State "DONE" from "TEST"

rocksdb/slicetransform.lisp

1.1.50. DONE OCI projects [4/4]   pod packy skel

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"
  • Note taken on
    A bit too much for us to consider right now - ultimately I do not feel that OCI containers are a one-size-fits-all solution for image-based development.
  1. DONE oras
    logbook
    • State "RESEARCH" from
    • State "DONE" from "RESEARCH"
  2. DONE skopeo
    logbook
    • State "RESEARCH" from
    • State "DONE" from "RESEARCH"
  3. DONE zot
    logbook
    • State "RESEARCH" from
    • State "DONE" from "RESEARCH"
  4. DONE sigstore
    logbook
    • State "RESEARCH" from
    • State "DONE" from "RESEARCH"

1.1.51. DONE PMem.io

logbook
  • State "RESEARCH" from "TODO"
  • State "DONE" from "RESEARCH"
  • consider use cases in Lisp images - pre-loading and coordinating shared fasls and core images
  • no longer maintained by intel

1.1.52. NOPE encrypted btrfs luks/dm-crypt

logbook
  • State "RESEARCH" from "TODO"

1.1.53. DONE XDP

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

A Gentle Introduction to XDP | Datadog GitHub - xdp-project/xdp-tools: Utilities and example programs for use with XDP

1.1.54. DONE DPDK

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

Home - DPDK GitHub - DPDK/dpdk: Data Plane Development Kit

By leveraging DPDK libraries, developers can create optimized packet processing paths, manage timers for executing functions asynchronously, and utilize a wide range of drivers and libraries tailored for fast packet processing.

librteeal – Environment Abstraction Layer: Provides the foundational API for DPDK, facilitating access to hardware resources such as memory, timers, and logs.

librtemempool – Memory Pool Manager: Manages memory pools for efficient and speedy packet handling.

librtering – Ring Buffer Manager: Implements lock-free FIFO queues, enabling high-speed communication between various DPDK components.

librtembuf – Packet Buffer Management: Handles packet buffers, which are crucial for packet transmission and reception.

librteethdev – Ethernet Device API: Offers an API for configuring and querying Ethernet devices. It supports various operations, including sending and receiving packets.

librtenet – Network Helper Library: Provides helper APIs for dealing with network protocols.

librteipfrag – IP Fragmentation and Reassembly: Handles fragmentation and reassembly of IP packets, supporting both IPv4 and IPv6.

librtekni – Kernel Network Interface: Facilitates communication between DPDK applications and the Linux kernel networking stack, primarily used for debugging or interfacing with existing Linux network services.

1.1.55. DONE eBPF   net

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

https://docs.kernel.org/bpf/standardization/instruction-set.html#bpf-instruction-set-architecture-isa https://mostlynerdless.de/blog/2023/12/31/hello-ebpf-developing-ebpf-apps-in-java-1/ https://github.com/iovisor/bcc GitHub - mikeroyal/eBPF-Guide bpftrace/tools/README.md at master · bpftrace/bpftrace · GitHub

  • bpftrace seems quite powerful, will be useful for sysmon activities

where would ebpf support go?

probably io.. but maybe also log, net.. syn?

1.1.56. DONE batman-adv   net

logbook
  • State "RESEARCH" from
  • State "DONE" from "RESEARCH"

Doc-overview - batman-adv - Open Mesh

1.1.57. NOPE libyear   lisp skel

logbook
  • State "TODO" from

Not that useful in our current environment (NIH)

1.1.58. DONE Level 1

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.59. DONE Level 2

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"

1.1.60. DONE Level 3

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.61. DONE LAPACK (f77blas.h)

logbook
  • State "TODO" from
  • State "WIP" from "TODO"

CLOCK: (2:00)

  • State "DONE" from "WIP"
  • Note taken on
    this does NOT include the lapack.h functions

1.1.62. DONE LAPACK codegen

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Note taken on
    see lapack-ffi.lisp

lapack.h is massive and impractical to attempt lisp bindings from scratch.

instead, our current approach is based on tree-sitter:

(tree-sitter:load-tree-sitter)
(tree-sitter:load-tree-sitter-alien)
(tree-sitter:load-tree-sitter-c)
#P"/usr/local/lib/libtree-sitter-c.so"
(syn/ts::ts-file-query :c #p"/usr/include/openblas/lapack.h" "(declaration)")
#<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X71384C005800 :TYPE (*
                                                            (SB-ALIEN:STRUCT
                                                             TREE-SITTER:TS-QUERY-CURSOR))>

this segfaults:

(in-package :syn/ts)
(sb-alien:with-alien ((m (* tree-sitter::ts-query-match) (sb-alien:make-alien tree-sitter::ts-query-match)))
  (sb-sys::with-pinned-objects (m)
    (tree-sitter::ts-query-cursor-next-match
     (syn/ts::ts-file-query :c #p"/usr/include/openblas/lapack.h" "(declaration)") m)))

(let ((tree (flatten (syn/ts::parse-file :c #p"/usr/include/openblas/lapack.h")))
      (dx 0)
      (ret))
  (loop with dx = 0
    for di = (print (position :declaration tree :start dx))
    if (null di) 
    do (return ret)
    else
    do (progn
         (setf dx (incf di))
         (let ((ei (print (position :declaration tree :start dx))))
           (push (subseq tree di ei) ret)))))
(setq 
 *lapack*
 (let* ((str (read-file #p"/usr/include/openblas/lapack.h"))
    (tree (flatten (syn/ts::parse-string :c str :consume t :produce-cst nil)))
    (dx 0)
    (ret))
   (setq *lapack.h* str)
   (loop with dx = 0
     for di = (position :declaration tree :start dx)
     if (null di) 
     do (return ret)
     else
     do (progn
          (setf dx di)
          (incf dx)
          (let ((ei (position :declaration tree :start dx)))
        (push (subseq tree di ei) ret))))))
(list (length *lapack*) (length *lapack.h*))
1332 747544
(labels ((lastr (x start end)
           (apply 'subseq *lapack.h* (subseq x start end)))
         (lasym (str) (symbolicate (string-upcase (substitute #\- #\_ str))))
         (lasym* (str)
           (let ((len (length str)))
             (list '* (lasym (subseq str 0 
                                     (if (char= (char str (1- len)) #\*)
                                         (1- len)
                                         len))))))
     (lasyms (x start end)
       (symbolicate (string-upcase (substitute #\- #\_ (lastr x start end)))))
     (laparm (str)
       (let ((a (nreverse (split-sequence #\space str))))
         (list (if (string-equal (first a) "T")
                       (gensym "T")
                       (lasym (first a)))
           (if (third a)
                       ;; type param (could be X const* or const X*)
                       (if (string-equal (third a) "const")
                           (lasym* (second a))
                           (lasym* (third a)))
                       (when (second a)
             (lasym* (second a)))))))
         (gen-lapack-args (p x)
           (let* ((pa (position :parameter-list x)) ;; param start
              (pb (position :preproc-ifdef x)) ;; param end
              (params (subseq x pa pb)))
         (loop with p1 = 0
               for pos = (position :parameter-declaration params :start p1)
               while pos
               do (setf p1 (1+ pos))
               collect (laparm (lastr params (+ pos 1) (+ pos 3)))))))
  (setq *code*
    (mapcar
     (lambda (x)
       (let ((p (position :function-declarator x)))
         (list* 'deflapack
            ;; routine name
            (lasyms x (+ p 5) (+ p 7))
            ;; return-type
            (lasyms x (- p 3) (- p 1))
            ;; list of function parameters (NAME TYPE)
            (remove-if (lambda (x) (eql (car x) 'fortran-strlen)) (gen-lapack-args p x)))))
     *lapack*)))
(length *code*)
1332
(with-output-to-file (f file) 
  (write-line ";;; lapack-ffi.lisp --- LAPACK Alien Routines -*- buffer-read-only:t -*-" f)
  (write-line "(in-package :lapack)" f)
  (mapc (lambda (x) (write x :stream f :case :downcase) (terpri f)) *code*))

1.1.63. DONE linedit path completion

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • Note taken on
    turns out STD/OS:WITH-DIRECTORY-ITERATOR was the culprit - re-arranged a null-alien check and good to go.

currently segfaults - should be easy to fix

1.1.64. DONE sxp 0.2   lisp sxp

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  1. NOPE WRAP-OBJECT   skel
    logbook
    • State "TODO" from
    • Note taken on
      using obj/ast instead - lisp is data is code
    • use to replace LOAD-AST for sk-project and friends
    • requires mop
    • take a look at UNWRAP-OBJECT too, may need rewrite for a better API
    1. NOPE sxp standard methods
      logbook
      • State "TODO" from
      • hash-table
      • classoid
      • vector
      • boolean
      • obj/
        • color
        • uri

1.1.65. DONE toml impl

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Refiled on

the toml parser on quicklisp is based on esrap, make a comparable one using our parser module.

1.1.66. DONE split out skel rules

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • core/rule.lisp

1.1.67. DONE fix obj/query stack overflow on compile

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Note taken on
    soft fix - commented out shit
Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.

PROCEED WITH CAUTION.
   [Condition of type SB-KERNEL::CONTROL-STACK-EXHAUSTED]

 849: ((:METHOD SB-PCL::COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS (SB-PCL::SLOT-CLASS T)) #<STANDARD-CLASS OBJ/QUERY:LOGICAL-QUERY-PLAN> (#<STANDARD-DIRECT-SLOT-DEFINITION OBJ/AST:AST> #<STANDARD-DIRECT-SL..
      Locals:
	SB-PCL::ALLOCATION = :INSTANCE
	SB-PCL::ALLOCATION-CLASS = #<STANDARD-CLASS OBJ/QUERY:LOGICAL-QUERY-PLAN>
	SB-PCL::ALLOCP = T
	CLASS = #<STANDARD-CLASS OBJ/QUERY:LOGICAL-QUERY-PLAN>
	SB-PCL::DIRECT-SLOTDS = (#<STANDARD-DIRECT-SLOT-DEFINITION OBJ/AST:AST> #<STANDARD-DIRECT-SLOT-DEFINITION OBJ/AST:AST> #<STANDARD-DIRECT-SLOT-DEFINITION OBJ/AST:AST>)
	DOCUMENTATION = NIL
	SB-PCL::DOCUMENTATIONP = NIL
	SB-PCL::INITARGS = (:AST)
	SB-PCL::INITFORM = NIL
	SB-PCL::INITFUNCTION = NIL
	SB-PCL::INITP = NIL
	SB-PCL::NAME = OBJ/AST:AST
	SB-PCL::NAMEP = T

 855: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<FUNCTION (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-PCL::UPDATE-CLASS) {739064260D1B}> #<MUTEX "PCL global mutex" taken owner=main thread>)
      Locals:
	GOT-IT = NIL
	MUTEX = #<MUTEX "PCL global mutex" taken owner=main thread>
	SB-C::THING = #<FUNCTION (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-PCL::UPDATE-CLASS) {739064260D1B}>

1.1.68. DONE exfil from obj

logbook
  • State "OUTLINE" from
  • State "DONE" from "WIP"
  • things lib/math will need from obj:
    • plan
    • store
    • graph
    • srv?
    • schema?
  • may go to std

1.1.69. DONE Ecosystem

logbook
  • State "RESEARCH" from
  • State "WIP" from "RESEARCH"

CLOCK: (2:00)

  • State "DONE" from "WIP"

1.1.70. DONE refactor libs into math

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • obj should NOT depend on math
    • math depends on obj for tensor
  • accumulators? hmm..
    • need to be in math but also used by queries which is in obj
    • may need to split out obj/query to Q
      • done
    • moved to std/seq
  • math depends on ffi, depended on by dsp,net,apps,etc
  • should probably have the most tests of all libs
  • we want OBJ/TENSOR - see tensor

1.1.71. DONE symbol cleanup

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

delete unbound non-anaphoric symbols

(let ((ret))
  (do-external-symbols (s :std ret)
    (when (not (or (boundp s) (fboundp s) (cadr (multiple-value-list (typexpand s))) (find-class s nil)))
      (push s ret))))
TIME-REMAINING PID-T TIMESPEC IT LOFF-T STAGES %P TASK GID-T .I %THREAD %A MAYBE-INLINE JOBS TASKS TIMEVAL WINSIZE UID-T

1.1.72. DONE review previous state of std/tasks

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

We were doing some things right - like our semaphore worker waking

  • already added this to BROADCAST-WORK (comment suggestion by lmj)
  • mailbox stuff not as useful (speed is a concern over more primitive cas queues and spinlocks)

1.1.73. DONE explain   doc

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"
  • generic done
  • maybe simple version in std/fmt

1.1.74. DONE explore   doc

logbook
  • State "TODO" from "TODO"
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"
  • generic done

1.1.75. DONE define-alien-struct

logbook
  • State "DONE" from "TODO"
  • Refiled on
  • convenience for defining alien structs, especially with the same name as lisp type

1.1.76. DONE remove makefile

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.77. DONE remove asdf/quicklisp from skelfiles

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.78. DONE undefined symbols

logbook
  • State "TODO" from
  • State "FIXME" from "TODO"
  • State "DONE" from "FIXME"
  • ; compilation unit finished
    ; RDB::CURSOR-GET-BOTH-BUFFERED
          RDB::CURSOR-MOVE-BUFFERED RDB::CURSOR-SET-BUFFERED
          RDB::DB-CURSOR RDB::DB-CURSOR-MOVE-BUFFERED
          RDB::DB-CURSOR-PGET-BOTH-BUFFERED RDB::DB-CURSOR-PMOVE-BUFFERED
          RDB::DB-CURSOR-PSET-BUFFERED RDB::DB-CURSOR-SET-BUFFERED
          RDB::DB-DELETE-BUFFERED RDB::DB-PUT-BUFFERED
          GETRF! GETRI! GETRS!
          OBJ/STORE::INSTANCE-CLASS-INDEX OBJ/STORE::INSTANCE-TABLE
    

1.1.79. DONE rocksdb [1/1]   rocksdb

logbook
  • State "PROJECT" from
  • State "DONE" from "PROJECT"
  1. DONE final cleanup
    logbook
    • State "TBD" from
    • State "DONE" from "TBD"

1.1.80. DONE openssl

logbook
  • State "PROJECT" from
  • Note taken on
    rustls moved to basement, renamed to openssl
  • State "DONE" from "PROJECT"
  • no AWSLC
  • vanilla openssl (vendored)
STYLE-WARNING:
   Couldn't grovel for SSL_OP_IGNORE_UNEXPECTED_EOF (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for SSL_OP_NO_SSLv1 (unknown to the C compiler).
STYLE-WARNING:
   Couldn't grovel for SSL_OP_NO_SSLv1_1 (unknown to the C compiler).
STYLE-WARNING:
   Couldn't grovel for SSL_OP_NO_SSLv1_2 (unknown to the C compiler).
STYLE-WARNING:
   Couldn't grovel for SSL_CTRL_SET_MIN_PROTO_VERSION (unknown to the C compiler).
STYLE-WARNING:
   Couldn't grovel for SSL_CTRL_SET_MAX_PROTO_VERSION (unknown to the C compiler).
  1. DONE complete ffi
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    • finish the routines, define default callbacks
    • may depend on a std/alien:defcallback macro
    1. NOPE cl+ssl -> rustls
      logbook

      CLOCK: (1:36)

      • Refiled on
      • cl+ssl src
      • ffi-buffer -> static-vector
      • openssl has differences in symbol-names between versions - cl+ssl makes efforts to accomodate this
      • rustls doesn't suffer from this - if we ever end up implementing openssl too we won't bother with portability here either. Use Linux or gtfo.
        • but rustls depends on aws-lc which is a fork of openssl/libcrypto..
  2. DONE cl+ssl low-level API
    logbook
    • State "RESEARCH" from

    CLOCK: (0:00)

    • State "DONE" from "WIP"
    • State "DONE" from "DONE"
    • based on CFFI and gray streams
    • defines libssl BIOMETHOD for lisp streams
      • file descriptor approach is still faster and used by default
    • cross-platform (windows)
    • can define custom BIOs

1.1.81. DONE syslog -> sys

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

generalize to all linux includes

  • prob keep uring separate
  1. DONE ICMP
    logbook
    • State "TODO" from
    • State "DONE" from "TODO"
    (constant (icmp-filter "ICMP_FILTER"))
    
    (constantenum (icmp-types :define-constants t)
                  ((:icmp-echo-request "ICMP_ECHO"))
                  ((:icmp-echo-reply "ICMP_ECHOREPLY"))
                  ((:icmp-dest-unreach "ICMP_DEST_UNREACH"))
                  ((:icmp-source-quench "ICMP_SOURCE_QUENCH"))
                  ((:icmp-redirect "ICMP_REDIRECT"))
                  ((:icmp-time-exceeded "ICMP_TIME_EXCEEDED"))
                  ((:icmp-parameter-prob "ICMP_PARAMETERPROB"))
                  ((:icmp-timestamp-request "ICMP_TIMESTAMP"))
                  ((:icmp-timestamp-reply "ICMP_TIMESTAMPREPLY"))
                  ((:icmp-info-request "ICMP_INFO_REQUEST"))
                  ((:icmp-info-reply "ICMP_INFO_REPLY"))
                  ((:icmp-address-request "ICMP_ADDRESS"))
                  ((:icmp-address-reply "ICMP_ADDRESSREPLY")))
    
    (constantenum (icmp-unreach :define-constants t)
                  ((:icmp-net-unreach "ICMP_NET_UNREACH"))
                  ((:icmp-host-unreach "ICMP_HOST_UNREACH"))
                  ((:icmp-prot-unreach "ICMP_PROT_UNREACH"))
                  ((:icmp-port-unreach "ICMP_PORT_UNREACH"))
                  ((:icmp-frag-needed "ICMP_FRAG_NEEDED"))
                  ((:icmp-sr-failed "ICMP_SR_FAILED"))
                  ((:icmp-net-unknown "ICMP_NET_UNKNOWN"))
                  ((:icmp-host-unknown "ICMP_HOST_UNKNOWN"))
                  ((:icmp-host-isolated "ICMP_HOST_ISOLATED"))
                  ((:icmp-net-ano "ICMP_NET_ANO"))
                  ((:icmp-host-ano "ICMP_HOST_ANO"))
                  ((:icmp-net-unr-tos "ICMP_NET_UNR_TOS"))
                  ((:icmp-host-unr-tos "ICMP_HOST_UNR_TOS"))
                  ((:icmp-pkt-filtered "ICMP_PKT_FILTERED"))
                  ((:icmp-prec-violation "ICMP_PREC_VIOLATION"))
                  ((:icmp-prec-cutoff "ICMP_PREC_CUTOFF")))
    
    (constantenum (icmp-redirect :define-constants t)
                  ((:icmp-redir-net "ICMP_REDIR_NET"))
                  ((:icmp-redir-host "ICMP_REDIR_HOST"))
                  ((:icmp-redir-nettos "ICMP_REDIR_NETTOS"))
                  ((:icmp-redir-hosttos "ICMP_REDIR_HOSTTOS")))
    
    (constantenum (icmp-time-exceeded :define-constants t)
                  ((:icmp-exc-ttl "ICMP_EXC_TTL"))
                  ((:icmp-exc-fragtime "ICMP_EXC_FRAGTIME"))))
    

1.1.82. DONE BLAS Extensions

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.83. DONE convert bin to bin.lisp

logbook
  • State "PROJECT" from
  • State "TODO" from "PROJECT"
  • State "DONE" from "TODO"
  • move scripts to top-level
  1. TODO prune internal packages
    logbook
    • State "TODO" from
    • can shake internal packages like CLI-INT/STD-INT on build

1.1.84. DONE with-sbcl   macro

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • Note taken on
    good enough for now - package re-export issues in std

[BROKEN LINK: No match for fuzzy expression: ;; FIX 2025-06-10: why can't we find compile-system even when specifying the package?] std/defpkg:symbol-call :asdf "COMPILE-SYSTEM"

1.1.85. DONE cli-command

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
(documentation (find-class 'cli-command) t)
Class of COMMANDs which may be executed directly from the command line.

1.1.86. DONE cli

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
(documentation 'define-cli 'function)
Define a new CLI object.

NAME is assigned to the CLI and assumed to be the default binary name which
uses this object.

VERSION, DESCRIPTION, HOOK, CD, and MAIN are assigned to the associated slot
value of the CLI.

1.1.87. DONE package CLIs

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
(directory-files-recursively "~/src/core/" ".*cli[.]lisp$")
  • ~/src/core/app/mpk/cli.lisp
  • ~/src/core/app/skel/homer/cli.lisp
  • ~/src/core/app/skel/krypt/cli.lisp
  • ~/src/core/app/skel/packy/cli.lisp
  • ~/src/core/app/skel/cli.lisp
  • ~/src/core/lib/cli/cli.lisp
  • ~/src/core/lib/organ/cli.lisp
  • ~/src/core/lib/pod/cli.lisp
  • ~/src/core/lib/rdb/cli.lisp
  • ~/src/core/lib/syn/cli.lisp
  • ~/src/core/lib/vc/cli.lisp

1.1.88. DONE linedit prefixes

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

should be pretty simple - bind C-x to a command which calls read-chord and looks up the next funcall in a user-specified command table.

1.1.89. DONE decide if this should be part of lib/q instead

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Note taken on
    answer: yes

1.1.90. DONE SER and DE failures

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • replace with serialize/deserialize

1.1.91. DONE C function declaration arguments

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • Note taken on
    need to fix the deref operator - does not seem to be printing correctly
  • State "DONE" from "WIP"
  • this should give us enough to remove the remaining C code from the core source tree
  • replace zstd/alien.c and tree-sitter/alien.c with C gen-syntax.
  • next we will target full header files
    • REWMODE

1.1.92. DONE tls

logbook
  • State "WIP" from
  • Note taken on
    rename to tls
  • State "DONE" from "WIP"
  1. DONE ssl streams
    logbook
    • State "DONE" from "WIP"

1.1.93. DONE CMD   cmd

logbook
  • State "TODO" from

CLOCK: (0:01)

  • State "DONE" from "WIP"
  • commands are a more generalized concept than we initially planned
    • CLI is most used case (depth), WM contains most commands (breadth)
  • cli-cmd -> cli-command
  • obj:defcommand (obj:defcmd?)
  • obj:*command-table*
  • our preference is to store them as funcallable objects (kernels)
  • NOPE: do we need a package? probably want to access via symbol-table -> compile functions

1.1.94. DONE Command Itypes   cmd

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

we need to ignore lambda-list-keywords, apply interactive spec

  • do we want a 'skip' interactive designator? probably not
(defcommand foo (&optional bar) (declare (interactive string))) ; FIXED
  • ☑ CHECK-ITYPE should only be called in DEFCOMMAND
  • ☑ after parse-command we need to compare the arglist to ITYPE
    • skip all provided args
    • call the remaining interactive-types with INPUT

1.1.95. DONE url-encode

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.96. DONE url-decode

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

1.1.97. DONE dispatch strategy for tensor methods

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • MATLISP uses a somewhat janky macro-based template approach
    • compiles methods in place.. (defmethod foo () (compile-and-eval `(defmethod %foo ...)) (%foo))
    • mention in the comments of using MOP instead
  • instead of macro-based templates let's abuse compiler macros as much as we can
  • ☐ investigate tensor methods
  • instead of compiler macros, let's abuse the compiler :)
    • deftransform, array specialization stuff (sb-vm, sb-c)
  • sbcl has its own concept of higher-ordered types see define-type-class
  • MATLISP main branch uses MOP - tensor-class and tensor-method-generator, in addition to the auto-memoized templates (std/meta for us)
    • currently transitioning to this API
    • attempting to leverage STD:KERNEL-CLASS for the tensor accessor stuff. Could be a bad idea.. TBD.

1.1.98. DONE figure out path forward for obj/tensor/loop

logbook
  • State "TODO" from
  • Note taken on
    currently stuck in implementation..
  • Note taken on
    using loop-paths
  • State "DONE" from "TODO"

1.1.99. DONE define-tensor-method

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • still something suspicious going on, computed method isn't being dispatched correctly
(handler-case (obj/tensor::ref (obj/tensor::zeros 100) 0)
    (error (c) (print c)))

#<TYPE-ERROR expected-type: ARRAY
             datum:
             #<OBJ/TENSOR::|<BLAS-MIXIN SIMPLE-DENSE-TENSOR: DOUBLE-FLOAT>| {120DB56EE3}>> 
  • one of the filters isn't doing the right thing in the presence of standard method defs (generic defs)

1.1.100. DONE obj/cache

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • entry-weights are sorta broken
  • need to re-evaluate based on CACLE and probably add some missing slots - policy can't be abused the way we're doin it.

1.1.101. DONE base16 palettes

logbook
  • State "TODO" from
  • Note taken on
    just need to add some default palettes to COLOR-PALETTES and good to go
  • State "DONE" from "TODO"

Base16 aims to group similar language constructs with a single color. For example, floats, ints, and doubles would belong to the same colour group. The colors for the default theme were chosen to be easily separable, but scheme designers should pick whichever colours they desire, e.g. base0B (green by default) could be replaced with red. There are, however, some general guidelines below that stipulate which base0B should be used to highlight each construct when designing templates for editors.

Since describing syntax highlighting can be tricky, please see base16-vim and base16-textmate for reference. Though it should be noted that each editor will have some discrepancies due the fact that editors generally have different syntax highlighting engines.

Colors base00 to base07 are typically variations of a shade and run from darkest to lightest. These colors are used for foreground and background, status bars, line highlighting and such. Colors base08 to base0F are typically individual colors used for types, operators, names and variables. In order to create a dark theme, colors base00 to base07 should span from dark to light. For a light theme, these colours should span from light to dark.

1.1.102. DONE remove cl+ssl dependency

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
(rgrep "ssl" "*.*" "~/src/core/lib/net/")

1.1.103. DONE remove babel dependency

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

we want to resuse the internal sbcl machinery as much as possible to avoid making copies of string coders.

babel provides a flexible charset coding library similar to libiconv. The semantics are somewhat different from SBCL but they share basically the same goal.

It appears that babel ENCODINGs are used in many places where a simple sbcl EXTERNAL-FORMAT would do. The difference is that EXTERNAL-FORMATs are not supposed to be extensible (AFAIK). Babel seems to make the assumption that we aren't supposed to mess with sb-impl and other internals much - which is where all the useful stuff is.

I have a hunch there is some reason other than portability that its so prevelant tho.. only one way to find out :)

(rgrep "babel" "*.*" "~/src/core/lib/net/")
  • babel-encodings
    • enc-max-units-per-char
    • lookup-mapping
    • string-vector-mappings
    • code-point-counter
    • decoder
;; defined in sb external format def macros
(defun ,(make-od-name ',octets-to-string-name/cr accessor) (array astart aend replacement)
  (declare (optimize speed)
           (type ,type array)
           (type array-range astart aend)
           (ignorable replacement))
  (let ((string (make-array 0 :element-type 'character :fill-pointer 0 :adjustable t)))
    (loop for apos from astart below aend
          do (let* ((byte (,accessor array apos))
                    (code (,',->code-name byte))
                    (string-content
                      (cond
                        ((null code)
                         (decoding-error array apos (1+ apos)
                                         '(,',external-format :newline :cr)
                                         replacement
                                         ',',decoding-condition-name
                                         apos))
                        ((= code 13) (code-char 10))
                        (t (code-char code)))))
               (if (characterp string-content)
                   (vector-push-extend string-content string)
                   (loop for c across string-content
                         do (vector-push-extend c string))))
          finally (return (coerce string 'simple-string))))))

1.1.104. DONE gui [2/2]   gui

logbook
  • State "TODO" from
  • State "PROJECT" from "TODO"
  • Note taken on
    moved to shed
  • State "DONE" from "PROJECT"
  1. NOPE wayland protocol bindings
    logbook
    • State "TODO" from
    • State "WAIT" from "TODO"
      Wait until we actually have a usecase for Wayland
    • State "NOPE" from "WAIT"
  2. NOPE wayland compositor   rust lisp
    logbook
    • State "TBD" from "TODO"
    properties

    :ID: e18a90d7-10bc-44d3-8508-56483d29d385

1.1.105. DONE zlib compression

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • State "DONE" from "WIP"
  • uses deflate
  • refactor salza2 to use io protos
  • replace salza2 and remove dependency

1.1.106. NOPE stream-write-sequence for deflate

logbook
  • State "FIXME" from
  • use compress and decompress instead - no direct stream support

1.1.107. DONE zstd streams

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
  • keep getting segfaults when using the streaming api (which is much faster and needed for serious use)
  • need to debug and fix, test in dat/tar on tar.zst files

1.1.108. DONE wm:kmap -> io/kbd:keymap

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • make-sparse-keymap
  • probably just using hash-tables, same as color palettes, etc.
  • how should we handle transients?
  • what is the relation with commands?
    • wm already binds the last keyseq for each command
    • would want to bind a *KEYMAP* variable with a STATE slot being the active parent key

1.1.109. DONE type keyword for box configs

logbook

CLOCK: (1:22)

  • Note taken on
    pretty easy, just gotta finesse safe-io-syntax
  • State "WIP" from
  • State "DONE" from "WIP"
  • erased on read
  • might want to indicate working-dir, output
  1. DONE from keyword
    logbook
    • State "WIP" from
    • State "DONE" from "WIP"

1.1.110. NOPE sstring<->cstring

logbook
  • State "TODO" from
  • translate between simple-strings and cstrings (special case of string)

1.1.111. NOPE DEFAPI

logbook
  • State "TODO" from
  • Note taken on
    how bout deftable? hmm?
  • in prim.lisp
  • shared macro for defining the follow interfaces:
    • readtables (would need additional refactoring to depend on prim.lisp)
    • print tables
    • annotations
    • commands
    • thread-pools
    • colors
    • keybinds
    • loop universes?
    • io-table?

1.1.112. DONE annotations

logbook
  • State "TODO" from

CLOCK: (0:00)

  • State "DONE" from "WIP"

1.1.113. DONE slime-goto-pkg-source-definition   slime

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • Note taken on
    instead we can just modify slime-defpackage-regexp :)

1.1.114. DONE project-info better vc info

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • at least have option of disabling - it isn't always correct about the location

1.1.115. NOPE implement vm

logbook
  • State "TODO" from
  • New deadline from "" on

CLOCK: (2:41)

  • State "WIP" from "TODO"
  • New deadline from "" on
  • Note taken on
    not liking our current impl.. rewrite and document
  • State "NEXT" from "WIP"
  • New deadline from "" on
  • State "HOLD" from "NEXT"
    Too early for this
  • State "WIP" from "HOLD"
  • Note taken on
    Skel needs a strong multi-threaded runtime in order to do its job efficiently on most devices. Our async APIs are still very young which presents a blocker to this line of work, but there is additional work which needs to be done in skel/core which we can make progress on in preparation.
  • New deadline from "" on
  • State "WAIT" from "WIP"
    waiting on completion of std/task and friends
  • State "TODO" from "WAIT"
  • core/vm.lisp
  • how will rules, commands, and components interact?
    • what sort of configuration is needed and where?
  • requires load, building of logical plan, execution of physical plan (in async runtime) with results (+cache)
  • analysis pre/post-load, pre/post execution
  • execution strategies?
  • main thread should show progress in parallel
    • capture conditions/debugger
    • figure out how to retrieve stacktrace from worker threads

1.1.116. DONE skel rule compilation environment

logbook
  • State "TODO" from
  • State "FIXME" from
  • State "DONE" from "FIXME"

1.1.117. DONE infra :lisp module

logbook
  • State "FIXME" from "TODO"
  • Refiled on
  • State "DONE" from "FIXME"
  • we broke sk-file-component, need to repair

1.1.118. DONE compiler warnings

logbook
  • State "FIXME" from
  • State "DONE" from "FIXME"
default.el:176:7: Warning: assignment to free variable ‘multisession-storage’
default.el:184:11: Warning: assignment to free variable ‘hg-binary’
default.el:240:6: Warning: docstring has wrong usage of unescaped single
    quotes (use \=' or different quoting such as `...')
default.el:259:30: Warning: ‘:inherit’ called as a function
default.el:260:30: Warning: ‘:indentation’ called as a function
default.el:261:42: Warning: reference to free variable ‘defpackage’
default.el:262:31: Warning: ‘define-package’ called with 1 argument, but
    requires 2 or more
default.el:262:31: Warning: ‘define-package’ is an obsolete function (as of
    29.1).
default.el:286:9: Warning: assignment to free variable
    ‘common-lisp-style-default’
default.el:305:19: Warning: reference to free variable ‘eglot-server-programs’
default.el:305:19: Warning: assignment to free variable
    ‘eglot-server-programs’
default.el:313:7: Warning: assignment to free variable ‘rust-rustfmt-switches’
default.el:314:7: Warning: assignment to free variable ‘rust-indent-offset’
default.el:317:7: Warning: assignment to free variable ‘python-indent-offset’
default.el:321:7: Warning: assignment to free variable ‘js-indent-level’
default.el:324:7: Warning: assignment to free variable ‘sh-basic-offset’
default.el:331:12: Warning: in defcustom for ‘prog-comment-keywords’: missing
    :type keyword parameter
default.el:336:12: Warning: in defcustom for
    ‘prog-comment-timestamp-format-concise’: missing :type keyword parameter
default.el:342:12: Warning: in defcustom for
    ‘prog-comment-timestamp-format-verbose’: missing :type keyword parameter

In prog-comment-timestamp-keyword:
default.el:386:2: Warning: docstring has wrong usage of unescaped single
    quotes (use \=' or different quoting such as `...')
default.el:414:20: Warning: reference to free variable
    ‘comment-timestamp-format-verbose’
default.el:443:7: Warning: assignment to free variable ‘hexl-bits’

In buffer-to-register:
default.el:474:47: Warning: Unused lexical argument ‘delete’

In file-to-register:
default.el:481:45: Warning: Unused lexical argument ‘delete’

In file-query-to-register:
default.el:487:51: Warning: Unused lexical argument ‘delete’
default.el:529:12: Warning: in defcustom for ‘default-scratch-buffer-mode’:
    missing :type keyword parameter
default.el:625:7: Warning: assignment to free variable
    ‘eshell-highlight-prompt’
default.el:626:7: Warning: assignment to free variable
    ‘eshell-hist-ignoredups’
default.el:627:7: Warning: assignment to free variable
    ‘eshell-save-history-on-exit’
default.el:629:7: Warning: assignment to free variable
    ‘eshell-destroy-buffer-when-process-dies’

In eshell-quit-or-delete-char:
default.el:645:20: Warning: ‘looking-back’ called with 1 argument, but
    requires 2 or 3
default.el:645:33: Warning: reference to free variable ‘eshell-prompt-regexp’
default.el:650:6: Warning: ‘delete-forward-char’ is for interactive use only;
    use ‘delete-char’ instead.
default.el:654:29: Warning: reference to free variable ‘eshell-mode-map’

In eshell-next-prompt:
default.el:660:22: Warning: reference to free variable ‘eshell-prompt-regexp’
default.el:661:9: Warning: reference to free variable
    ‘eshell-highlight-prompt’

In eshell-insert-history:
default.el:677:48: Warning: reference to free variable ‘eshell-history-ring’
default.el:736:49: Warning: reference to free variable ‘eww-mode-map’
default.el:747:7: Warning: assignment to free variable
    ‘org-id-link-to-org-use-id’
default.el:749:7: Warning: assignment to free variable ‘org-capture-templates’
default.el:761:7: Warning: assignment to free variable
    ‘org-html-htmlize-output-type’
default.el:762:7: Warning: assignment to free variable
    ‘org-html-head-include-default-style’
default.el:764:7: Warning: assignment to free variable ‘org-ascii-text-width’
default.el:768:7: Warning: assignment to free variable
    ‘org-structure-template-alist’
default.el:805:7: Warning: assignment to free variable ‘org-archive-location’

In org-ask-location:
default.el:853:11: Warning: Unused lexical variable ‘org-refile-targets’
default.el:856:28: Warning: reference to free variable ‘org-refile-history’
default.el:860:18: Warning: reference to free variable
    ‘org-complex-heading-regexp-format’

In org-capture-fileref-snippet:
default.el:868:37: Warning: Unused lexical argument ‘f’
default.el:906:7: Warning: assignment to free variable ‘org-global-properties’

In org-adjust-tags-column-reset-tags:
default.el:936:39: Warning: Unused lexical argument ‘ignored’

In column-display-value-transformer:
default.el:942:55: Warning: Unused lexical argument ‘value’
default.el:954:7: Warning: assignment to free variable
    ‘org-columns-modify-value-for-display-function’

In org-remove-redundant-tags:
default.el:974:32: Warning: Unused lexical variable ‘tag’
default.el:984:69: Warning: ‘memql’ called with literal list that may never
    match (arg 1)

In org-agenda-reschedule-to-today:
default.el:995:35: Warning: Unused lexical argument ‘rest’
default.el:999:2: Warning: ‘defadvice’ is an obsolete macro (as of 30.1); use
    ‘advice-add’ or ‘define-advice’

In org-export-translate-to-lang:
default.el:1079:35: Warning: reference to free variable
    ‘org-export-dictionary’

In end of data:
default.el:979:42: Warning: the function ‘org-toggle-tag’ might not be defined
    at runtime.
default.el:971:8: Warning: the function ‘org-map-entries’ might not be defined
    at runtime.
default.el:961:4: Warning: the function ‘org-table-map-tables’ might not be
    defined at runtime.
default.el:949:9: Warning: the function ‘org-entry-end-position’ might not be
    defined at runtime.
default.el:946:8: Warning: the function ‘org-back-to-heading’ might not be
    defined at runtime.
default.el:937:20: Warning: the function ‘org-set-tags’ might not be defined
    at runtime.
default.el:918:10: Warning: the function ‘org-set-property’ might not be
    defined at runtime.
default.el:916:14: Warning: the function ‘org-entry-get-multivalued-property’
    might not be defined at runtime.
default.el:912:12: Warning: the function ‘org-entry-get’ might not be defined
    at runtime.
default.el:898:23: Warning: the function ‘which-function’ is not known to be
    defined.
default.el:858:6: Warning: the function ‘outline-next-heading’ might not be
    defined at runtime.
default.el:855:24: Warning: the function ‘org-refile-get-location’ might not
    be defined at runtime.
default.el:846:39: Warning: the function ‘org-todo’ might not be defined at
    runtime.
default.el:843:48: Warning: the function ‘org-read-date’ might not be defined
    at runtime.
default.el:843:23: Warning: the function ‘org-time-string-to-time’ might not
    be defined at runtime.
default.el:664:4: Warning: the function ‘eshell-skip-prompt’ is not known to
    be defined.
default.el:647:10: Warning: the function ‘eshell-life-is-too-much’ is not
    known to be defined.
default.el:641:6: Warning: the function ‘eshell-send-input’ is not known to be
    defined.
default.el:633:14: Warning: the function ‘eshell/alias’ is not known to be
    defined.
default.el:308:6: Warning: the function ‘eglot-x-setup’ is not known to be
    defined.
default.el:261:39: Warning: the function ‘as’ is not known to be defined.
default.el:261:31: Warning: the function ‘defpkg’ is not known to be defined.
default.el:260:30: Warning: the function ‘:indentation’ is not known to be
    defined.
default.el:259:30: Warning: the function ‘:inherit’ is not known to be
    defined.
default.el:258:4: Warning: the function ‘define-common-lisp-style’ is not
    known to be defined.
default.el:245:8: Warning: the function ‘slime-eval-async’ might not be
    defined at runtime.
default.el:243:14: Warning: the function ‘slime-sexp-at-point’ might not be
    defined at runtime.
default.el:241:13: Warning: the function ‘slime-read-from-minibuffer’ might
    not be defined at runtime.
default.el:233:10: Warning: the function ‘slime-repl’ is not known to be
    defined.
default.el:228:14: Warning: the function ‘slime-connected-p’ might not be
    defined at runtime.
Loading which-key (native compiled elisp)...done
All your packages are already installed
Waiting for git... [2 times]
Loading /home/ellis/.emacs.d/ellis.el (source)...
Local variables list is not properly terminated
Source file ‘/home/ellis/.emacs.d/lib/ulang.el’ newer than byte-compiled file; using older file
Initialized ULANG.
Repeat mode is enabled for 38 commands and 13 keymaps; see ‘describe-repeat-maps’
Loading /home/ellis/.emacs.d/ellis.el (source)...done
Starting Emacs daemon.

1.1.119. NOPE allout-mode support

logbook
  • State "TODO" from

should extensively support throughout our code

1.1.120. DONE rewrite #1

logbook
  • State "TODO" from

CLOCK: (1:00)

  • State "WIP" from "TODO"

CLOCK: (1:09)

CLOCK: (3:00)

CLOCK: (1:00)

  • State "DONE" from "WIP"

1.1.121. DONE dictd

logbook
  • State "TODO" from
  • Note taken on
    basically done - serving on compiler.company:2628 with route through https
  • State "DONE" from "TODO"

1.1.122. DONE reintegrate pod and box   vc

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • ☑ pod
  • ☑ box
  • ☑ .hgsub

1.1.123. DONE deploy [4/4]   lisp

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • ☑ collect artifacts
  • ☑ pack
  • ☑ send output to DIST
  • ☑ Adapt to skel deploy
  • assumptions
    • host is qualified builder
    • all dependendencies installed on system (not in stash)
    • current user has access to DIST
  • done in org skelfile

1.1.124. DONE publish [4/4]   lisp emacs

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • done in org skelfile
  • ☑ load dependencies (htmlize,default.el,babel.org)
  • ☑ load publish.el
  • ☑ set publish-directory
  • ☑ eval publish

1.1.125. DONE tree-sitter-pack

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • pull-tree-sitter-langs.sh
  • install-tree-sitter-langs.sh (OG, calls pull)
  • make dist/tree-sitter

1.1.126. DONE don't execute babel in archives

logbook
  • Refiled on
  • State "DONE" from "TODO"

1.1.127. DONE factor out sk prefix classes

logbook
  • State "TODO" from

CLOCK: (0:06)

  • Note taken on
    start with OBJ - what can we subclass from?

CLOCK: (5:27)

  • Note taken on
    PROJECT-COMPONENT is based on COMPONENT, more work to be done to factor out LOAD-PROJECT-COMPONENT. The DEFSYS:COMPONENT protocol is currently NOT generic. Only the component-task protocol. which may still be a useful distinction..
  • State "DONE" from "TODO"

skel is high-level enough that we don't need the sk- prefix - where possible we should take advantage of the STD/SYS protocol too - in particular components, which might need to be added to the PROJECT protocol.

1.1.128. DONE lorem ipsum generator

logbook
  • State "TODO" from

CLOCK: (0:55)

  • Refiled on
  • State "WIP" from "TODO"
  • State "TEST" from "WIP"

CLOCK: (0:03)

  • State "DONE" from "TEST"

1.1.129. DONE qemu/vbox

logbook
  • State "RESEARCH" from

CLOCK: (0:35)

CLOCK: (2:48)

  • Note taken on
    no need for vbox integration - proprietary. prefer qcow2/x-remote when in multi-instance mode, for displays we will use VNC as our default RDP.
  • State "DONE" from "RESEARCH"
  • catch up on current state, qemu may be enough but we need single-click dispatch to interactive login
  • interested in VNC
  • use NET for network configs
  • patch into skel/comp/box
    • consider separate classes and removing the :type requirement.. .box or .qemu vs .archiso, meh

1.1.130. DONE plist-split

logbook
  • State "TODO" from

CLOCK: (0:42)

  • State "DONE" from "TODO"

1.1.131. DONE fix register-module append

logbook
  • State "TODO" from

CLOCK: (1:27)

  • Note taken on
    may have just fixed.. testing
  • State "DONE" from "WIP"

1.1.132. NOPE return* proto

logbook
  • State "TODO" from
  • State "TBD" from "TODO"

CLOCK: (0:15)

  • iolib/src/base/return-star.lisp
  • nested block returns
  • following macros are redefined in iolib/base:
    • defun
    • defmethod
    • lambda*
    • defmacro
    • define-compiler-macro
  • all wrap body in wrap-body-for-return-star
  • macrolets return*:

    (cl:defun wrap-body-for-return-star (body &optional block-name)
      (flet ((block-name (block)
               (etypecase block
                 (cons (destructuring-bind (kind block-name) block
                         (assert (eql 'setf kind))
                         (check-type block-name symbol)
                         block-name))
                 (symbol block))))
        (multiple-value-bind (body declarations docstring)
            (parse-body body :documentation t)
          (with-gensyms (value)
            (remove-if
             #'null
             `(,docstring
               ,@declarations
               ,(if block-name
                    `(macrolet ((return* (,value) `(return-from ,',(block-name block-name) ,,value)))
                       ,@body)
                    (with-gensyms (block)
                      `(block ,block
                         (macrolet ((return* (value) `(return-from ,',block ,value)))
                           ,@body))))))))))
    
  • idk do we really need this anywhere? let's see..
  • determination: NOPE
  • effectively this just shortens a return-from statement, just worth keeping in mind while reading iolib code - return* != return.

1.1.133. DONE fix std:curry warnings

logbook
  • State "TODO" from
  • Refiled on

CLOCK: (0:34)

  • State "DONE" from "WIP"

1.1.134. DONE skel-agenda init

logbook
  • State "TODO" from

CLOCK: (0:30)

CLOCK: (0:25)

  • State "DONE" from "WIP"

1.1.135. NOPE changelog

logbook
  • State "TODO" from

CLOCK: (0:27)

CLOCK: (0:27)

1.1.136. DONE eglot-lisp init

logbook
  • State "TODO" from
  • Note taken on
    which impl should we use as a starting point?
  • State "DONE" from "TODO"
  • the emacs client part is relatively simple
(add-to-list 'eglot-server-programs '(lisp-mode "skel" "lsp"))
  • hard part is JSON-RPC + LSP on top of swank
  • eglot has a soft dependency of markdown-mode, yasnippet and company
  • intention is to replace eglot--snippet-expansion-fn eglot--format-markup

1.1.137. DONE eglot discovery

logbook
  • State "RESEARCH" from

CLOCK: (0:36)

  • State "DONE" from "RESEARCH"
  • eglot#Top
  • eglot-format
  • integrates with flymake
  • integrates with yasnippet (prob need to impl for abbrevs/tempo/skel)

Most Eglot facilities are integrated into Emacs features, such as ElDoc, Flymake, Xref, and Imenu. However, Eglot also provides commands of its own, mainly to perform tasks by the language server, such as ‘M-x eglot-rename’ (to rename an identifier across the entire project), ‘M-x eglot-format’ (to reformat and reindent code), and some others. *Note Eglot Commands::, for the detailed list of Eglot commands.

  • eglot-semantic-faces - presentations?

1.1.138. DONE src/org capture templates

logbook
  • State "TODO" from
  • State "WIP" from "TODO"

CLOCK: (0:34)

1.1.139. DONE agenda views

logbook
  • State "TODO" from
  • State "DONE" from "TODO"
  • a few defined in ellis.el
  • define some starter ones for inbox.el
  • define views for plan.el

1.1.140. DONE skel-shell-mode

logbook
  • State "TODO" from

CLOCK: (0:21)

CLOCK: (0:41)

  • Note taken on
    we will want some upgrades, pending LSP/DAP support, will be project-focused, not using code injection like python-mode.
  • State "DONE" from "TODO"
  • project-local skel shell
  • features based on skelfile/cli? (swank, lsp)

1.1.141. DONE desktop-maybe-enable

logbook
  • State "TODO" from

CLOCK: (1:05)

  • State "DONE" from "TODO"
  • don't open desktop when any args are passed
  • emacs OK
  • emacs foo NO
  • later.. emacs skelfile should be dynamic - enable desktop based on project config

1.1.142. NOPE desktop save functions

logbook
  • State "TODO" from

CLOCK: (0:37)

CLOCK: (0:19)

  • need to set the desktop-save-buffer value for the following buffers:
  • slime,ielm,eshell,org-agenda,notmuch,elfeed
  • see desktop-buffer-mode-handlers and desktop-minor-mode-handlers
    • dired-restore-desktop-buffer
(add-to-list 'desktop-buffer-mode-handlers '(skel-mode . skel-restore-desktop-buffer))
(add-to-list 'desktop-minor-mode-handlers '(skel-minor-mode . skel-restore-desktop-buffer))
  • also requires setting up misc-data..
  • better off leaving as is for now.
  • eventually we may want to store a checksum which gets passed to the server on project start/desktop open and determines if reparse is needed
  • better example: eww-desktop-misc-data
  • (setq-local desktop-save-buffer #'eww-desktop-misc-data)

Only the properties listed in ‘eww-desktop-data-save’ are included. Generally, the list should not include the (usually overly large) :dom, :source and :text properties.

(:url :title :point)

1.1.143. DONE etags

logbook
  • State "RESEARCH" from

CLOCK: (0:02)

  • State "DONE" from "RESEARCH"

1.1.144. DONE ispell

logbook
  • State "RESEARCH" from

CLOCK: (0:48)

  • State "DONE" from "RESEARCH"
  • hunspell dictionary defaults to $HOME - figure out how to remap, pre-populate, and import into public dictionary (dict.compiler.company)

1.1.145. DONE speedbar-obj-alist for cl

logbook
  • Refiled on

CLOCK: (0:03)

  • State "DONE" from "WIP"

(fasls)

1.2. demo

1.2.1. OUTLINE Logical Pathnames Proposal

logbook
  • State "TBD" from
  • State "OUTLINE" from
  • Discord Lisp#common-lisp

    so I've been thinking about logical pathnames for a bit - it appears
    there is plenty of room for implementation-defined extension in the
    spec (via translate-logical-pathname keyword args) as well as
    load-logical-pathname-translations - what I'd like to do is make some
    recommendations for extending the capabilities in a
    backwards-compatible way that are less geared towards managing
    filesystem conventions between different physical hosts and more
    towards being an easy 'path-finding' tool which is easy for
    programmers to plug custom logic into.
    
    @phoe would this be something a CDR would apply to? alternatively I
    could just work on a patch to submit for sbcl - still need to look at
    if any other impl does something fancy
    
Bike: honestly that's the only thing i use them for, but i'm open to
suggestions. what would you like to have beyond the
logical-pathname-translations interface?

[10:26 PM]ellis: what I'm thinking is some sort of API where you can
provide additional layers of translation, maybe by specifying a
keyword argument args in the form :translate-device (lambda (device)
;; translation? side effects on dynamic vars?) :translate-version..

[10:31 PM]ellis: for load-logical-pathname-translations i like the
idea of a similar situation with a user defined function instead of
relying on 'SYS:SITE;HOST.TRANSLATIONS' - maybe I want to use this in
a p2p discovery service for example and I want to specify a function
which does a remote lookup, parses a response and returns the
appropriate form

[10:33 PM]ellis: right now i'm just experimenting with the
conventional local-projects approach, stuff like 'SYS:TMP' and
'MEDIA:MUSIC', which has kept me busy enough but will find some time
to prototype something out

[10:40 PM]ellis: a few other things that came to mind..  cached/db
access to pathname translation index-based wildcard translation
(sketchy) - (translate-logical-pathname "MEDIA:MUSIC;0"
:translate-wildcard (lambda (x) (aref
*sorted-music-directory-contents* x)))

[10:44 PM]ellis: really makes more sense as a package, like
translate-pathname* but just a shame to waste those keyword args lol

[10:44 PM]ellis: (defvar *default-logical-pathname-translator* 'translate-logical-pathname)
  • initial feedback

    3:48 AM]Isomorphism: Yeah but on the other hand, why not just make a
    dedicated library to your path parsing thing? Generic extensions to
    path resolution is a little scary to me, given that something
    unrelated could suddenly become vulnerable to some injection attack
    
    [9:51 AM]Bike: i would generally be skeptical of a global hook like
    this translator. it's nasty if libraries can rebind or set a variable
    and suddenly logical pathname stuff everywhere breaks, including
    inside the implementation. logical-pathname-translations is sorta
    there already though
    

1.2.2. RESEARCH Shirakumo Ecosystem [0/3]

logbook
  • State "RESEARCH" from
  • Note taken on
    priorities are tests and documentation.
    • 3d-math tests are highest prio
  1. TODO get familiar with core eco
    logbook
    • State "TODO" from
  2. WIP 3d-math patches [0/2]
    logbook
    • State "TBD" from
    1. WIP quaternion convention
      logbook
      • State "TODO" from

      CLOCK: (1:09)

    2. RESEARCH 3d test suites
      logbook
      • State "TODO" from
      • State "RESEARCH" from "TODO"
  3. TBD redist [0/0]
    logbook
    • State "TBD" from

1.2.3. WIP sharplispers

logbook
  • State "RESEARCH" from
  • State "WIP" from "RESEARCH"
  1. WIP linedit [0/0]
    logbook
    • State "TODO" from
    • State "WIP" from "TODO"
    1. WAIT linedit inspect command
      logbook
      • State "WAIT" from
        pr submitted

      sharplispers/linedit#11

  2. WIP lparallel [0/2]
    logbook
    • State "TBD" from
    • State "WIP" from "TBD"
    1. WAIT Replace queues with semaphores [0/0]
      logbook
      • State "TODO" from
      • State "WAIT" from "TODO"
        pr submitted

      shoot first questions later, just submit the patch clearing the todo, SBCL only lparallel/src/kernel/core.lisp

      our current impl:

      (defun broadcast-work (function &rest args)
        "Wait for current and pending work to complete, if any, then
      simultaneously execute the given work inside each worker. Wait until
      this work is complete, then return the results in a vector.
      
      Calling `broadcast-work' from inside a worker is an error."
        (when *worker*
          (error "Cannot call `broadcast-work' from inside a worker."))
        (let* ((function (std/curry:ensure-function function))
           (*thread-pool* (check-thread-pool))
           (worker-count (worker-count*))
           (channel (make-instance 'channel))
           (from-workers (make-semaphore))
           (to-workers (make-semaphore)))
          (loop repeat worker-count 
            do (submit-work channel (lambda ()
                          (signal-semaphore from-workers)
                          (wait-on-semaphore to-workers)
                          (apply function args))))
          (loop repeat worker-count 
            do (wait-on-semaphore from-workers))
          (loop repeat worker-count 
            do (signal-semaphore to-workers))
          (map-into (make-array worker-count) (lambda () (receive-result channel)))))
      
  3. OUTLINE worker-notifications/handshake API change
    logbook
    • State "OUTLINE" from

    our current impl looks like this

    (defvar *default-worker-tx-capacity* 8)
    (defclass worker-status ()
      ((%rx :initform (sb-concurrency:make-gate))
       (%tx :initform (make-queue :fixed-capacity *default-worker-tx-capacity*))))
    

1.2.4. TBD stumpwm

logbook
  • State "TBD" from
  1. TBD clim-mode-line
    logbook
    • State "TBD" from
    • will probably make a new API for this which won't be contribed - still should do a once over and cover any TODOs or bugs
    1. TODO interpret stumpwm mode-line format
      logbook
      • State "TODO" from

1.2.5. TBD mcclim

logbook
  • State "TBD" from

1.2.6. WIP edicl

logbook
  • State "RESEARCH" from
  • State "WIP" from "RESEARCH"
  1. DONE cl-who fixes
    logbook
    • State "WIP" from
    • State "WAIT" from "WIP"
    • State "DONE" from "WAIT"

    closes an issue - pr submitted

    • removed sbcl element-type change - needs further review
    • merged
  2. WAIT cl-interpol system descriptions
    logbook
    • State "WIP" from
    • State "WAIT" from "WIP"

    closes a request issue - pr submitted

  3. WAIT chunga memory-leak fixes
    logbook
    • State "TODO" from
    • State "WAIT" from "TODO"

2. roadmap

2.1. DONE 2024

logbook
  • State "DONE" from

2.2. DONE migrate VC off of EC2   opsec vc code

logbook
  • State "WIP" from
  • Note taken on
    removed dependency on heptapod, running plain ol hgweb behind proxy
  • State "DONE" from "WIP"
  • Note taken on
    next up: clonebundles,packy,git hosting

We no longer need to maintain an instance of our forge in AWS now that we have enough compute in-house.

vc.compiler.company will be migrate to rurik on a dedicated pod (requires ubuntu).

2.3. DONE Wireguard VPN   net opsec

logbook
  • State "TODO" from
  • State "WIP" from "TODO"
  • Note taken on
    all that is left is to configure for VM and containers
  • State "DONE" from "WIP"

Wireguard is a fast, secure, and easy to configure VPN library. All our primary devices have been configured and tested with two available endpoints. Our goal is to migrate all existing devices, then make appropriate accomodations for Podman containers, and finally KVM.

2.4. WIP 2025

logbook
  • State "OUTLINE" from
  • State "HACK" from "OUTLINE"
  • State "WIP" from "HACK"
  • play-time is over, time to build
  • complete core v0.1
  • small steps, loose organization practices, use time effectively
  • be proactive, empower the community, make contributions regularly

2.4.1. OUTLINE CC charter

logbook
  • State "TBD" from
  • State "OUTLINE" from "TBD"
  • to move forward with purpose we need a clear charter
  • audience: semi-technical (knows what python and git is, has used an IDE)
  • the art of programming
    • treating machines as extensions of ourselves, our minds and ideas
    • understanding machines as a means of understanding the world, understanding ourselves
    • expression of ourselves - digital traversal of mediums
    • programming as a skill
      • high skill-ceiling
      • skill-multiplier: programmers benefit the most from technological advances
      • programming knowledge has high utility
        • transferrable across domains/langs/systems
      • IDE, domain knowledge, learning system
    • programming as a science
      • expression is important to scientists too
        • math notation
        • algorithm development
      • modeling/simulation/forecasting
      • search and sort
      • multi-disciplinary utility
        • eliminates boundaries (DRY), more knowledge sharing
      • cellular automata
    • needs protecting
      • (LLMs, cite code quality, state of C++, Hare/Zig/Nim, frameworks, js ecosystem, malicious companies)
      • client/server arch, cloud, SaaS, subscription model, browsers, right to repair, limiting access to energy, data, bandwidth
    • how?
      • if you can't beat them…
        • Do It Yourself
      • eliminate dependencies
      • encourage extension
      • process, time
      • Lisp/Macros/Compilers
  • re-inventing the Lisp Machine
    • history, MIT->Symbolics->LMI->TI/Xerox->AI Winter
    • image-based software
    • vs other, why it failed
    • eliminating dependence on specialized hardware
  • exploring modern computability
    • 'mixed' systems - highly distributed systems with human operators
    • explainability, introspection, etc
    • finding the 'happy path' on target machines
    • make every device possible 'well-behaved'
    • highly deterministic, highly interactive
  • designing robust systems and toolchains
    • targeting a 'fleet' of machines/devices/nodes
      • home
      • office
      • lab
      • vehicle
    • modular p2p protocols, schedulers, services
    • small worker nodes, large service nodes, REPL access anywhere

2.4.2. TBD graph   org db

logbook
  • State "TBD" from
  • systemize services
  • extend db
  • define API
  • init UI

2.4.3. TBD bbdb   mail db

logbook
  • State "TBD" from
  • contact management for data hoarders/hackers
  • use wide variety of techniques to disambiguate PII
  • pattern detection and analysis

2.4.4. WIP mpk

logbook
  • State "TBD" from
  • full mpd replication/compat
  • complete gstreamer FFI bindings
  • basic db schema
  • basic file management
  • UI design requirements
  • torrent/ytdl service layer

2.4.5. TBD alik

logbook
  • State "TBD" from
  • Note taken on
    honestly not sure that we even need this - skel is covering a lot of ground and still no 'personal' uses for LLMs.
  • design requirements only
  • local ML engine, LLM, compute-bias
  • container image/VM
  • c2, not-in-scope: p2p

2.4.6. WIP contrib

logbook
  • State "TODO" from

2.4.7. TODO IO   lisp

logbook
  • State "TBD" from
  • State "TODO" from "TBD"

iouring is the Linux library we have chosen to spend some time getting comfortable with and for which we've written incomplete Common Lisp bindings - URING. This library will soon be developed in parallel to the higher-level IO library - similar to the development of ROCKSDB and RDB.

Over the next few months our IO ecosystem will slowly expand. As a short-term goal, we will implement simple binary streams backed by iouring.

2.4.8. DONE skel

logbook
  • State "WIP" from "TBD"
  • Note taken on
    makefiles are now replaced by skelfile rules. next step is SKEL-VM for optimize rule execution plans.
  • State "DONE" from "WIP"

The pieces are there, just needs glue.

A usable SKEL system is a top priority for this year. To get there we need to give love to many of the underlying core libraries too - most of all cli.

The two top priorities are VC commands and implementing a functional replacement for makefiles as used in the infra project.

2.4.9. DONE orgdb   mvp

logbook
  • State "TBD" from
  • Note taken on
    see graph.el, org-graph-init.lisp
  • Note taken on
    renamed to org-graph-db (graph.el) see infra/scripts/org-graph-db-init.lisp and core/emacs/lib/graph.el
  • State "DONE" from "TBD"
  • similar idea to org-roam
  • stored in rocksdb columns

2.4.10. DONE infra

logbook
  • State "TODO" from
  • State "DONE" from "TODO"

It is time to move away from makefiles and start integrating our own programs into the system bootstrap process. This iteration of the infra project will have a few POSIX shell scripts for checking the host and grabbing a pre-compiled lisp as well as a compressed infra.core image.

3. product

3.1. roadmap

3.1.1. WIP 2026

logbook
  • State "OUTLINE" from
  1. TBD wm
    logbook
    • State "TBD" from
    • build a fully integrated Window Manager based on our fork of StumpWM
  2. TBD cl
    logbook
    • State "TBD" from
    • create an initial fork of SBCL which maintains compatibility with upstream
    • begin specification of cursed-lisp