2 #+author: Richard Westhaver
3 #+email: richard.westhaver@gmail.com
4 #+description: core task list
5 #+setupfile: ../../clean.theme
6 #+infojs_opt: toc:t home:https://compiler.company up:./
7 #+OPTIONS: num:nil d:t prop:t toc:nil
9 * PROJECT ffi v0.1.0 [1/8] :lisp:ffi: 11 - State "TODO" from [2024-08-10 Sat 22:20] 12 - State "PROJECT" from "TODO" [2024-08-16 Fri 22:57] 14 ** PROJECT rocksdb v0.1.0 :rocksdb: 16 - State "PROJECT" from [2024-08-16 Fri 22:57] 20 - State "TODO" from [2024-08-16 Fri 22:56] 24 - State "TODO" from [2024-08-16 Fri 22:56] 26 *** DONE merge-operator callbacks :rocksdb: 27 DEADLINE: <2024-08-16 Fri> SCHEDULED: <2024-08-15 Thu> 29 :LOCATION: lisp/ffi/rocksdb/merge.lisp 32 - State "TODO" from [2024-08-10 Sat 22:21] 33 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 34 - State "DONE" from "WIP" [2024-08-16 Fri 22:52] 35 - Note taken on [2024-08-16 Fri 22:52] \\ 36 still needs testing with actual data 39 *** WIP compactionfilter callbacks :rocksdb: 40 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 42 :LOCATION: lisp/ffi/rocksdb/compaction.lisp 45 - State "TODO" from [2024-08-14 Wed 21:50] 46 - State "WIP" from "TODO" [2024-08-14 Wed 21:50] 48 *** WIP comparator callbacks :rocksdb: 49 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-17 Sat> 51 :LOCATION: lisp/ffi/rocksdb/comparator.lisp 54 - State "WIP" from [2024-08-14 Wed 21:51] 56 ** TODO readline :cli: 58 - State "TODO" from [2024-08-10 Sat 22:23] 60 ** TBD examples [0/6] :example: 62 - State "TBD" from [2024-08-15 Thu 23:02] 64 *** TODO gstreamer practical example :gstreamer: 66 - State "TODO" from [2024-08-10 Sat 22:21] 68 *** TODO ublk practical example :ublk: 70 - State "TODO" from [2024-08-10 Sat 22:22] 72 *** TODO uring read/write file example :uring: 74 - State "TODO" from [2024-08-10 Sat 22:22] 76 *** TODO btrfs practical example :btrfs: 78 - State "TODO" from [2024-08-10 Sat 22:30] 80 - [ ] sudo example (filesystem)
81 - [ ] non-sudo example?
82 *** TODO xkb practical example :x:kb: 84 - State "TODO" from [2024-08-10 Sat 22:32] 86 *** TODO keyutils practical example :crypto: 88 - State "TODO" from [2024-08-10 Sat 22:33] 91 * TODO retire x.lisp :lisp:skel: 92 SCHEDULED: <2024-08-22 Thu> 98 - State "TODO" from [2024-07-09 Tue 22:24] 99 - State "TBD" from "TODO" [2024-07-27 Sat 02:41] 100 - State "TODO" from "TBD" [2024-08-16 Fri 22:58] 102 with skel taking on more responsibility we no longer need a dedicated build tool.
103 - migrate all functionality to skelfile
104 - cleanup readme with installation instructions (with and without
=infra=)
105 * TODO cli/clap v0.2.0 [1/6] :lisp:cli: 107 - State "TODO" from [2024-07-21 Sun 01:33] 109 - clap is quite unstable right now and has some obvious bugs which need remedying
110 ** TODO conditions implementation 111 ** TODO minimal documentation :doc: 113 - State "TODO" from [2024-07-27 Sat 02:39] 115 ** DONE implement globals =*cli* *opts* *args*= etc 117 - State "TODO" from [2024-07-27 Sat 02:39] 118 - State "DONE" from "TODO" [2024-07-27 Sat 02:40] 120 ** TODO keyword selectors :lisp:cli:skel: 122 - State "TODO" from [2024-07-27 Sat 02:31] 125 skel :include 0 :components 1 # => <sk-component PRELUDE>
127 skel :include emacs :components babel # => <sk-component BABEL>
129 - how to apply operators?
132 * TODO multipoint-images :lisp:bin:sys: 134 - State "TODO" from [2024-07-28 Sun 21:01] 136 - multiple entrypoint lisp images
137 - create multiple links to core lisp image
138 - support multiple low-level methods?
139 - naive implementation is a single entry point with a switch
141 - could also create a thin shim in Rust/Zig and call the appropriate
142 entrypoint after loading the core.
143 * TODO [[https://libyear.com/][libyear]] :lisp:skel: 145 - State "TODO" from [2024-08-01 Thu 12:27] 147 * TODO q 0.1 :lisp:q: 149 - State "TODO" from [2024-08-03 Sat 01:03] 153 - State "TODO" from [2024-08-03 Sat 01:03] 154 - Note taken on [2024-08-04 Sun 21:16] \\ 155 pretty close - need to fix some recursion bugs then start messing with query-engines 157 *** DONE make-sql-data-frame 159 - State "FIX" from [2024-08-05 Mon 21:13] 160 - State "DONE" from "FIX" [2024-08-07 Wed 21:05] 162 - finish implementation
165 - State "TODO" from [2024-08-03 Sat 01:03] 167 - pronounced 'Dee-qwul'
168 - the challenge it seems, is building an inference engine that isn't
169 just another half-assed prolog
170 - expression and introspection is valued here much more than speed/size
171 - allegro and screamer are favorites so far
172 *** TODO top-level macros 174 - State "TODO" from [2024-08-08 Thu 22:38] 179 - State "TODO" from [2024-08-08 Thu 22:39] 181 *** TODO basic predicates 183 - State "TODO" from [2024-08-08 Thu 22:39] 186 =/2 ==/2 abolish/2 and/* append/3 arg/3 assert/1 asserta/1 assertz/1 atom/1 atomic/1
187 bagof/3 call/1 consult/1 copy-term/2 erase/1 fail/0 first/1 functor/3 ground/1 if/2 if/3
188 is/2 last/1 leash/1 length/1 listing/1 member/2 memberp/2 (member without backtracking) not/1
189 number/1 or/* princ/1 read/1 recorda/1 recordz/1 recorded/2 repeat/0 rest/1 retract/1 rev/2
190 setof/3 true/0 var/1 write/1
193 *** TODO compiler design 195 - State "TODO" from [2024-08-08 Thu 22:39] 197 *** TODO runtime design 199 - State "TODO" from [2024-08-08 Thu 22:43] 203 - plenty of dynamic extent
206 ** TODO q/tests/fuzz [0/2] 208 - State "TODO" from [2024-08-05 Mon 21:11] 210 - [[https://github.com/andygrove/how-query-engines-work/blob/main/jvm/fuzzer/src/main/kotlin/Fuzzer.kt][kquery]] 213 - State "TODO" from [2024-08-05 Mon 21:11] 221 - State "TODO" from [2024-08-05 Mon 21:12] 223 ** TODO #? reader macro 225 - State "TODO" from [2024-08-08 Thu 22:36] 227 * RESEARCH OCI projects [0/4] :pod:packy:skel: 229 - State "RESEARCH" from [2024-08-01 Thu 12:35] 231 ** RESEARCH [[https://oras.land/][oras]] 233 - State "RESEARCH" from [2024-08-01 Thu 12:36] 237 - State "RESEARCH" from [2024-08-01 Thu 12:36] 241 - State "RESEARCH" from [2024-08-01 Thu 12:36] 243 ** RESEARCH [[https://www.sigstore.dev/][sigstore]] 245 - State "RESEARCH" from [2024-08-01 Thu 12:30] 247 * HACK defsys :lisp:std: 249 - State "HACK" from [2024-08-03 Sat 01:06] 251 - maybe Norvig was right and we don't need asdf/uiop, maybe not
252 - the truth is somewhere in between
257 * DONE migrate to sb-grovel [9/9] :lisp:ffi: 259 - State "TODO" from [2023-11-27 Mon 23:42] 260 - State "DONE" from "TODO" [2024-02-04 Sun 20:30] 263 :ID: bb365025-e5e7-4407-acba-32e30d1a245a 268 - State "TODO" from [2023-11-29 Wed 19:00] 269 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 272 :ID: 656c2683-8780-407c-b955-3defc4959595 276 - State "TODO" from [2023-11-29 Wed 19:00] 277 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 280 :ID: b4757746-525b-49e4-b8ac-677375867d8f 284 - State "TODO" from [2023-11-29 Wed 19:00] 285 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 288 :ID: b3b411fe-6b2d-4338-9e23-83536336a487 292 - State "TODO" from [2023-11-29 Wed 19:00] 293 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 296 :ID: 8a463084-efa0-4535-8239-b1c4955bde4c 300 - State "TODO" from [2023-11-29 Wed 19:00] 301 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 304 :ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92 308 - State "TODO" from [2023-11-29 Wed 19:00] 309 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 312 :ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf 316 - State "TODO" from [2023-11-29 Wed 19:00] 317 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 320 :ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731 324 - State "TODO" from [2023-11-29 Wed 19:00] 325 - State "DONE" from "TODO" [2023-12-09 Sat 01:57] 328 :ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06 332 - State "TODO" from [2023-11-29 Wed 19:27] 333 - State "WIP" from "TODO" [2023-12-10 Sun 22:47] 334 - State "DONE" from "WIP" [2024-02-04 Sun 20:30] 337 :ID: af778a5f-4834-4f0c-ae53-36d35cb98d8c 340 - State "TODO" from [2024-08-13 Tue 22:06] 342 * TODO parse 0.1 [0/2] :lisp:lib: 344 - State "TODO" from "TODO" [2023-12-13 Wed 18:24] 348 :ID: 8f54a69e-b256-4efd-98e8-75b4892f12b8 350 - State "TODO" from [2023-11-29 Wed 19:01] 356 - State "TODO" from [2023-12-24 Sun 19:28] 358 add tests for lexer and LALR. figure out if there are any gaps that we 362 - State "TODO" from [2023-12-24 Sun 19:28] 364 the toml parser on quicklisp is based on esrap, make a comparable one 365 using our parser module. 366 * TODO organ 0.2 [0/2] :lisp:organ: 368 - State "TODO" from [2023-11-29 Wed 21:25] 371 :ID: 4e7c55dc-e2fa-458f-ad3b-942b9aa336a4 375 - State "TBD" from "TODO" [2023-11-29 Wed 21:24] 378 :ID: 189584f5-fc22-4129-bd47-5d494a088684 382 - State "TODO" from [2023-11-29 Wed 21:26] 387 :ID: 63774177-9730-4961-8535-414fac7a6f4f 389 ** TBD parse org-elements as sxp :sxp: 391 - State "TODO" from [2023-09-25 Mon 15:23] 392 - State "TBD" from "TODO" [2023-12-13 Wed 18:10] 395 #+begin_src emacs-lisp :results silent 399 #+begin_src lisp :results silent 400 (ql:quickload :organ) 404 #+begin_src emacs-lisp :results output replace 405 (macroexpand-1 (org-element-parse-buffer)) 411 #+begin_src lisp :results output :var in=oe-form() 412 (let ((sxp (sxp:make-sxp))) 413 ;; SIMPLE-READER-ERROR #\) when using read 414 (sxp:wrap-from-string! sxp in) 419 : #<DAT/SXP:SXP {1026EFA513}> 422 : Slots with :INSTANCE allocation: 425 * TODO rdb 0.2 [0/6] :lisp:rdb: 427 - State "TODO" from "TODO" [2023-12-13 Wed 18:26] 429 ** TODO error handling 431 - State "TODO" from [2023-12-10 Sun 22:57] 433 - need to unwrap the pointer (* (* t)) 434 - cast to string,int,bool 435 - wrap segfault handlers 436 - add restarts for common errors (bad path) 437 - add cleanup routines 440 - State "TODO" from [2023-12-10 Sun 22:59] 442 - clients are fully dynamic 443 - generated from RDB instances 444 - compiles in CF/option/multithread/type info 445 - clients implement custom Q language 446 ** TODO sequence/iterator impl 448 - State "TODO" from [2023-12-10 Sun 23:09] 450 - use SBCL built-ins to extend the api - wrap the raw FFI iterator 452 ** TODO comparator impl 454 - State "TODO" from [2023-12-10 Sun 23:11] 456 - supply custom comparators to rocksdb from lisp 459 - State "TODO" from [2023-12-10 Sun 23:12] 461 - capture types of: kv, cf 463 - kv-spec = (kv-spec val-spec) 464 - must be serialized to/from vec<char> 467 - methods for abstracting CFs 468 ** TODO set-opt/get-opt 470 - State "TODO" from [2023-12-16 Sat 00:49] 473 - may just want to use the generic C fn that takes string as input 474 - I feel this may be less efficient but haven't benched it (requires additional arg) 475 - separate packages are a pain to query symbols with 477 * TODO vc 0.1 [2/3] :lisp:vc: 479 - State "TODO" from [2024-02-29 Thu 16:10] 481 ** TODO vc-mirrors-update replacement 483 - State "TODO" from [2024-08-10 Sat 01:33] 487 - State "TODO" from [2023-12-16 Sat 00:55] 488 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 492 - State "TODO" from [2023-12-16 Sat 00:56] 493 - State "DONE" from "TODO" [2024-08-10 Sat 01:34] 496 * TODO dat 0.1 :lisp:dat: 498 - State "TODO" from [2024-08-11 Sun 00:08] 500 ** WIP dat/parquet :lisp: 505 - State "WIP" from [2024-07-19 Fri 21:51] 508 ** TODO dat/csv column selectors :lisp:dat: 513 - State "TODO" from [2024-08-05 Mon 20:53] 515 - a function which accepts a single arg which is either a number, 516 indicating index-based selection or a list of column names for 519 ~(read-csv-line ... :select (lambda (x) x))~ 521 - index-based-selection 524 ** TODO sxp 0.2 :lisp:sxp: 526 - State "TODO" from [2023-12-12 Tue 19:49] 528 *** TODO WRAP-OBJECT :skel: 530 - State "TODO" from [2023-12-12 Tue 19:49] 532 - use to replace LOAD-AST for sk-project and friends 534 - take a look at UNWRAP-OBJECT too, may need rewrite for a better API 535 **** TODO sxp standard methods 537 - State "TODO" from [2024-08-13 Tue 22:06] 546 * TODO syn 0.1 :lisp:syn: 548 - State "TODO" from [2024-08-13 Tue 22:15] 550 * TODO skel 0.2 [1/4] :lisp:skel: 552 - State "TODO" from [2023-12-16 Sat 00:55] 555 ** DONE eval rules from CLI 557 - State "TODO" from [2023-12-16 Sat 00:56] 558 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 560 - need new command or flag for rules 561 - evaluate forms instead of looking in skelfile 562 ** TODO split out skel rules 564 - State "TODO" from [2024-08-11 Sun 00:10] 567 ** TODO implement task-pool :thread: 569 - State "TODO" from [2024-08-11 Sun 00:10] 572 DEADLINE: <2024-08-18 Sun> SCHEDULED: <2024-08-16 Fri> 574 - State "TODO" from [2024-08-11 Sun 00:11] 577 * TODO std 0.2 [2/8] :lisp:std: 579 - State "TODO" from [2023-12-12 Tue 19:49] 581 ** DONE refactor system definition 583 - State "TODO" from [2023-12-13 Wed 15:17] 584 - State "DONE" from "TODO" [2023-12-13 Wed 19:38] 586 - remove package-inferred 587 - minimize number of systems 591 - State "TODO" from [2023-12-13 Wed 19:39] 593 ** TODO documentation sweep 595 - State "TODO" from [2024-02-29 Thu 16:09] 599 - State "TODO" from [2024-02-29 Thu 16:09] 603 - State "TODO" from [2024-02-29 Thu 16:09] 605 ** DONE list-package-symbols, etc 607 - State "TODO" from [2024-02-29 Thu 16:09] 608 - State "DONE" from "TODO" [2024-08-07 Wed 21:07] 611 ** TODO std/tests refactor 613 - State "TODO" from [2024-07-27 Sat 02:42] 615 - a bit too large, time to shake it up 616 - need separation of concerns (files) for task-pool/threaded tests in 620 - State "TODO" from [2024-08-10 Sat 01:29] 622 * TODO obj 0.1 [2/2] :lisp:obj: 624 - State "TODO" from [2023-12-17 Sun 00:59] 628 - State "TODO" from [2023-12-17 Sun 01:00] 629 - Note taken on [2023-12-20 Wed 18:26] \\ 630 the franz impl doesn't play well with SBCL, at least with our 631 hacks. I'm not sure how faithfully I want to follow the RFCs 632 anyhow.. maybe we go for the dead simple approach and focus on MOP 633 for a path and URI protocol. 635 - mostly just need the tests and to finish porting the Franz implementation 638 - State "TODO" from [2023-12-20 Wed 18:26] 639 - State "DONE" from "TODO" [2024-08-05 Mon 21:08] 640 - Note taken on [2024-08-05 Mon 21:08] \\ 641 XDB2 is no longer used - instead provide a simple abstract API which 642 builds up to high-level systems like RDB 645 ** WIP complete base obj/query package [2/3] :q:db: 647 :LOCATION: lisp/lib/obj/query.lisp 650 - State "WIP" from [2024-07-09 Tue 22:14] 652 - object-based protocol for asking questions about data collections 653 using data expressions 654 - +lex+, +parse+, +compile+ - all handled in the Q system 655 - probably in need of refactor right after 656 - different parts of the protocol will be used by different systems 657 - ~data-source~ will be implemented in ~DAT/CSV~ ~DAT/PARQUET~, 659 - ~query-expression~ and ~query-plan~ will be implemented in 661 *** DONE aggregate physical plan 666 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 668 *** DONE Physical Expressions 673 - State "TODO" from [2024-08-02 Fri 15:53] 674 - State "TODO" from [2024-08-02 Fri 15:53] 675 - State "DONE" from "TODO" [2024-08-03 Sat 01:00] 677 *** TODO Basic Testing 679 - State "TODO" from [2024-08-02 Fri 15:55] 682 ** TODO explain impl :doc: 684 - State "TODO" from [2024-08-03 Sat 01:01] 686 ** TODO explore impl :doc: 688 - State "TODO" from "TODO" [2024-08-12 Mon 22:26] 691 * TODO net 0.1 [5/8] :lisp:net: 693 - State "TODO" from [2023-12-17 Sun 01:00] 695 ** TODO fixtures :rt: 697 - State "TODO" from [2024-08-11 Sun 00:06] 699 - implement simple network fixtures which can be used within the body of DEFTEST 700 - start with simple sockets - UDP then TCP 701 - work up towards HTTP 704 - State "TODO" from [2023-12-17 Sun 01:01] 708 - State "TODO" from [2023-12-17 Sun 01:01] 712 - State "TODO" from [2023-12-17 Sun 01:01] 713 - State "DONE" from "TODO" [2024-08-10 Sat 01:31] 718 - State "TODO" from [2023-12-17 Sun 01:01] 719 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 723 - State "TODO" from [2023-12-17 Sun 01:01] 724 - State "DONE" from "TODO" [2024-08-05 Mon 21:07] 729 - State "TODO" from [2023-12-17 Sun 01:01] 730 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 735 - State "TODO" from [2023-12-17 Sun 01:03] 736 - State "DONE" from "TODO" [2024-08-07 Wed 21:08] 738 ** WIP net/srv :lisp: 740 - State "TODO" from [2024-07-19 Fri 21:50] 741 - State "WIP" from "TODO" [2024-07-19 Fri 21:51] 743 - needs a solid task-pool impl completed first 746 - State "RESEARCH" from [2024-08-10 Sat 01:23] 748 * TODO pwn 0.1 [0/1] :lisp:pwn: 750 - State "TODO" from [2023-12-17 Sun 01:04] 751 - Note taken on [2024-02-29 Thu 16:11] \\ 752 Should this be a separate application? Lisp exploit development framework 756 - State "TODO" from [2023-12-17 Sun 01:04] 758 * TODO gui 0.1 [0/2] :lisp:gui: 760 - State "TODO" from [2023-12-17 Sun 03:40] 762 ** TODO wayland protocol bindings 764 - State "TODO" from [2023-12-17 Sun 03:40] 766 ** TBD wayland compositor :rust:lisp: 768 - State "TBD" from "TODO" [2023-11-29 Wed 21:25] 771 :ID: e18a90d7-10bc-44d3-8508-56483d29d385 773 * TODO rt 0.1 [0/4] :lisp:rt: 775 - State "TODO" from [2024-02-29 Thu 16:06] 777 ** TODO redirect I/O in tests 779 - State "TODO" from [2024-02-29 Thu 16:06] 781 prevent tests from printing implicitly. redirect stream locally, cache 782 it somehow for review. 783 ** TODO *test-on-def* 785 - State "TODO" from [2024-02-29 Thu 17:17] 787 - simple flag to test when file is defined (part of deftest macro) 790 - State "TODO" from [2024-08-13 Tue 22:22] 792 * TODO emacs 0.1 :emacs: 794 - State "TODO" from [2024-08-16 Fri 22:39] 796 - don't really care about versioning the core/emacs configs much 797 - may come in use later so just a general milestone when these tasks are done 798 ** TODO comp/org capture templates 800 - State "TODO" from [2024-08-15 Thu 23:14] 802 ** TODO comp/org agenda views, export, dblock 804 - State "TODO" from [2024-08-15 Thu 23:15] 806 ** FIXME compiler warnings 808 - State "FIXME" from [2024-08-16 Fri 22:42] 810 ** TODO remove makefile 812 - State "TODO" from [2024-08-16 Fri 22:44] 814 * DONE dot 0.1 [1/1] :lisp:dot: 816 - State "TODO" from [2023-12-20 Wed 18:27] 817 - State "DONE" from "NOPE" [2024-08-16 Fri 22:38] 819 - implemented in dat/dot.lisp 820 ** NOPE PARSE-SPECIALIZER-USING-CLASS 822 - State "TODO" from [2023-12-20 Wed 18:28] 824 - experimental SB-MOP generic, may be useful in places where we would 825 typically use =(eql OBJECT)= as a specializer for GRAPH. 827 * TBD homer 0.1 [1/2] :lisp:homer: 829 - State "TBD" from "TODO" [2023-12-12 Tue 19:53] 831 ** DONE review GNU stow API 833 - State "TODO" from [2023-12-24 Sun 19:32] 834 - State "DONE" from "TODO" [2024-08-05 Mon 21:06] 836 [[https://www.gnu.org/software/stow/][homepage]] 837 'symlink farm manager'
838 rust impl: https://github.com/qboileau/rstow
840 ** TODO consolidate with skel :skel: 842 - State "TODO" from [2023-12-24 Sun 19:32]