Contrib Tasks

1. OUTLINE Logical Pathnames Proposal

CREATED: <2025-05-01 Thu 20:58>
ID: e5b3474a-ae82-4b67-9f07-808738d691b5
  • State "TBD" from [2025-05-01 Thu 20:58]
  • State "OUTLINE" from [2025-05-01 Thu 21:01]
  • [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]

CREATED: <2025-05-01 Thu 21:15>
ID: 7547601b-97f4-46dd-9d3f-d3b21f8818bc
LICENSE: zlib
  • State "RESEARCH" from [2025-05-01 Thu 21:15]
  • Note taken on [2025-05-01 Thu 21:17]
    priorities are tests and documentation.
    • 3d-math tests are highest prio

2.1. TODO get familiar with core eco

CREATED: <2025-05-02 Fri 15:02>
ID: 2178c2c1-04b8-41e0-814b-7b7ad06ca5d0
  • State "TODO" from [2025-05-02 Fri 15:02]

2.2. WIP 3d-math patches [0/2]

CREATED: <2025-05-01 Thu 21:24>
ID: 087698d2-d959-4707-ada0-53879367a3fe
LOCATION: 3d-math/
  • State "TBD" from [2025-05-01 Thu 21:24]

2.2.1. WIP quaternion convention

CREATED: <2025-05-01 Thu 21:25>
ID: a8ac36f2-a52e-4a38-8213-e152a3b57662
LOCATION+: quaternions/
Effort: 3h
  • State "TODO" from [2025-05-01 Thu 21:25]

CLOCK: [2025-05-09 Fri 17:21]--[2025-05-09 Fri 18:30] (1:09)

2.2.2. RESEARCH 3d test suites

CREATED: <2025-05-01 Thu 21:27>
ID: 9e394ba4-990c-46bb-b0f0-665deea74c23
LOCATION+: test.lisp
  • State "TODO" from [2025-05-01 Thu 21:27]
  • State "RESEARCH" from "TODO" [2025-05-01 Thu 21:27]

2.3. TBD redist [0/0]

CREATED: <2025-05-01 Thu 22:05>
ID: 799dcbe2-bdab-40d0-b870-ac5556ce7eae
  • State "TBD" from [2025-05-01 Thu 22:05]

3. WIP sharplispers

CREATED: <2025-05-01 Thu 22:15>
ID: b26437fd-633c-4ea3-bf73-3b62d72c855c
  • State "RESEARCH" from [2025-05-01 Thu 22:15]
  • State "WIP" from "RESEARCH" [2025-05-04 Sun 19:38]

3.1. WIP linedit [0/0]

CREATED: <2025-05-01 Thu 22:12>
ID: 9df7f994-c7dd-459b-9f59-a731d1fdf0fc
  • State "TODO" from [2025-05-01 Thu 22:12]
  • State "WIP" from "TODO" [2025-05-01 Thu 22:16]

3.1.1. WAIT linedit inspect command

CREATED: <2025-05-01 Thu 22:13>
ID: 7b91fda2-6347-445b-991e-85ede77a3750
  • State "WAIT" from [2025-05-01 Thu 22:13]
    pr submitted

sharplispers/linedit#11

3.2. WIP lparallel [0/2]

CREATED: <2025-05-01 Thu 22:05>
ID: 58f84b83-31ab-4b68-8ca8-062f447d25fb
  • State "TBD" from [2025-05-01 Thu 22:05]
  • State "WIP" from "TBD" [2025-05-03 Sat 20:12]

3.2.1. WAIT Replace queues with semaphores [0/0]

CREATED: <2025-05-01 Thu 22:06>
ID: 658a596f-830c-4a39-8513-78ffceaad4e5
  • State "TODO" from [2025-05-01 Thu 22:06]
  • State "WAIT" from "TODO" [2025-05-03 Sat 20:11]
    pr submitted

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
  • State "OUTLINE" from [2025-05-01 Thu 22:08]

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
  • State "TBD" from [2025-05-02 Fri 13:15]

4.1. TBD clim-mode-line

CREATED: <2025-05-02 Fri 13:16>
ID: f4868078-70a6-4da4-9110-e730625c72c1
  • State "TBD" from [2025-05-02 Fri 13:16]
  • 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
  • State "TODO" from [2025-05-02 Fri 13:17]

5. TBD mcclim

CREATED: <2025-05-02 Fri 13:15>
ID: d170a060-6ec9-4d0d-b571-2dfe634862b0
  • State "TBD" from [2025-05-02 Fri 13:15]

6. WIP edicl

CREATED: <2025-05-03 Sat 20:13>
ID: bf829af6-bbb8-4e64-8839-41f0aac733f2
  • State "RESEARCH" from [2025-05-03 Sat 20:13]
  • State "WIP" from "RESEARCH" [2025-05-04 Sun 19:38]

6.1. DONE cl-who fixes

CREATED: <2025-05-03 Sat 20:13>
ID: 71fd1e6c-e1c0-43d5-8f8a-ee348f815b60
  • State "WIP" from [2025-05-03 Sat 20:13]
  • State "WAIT" from "WIP" [2025-05-03 Sat 20:15]
  • State "DONE" from "WAIT" [2025-05-04 Sun 19:32]

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
  • State "WIP" from [2025-05-03 Sat 20:13]
  • State "WAIT" from "WIP" [2025-05-03 Sat 20:15]

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
  • State "TODO" from [2025-05-04 Sun 19:31]
  • State "WAIT" from "TODO" [2025-05-04 Sun 19:36]