Contrib Tasks

1. OUTLINE Logical Pathnames Proposal

CREATED: <2025-05-01 Thu 20:58>
ID: e5b3474a-ae82-4b67-9f07-808738d691b5
  • [2025-05-01 Thu 21:02] Discord Lisp#common-lisp

    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)
  • [2025-05-02 Fri 14:57] initial feedback

    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]

2.1. TODO get familiar with core eco

CREATED: <2025-05-02 Fri 15:02>
ID: 2178c2c1-04b8-41e0-814b-7b7ad06ca5d0

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

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

sharplispers/linedit#11

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