1.1--- a/draft/a-bit-of-risc.org Thu Jun 06 23:15:38 2024 -0400
1.2+++ b/draft/a-bit-of-risc.org Sat Jun 08 00:21:48 2024 -0400
1.3@@ -1,6 +1,6 @@
1.4 #+title: A Bit of RISC
1.5 #+date: [2024-03-11 Mon]
1.6-#+setupfile: ../../../clean.theme
1.7+#+setupfile: ../../clean.theme
1.8 I recently picked up [[https://dl.acm.org/doi/10.5555/2462741][Hacker's Delight]] and having a lot of fun with
1.9 it. It's a collection of bit-manipulation tricks collected by hackers
1.10 over many years. You can flip open pretty much anywhere in the book
1.11@@ -292,20 +292,20 @@
1.12
1.13 #+RESULTS: instruction-list
1.14 #+begin_example
1.15-((XOR . #<FUNCTION (LAMBDA ()) {10077C774B}>)
1.16- (OR . #<FUNCTION (LAMBDA ()) {10077C777B}>)
1.17- (AND . #<FUNCTION (LAMBDA ()) {10077C77AB}>)
1.18- (MULI . #<FUNCTION (LAMBDA (I)) {10077C77DB}>)
1.19- (ADDI . #<FUNCTION (LAMBDA (I)) {10077C780B}>)
1.20- (CMPGE . #<FUNCTION (LAMBDA ()) {10077C783B}>)
1.21- (CMPGT . #<FUNCTION (LAMBDA ()) {10077C786B}>)
1.22- (CMPLE . #<FUNCTION (LAMBDA ()) {10077C789B}>)
1.23- (CMPLT . #<FUNCTION (LAMBDA ()) {10077C78CB}>)
1.24- (CMPNE . #<FUNCTION (LAMBDA ()) {10077C78FB}>)
1.25- (CMPEQ . #<FUNCTION (LAMBDA ()) {10077C792B}>)
1.26- (REM . #<FUNCTION (LAMBDA ()) {10077C795B}>)
1.27- (DIV . #<FUNCTION (LAMBDA ()) {10077C79AB}>)
1.28- (MUL . #<FUNCTION (LAMBDA ()) {10077C79EB}>)
1.29- (SUB . #<FUNCTION (LAMBDA ()) {10077C7A1B}>)
1.30- (ADD . #<FUNCTION (LAMBDA ()) {10077C7A4B}>))
1.31+((XOR . #<FUNCTION (LAMBDA ()) {100E4ED81B}>)
1.32+ (OR . #<FUNCTION (LAMBDA ()) {100E4ED84B}>)
1.33+ (AND . #<FUNCTION (LAMBDA ()) {100E4ED87B}>)
1.34+ (MULI . #<FUNCTION (LAMBDA (I)) {100E4ED8AB}>)
1.35+ (ADDI . #<FUNCTION (LAMBDA (I)) {100E4ED8DB}>)
1.36+ (CMPGE . #<FUNCTION (LAMBDA ()) {100E4ED90B}>)
1.37+ (CMPGT . #<FUNCTION (LAMBDA ()) {100E4ED93B}>)
1.38+ (CMPLE . #<FUNCTION (LAMBDA ()) {100E4ED96B}>)
1.39+ (CMPLT . #<FUNCTION (LAMBDA ()) {100E4ED99B}>)
1.40+ (CMPNE . #<FUNCTION (LAMBDA ()) {100E4ED9CB}>)
1.41+ (CMPEQ . #<FUNCTION (LAMBDA ()) {100E4ED9FB}>)
1.42+ (REM . #<FUNCTION (LAMBDA ()) {100E4EDA2B}>)
1.43+ (DIV . #<FUNCTION (LAMBDA ()) {100E4EDA7B}>)
1.44+ (MUL . #<FUNCTION (LAMBDA ()) {100E4EDABB}>)
1.45+ (SUB . #<FUNCTION (LAMBDA ()) {100E4EDAEB}>)
1.46+ (ADD . #<FUNCTION (LAMBDA ()) {100E4EDB1B}>))
1.47 #+end_example
2.1--- a/draft/a-lispy-database.org Thu Jun 06 23:15:38 2024 -0400
2.2+++ b/draft/a-lispy-database.org Sat Jun 08 00:21:48 2024 -0400
2.3@@ -1,26 +1,33 @@
2.4 #+title: A Lispy Database
2.5 #+options: toc:t h:1
2.6-#+setupfile: ../../../clean.theme
2.7-One of the key features missing in the =core= is a DBMS. The first,
2.8-and often only choice for this need in companies of today is
2.9-a SQL RDBMS.
2.10+#+setupfile: ../../clean.theme
2.11+
2.12+One of the key features missing in the Compiler Company [[https://vc.compiler.company/comp/core][core]] is a
2.13+reliable [[https://en.wikipedia.org/wiki/Category:Database_management_systems][DBMS]]. It's something that I've worked towards in Rust, and
2.14+now in Common Lisp, but haven't gotten to a production-ready state.
2.15+* SQL
2.16+The first, and often /only/ choice for this need in companies of
2.17+today is a SQL RDBMS.
2.18+
2.19+The SQL ecosystem has client-server systems like PostgreSQL, and
2.20+embedded offerings like SQLite. Whatever lang you use you can
2.21+basically always count on there being SQL support for your DB needs.
2.22
2.23-There are client-server systems like PostgreSQL and MySQL, and
2.24-embedded offerings like SQLite. Whatever lang you use you can count on
2.25-there being SQL support[fn:1]. To support all the different SQL
2.26-flavors though, a new abstraction has been summoned - the ORM.
2.27+You might ask yourself, why choose anything else? We all know friendly
2.28+neighborhood SQL and understand it. Many of us have never used
2.29+anything else because we /don't need to/. You can represent fairly
2.30+complex relationships in the RDBMS model and have an ecosystem that
2.31+supports it wherever you go.
2.32
2.33+My answer is simply - just because SQL is good enough, doesn't mean
2.34+it's always the best choice. It is designed for Table-oriented data
2.35+and that is where it should remain according to the CC.
2.36+* Prolog
2.37+* Key-Value Stores
2.38+** RocksDB
2.39+** Blobs
2.40+* Objects
2.41+- [[https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping][ORM]]
2.42 The ORM maps the object system of your lang to SQL tables, columns and
2.43 rows and provides an API for you to manipulate the database in a more
2.44 idiomatic way.
2.45-
2.46-You might ask yourself, why choose anything else? For good reason. We
2.47-all know friendly neighborhood SQL and understand it. Many of us have
2.48-never used anything else because we don't /need/ to. You can represent
2.49-fairly complex relationships in the RDBMS model and have an
2.50-ecosystem that supports it wherever you go.
2.51-
2.52-My answer is that just because SQL is good enough, doesn't mean it's
2.53-always the best choice.
2.54-
2.55-[fn:1]
3.1--- a/draft/dylib-skel.org Thu Jun 06 23:15:38 2024 -0400
3.2+++ b/draft/dylib-skel.org Sat Jun 08 00:21:48 2024 -0400
3.3@@ -1,5 +1,6 @@
3.4 #+title: Shared Library Skeletons
3.5-#+setupfile: ../../../clean.theme
3.6+#+setupfile: ../../clean.theme
3.7+#+header-args: :eval never
3.8 * Overview
3.9 :PROPERTIES:
3.10 :ID: 748ba6e4-60db-4ff7-9d78-12c3f67644d8
4.1--- a/draft/hello-world.org Thu Jun 06 23:15:38 2024 -0400
4.2+++ b/draft/hello-world.org Sat Jun 08 00:21:48 2024 -0400
4.3@@ -1,6 +1,6 @@
4.4 #+title: (hello world)
4.5 #+options: toc:t h:1
4.6-#+setupfile: ../../../clean.theme
4.7+#+setupfile: ../../clean.theme
4.8 * COMMENT Introduction
4.9 Hello World,
4.10
5.1--- a/draft/on-lisp-ecosystems.org Thu Jun 06 23:15:38 2024 -0400
5.2+++ b/draft/on-lisp-ecosystems.org Sat Jun 08 00:21:48 2024 -0400
5.3@@ -1,1 +1,1 @@
5.4-#+setupfile: ../../../clean.theme
5.5+#+setupfile: ../../clean.theme
6.1--- a/draft/outlines.org Thu Jun 06 23:15:38 2024 -0400
6.2+++ b/draft/outlines.org Sat Jun 08 00:21:48 2024 -0400
6.3@@ -1,5 +1,5 @@
6.4 #+title: outlines
6.5-#+setupfile: ../../../clean.theme
6.6+#+setupfile: ../../clean.theme
6.7 * Overview
6.8 Source code files are hard to manage. They can get unwieldly quickly and making the
6.9 wrong assumption about your whereabouts in the code tree can have unintended