Contrib Tasks
1. OUTLINE Logical Pathnames Proposal
CREATED: <2025-05-01 Thu 20:58> ID: e5b3474a-ae82-4b67-9f07-808738d691b5
so I've been thinking about logical pathnames for a bit - it appears there is plenty of room for implementation-defined extension in the spec (via translate-logical-pathname keyword args) as well as load-logical-pathname-translations - what I'd like to do is make some recommendations for extending the capabilities in a backwards-compatible way that are less geared towards managing filesystem conventions between different physical hosts and more towards being an easy 'path-finding' tool which is easy for programmers to plug custom logic into. @phoe would this be something a CDR would apply to? alternatively I could just work on a patch to submit for sbcl - still need to look at if any other impl does something fancy
Bike: honestly that's the only thing i use them for, but i'm open to suggestions. what would you like to have beyond the logical-pathname-translations interface? [10:26 PM]ellis: what I'm thinking is some sort of API where you can provide additional layers of translation, maybe by specifying a keyword argument args in the form :translate-device (lambda (device) ;; translation? side effects on dynamic vars?) :translate-version.. [10:31 PM]ellis: for load-logical-pathname-translations i like the idea of a similar situation with a user defined function instead of relying on 'SYS:SITE;HOST.TRANSLATIONS' - maybe I want to use this in a p2p discovery service for example and I want to specify a function which does a remote lookup, parses a response and returns the appropriate form [10:33 PM]ellis: right now i'm just experimenting with the conventional local-projects approach, stuff like 'SYS:TMP' and 'MEDIA:MUSIC', which has kept me busy enough but will find some time to prototype something out [10:40 PM]ellis: a few other things that came to mind.. cached/db access to pathname translation index-based wildcard translation (sketchy) - (translate-logical-pathname "MEDIA:MUSIC;0" :translate-wildcard (lambda (x) (aref *sorted-music-directory-contents* x))) [10:44 PM]ellis: really makes more sense as a package, like translate-pathname* but just a shame to waste those keyword args lol [10:44 PM]ellis: (defvar *default-logical-pathname-translator* 'translate-logical-pathname)
3:48 AM]Isomorphism: Yeah but on the other hand, why not just make a dedicated library to your path parsing thing? Generic extensions to path resolution is a little scary to me, given that something unrelated could suddenly become vulnerable to some injection attack [9:51 AM]Bike: i would generally be skeptical of a global hook like this translator. it's nasty if libraries can rebind or set a variable and suddenly logical pathname stuff everywhere breaks, including inside the implementation. logical-pathname-translations is sorta there already though
2. RESEARCH Shirakumo Ecosystem [0/3]
CREATED: <2025-05-01 Thu 21:15> ID: 7547601b-97f4-46dd-9d3f-d3b21f8818bc LICENSE: zlib
2.1. TODO get familiar with core eco
CREATED: <2025-05-02 Fri 15:02> ID: 2178c2c1-04b8-41e0-814b-7b7ad06ca5d0
- tests, documentation, builds
- Parachute
- Documentation Utils
- Type Templates
2.2. WIP 3d-math patches [0/2]
CREATED: <2025-05-01 Thu 21:24> ID: 087698d2-d959-4707-ada0-53879367a3fe LOCATION: 3d-math/
2.2.1. WIP quaternion convention
CREATED: <2025-05-01 Thu 21:25> ID: a8ac36f2-a52e-4a38-8213-e152a3b57662 LOCATION+: quaternions/ Effort: 3h
- check the article referred to: Shinmera/3d-math#5
- if it's trivial just submit a pr
2.2.2. RESEARCH 3d test suites
CREATED: <2025-05-01 Thu 21:27> ID: 9e394ba4-990c-46bb-b0f0-665deea74c23 LOCATION+: test.lisp
2.3. TBD redist [0/0]
CREATED: <2025-05-01 Thu 22:05> ID: 799dcbe2-bdab-40d0-b870-ac5556ce7eae
3. WIP sharplispers
CREATED: <2025-05-01 Thu 22:15> ID: b26437fd-633c-4ea3-bf73-3b62d72c855c
3.1. WIP linedit [0/0]
CREATED: <2025-05-01 Thu 22:12> ID: 9df7f994-c7dd-459b-9f59-a731d1fdf0fc
3.1.1. WAIT linedit inspect command
CREATED: <2025-05-01 Thu 22:13> ID: 7b91fda2-6347-445b-991e-85ede77a3750
3.2. WIP lparallel [0/2]
CREATED: <2025-05-01 Thu 22:05> ID: 58f84b83-31ab-4b68-8ca8-062f447d25fb
3.2.1. WAIT Replace queues with semaphores [0/0]
CREATED: <2025-05-01 Thu 22:06> ID: 658a596f-830c-4a39-8513-78ffceaad4e5
shoot first questions later, just submit the patch clearing the todo, SBCL only lparallel/src/kernel/core.lisp
our current impl:
(defun broadcast-work (function &rest args) "Wait for current and pending work to complete, if any, then simultaneously execute the given work inside each worker. Wait until this work is complete, then return the results in a vector. Calling `broadcast-work' from inside a worker is an error." (when *worker* (error "Cannot call `broadcast-work' from inside a worker.")) (let* ((function (std/curry:ensure-function function)) (*thread-pool* (check-thread-pool)) (worker-count (worker-count*)) (channel (make-instance 'channel)) (from-workers (make-semaphore)) (to-workers (make-semaphore))) (loop repeat worker-count do (submit-work channel (lambda () (signal-semaphore from-workers) (wait-on-semaphore to-workers) (apply function args)))) (loop repeat worker-count do (wait-on-semaphore from-workers)) (loop repeat worker-count do (signal-semaphore to-workers)) (map-into (make-array worker-count) (lambda () (receive-result channel)))))
3.3. OUTLINE worker-notifications/handshake API change
CREATED: <2025-05-01 Thu 22:08> ID: 9bf48146-d3af-41d0-a87d-007ae9cfcc79
our current impl looks like this
(defvar *default-worker-tx-capacity* 8) (defclass worker-status () ((%rx :initform (sb-concurrency:make-gate)) (%tx :initform (make-queue :fixed-capacity *default-worker-tx-capacity*))))
4. TBD stumpwm
CREATED: <2025-05-02 Fri 13:15> ID: 038c7ad6-6e12-48dc-823c-5a5ad948839c
4.1. TBD clim-mode-line
CREATED: <2025-05-02 Fri 13:16> ID: f4868078-70a6-4da4-9110-e730625c72c1
- will probably make a new API for this which won't be contribed - still should do a once over and cover any TODOs or bugs
4.1.1. TODO interpret stumpwm mode-line format
CREATED: <2025-05-02 Fri 13:17> ID: 57aced0e-2df5-480b-80dc-40cd43db8343
5. TBD mcclim
CREATED: <2025-05-02 Fri 13:15> ID: d170a060-6ec9-4d0d-b571-2dfe634862b0
6. WIP edicl
CREATED: <2025-05-03 Sat 20:13> ID: bf829af6-bbb8-4e64-8839-41f0aac733f2
6.1. DONE cl-who fixes
CREATED: <2025-05-03 Sat 20:13> ID: 71fd1e6c-e1c0-43d5-8f8a-ee348f815b60
closes an issue - pr submitted
- removed sbcl element-type change - needs further review
- merged
6.2. WAIT cl-interpol system descriptions
CREATED: <2025-05-03 Sat 20:13> ID: e1e64ce5-7567-43d5-a865-c3afd85b1361
closes a request issue - pr submitted
6.3. WAIT chunga memory-leak fixes
CREATED: <2025-05-04 Sun 19:31> ID: b756c934-df65-474a-a631-a156b8c1edea
- Random headers lead to memory exaust. · Issue #140 · edicl/drakma · GitHub
- as-keyword-if-found problems · Issue #13 · edicl/chunga · GitHub
- commented, can probably just add a better changelog description and patch the upstreams
- hunchensocket tbd
- could check quicklisp for other upstreams