# HG changeset patch # User Richard Westhaver # Date 1717820508 14400 # Node ID 1204cefcfd28921a0eb43feb688cffbc57639afb # Parent 889759cafcc238e90682c2e4b71041fc157d90dd style updates diff -r 889759cafcc2 -r 1204cefcfd28 draft/a-bit-of-risc.org --- a/draft/a-bit-of-risc.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/a-bit-of-risc.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,6 +1,6 @@ #+title: A Bit of RISC #+date: [2024-03-11 Mon] -#+setupfile: ../../../clean.theme +#+setupfile: ../../clean.theme I recently picked up [[https://dl.acm.org/doi/10.5555/2462741][Hacker's Delight]] and having a lot of fun with it. It's a collection of bit-manipulation tricks collected by hackers over many years. You can flip open pretty much anywhere in the book @@ -292,20 +292,20 @@ #+RESULTS: instruction-list #+begin_example -((XOR . #) - (OR . #) - (AND . #) - (MULI . #) - (ADDI . #) - (CMPGE . #) - (CMPGT . #) - (CMPLE . #) - (CMPLT . #) - (CMPNE . #) - (CMPEQ . #) - (REM . #) - (DIV . #) - (MUL . #) - (SUB . #) - (ADD . #)) +((XOR . #) + (OR . #) + (AND . #) + (MULI . #) + (ADDI . #) + (CMPGE . #) + (CMPGT . #) + (CMPLE . #) + (CMPLT . #) + (CMPNE . #) + (CMPEQ . #) + (REM . #) + (DIV . #) + (MUL . #) + (SUB . #) + (ADD . #)) #+end_example diff -r 889759cafcc2 -r 1204cefcfd28 draft/a-lispy-database.org --- a/draft/a-lispy-database.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/a-lispy-database.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,26 +1,33 @@ #+title: A Lispy Database #+options: toc:t h:1 -#+setupfile: ../../../clean.theme -One of the key features missing in the =core= is a DBMS. The first, -and often only choice for this need in companies of today is -a SQL RDBMS. +#+setupfile: ../../clean.theme + +One of the key features missing in the Compiler Company [[https://vc.compiler.company/comp/core][core]] is a +reliable [[https://en.wikipedia.org/wiki/Category:Database_management_systems][DBMS]]. It's something that I've worked towards in Rust, and +now in Common Lisp, but haven't gotten to a production-ready state. +* SQL +The first, and often /only/ choice for this need in companies of +today is a SQL RDBMS. + +The SQL ecosystem has client-server systems like PostgreSQL, and +embedded offerings like SQLite. Whatever lang you use you can +basically always count on there being SQL support for your DB needs. -There are client-server systems like PostgreSQL and MySQL, and -embedded offerings like SQLite. Whatever lang you use you can count on -there being SQL support[fn:1]. To support all the different SQL -flavors though, a new abstraction has been summoned - the ORM. +You might ask yourself, why choose anything else? We all know friendly +neighborhood SQL and understand it. Many of us have never used +anything else because we /don't need to/. You can represent fairly +complex relationships in the RDBMS model and have an ecosystem that +supports it wherever you go. +My answer is simply - just because SQL is good enough, doesn't mean +it's always the best choice. It is designed for Table-oriented data +and that is where it should remain according to the CC. +* Prolog +* Key-Value Stores +** RocksDB +** Blobs +* Objects +- [[https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping][ORM]] The ORM maps the object system of your lang to SQL tables, columns and rows and provides an API for you to manipulate the database in a more idiomatic way. - -You might ask yourself, why choose anything else? For good reason. We -all know friendly neighborhood SQL and understand it. Many of us have -never used anything else because we don't /need/ to. You can represent -fairly complex relationships in the RDBMS model and have an -ecosystem that supports it wherever you go. - -My answer is that just because SQL is good enough, doesn't mean it's -always the best choice. - -[fn:1] diff -r 889759cafcc2 -r 1204cefcfd28 draft/dylib-skel.org --- a/draft/dylib-skel.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/dylib-skel.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,5 +1,6 @@ #+title: Shared Library Skeletons -#+setupfile: ../../../clean.theme +#+setupfile: ../../clean.theme +#+header-args: :eval never * Overview :PROPERTIES: :ID: 748ba6e4-60db-4ff7-9d78-12c3f67644d8 diff -r 889759cafcc2 -r 1204cefcfd28 draft/hello-world.org --- a/draft/hello-world.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/hello-world.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,6 +1,6 @@ #+title: (hello world) #+options: toc:t h:1 -#+setupfile: ../../../clean.theme +#+setupfile: ../../clean.theme * COMMENT Introduction Hello World, diff -r 889759cafcc2 -r 1204cefcfd28 draft/on-lisp-ecosystems.org --- a/draft/on-lisp-ecosystems.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/on-lisp-ecosystems.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,1 +1,1 @@ -#+setupfile: ../../../clean.theme +#+setupfile: ../../clean.theme diff -r 889759cafcc2 -r 1204cefcfd28 draft/outlines.org --- a/draft/outlines.org Thu Jun 06 23:15:38 2024 -0400 +++ b/draft/outlines.org Sat Jun 08 00:21:48 2024 -0400 @@ -1,5 +1,5 @@ #+title: outlines -#+setupfile: ../../../clean.theme +#+setupfile: ../../clean.theme * Overview Source code files are hard to manage. They can get unwieldly quickly and making the wrong assumption about your whereabouts in the code tree can have unintended