2 #+author: Richard Westhaver
3 #+description: core task list
4 #+setupfile: ../../clean.theme
5 #+OPTIONS: num:nil d:t prop:t
7 * TODO ffi cleanup [0/8] :lisp:ffi: 9 - State "TODO" from [2024-08-10 Sat 22:20] 11 ** TODO rocksdb merge-operator callbacks 13 - State "TODO" from [2024-08-10 Sat 22:21] 15 ** TODO gstreamer practical example 17 - State "TODO" from [2024-08-10 Sat 22:21] 19 ** TODO ublk practical example 21 - State "TODO" from [2024-08-10 Sat 22:22] 23 ** TODO uring read/write file example 25 - State "TODO" from [2024-08-10 Sat 22:22] 27 ** TODO btrfs practical example 29 - State "TODO" from [2024-08-10 Sat 22:30] 31 - [ ] sudo example (filesystem)
32 - [ ] non-sudo example?
33 ** TODO xkb practical example 35 - State "TODO" from [2024-08-10 Sat 22:32] 37 ** TODO keyutils practical example 39 - State "TODO" from [2024-08-10 Sat 22:33] 43 - State "TODO" from [2024-08-10 Sat 22:23] 45 * TBD retire x.lisp :lisp:skel: 51 - State "TODO" from [2024-07-09 Tue 22:24] 52 - State "TBD" from "TODO" [2024-07-27 Sat 02:41] 54 with skel taking on more responsibility we no longer need a dedicated build tool.
55 - migrate all functionality to skelfile
56 - cleanup readme with installation instructions (with and without
=infra=)
57 * TODO cli/clap v0.2.0 [1/5] :lisp:cli: 59 - State "TODO" from [2024-07-21 Sun 01:33] 61 - clap is quite unstable right now and has some obvious bugs which need remedying
62 ** TODO conditions implementation 63 ** TODO minimal documentation :doc: 65 - State "TODO" from [2024-07-27 Sat 02:39] 67 ** DONE implement globals =*cli* *opts* *args*= etc 69 - State "TODO" from [2024-07-27 Sat 02:39] 70 - State "DONE" from "TODO" [2024-07-27 Sat 02:40] 72 ** TODO keyword selectors :lisp:cli:skel: 74 - State "TODO" from [2024-07-27 Sat 02:31] 77 skel :include 0 :components 1 # => <sk-component PRELUDE>
79 skel :include emacs :components babel # => <sk-component BABEL>
81 - how to apply operators?
86 - State "TODO" from [2024-08-03 Sat 01:01] 88 * TODO multipoint-images :lisp:bin:sys: 90 - State "TODO" from [2024-07-28 Sun 21:01] 92 - multiple entrypoint lisp images
93 - create multiple links to core lisp image
94 - support multiple low-level methods?
95 - naive implementation is a single entry point with a switch
97 - could also create a thin shim in Rust/Zig and call the appropriate
98 entrypoint after loading the core.
99 * TODO [[https://libyear.com/][libyear]] :lisp:skel: 101 - State "TODO" from [2024-08-01 Thu 12:27] 105 - State "TODO" from [2024-08-03 Sat 01:03] 109 - State "TODO" from [2024-08-03 Sat 01:03] 110 - Note taken on [2024-08-04 Sun 21:16] \\ 111 pretty close - need to fix some recursion bugs then start messing with query-engines 113 *** DONE make-sql-data-frame 115 - State "FIX" from [2024-08-05 Mon 21:13] 116 - State "DONE" from "FIX" [2024-08-07 Wed 21:05] 118 - finish implementation
121 - State "TODO" from [2024-08-03 Sat 01:03] 123 - pronounced 'Dee-qwul'
124 - the challenge it seems, is building an inference engine that isn't
125 just another half-assed prolog
126 - expression and introspection is valued here much more than speed/size
127 - allegro and screamer are favorites so far
128 *** TODO top-level macros 130 - State "TODO" from [2024-08-08 Thu 22:38] 135 - State "TODO" from [2024-08-08 Thu 22:39] 137 *** TODO basic predicates 139 - State "TODO" from [2024-08-08 Thu 22:39] 142 =/2 ==/2 abolish/2 and/* append/3 arg/3 assert/1 asserta/1 assertz/1 atom/1 atomic/1
143 bagof/3 call/1 consult/1 copy-term/2 erase/1 fail/0 first/1 functor/3 ground/1 if/2 if/3
144 is/2 last/1 leash/1 length/1 listing/1 member/2 memberp/2 (member without backtracking) not/1
145 number/1 or/* princ/1 read/1 recorda/1 recordz/1 recorded/2 repeat/0 rest/1 retract/1 rev/2
146 setof/3 true/0 var/1 write/1
149 *** TODO compiler design 151 - State "TODO" from [2024-08-08 Thu 22:39] 153 *** TODO runtime design 155 - State "TODO" from [2024-08-08 Thu 22:43] 159 - plenty of dynamic extent
162 ** TODO q/tests/fuzz [0/2] 164 - State "TODO" from [2024-08-05 Mon 21:11] 166 - [[https://github.com/andygrove/how-query-engines-work/blob/main/jvm/fuzzer/src/main/kotlin/Fuzzer.kt][kquery]] 169 - State "TODO" from [2024-08-05 Mon 21:11] 177 - State "TODO" from [2024-08-05 Mon 21:12] 179 ** TODO #? reader macro 181 - State "TODO" from [2024-08-08 Thu 22:36] 183 * RESEARCH OCI projects [0/4] :pod:packy:skel: 185 - State "RESEARCH" from [2024-08-01 Thu 12:35] 187 ** RESEARCH [[https://oras.land/][oras]] 189 - State "RESEARCH" from [2024-08-01 Thu 12:36] 193 - State "RESEARCH" from [2024-08-01 Thu 12:36] 197 - State "RESEARCH" from [2024-08-01 Thu 12:36] 199 ** RESEARCH [[https://www.sigstore.dev/][sigstore]] 201 - State "RESEARCH" from [2024-08-01 Thu 12:30] 205 - State "HACK" from [2024-08-03 Sat 01:06] 207 - maybe Norvig was right and we don't need asdf/uiop, maybe not
208 - the truth is somewhere in between
213 * DONE migrate to sb-grovel [9/9] :lisp:ffi: 215 - State "TODO" from [2023-11-27 Mon 23:42] 216 - State "DONE" from "TODO" [2024-02-04 Sun 20:30] 219 :ID: bb365025-e5e7-4407-acba-32e30d1a245a 224 - State "TODO" from [2023-11-29 Wed 19:00] 225 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 228 :ID: 656c2683-8780-407c-b955-3defc4959595 232 - State "TODO" from [2023-11-29 Wed 19:00] 233 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 236 :ID: b4757746-525b-49e4-b8ac-677375867d8f 240 - State "TODO" from [2023-11-29 Wed 19:00] 241 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 244 :ID: b3b411fe-6b2d-4338-9e23-83536336a487 248 - State "TODO" from [2023-11-29 Wed 19:00] 249 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 252 :ID: 8a463084-efa0-4535-8239-b1c4955bde4c 256 - State "TODO" from [2023-11-29 Wed 19:00] 257 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 260 :ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92 264 - State "TODO" from [2023-11-29 Wed 19:00] 265 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 268 :ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf 272 - State "TODO" from [2023-11-29 Wed 19:00] 273 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 276 :ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731 280 - State "TODO" from [2023-11-29 Wed 19:00] 281 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 284 :ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06 288 - State "TODO" from [2023-11-29 Wed 19:27] 289 - State "WIP" from "TODO" [2023-12-10 Sun 22:47] 290 - State "DONE" from "WIP" [2024-02-04 Sun 20:30] 293 :ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c 295 * TODO parse 0.1 [0/2] :lisp:lib: 297 - State "TODO" from "TODO" [2023-12-13 Wed 18:24] 301 :ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8 303 - State "TODO" from [2023-11-29 Wed 19:01] 309 - State "TODO" from [2023-12-24 Sun 19:28] 311 add tests for lexer and LALR. figure out if there are any gaps that we 315 - State "TODO" from [2023-12-24 Sun 19:28] 317 the toml parser on quicklisp is based on esrap, make a comparable one 318 using our parser module. 319 * TODO organ 0.2 [0/2] :lisp:organ: 321 - State "TODO" from [2023-11-29 Wed 21:25] 324 :ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4 328 - State "TBD" from "TODO" [2023-11-29 Wed 21:24] 331 :ID: 189584f5-fc22-4129-bd47-5d494a088684 335 - State "TODO" from [2023-11-29 Wed 21:26] 340 :ID: 63774177-9730-4961-8535-414fac7a6f4f 342 ** TBD parse org-elements as sxp :sxp: 344 - State "TODO" from [2023-09-25 Mon 15:23] 345 - State "TBD" from "TODO" [2023-12-13 Wed 18:10] 348 #+begin_src emacs-lisp :results silent 352 #+begin_src lisp :results silent 353 (ql:quickload :organ) 357 #+begin_src emacs-lisp :results output replace 358 (macroexpand-1 (org-element-parse-buffer)) 364 #+begin_src lisp :results output :var in=oe-form() 365 (let ((sxp (sxp:make-sxp))) 366 ;; SIMPLE-READER-ERROR #\) when using read 367 (sxp:wrap-from-string! sxp in) 372 : #<DAT/SXP:SXP {1026EFA513}> 375 : Slots with :INSTANCE allocation: 378 * TODO rdb 0.2 [0/6] :lisp:rdb: 380 - State "TODO" from "TODO" [2023-12-13 Wed 18:26] 382 ** TODO error handling 384 - State "TODO" from [2023-12-10 Sun 22:57] 386 - need to unwrap the pointer (* (* t)) 387 - cast to string,int,bool 388 - wrap segfault handlers 389 - add restarts for common errors (bad path) 390 - add cleanup routines 393 - State "TODO" from [2023-12-10 Sun 22:59] 395 - clients are fully dynamic 396 - generated from RDB instances 397 - compiles in CF/option/multithread/type info 398 - clients implement custom Q language 399 ** TODO sequence/iterator impl 401 - State "TODO" from [2023-12-10 Sun 23:09] 403 - use SBCL built-ins to extend the api - wrap the raw FFI iterator 405 ** TODO comparator impl 407 - State "TODO" from [2023-12-10 Sun 23:11] 409 - supply custom comparators to rocksdb from lisp 412 - State "TODO" from [2023-12-10 Sun 23:12] 414 - capture types of: kv, cf 416 - kv-spec = (kv-spec val-spec) 417 - must be serialized to/from vec<char> 420 - methods for abstracting CFs 421 ** TODO set-opt/get-opt 423 - State "TODO" from [2023-12-16 Sat 00:49] 426 - may just want to use the generic C fn that takes string as input 427 - I feel this may be less efficient but haven't benched it (requires additional arg) 428 - separate packages are a pain to query symbols with 430 * TODO vc 0.1 [2/3] :vc: 432 - State "TODO" from [2024-02-29 Thu 16:10] 434 ** TODO vc-mirrors-update replacement 436 - State "TODO" from [2024-08-10 Sat 01:33] 440 - State "TODO" from [2023-12-16 Sat 00:55] 441 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 445 - State "TODO" from [2023-12-16 Sat 00:56] 446 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 449 * TODO dat 0.1 :lisp:dat: 451 - State "TODO" from [2024-08-11 Sun 00:08] 453 ** WIP dat/parquet :lisp: 458 - State "WIP" from [2024-07-19 Fri 21:51] 461 ** TODO dat/csv column selectors :lisp:dat: 466 - State "TODO" from [2024-08-05 Mon 20:53] 468 - a function which accepts a single arg which is either a number, 469 indicating index-based selection or a list of column names for 472 ~(read-csv-line ... :select (lambda (x) x))~ 474 - index-based-selection 477 * TODO skel 0.2 [1/4] :lisp:skel: 479 - State "TODO" from [2023-12-16 Sat 00:55] 481 ** DONE eval rules from CLI 483 - State "TODO" from [2023-12-16 Sat 00:56] 484 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 486 - need new command or flag for rules 487 - evaluate forms instead of looking in skelfile 488 ** TODO split out skel rules 490 - State "TODO" from [2024-08-11 Sun 00:10] 493 ** TODO implement task-pool 495 - State "TODO" from [2024-08-11 Sun 00:10] 499 - State "TODO" from [2024-08-11 Sun 00:11] 502 * TODO std 0.2 [2/8] :lisp:std: 504 - State "TODO" from [2023-12-12 Tue 19:49] 506 ** DONE refactor system definition 508 - State "TODO" from [2023-12-13 Wed 15:17] 509 - State "DONE" from "TODO" [2023-12-13 Wed 19:38] 511 - remove package-inferred 512 - minimize number of systems 516 - State "TODO" from [2023-12-13 Wed 19:39] 518 ** TODO documentation sweep 520 - State "TODO" from [2024-02-29 Thu 16:09] 524 - State "TODO" from [2024-02-29 Thu 16:09] 528 - State "TODO" from [2024-02-29 Thu 16:09] 530 ** DONE list-package-symbols, etc 532 - State "TODO" from [2024-02-29 Thu 16:09] 533 - State "DONE" from "TODO" [2024-08-07 Wed 21:07] 536 ** TODO std/tests refactor 538 - State "TODO" from [2024-07-27 Sat 02:42] 540 - a bit too large, time to shake it up 541 - need separation of concerns (files) for task-pool/threaded tests in 545 - State "TODO" from [2024-08-10 Sat 01:29] 547 * TODO sxp 0.2 [0/1] :lisp:sxp: 549 - State "TODO" from [2023-12-12 Tue 19:49] 551 ** TODO WRAP-OBJECT :skel: 553 - State "TODO" from [2023-12-12 Tue 19:49] 555 - use to replace LOAD-AST for sk-project and friends 557 - take a look at UNWRAP-OBJECT too, may need rewrite for a better API 558 * TODO obj 0.1 [2/2] :lisp:obj: 560 - State "TODO" from [2023-12-17 Sun 00:59] 564 - State "TODO" from [2023-12-17 Sun 01:00] 565 - Note taken on [2023-12-20 Wed 18:26] \\ 566 the franz impl doesn't play well with SBCL, at least with our 567 hacks. I'm not sure how faithfully I want to follow the RFCs 568 anyhow.. maybe we go for the dead simple approach and focus on MOP 569 for a path and URI protocol. 571 - mostly just need the tests and to finish porting the Franz implementation 574 - State "TODO" from [2023-12-20 Wed 18:26] 575 - State "DONE" from "TODO" [2024-08-05 Mon 21:08] 576 - Note taken on [2024-08-05 Mon 21:08] \\ 577 XDB2 is no longer used - instead provide a simple abstract API which 578 builds up to high-level systems like RDB 581 ** WIP complete base obj/query package [2/3] :lisp: 583 :LOCATION: lisp/lib/obj/query.lisp 586 - State "WIP" from [2024-07-09 Tue 22:14] 588 - object-based protocol for asking questions about data collections 589 using data expressions 590 - +lex+, +parse+, +compile+ - all handled in the Q system 591 - probably in need of refactor right after 592 - different parts of the protocol will be used by different systems 593 - ~data-source~ will be implemented in ~DAT/CSV~ ~DAT/PARQUET~, 595 - ~query-expression~ and ~query-plan~ will be implemented in 597 *** DONE aggregate physical plan 602 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 604 *** DONE Physical Expressions 609 - State "TODO" from [2024-08-02 Fri 15:53] 610 - State "TODO" from [2024-08-02 Fri 15:53] 611 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 613 *** TODO Basic Testing 615 - State "TODO" from [2024-08-02 Fri 15:55] 618 * TODO net 0.1 [5/8] :lisp:net: 620 - State "TODO" from [2023-12-17 Sun 01:00] 622 ** TODO fixtures :rt: 624 - State "TODO" from [2024-08-11 Sun 00:06] 626 - implement simple network fixtures which can be used within the body of DEFTEST 627 - start with simple sockets - UDP then TCP 628 - work up towards HTTP 631 - State "TODO" from [2023-12-17 Sun 01:01] 635 - State "TODO" from [2023-12-17 Sun 01:01] 639 - State "TODO" from [2023-12-17 Sun 01:01] 640 - State "DONE" from "TODO" [2024-08-10 Sat 01:31] 645 - State "TODO" from [2023-12-17 Sun 01:01] 646 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 650 - State "TODO" from [2023-12-17 Sun 01:01] 651 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 656 - State "TODO" from [2023-12-17 Sun 01:01] 657 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 662 - State "TODO" from [2023-12-17 Sun 01:03] 663 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 665 ** WIP net/srv :lisp: 667 - State "TODO" from [2024-07-19 Fri 21:50] 668 - State "WIP" from "TODO" [2024-07-19 Fri 21:51] 670 - needs a solid task-pool impl completed first 673 - State "RESEARCH" from [2024-08-10 Sat 01:23] 675 * TODO pwn 0.1 [0/1] :lisp:pwn: 677 - State "TODO" from [2023-12-17 Sun 01:04] 678 - Note taken on [2024-02-29 Thu 16:11] \\ 679 Should this be a separate application? Lisp exploit development framework 683 - State "TODO" from [2023-12-17 Sun 01:04] 685 * TODO gui 0.1 [0/2] :lisp:gui: 687 - State "TODO" from [2023-12-17 Sun 03:40] 689 ** TODO wayland protocol bindings 691 - State "TODO" from [2023-12-17 Sun 03:40] 693 ** TBD wayland compositor :rust:lisp: 695 - State "TBD" from "TODO" [2023-11-29 Wed 21:25] 698 :ID: e18a90d7-10bc-44d3-8508-56483d29d385 700 * TODO rt 0.1 [0/2] :rt: 702 - State "TODO" from [2024-02-29 Thu 16:06] 704 ** TODO redirect I/O in tests 706 - State "TODO" from [2024-02-29 Thu 16:06] 708 prevent tests from printing implicitly. redirect stream locally, cache 709 it somehow for review. 710 ** TODO *test-on-def* 712 - State "TODO" from [2024-02-29 Thu 17:17] 714 - simple flag to test when file is defined (part of deftest macro) 715 * NOPE dot 0.1 [1/1] :lisp:dot: 717 - State "TODO" from [2023-12-20 Wed 18:27] 719 ** NOPE PARSE-SPECIALIZER-USING-CLASS 721 - State "TODO" from [2023-12-20 Wed 18:28] 723 - experimental SB-MOP generic, may be useful in places where we would 724 typically use =(eql OBJECT)= as a specializer for GRAPH. 726 * TBD homer 0.1 [1/2] :lisp:homer: 728 - State "TBD" from "TODO" [2023-12-12 Tue 19:53] 730 ** DONE review GNU stow API 732 - State "TODO" from [2023-12-24 Sun 19:32] 733 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 735 [[https://www.gnu.org/software/stow/][homepage]] 736 'symlink farm manager'
737 rust impl: https://github.com/qboileau/rstow
739 ** TODO consolidate with skel 741 - State "TODO" from [2023-12-24 Sun 19:32]