R&D
pot of greed
ID: 020f0ea3-9584-4d4a-9976-adb8f790ce29 CREATED: <2025-01-17 Fri 15:54>
RESEARCH Writing a C Compiler
CREATED: <2024-09-29 Sun 15:57> ID: c898f19a-1699-4ca1-88e4-5fc646e0144b
- State "RESEARCH" from "TODO"
"A Retargetable C Compiler" by Hanson – this details the implementation of LCC, which is a production grade compiler. It's a serious resource. Might be a bit too much for a first compiler;
"Practical Compiler Construction" by Nils M Holms – haven't read this one, but his work seems OK, if a bit idiosyncratic;
"Modern Compiler Implementation in C" by Andrew Appel – a good resource, but the code might be non-idiomatic C and hard to follow since it's translated from the ML version of the book (I've only read the Java version, and the code is kind of bad).
There's also Wirth's "Compiler Construction", which introduces you to a no nonsense compiler for Oberon. It's not C, but you can change it quite easily.
- Writing a C Compiler, Part 1
- GitHub - DoctorWkt/acwj: A Compiler Writing Journey
- GitHub - morfishman/Simple_C_Compiler: Simple C compiler that i build for assembler 32 bit
- GitHub - drh/lcc: The lcc retargetable ANSI C compiler
- A Retargetable C Compiler Design And Implementation ( Christopher W. Fraser David R. Hanson) (z Lib.org) : Free Download, Borrow, and Streaming : Internet Archive
- The Architecture of Open Source Applications (Volume 1)LLVM
- Publications - Bradford J. Rodriguez - forth
- Assembly In Emacs · The Plain Text
RESEARCH podman kvm farm
CREATED: <2024-09-03 Tue 17:46> ID: 1e7404e9-6b57-4aec-98cf-81c6328db041
- State "RESEARCH" from "TODO"
DONE PMem.io
CREATED: <2024-09-03 Tue 11:22> ID: de7772c4-8f61-4ded-b89a-064db4bffcf5
- 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
RESEARCH encrypted btrfs luks/dm-crypt
CREATED: <2024-09-29 Sun 01:57> ID: 75c3ec1b-355b-4d99-910b-ae328f2b9051
- State "RESEARCH" from "TODO"
DONE XDP
CREATED: <2024-09-20 Fri 22:34> ID: b3e0b57a-a54a-445c-a06f-37ba289a68f6
- 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
- xdp-paper/xdp-the-express-data-path.pdf at main · xdp-project/xdp-paper · GitHub
- BPF and XDP Reference Guide — Cilium 1.18.0-dev documentation
- will require linking to libbpf and libxdp, needs elf loader (or use xdp-tools/iproute2)
- blocked by bpf impl in lisp
DONE DPDK
CREATED: <2024-09-20 Fri 22:35> ID: 74665710-7b60-4001-ae9e-d47de4c53a69
- 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.
librte_eal – Environment Abstraction Layer: Provides the foundational API for DPDK, facilitating access to hardware resources such as memory, timers, and logs.
librte_mempool – Memory Pool Manager: Manages memory pools for efficient and speedy packet handling.
librte_ring – Ring Buffer Manager: Implements lock-free FIFO queues, enabling high-speed communication between various DPDK components.
librte_mbuf – Packet Buffer Management: Handles packet buffers, which are crucial for packet transmission and reception.
librte_ethdev – Ethernet Device API: Offers an API for configuring and querying Ethernet devices. It supports various operations, including sending and receiving packets.
librte_net – Network Helper Library: Provides helper APIs for dealing with network protocols.
librte_ip_frag – IP Fragmentation and Reassembly: Handles fragmentation and reassembly of IP packets, supporting both IPv4 and IPv6.
librte_kni – 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.
DONE eBPF net
ID: 6cfbb313-4673-4fca-afcf-3fe00c12a3de CREATED: <2025-04-26 Sat 20:47>
- 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?
DONE batman-adv net
CREATED: <2024-08-23 Fri 21:16> ID: 53992507-a3af-43ff-b04b-aa05ccabe2fa
- State "RESEARCH" from
- State "DONE" from "RESEARCH"
NOPE libyear lisp skel
ID: 4420950f-cea0-4a17-8b1a-19f46b78a921 CREATED: <2025-05-10 Sat 22:33>
- State "TODO" from
Not that useful in our current environment (NIH)
WIP Curves
CREATED: <2025-05-08 Thu 18:00> ID: 63a03922-03bb-47dd-af82-e7274135c0e1
- State "WIP" from
Realistically we may need a dedicated lib/math..
obj doesn't cover all the bases.
SBCL provides the numeric tower via types, we really need a math tower..
WIP SFC
CREATED: <2025-05-08 Thu 18:01> ID: 2578ff0f-c71d-4c9d-89da-ea97a3146156
- State "OUTLINE" from
- State "WIP" from "OUTLINE"
Space-Filling Curves
RESEARCH Hilbert Curves
CREATED: <2025-05-07 Wed 16:14> ID: e6e79d8f-5958-4fe2-9380-710c7392423e
- State "RESEARCH" from
- Hilbert R-Trees, X-Tree..
- X+ Trees? need to see the most recent research and why it hasn't become popular