2 #+author: Richard Westhaver
3 #+description: core task list
4 #+setupfile: https://cdn.compiler.company/org/clean.theme
5 #+infojs_opt: toc:t home:https://compiler.company up:./
6 #+OPTIONS: num:nil d:t prop:t
8 * TODO ffi [0/10] :lisp:ffi: 10 - State "TODO" from [2024-08-10 Sat 22:20] 12 ** WIP rocksdb merge-operator callbacks :rocksdb: 13 DEADLINE: <2024-08-16 Fri> SCHEDULED: <2024-08-15 Thu> 15 - State "TODO" from [2024-08-10 Sat 22:21] 16 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 18 ** WIP rocksdb compactionfilter callbacks :rocksdb: 19 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 21 - State "TODO" from [2024-08-14 Wed 21:50] 22 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 24 ** WIP rocksdb comparator callbacks :rocksdb: 25 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-17 Sat> 27 - State "WIP" from [2024-08-14 Wed 21:51] 29 ** TODO gstreamer practical example :gstreamer: 31 - State "TODO" from [2024-08-10 Sat 22:21] 33 ** TODO ublk practical example :ublk: 35 - State "TODO" from [2024-08-10 Sat 22:22] 37 ** TODO uring read/write file example :uring: 39 - State "TODO" from [2024-08-10 Sat 22:22] 41 ** TODO btrfs practical example :btrfs: 43 - State "TODO" from [2024-08-10 Sat 22:30] 45 - [ ] sudo example (filesystem)
46 - [ ] non-sudo example?
47 ** TODO xkb practical example :x:kb: 49 - State "TODO" from [2024-08-10 Sat 22:32] 51 ** TODO keyutils practical example :crypto: 53 - State "TODO" from [2024-08-10 Sat 22:33] 55 ** TODO readline :cli: 57 - State "TODO" from [2024-08-10 Sat 22:23] 59 * TBD retire x.lisp :lisp:skel: 65 - State "TODO" from [2024-07-09 Tue 22:24] 66 - State "TBD" from "TODO" [2024-07-27 Sat 02:41] 68 with skel taking on more responsibility we no longer need a dedicated build tool.
69 - migrate all functionality to skelfile
70 - cleanup readme with installation instructions (with and without
=infra=)
71 * TODO cli/clap v0.2.0 [1/6] :lisp:cli: 73 - State "TODO" from [2024-07-21 Sun 01:33] 75 - clap is quite unstable right now and has some obvious bugs which need remedying
76 ** TODO conditions implementation 77 ** TODO minimal documentation :doc: 79 - State "TODO" from [2024-07-27 Sat 02:39] 81 ** DONE implement globals =*cli* *opts* *args*= etc 83 - State "TODO" from [2024-07-27 Sat 02:39] 84 - State "DONE" from "TODO" [2024-07-27 Sat 02:40] 86 ** TODO keyword selectors :lisp:cli:skel: 88 - State "TODO" from [2024-07-27 Sat 02:31] 91 skel :include 0 :components 1 # => <sk-component PRELUDE>
93 skel :include emacs :components babel # => <sk-component BABEL>
95 - how to apply operators?
98 * TODO multipoint-images :lisp:bin:sys: 100 - State "TODO" from [2024-07-28 Sun 21:01] 102 - multiple entrypoint lisp images
103 - create multiple links to core lisp image
104 - support multiple low-level methods?
105 - naive implementation is a single entry point with a switch
107 - could also create a thin shim in Rust/Zig and call the appropriate
108 entrypoint after loading the core.
109 * TODO [[https://libyear.com/][libyear]] :lisp:skel: 111 - State "TODO" from [2024-08-01 Thu 12:27] 113 * TODO q 0.1 :lisp:q: 115 - State "TODO" from [2024-08-03 Sat 01:03] 119 - State "TODO" from [2024-08-03 Sat 01:03] 120 - Note taken on [2024-08-04 Sun 21:16] \\ 121 pretty close - need to fix some recursion bugs then start messing with query-engines 123 *** DONE make-sql-data-frame 125 - State "FIX" from [2024-08-05 Mon 21:13] 126 - State "DONE" from "FIX" [2024-08-07 Wed 21:05] 128 - finish implementation
131 - State "TODO" from [2024-08-03 Sat 01:03] 133 - pronounced 'Dee-qwul'
134 - the challenge it seems, is building an inference engine that isn't
135 just another half-assed prolog
136 - expression and introspection is valued here much more than speed/size
137 - allegro and screamer are favorites so far
138 *** TODO top-level macros 140 - State "TODO" from [2024-08-08 Thu 22:38] 145 - State "TODO" from [2024-08-08 Thu 22:39] 147 *** TODO basic predicates 149 - State "TODO" from [2024-08-08 Thu 22:39] 152 =/2 ==/2 abolish/2 and/* append/3 arg/3 assert/1 asserta/1 assertz/1 atom/1 atomic/1
153 bagof/3 call/1 consult/1 copy-term/2 erase/1 fail/0 first/1 functor/3 ground/1 if/2 if/3
154 is/2 last/1 leash/1 length/1 listing/1 member/2 memberp/2 (member without backtracking) not/1
155 number/1 or/* princ/1 read/1 recorda/1 recordz/1 recorded/2 repeat/0 rest/1 retract/1 rev/2
156 setof/3 true/0 var/1 write/1
159 *** TODO compiler design 161 - State "TODO" from [2024-08-08 Thu 22:39] 163 *** TODO runtime design 165 - State "TODO" from [2024-08-08 Thu 22:43] 169 - plenty of dynamic extent
172 ** TODO q/tests/fuzz [0/2] 174 - State "TODO" from [2024-08-05 Mon 21:11] 176 - [[https://github.com/andygrove/how-query-engines-work/blob/main/jvm/fuzzer/src/main/kotlin/Fuzzer.kt][kquery]] 179 - State "TODO" from [2024-08-05 Mon 21:11] 187 - State "TODO" from [2024-08-05 Mon 21:12] 189 ** TODO #? reader macro 191 - State "TODO" from [2024-08-08 Thu 22:36] 193 * RESEARCH OCI projects [0/4] :pod:packy:skel: 195 - State "RESEARCH" from [2024-08-01 Thu 12:35] 197 ** RESEARCH [[https://oras.land/][oras]] 199 - State "RESEARCH" from [2024-08-01 Thu 12:36] 203 - State "RESEARCH" from [2024-08-01 Thu 12:36] 207 - State "RESEARCH" from [2024-08-01 Thu 12:36] 209 ** RESEARCH [[https://www.sigstore.dev/][sigstore]] 211 - State "RESEARCH" from [2024-08-01 Thu 12:30] 213 * HACK defsys :lisp:std: 215 - State "HACK" from [2024-08-03 Sat 01:06] 217 - maybe Norvig was right and we don't need asdf/uiop, maybe not
218 - the truth is somewhere in between
223 * DONE migrate to sb-grovel [9/9] :lisp:ffi: 225 - State "TODO" from [2023-11-27 Mon 23:42] 226 - State "DONE" from "TODO" [2024-02-04 Sun 20:30] 229 :ID: bb365025-e5e7-4407-acba-32e30d1a245a 234 - State "TODO" from [2023-11-29 Wed 19:00] 235 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 238 :ID: 656c2683-8780-407c-b955-3defc4959595 242 - State "TODO" from [2023-11-29 Wed 19:00] 243 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 246 :ID: b4757746-525b-49e4-b8ac-677375867d8f 250 - State "TODO" from [2023-11-29 Wed 19:00] 251 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 254 :ID: b3b411fe-6b2d-4338-9e23-83536336a487 258 - State "TODO" from [2023-11-29 Wed 19:00] 259 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 262 :ID: 8a463084-efa0-4535-8239-b1c4955bde4c 266 - State "TODO" from [2023-11-29 Wed 19:00] 267 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 270 :ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92 274 - State "TODO" from [2023-11-29 Wed 19:00] 275 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 278 :ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf 282 - State "TODO" from [2023-11-29 Wed 19:00] 283 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 286 :ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731 290 - State "TODO" from [2023-11-29 Wed 19:00] 291 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 294 :ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06 298 - State "TODO" from [2023-11-29 Wed 19:27] 299 - State "WIP" from "TODO" [2023-12-10 Sun 22:47] 300 - State "DONE" from "WIP" [2024-02-04 Sun 20:30] 303 :ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c 306 - State "TODO" from [2024-08-13 Tue 22:06] 308 * TODO parse 0.1 [0/2] :lisp:lib: 310 - State "TODO" from "TODO" [2023-12-13 Wed 18:24] 314 :ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8 316 - State "TODO" from [2023-11-29 Wed 19:01] 322 - State "TODO" from [2023-12-24 Sun 19:28] 324 add tests for lexer and LALR. figure out if there are any gaps that we 328 - State "TODO" from [2023-12-24 Sun 19:28] 330 the toml parser on quicklisp is based on esrap, make a comparable one 331 using our parser module. 332 * TODO organ 0.2 [0/2] :lisp:organ: 334 - State "TODO" from [2023-11-29 Wed 21:25] 337 :ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4 341 - State "TBD" from "TODO" [2023-11-29 Wed 21:24] 344 :ID: 189584f5-fc22-4129-bd47-5d494a088684 348 - State "TODO" from [2023-11-29 Wed 21:26] 353 :ID: 63774177-9730-4961-8535-414fac7a6f4f 355 ** TBD parse org-elements as sxp :sxp: 357 - State "TODO" from [2023-09-25 Mon 15:23] 358 - State "TBD" from "TODO" [2023-12-13 Wed 18:10] 361 #+begin_src emacs-lisp :results silent 365 #+begin_src lisp :results silent 366 (ql:quickload :organ) 370 #+begin_src emacs-lisp :results output replace 371 (macroexpand-1 (org-element-parse-buffer)) 377 #+begin_src lisp :results output :var in=oe-form() 378 (let ((sxp (sxp:make-sxp))) 379 ;; SIMPLE-READER-ERROR #\) when using read 380 (sxp:wrap-from-string! sxp in) 385 : #<DAT/SXP:SXP {1026EFA513}> 388 : Slots with :INSTANCE allocation: 391 * TODO rdb 0.2 [0/6] :lisp:rdb: 393 - State "TODO" from "TODO" [2023-12-13 Wed 18:26] 395 ** TODO error handling 397 - State "TODO" from [2023-12-10 Sun 22:57] 399 - need to unwrap the pointer (* (* t)) 400 - cast to string,int,bool 401 - wrap segfault handlers 402 - add restarts for common errors (bad path) 403 - add cleanup routines 406 - State "TODO" from [2023-12-10 Sun 22:59] 408 - clients are fully dynamic 409 - generated from RDB instances 410 - compiles in CF/option/multithread/type info 411 - clients implement custom Q language 412 ** TODO sequence/iterator impl 414 - State "TODO" from [2023-12-10 Sun 23:09] 416 - use SBCL built-ins to extend the api - wrap the raw FFI iterator 418 ** TODO comparator impl 420 - State "TODO" from [2023-12-10 Sun 23:11] 422 - supply custom comparators to rocksdb from lisp 425 - State "TODO" from [2023-12-10 Sun 23:12] 427 - capture types of: kv, cf 429 - kv-spec = (kv-spec val-spec) 430 - must be serialized to/from vec<char> 433 - methods for abstracting CFs 434 ** TODO set-opt/get-opt 436 - State "TODO" from [2023-12-16 Sat 00:49] 439 - may just want to use the generic C fn that takes string as input 440 - I feel this may be less efficient but haven't benched it (requires additional arg) 441 - separate packages are a pain to query symbols with 443 * TODO vc 0.1 [2/3] :lisp:vc: 445 - State "TODO" from [2024-02-29 Thu 16:10] 447 ** TODO vc-mirrors-update replacement 449 - State "TODO" from [2024-08-10 Sat 01:33] 453 - State "TODO" from [2023-12-16 Sat 00:55] 454 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 458 - State "TODO" from [2023-12-16 Sat 00:56] 459 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 462 * TODO dat 0.1 :lisp:dat: 464 - State "TODO" from [2024-08-11 Sun 00:08] 466 ** WIP dat/parquet :lisp: 471 - State "WIP" from [2024-07-19 Fri 21:51] 474 ** TODO dat/csv column selectors :lisp:dat: 479 - State "TODO" from [2024-08-05 Mon 20:53] 481 - a function which accepts a single arg which is either a number, 482 indicating index-based selection or a list of column names for 485 ~(read-csv-line ... :select (lambda (x) x))~ 487 - index-based-selection 490 ** TODO sxp 0.2 :lisp:sxp: 492 - State "TODO" from [2023-12-12 Tue 19:49] 494 *** TODO WRAP-OBJECT :skel: 496 - State "TODO" from [2023-12-12 Tue 19:49] 498 - use to replace LOAD-AST for sk-project and friends 500 - take a look at UNWRAP-OBJECT too, may need rewrite for a better API 501 **** TODO sxp standard methods 503 - State "TODO" from [2024-08-13 Tue 22:06] 512 * TODO syn 0.1 :lisp:syn: 514 - State "TODO" from [2024-08-13 Tue 22:15] 516 * TODO skel 0.2 [1/4] :lisp:skel: 518 - State "TODO" from [2023-12-16 Sat 00:55] 520 ** DONE eval rules from CLI 522 - State "TODO" from [2023-12-16 Sat 00:56] 523 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 525 - need new command or flag for rules 526 - evaluate forms instead of looking in skelfile 527 ** TODO split out skel rules 529 - State "TODO" from [2024-08-11 Sun 00:10] 532 ** TODO implement task-pool :thread: 534 - State "TODO" from [2024-08-11 Sun 00:10] 537 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 539 - State "TODO" from [2024-08-11 Sun 00:11] 542 * TODO std 0.2 [2/8] :lisp:std: 544 - State "TODO" from [2023-12-12 Tue 19:49] 546 ** DONE refactor system definition 548 - State "TODO" from [2023-12-13 Wed 15:17] 549 - State "DONE" from "TODO" [2023-12-13 Wed 19:38] 551 - remove package-inferred 552 - minimize number of systems 556 - State "TODO" from [2023-12-13 Wed 19:39] 558 ** TODO documentation sweep 560 - State "TODO" from [2024-02-29 Thu 16:09] 564 - State "TODO" from [2024-02-29 Thu 16:09] 568 - State "TODO" from [2024-02-29 Thu 16:09] 570 ** DONE list-package-symbols, etc 572 - State "TODO" from [2024-02-29 Thu 16:09] 573 - State "DONE" from "TODO" [2024-08-07 Wed 21:07] 576 ** TODO std/tests refactor 578 - State "TODO" from [2024-07-27 Sat 02:42] 580 - a bit too large, time to shake it up 581 - need separation of concerns (files) for task-pool/threaded tests in 585 - State "TODO" from [2024-08-10 Sat 01:29] 587 * TODO obj 0.1 [2/2] :lisp:obj: 589 - State "TODO" from [2023-12-17 Sun 00:59] 593 - State "TODO" from [2023-12-17 Sun 01:00] 594 - Note taken on [2023-12-20 Wed 18:26] \\ 595 the franz impl doesn't play well with SBCL, at least with our 596 hacks. I'm not sure how faithfully I want to follow the RFCs 597 anyhow.. maybe we go for the dead simple approach and focus on MOP 598 for a path and URI protocol. 600 - mostly just need the tests and to finish porting the Franz implementation 603 - State "TODO" from [2023-12-20 Wed 18:26] 604 - State "DONE" from "TODO" [2024-08-05 Mon 21:08] 605 - Note taken on [2024-08-05 Mon 21:08] \\ 606 XDB2 is no longer used - instead provide a simple abstract API which 607 builds up to high-level systems like RDB 610 ** WIP complete base obj/query package [2/3] :q:db: 612 :LOCATION: lisp/lib/obj/query.lisp 615 - State "WIP" from [2024-07-09 Tue 22:14] 617 - object-based protocol for asking questions about data collections 618 using data expressions 619 - +lex+, +parse+, +compile+ - all handled in the Q system 620 - probably in need of refactor right after 621 - different parts of the protocol will be used by different systems 622 - ~data-source~ will be implemented in ~DAT/CSV~ ~DAT/PARQUET~, 624 - ~query-expression~ and ~query-plan~ will be implemented in 626 *** DONE aggregate physical plan 631 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 633 *** DONE Physical Expressions 638 - State "TODO" from [2024-08-02 Fri 15:53] 639 - State "TODO" from [2024-08-02 Fri 15:53] 640 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 642 *** TODO Basic Testing 644 - State "TODO" from [2024-08-02 Fri 15:55] 647 ** TODO explain impl :doc: 649 - State "TODO" from [2024-08-03 Sat 01:01] 651 ** TODO explore impl :doc: 653 - State "TODO" from "TODO" [2024-08-12 Mon 22:26] 656 * TODO net 0.1 [5/8] :lisp:net: 658 - State "TODO" from [2023-12-17 Sun 01:00] 660 ** TODO fixtures :rt: 662 - State "TODO" from [2024-08-11 Sun 00:06] 664 - implement simple network fixtures which can be used within the body of DEFTEST 665 - start with simple sockets - UDP then TCP 666 - work up towards HTTP 669 - State "TODO" from [2023-12-17 Sun 01:01] 673 - State "TODO" from [2023-12-17 Sun 01:01] 677 - State "TODO" from [2023-12-17 Sun 01:01] 678 - State "DONE" from "TODO" [2024-08-10 Sat 01:31] 683 - State "TODO" from [2023-12-17 Sun 01:01] 684 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 688 - State "TODO" from [2023-12-17 Sun 01:01] 689 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 694 - State "TODO" from [2023-12-17 Sun 01:01] 695 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 700 - State "TODO" from [2023-12-17 Sun 01:03] 701 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 703 ** WIP net/srv :lisp: 705 - State "TODO" from [2024-07-19 Fri 21:50] 706 - State "WIP" from "TODO" [2024-07-19 Fri 21:51] 708 - needs a solid task-pool impl completed first 711 - State "RESEARCH" from [2024-08-10 Sat 01:23] 713 * TODO pwn 0.1 [0/1] :lisp:pwn: 715 - State "TODO" from [2023-12-17 Sun 01:04] 716 - Note taken on [2024-02-29 Thu 16:11] \\ 717 Should this be a separate application? Lisp exploit development framework 721 - State "TODO" from [2023-12-17 Sun 01:04] 723 * TODO gui 0.1 [0/2] :lisp:gui: 725 - State "TODO" from [2023-12-17 Sun 03:40] 727 ** TODO wayland protocol bindings 729 - State "TODO" from [2023-12-17 Sun 03:40] 731 ** TBD wayland compositor :rust:lisp: 733 - State "TBD" from "TODO" [2023-11-29 Wed 21:25] 736 :ID: e18a90d7-10bc-44d3-8508-56483d29d385 738 * TODO rt 0.1 [0/4] :lisp:rt: 740 - State "TODO" from [2024-02-29 Thu 16:06] 742 ** TODO redirect I/O in tests 744 - State "TODO" from [2024-02-29 Thu 16:06] 746 prevent tests from printing implicitly. redirect stream locally, cache 747 it somehow for review. 748 ** TODO *test-on-def* 750 - State "TODO" from [2024-02-29 Thu 17:17] 752 - simple flag to test when file is defined (part of deftest macro) 755 - State "TODO" from [2024-08-13 Tue 22:22] 757 * NOPE dot 0.1 [1/1] :lisp:dot: 759 - State "TODO" from [2023-12-20 Wed 18:27] 761 ** NOPE PARSE-SPECIALIZER-USING-CLASS 763 - State "TODO" from [2023-12-20 Wed 18:28] 765 - experimental SB-MOP generic, may be useful in places where we would 766 typically use =(eql OBJECT)= as a specializer for GRAPH. 768 * TBD homer 0.1 [1/2] :lisp:homer: 770 - State "TBD" from "TODO" [2023-12-12 Tue 19:53] 772 ** DONE review GNU stow API 774 - State "TODO" from [2023-12-24 Sun 19:32] 775 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 777 [[https://www.gnu.org/software/stow/][homepage]] 778 'symlink farm manager'
779 rust impl: https://github.com/qboileau/rstow
781 ** TODO consolidate with skel :skel: 783 - State "TODO" from [2023-12-24 Sun 19:32]