changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > notes / annotate 20231024.org

changeset 0: 87b04952fb18
child: 04e86b94ef1a
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 28 Apr 2024 19:51:45 -0400
permissions: -rw-r--r--
description: init
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 * virt
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 ** QEMU
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 ** KVM
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 ** Hyper-V
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 ** Firecracker
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 ** Docker
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 ** Vagrant
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 ** LXC
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 ** LXD
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 ** containerd
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 ** systemd-nspawn
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 ** VirtualBox
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 * Concatenative
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 ** Factor                                                           :factor:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 - [2023-07-04 Tue]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
   Factor is a cool concatenative lang but unfortunately the C interface
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
   (vm/master.h) no longer exists on the master branch.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 ** Joy                                                                 :joy:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 *** https://hypercubed.github.io/joy/html/j02maf.html
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 *** [[https://builds.openlogicproject.org/content/incompleteness/arithmetization-syntax/arithmetization-syntax.pdf][arithmetization of syntax]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 * Lisp                                                                 :lisp:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 These notes pertain to Lisp. More specifically, ANSI Common Lisp in
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
 most places.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 - https://github.com/lispnik/iup/ - doesn't support MacOS yet, looks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
   cool though
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
   - what we really need is wasm compiler.. TBD
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 * Rust
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 ** Serde
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 - [2023-07-05 Wed] \\
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
   important part of the Rust ecosystem, another dtolnay
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
   contribution. If you want to program a /data/ format in the Rust
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
   ecosystem, this is how you do it.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
   The way it works is that you define some special structs, a
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
   Serializer and a Deserializer which implement the Serialize and
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
   Deserialize traits provided by serde, respectively.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
   You can use these structs to provide your public API. The
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
   conventional choice is public top-level functions like from-str
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
   and to-string. That's it, your serialization library can now read and
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
   write your data format as Rust data types.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
   [[https://serde.rs/enum-representations.html][enum-representations]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
   - the default behavior is an externally tagged representation (verbose)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
   The docs use strings as core IO when implementing a custom format,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
   but the convention is to implement for T where T is bound by std::io
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
   Read or Write trait. Then you can provide a more robust public API
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
   (from_bytes, from_writer, etc).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 * C
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 * CPP
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 * Nu
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 [[https://www.nushell.sh/][~]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
 [[https://www.nushell.sh/cookbook/][cookbook]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
 [[https://github.com/nushell/nu_scripts][nu_scripts]]