libera/#commonlisp - IRC Chatlog
Search
6:08:32
jackdaniel
beach: how about a generic function (client-condition client l-condition) that defaults to identity?
6:11:27
beach
The difference would be in how additional arguments are treated. In this suggestion, they are all passed to the client condition creation.
6:15:14
jackdaniel
this solution is more failproof. imagine someone calling l:error with an instance (not a symbol) created earlier (i.e resignaling)
10:10:52
Equill
beach: in case you haven't already found a viable solution, I have a hacky workaround that _may_ do what you need. Have L create a LUT when it's loaded, that C can override. The LUT's keys are identifiers for problems that need signalling, and the values are the conditions to be signalled.
10:12:05
beach
Equill: Thanks. Aside from the implementation, I think the solution is similar to the one I suggested.
10:12:09
Equill
The obvious catch is that any conditions C inserts into the LUT will need to accept the same parameters as the conditions they're replacing. Otherwise, I *think* the only run-time-overhead is the look-up involved when the condition is signalled.
10:14:59
Equill
It's a matter of scale, in part. My last employer discovered that "one-in-a-million" situations become a daily occurrence, if you have enough active clients :)
15:51:56
splittist
A gothic 'p' extracted from a Type1C (CFF) font embedded in a PDF and 'rendered' to SVG with stems: https://snipboard.io/iuJAK8.jpg
15:58:16
beach
Soon, we'll be able to render the Leland music font, so that i can use it in Clovetree.
16:11:49
e40
There was a query earlier about Duane Rettig. He's alive and well. I saw him yesterday! Still working on Common Lisp and the upcoming ACL 11.0 release.
16:24:08
e40
Also, there is a pre-release available now. Send email to the same address asking for it and I'll shoot you the URL.
17:48:27
cpli
i.e. i have code that can leverage multiple backends which all create some object but have shared generic functions - all seems trivial and good - until i'm actually supposed to create one of these objects
17:51:43
jackdaniel
the function find-port accepts the "server path" argument that may be used to select a backend
17:52:21
jackdaniel
you may bind (or setf) *default-server-path* to i.e :clx-ttf and then all indirect port resolving will use the x11 backend
17:52:39
jackdaniel
you may use also (clime:with-output-to-drawing-stream (stream :svg "/tmp/foo.svg") ...) to use svg backend
17:52:54
jackdaniel
or (clime:with-output-to-drawing-stream (stream :clx-ttf nil) ...) to open a window
17:53:21
jackdaniel
if you are interested in the mechanism just navigate to the source of the function find-port
17:54:50
cpli
jackdaniel: you're a savior https://codeberg.org/McCLIM/McCLIM/src/commit/555728b4cd0744ce7c3c681c7e46425d34a31ed3/Core/windowing/ports.lisp#L41-L64