2 #+author: Richard Westhaver
3 #+description: core task list
4 #+setupfile: ../../clean.theme
5 #+OPTIONS: num:nil d:t prop:t
7 * TODO ffi [0/10] :lisp:ffi: 9 - State "TODO" from [2024-08-10 Sat 22:20] 11 ** WIP rocksdb merge-operator callbacks :rocksdb: 12 DEADLINE: <2024-08-16 Fri> SCHEDULED: <2024-08-15 Thu> 14 - State "TODO" from [2024-08-10 Sat 22:21] 15 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 17 ** WIP rocksdb compactionfilter callbacks :rocksdb: 18 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 20 - State "TODO" from [2024-08-14 Wed 21:50] 21 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 23 ** WIP rocksdb comparator callbacks :rocksdb: 24 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-17 Sat> 26 - State "WIP" from [2024-08-14 Wed 21:51] 28 ** TODO gstreamer practical example :gstreamer: 30 - State "TODO" from [2024-08-10 Sat 22:21] 32 ** TODO ublk practical example :ublk: 34 - State "TODO" from [2024-08-10 Sat 22:22] 36 ** TODO uring read/write file example :uring: 38 - State "TODO" from [2024-08-10 Sat 22:22] 40 ** TODO btrfs practical example :btrfs: 42 - State "TODO" from [2024-08-10 Sat 22:30] 44 - [ ] sudo example (filesystem)
45 - [ ] non-sudo example?
46 ** TODO xkb practical example :x:kb: 48 - State "TODO" from [2024-08-10 Sat 22:32] 50 ** TODO keyutils practical example :crypto: 52 - State "TODO" from [2024-08-10 Sat 22:33] 54 ** TODO readline :cli: 56 - State "TODO" from [2024-08-10 Sat 22:23] 58 * TBD retire x.lisp :lisp:skel: 64 - State "TODO" from [2024-07-09 Tue 22:24] 65 - State "TBD" from "TODO" [2024-07-27 Sat 02:41] 67 with skel taking on more responsibility we no longer need a dedicated build tool.
68 - migrate all functionality to skelfile
69 - cleanup readme with installation instructions (with and without
=infra=)
70 * TODO cli/clap v0.2.0 [1/6] :lisp:cli: 72 - State "TODO" from [2024-07-21 Sun 01:33] 74 - clap is quite unstable right now and has some obvious bugs which need remedying
75 ** TODO conditions implementation 76 ** TODO minimal documentation :doc: 78 - State "TODO" from [2024-07-27 Sat 02:39] 80 ** DONE implement globals =*cli* *opts* *args*= etc 82 - State "TODO" from [2024-07-27 Sat 02:39] 83 - State "DONE" from "TODO" [2024-07-27 Sat 02:40] 85 ** TODO keyword selectors :lisp:cli:skel: 87 - State "TODO" from [2024-07-27 Sat 02:31] 90 skel :include 0 :components 1 # => <sk-component PRELUDE>
92 skel :include emacs :components babel # => <sk-component BABEL>
94 - how to apply operators?
97 * TODO multipoint-images :lisp:bin:sys: 99 - State "TODO" from [2024-07-28 Sun 21:01] 101 - multiple entrypoint lisp images
102 - create multiple links to core lisp image
103 - support multiple low-level methods?
104 - naive implementation is a single entry point with a switch
106 - could also create a thin shim in Rust/Zig and call the appropriate
107 entrypoint after loading the core.
108 * TODO [[https://libyear.com/][libyear]] :lisp:skel: 110 - State "TODO" from [2024-08-01 Thu 12:27] 112 * TODO q 0.1 :lisp:q: 114 - State "TODO" from [2024-08-03 Sat 01:03] 118 - State "TODO" from [2024-08-03 Sat 01:03] 119 - Note taken on [2024-08-04 Sun 21:16] \\ 120 pretty close - need to fix some recursion bugs then start messing with query-engines 122 *** DONE make-sql-data-frame 124 - State "FIX" from [2024-08-05 Mon 21:13] 125 - State "DONE" from "FIX" [2024-08-07 Wed 21:05] 127 - finish implementation
130 - State "TODO" from [2024-08-03 Sat 01:03] 132 - pronounced 'Dee-qwul'
133 - the challenge it seems, is building an inference engine that isn't
134 just another half-assed prolog
135 - expression and introspection is valued here much more than speed/size
136 - allegro and screamer are favorites so far
137 *** TODO top-level macros 139 - State "TODO" from [2024-08-08 Thu 22:38] 144 - State "TODO" from [2024-08-08 Thu 22:39] 146 *** TODO basic predicates 148 - State "TODO" from [2024-08-08 Thu 22:39] 151 =/2 ==/2 abolish/2 and/* append/3 arg/3 assert/1 asserta/1 assertz/1 atom/1 atomic/1
152 bagof/3 call/1 consult/1 copy-term/2 erase/1 fail/0 first/1 functor/3 ground/1 if/2 if/3
153 is/2 last/1 leash/1 length/1 listing/1 member/2 memberp/2 (member without backtracking) not/1
154 number/1 or/* princ/1 read/1 recorda/1 recordz/1 recorded/2 repeat/0 rest/1 retract/1 rev/2
155 setof/3 true/0 var/1 write/1
158 *** TODO compiler design 160 - State "TODO" from [2024-08-08 Thu 22:39] 162 *** TODO runtime design 164 - State "TODO" from [2024-08-08 Thu 22:43] 168 - plenty of dynamic extent
171 ** TODO q/tests/fuzz [0/2] 173 - State "TODO" from [2024-08-05 Mon 21:11] 175 - [[https://github.com/andygrove/how-query-engines-work/blob/main/jvm/fuzzer/src/main/kotlin/Fuzzer.kt][kquery]] 178 - State "TODO" from [2024-08-05 Mon 21:11] 186 - State "TODO" from [2024-08-05 Mon 21:12] 188 ** TODO #? reader macro 190 - State "TODO" from [2024-08-08 Thu 22:36] 192 * RESEARCH OCI projects [0/4] :pod:packy:skel: 194 - State "RESEARCH" from [2024-08-01 Thu 12:35] 196 ** RESEARCH [[https://oras.land/][oras]] 198 - State "RESEARCH" from [2024-08-01 Thu 12:36] 202 - State "RESEARCH" from [2024-08-01 Thu 12:36] 206 - State "RESEARCH" from [2024-08-01 Thu 12:36] 208 ** RESEARCH [[https://www.sigstore.dev/][sigstore]] 210 - State "RESEARCH" from [2024-08-01 Thu 12:30] 212 * HACK defsys :lisp:std: 214 - State "HACK" from [2024-08-03 Sat 01:06] 216 - maybe Norvig was right and we don't need asdf/uiop, maybe not
217 - the truth is somewhere in between
222 * DONE migrate to sb-grovel [9/9] :lisp:ffi: 224 - State "TODO" from [2023-11-27 Mon 23:42] 225 - State "DONE" from "TODO" [2024-02-04 Sun 20:30] 228 :ID: bb365025-e5e7-4407-acba-32e30d1a245a 233 - State "TODO" from [2023-11-29 Wed 19:00] 234 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 237 :ID: 656c2683-8780-407c-b955-3defc4959595 241 - State "TODO" from [2023-11-29 Wed 19:00] 242 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 245 :ID: b4757746-525b-49e4-b8ac-677375867d8f 249 - State "TODO" from [2023-11-29 Wed 19:00] 250 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 253 :ID: b3b411fe-6b2d-4338-9e23-83536336a487 257 - State "TODO" from [2023-11-29 Wed 19:00] 258 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 261 :ID: 8a463084-efa0-4535-8239-b1c4955bde4c 265 - State "TODO" from [2023-11-29 Wed 19:00] 266 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 269 :ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92 273 - State "TODO" from [2023-11-29 Wed 19:00] 274 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 277 :ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf 281 - State "TODO" from [2023-11-29 Wed 19:00] 282 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 285 :ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731 289 - State "TODO" from [2023-11-29 Wed 19:00] 290 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 293 :ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06 297 - State "TODO" from [2023-11-29 Wed 19:27] 298 - State "WIP" from "TODO" [2023-12-10 Sun 22:47] 299 - State "DONE" from "WIP" [2024-02-04 Sun 20:30] 302 :ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c 305 - State "TODO" from [2024-08-13 Tue 22:06] 307 * TODO parse 0.1 [0/2] :lisp:lib: 309 - State "TODO" from "TODO" [2023-12-13 Wed 18:24] 313 :ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8 315 - State "TODO" from [2023-11-29 Wed 19:01] 321 - State "TODO" from [2023-12-24 Sun 19:28] 323 add tests for lexer and LALR. figure out if there are any gaps that we 327 - State "TODO" from [2023-12-24 Sun 19:28] 329 the toml parser on quicklisp is based on esrap, make a comparable one 330 using our parser module. 331 * TODO organ 0.2 [0/2] :lisp:organ: 333 - State "TODO" from [2023-11-29 Wed 21:25] 336 :ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4 340 - State "TBD" from "TODO" [2023-11-29 Wed 21:24] 343 :ID: 189584f5-fc22-4129-bd47-5d494a088684 347 - State "TODO" from [2023-11-29 Wed 21:26] 352 :ID: 63774177-9730-4961-8535-414fac7a6f4f 354 ** TBD parse org-elements as sxp :sxp: 356 - State "TODO" from [2023-09-25 Mon 15:23] 357 - State "TBD" from "TODO" [2023-12-13 Wed 18:10] 360 #+begin_src emacs-lisp :results silent 364 #+begin_src lisp :results silent 365 (ql:quickload :organ) 369 #+begin_src emacs-lisp :results output replace 370 (macroexpand-1 (org-element-parse-buffer)) 376 #+begin_src lisp :results output :var in=oe-form() 377 (let ((sxp (sxp:make-sxp))) 378 ;; SIMPLE-READER-ERROR #\) when using read 379 (sxp:wrap-from-string! sxp in) 384 : #<DAT/SXP:SXP {1026EFA513}> 387 : Slots with :INSTANCE allocation: 390 * TODO rdb 0.2 [0/6] :lisp:rdb: 392 - State "TODO" from "TODO" [2023-12-13 Wed 18:26] 394 ** TODO error handling 396 - State "TODO" from [2023-12-10 Sun 22:57] 398 - need to unwrap the pointer (* (* t)) 399 - cast to string,int,bool 400 - wrap segfault handlers 401 - add restarts for common errors (bad path) 402 - add cleanup routines 405 - State "TODO" from [2023-12-10 Sun 22:59] 407 - clients are fully dynamic 408 - generated from RDB instances 409 - compiles in CF/option/multithread/type info 410 - clients implement custom Q language 411 ** TODO sequence/iterator impl 413 - State "TODO" from [2023-12-10 Sun 23:09] 415 - use SBCL built-ins to extend the api - wrap the raw FFI iterator 417 ** TODO comparator impl 419 - State "TODO" from [2023-12-10 Sun 23:11] 421 - supply custom comparators to rocksdb from lisp 424 - State "TODO" from [2023-12-10 Sun 23:12] 426 - capture types of: kv, cf 428 - kv-spec = (kv-spec val-spec) 429 - must be serialized to/from vec<char> 432 - methods for abstracting CFs 433 ** TODO set-opt/get-opt 435 - State "TODO" from [2023-12-16 Sat 00:49] 438 - may just want to use the generic C fn that takes string as input 439 - I feel this may be less efficient but haven't benched it (requires additional arg) 440 - separate packages are a pain to query symbols with 442 * TODO vc 0.1 [2/3] :lisp:vc: 444 - State "TODO" from [2024-02-29 Thu 16:10] 446 ** TODO vc-mirrors-update replacement 448 - State "TODO" from [2024-08-10 Sat 01:33] 452 - State "TODO" from [2023-12-16 Sat 00:55] 453 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 457 - State "TODO" from [2023-12-16 Sat 00:56] 458 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 461 * TODO dat 0.1 :lisp:dat: 463 - State "TODO" from [2024-08-11 Sun 00:08] 465 ** WIP dat/parquet :lisp: 470 - State "WIP" from [2024-07-19 Fri 21:51] 473 ** TODO dat/csv column selectors :lisp:dat: 478 - State "TODO" from [2024-08-05 Mon 20:53] 480 - a function which accepts a single arg which is either a number, 481 indicating index-based selection or a list of column names for 484 ~(read-csv-line ... :select (lambda (x) x))~ 486 - index-based-selection 489 ** TODO sxp 0.2 :lisp:sxp: 491 - State "TODO" from [2023-12-12 Tue 19:49] 493 *** TODO WRAP-OBJECT :skel: 495 - State "TODO" from [2023-12-12 Tue 19:49] 497 - use to replace LOAD-AST for sk-project and friends 499 - take a look at UNWRAP-OBJECT too, may need rewrite for a better API 500 **** TODO sxp standard methods 502 - State "TODO" from [2024-08-13 Tue 22:06] 511 * TODO syn 0.1 :lisp:syn: 513 - State "TODO" from [2024-08-13 Tue 22:15] 515 * TODO skel 0.2 [1/4] :lisp:skel: 517 - State "TODO" from [2023-12-16 Sat 00:55] 519 ** DONE eval rules from CLI 521 - State "TODO" from [2023-12-16 Sat 00:56] 522 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 524 - need new command or flag for rules 525 - evaluate forms instead of looking in skelfile 526 ** TODO split out skel rules 528 - State "TODO" from [2024-08-11 Sun 00:10] 531 ** TODO implement task-pool :thread: 533 - State "TODO" from [2024-08-11 Sun 00:10] 536 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 538 - State "TODO" from [2024-08-11 Sun 00:11] 541 * TODO std 0.2 [2/8] :lisp:std: 543 - State "TODO" from [2023-12-12 Tue 19:49] 545 ** DONE refactor system definition 547 - State "TODO" from [2023-12-13 Wed 15:17] 548 - State "DONE" from "TODO" [2023-12-13 Wed 19:38] 550 - remove package-inferred 551 - minimize number of systems 555 - State "TODO" from [2023-12-13 Wed 19:39] 557 ** TODO documentation sweep 559 - State "TODO" from [2024-02-29 Thu 16:09] 563 - State "TODO" from [2024-02-29 Thu 16:09] 567 - State "TODO" from [2024-02-29 Thu 16:09] 569 ** DONE list-package-symbols, etc 571 - State "TODO" from [2024-02-29 Thu 16:09] 572 - State "DONE" from "TODO" [2024-08-07 Wed 21:07] 575 ** TODO std/tests refactor 577 - State "TODO" from [2024-07-27 Sat 02:42] 579 - a bit too large, time to shake it up 580 - need separation of concerns (files) for task-pool/threaded tests in 584 - State "TODO" from [2024-08-10 Sat 01:29] 586 * TODO obj 0.1 [2/2] :lisp:obj: 588 - State "TODO" from [2023-12-17 Sun 00:59] 592 - State "TODO" from [2023-12-17 Sun 01:00] 593 - Note taken on [2023-12-20 Wed 18:26] \\ 594 the franz impl doesn't play well with SBCL, at least with our 595 hacks. I'm not sure how faithfully I want to follow the RFCs 596 anyhow.. maybe we go for the dead simple approach and focus on MOP 597 for a path and URI protocol. 599 - mostly just need the tests and to finish porting the Franz implementation 602 - State "TODO" from [2023-12-20 Wed 18:26] 603 - State "DONE" from "TODO" [2024-08-05 Mon 21:08] 604 - Note taken on [2024-08-05 Mon 21:08] \\ 605 XDB2 is no longer used - instead provide a simple abstract API which 606 builds up to high-level systems like RDB 609 ** WIP complete base obj/query package [2/3] :q:db: 611 :LOCATION: lisp/lib/obj/query.lisp 614 - State "WIP" from [2024-07-09 Tue 22:14] 616 - object-based protocol for asking questions about data collections 617 using data expressions 618 - +lex+, +parse+, +compile+ - all handled in the Q system 619 - probably in need of refactor right after 620 - different parts of the protocol will be used by different systems 621 - ~data-source~ will be implemented in ~DAT/CSV~ ~DAT/PARQUET~, 623 - ~query-expression~ and ~query-plan~ will be implemented in 625 *** DONE aggregate physical plan 630 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 632 *** DONE Physical Expressions 637 - State "TODO" from [2024-08-02 Fri 15:53] 638 - State "TODO" from [2024-08-02 Fri 15:53] 639 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 641 *** TODO Basic Testing 643 - State "TODO" from [2024-08-02 Fri 15:55] 646 ** TODO explain impl :doc: 648 - State "TODO" from [2024-08-03 Sat 01:01] 650 ** TODO explore impl :doc: 652 - State "TODO" from "TODO" [2024-08-12 Mon 22:26] 655 * TODO net 0.1 [5/8] :lisp:net: 657 - State "TODO" from [2023-12-17 Sun 01:00] 659 ** TODO fixtures :rt: 661 - State "TODO" from [2024-08-11 Sun 00:06] 663 - implement simple network fixtures which can be used within the body of DEFTEST 664 - start with simple sockets - UDP then TCP 665 - work up towards HTTP 668 - State "TODO" from [2023-12-17 Sun 01:01] 672 - State "TODO" from [2023-12-17 Sun 01:01] 676 - State "TODO" from [2023-12-17 Sun 01:01] 677 - State "DONE" from "TODO" [2024-08-10 Sat 01:31] 682 - State "TODO" from [2023-12-17 Sun 01:01] 683 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 687 - State "TODO" from [2023-12-17 Sun 01:01] 688 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 693 - State "TODO" from [2023-12-17 Sun 01:01] 694 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 699 - State "TODO" from [2023-12-17 Sun 01:03] 700 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 702 ** WIP net/srv :lisp: 704 - State "TODO" from [2024-07-19 Fri 21:50] 705 - State "WIP" from "TODO" [2024-07-19 Fri 21:51] 707 - needs a solid task-pool impl completed first 710 - State "RESEARCH" from [2024-08-10 Sat 01:23] 712 * TODO pwn 0.1 [0/1] :lisp:pwn: 714 - State "TODO" from [2023-12-17 Sun 01:04] 715 - Note taken on [2024-02-29 Thu 16:11] \\ 716 Should this be a separate application? Lisp exploit development framework 720 - State "TODO" from [2023-12-17 Sun 01:04] 722 * TODO gui 0.1 [0/2] :lisp:gui: 724 - State "TODO" from [2023-12-17 Sun 03:40] 726 ** TODO wayland protocol bindings 728 - State "TODO" from [2023-12-17 Sun 03:40] 730 ** TBD wayland compositor :rust:lisp: 732 - State "TBD" from "TODO" [2023-11-29 Wed 21:25] 735 :ID: e18a90d7-10bc-44d3-8508-56483d29d385 737 * TODO rt 0.1 [0/4] :lisp:rt: 739 - State "TODO" from [2024-02-29 Thu 16:06] 741 ** TODO redirect I/O in tests 743 - State "TODO" from [2024-02-29 Thu 16:06] 745 prevent tests from printing implicitly. redirect stream locally, cache 746 it somehow for review. 747 ** TODO *test-on-def* 749 - State "TODO" from [2024-02-29 Thu 17:17] 751 - simple flag to test when file is defined (part of deftest macro) 754 - State "TODO" from [2024-08-13 Tue 22:22] 756 * NOPE dot 0.1 [1/1] :lisp:dot: 758 - State "TODO" from [2023-12-20 Wed 18:27] 760 ** NOPE PARSE-SPECIALIZER-USING-CLASS 762 - State "TODO" from [2023-12-20 Wed 18:28] 764 - experimental SB-MOP generic, may be useful in places where we would 765 typically use =(eql OBJECT)= as a specializer for GRAPH. 767 * TBD homer 0.1 [1/2] :lisp:homer: 769 - State "TBD" from "TODO" [2023-12-12 Tue 19:53] 771 ** DONE review GNU stow API 773 - State "TODO" from [2023-12-24 Sun 19:32] 774 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 776 [[https://www.gnu.org/software/stow/][homepage]] 777 'symlink farm manager'
778 rust impl: https://github.com/qboileau/rstow
780 ** TODO consolidate with skel :skel: 782 - State "TODO" from [2023-12-24 Sun 19:32]