freenode/#clim - IRC Chatlog
Search
8:14:32
jackdaniel
that combined with default space requirements yielded [min>0; 0; +fill+] which failed on assertion
8:14:55
jackdaniel
imho we should clamp width to min;max boundries instead of signalling the assertion
8:23:43
jackdaniel
so I'm leaving the assertion, but it is enforced *fater* clamping optimal width/height
8:24:42
jackdaniel
I'm also adding clampf macro to climi: (define-modify-macro clampf (min max) clamp)
8:49:34
loke
beach: In other words, I think my proposal will work, but I am concerned that it's not the best one.
8:51:46
jackdaniel
"even if they are running in different processes." doesi t mean process or application frames? do you plan some kind of serialization of lisp objects? presentation types etc?
9:05:05
jackdaniel
loke: I've added a few comments under the issue with things which doesn't seem clear to me
9:07:19
loke
jackdaniel: Yes. I haven't addressed the serialisation of Lisp object smuch because I haven't actually played around with any of that yet. It's merely a note that the system would enable it.
9:07:21
jackdaniel
or it has the same name, *but* is not compatible (just a package:name coincidence or older/newer version)
9:09:16
loke
jackdaniel: Simply that a given prtesetation would have a given Sexp represetnation. Fir example, an object that hols a list of strings would have an external represetnation as “list of strings” for example.
9:09:42
loke
If a client requests that the object be presented as such, it would receive a serialised list of strings.
9:10:20
loke
I have not envisioned any way to send arbitrary lisp instances for example... I'm not saying it's impossible, just that I haven't thought about it.
9:12:05
loke
jackdaniel: in that case, the sender would design a specific external representation. Its form is not important, but it could for example be something like (TITLE WIDTH HEIGHT LABEL DATAPOINTS etc...)
9:12:32
loke
That object would then have two representations: One being IMAGE and the other being My-CUSOTOM-GRAPH-FORMAT
9:13:08
loke
so the party that wants to paste that, would only paste is as an image, unless it happens to know about MY-CUSTOM-GRAPH-FORMAT in which case it would know what to do with it.
9:13:25
jackdaniel
alright, is it possible for you to clean up your implementation, so it may be played between two application frames with your mixin?
9:13:43
loke
Well sure. The custom format could be some serialised form, but that's between the sender and receiver to decide upon.
9:14:11
loke
jackdaniel: Yes. That is my intention, as long as the general structure is deemed “okayish”. :-)
9:14:50
jackdaniel
I don't know if I understand it. does every pane have its own clipboard? or clipboard is associated with port? or with a frame?
9:15:33
jackdaniel
we had a talk about that a few weeks back, but I don't think it is reflected in this proposal
9:15:36
loke
jackdaniel: Well... That's complicated. 1) Conceptually there is only one clipboard in the entire system.
9:16:49
jackdaniel
[that should be explained in the issue!] [I think that having per-frame clipboard has more sense, and frame is roughly a window equivalent]
9:18:25
jackdaniel
user-perspective wise it should behave exactly the same, when you start two frames from the same lisp image
9:18:33
loke
jackdaniel: Well, not really. There may be two clipboard objects, but only one is ever active at any point in time.
9:19:09
jackdaniel
OK; I think I'll need to play with a simple demo a little to understand it better
9:19:11
loke
jackdaniel: Correct. Because the concept of a clipboard reflects the clipboard in your operating system. When you Control-C in notepad, it goes into the system clipboard (even though internally it's managed by the owning process)
9:20:52
jackdaniel
is it possible to make it a standalone demo which would be run on current master?
9:24:28
loke
jackdaniel: No. It doesn't work. I tried to, but the existing implementation already does stuff with the events.
14:23:37
beach
In the listener, we used to first evaluate the expression using the same thread as the one reading the expression. Then at some point Athas changed that so that a new thread was spawned for the evaluation, effectively allowing the user to interrupt the evaluation if it turns out that it is in an infinite loop.
14:25:20
djeis[m]
Well, if that evaluation tried to write to the listener pane you might’ve hit threading weirdness.
14:26:27
beach
In the listener thread, there are bindings of special variables in place, and those are lost by default when a new thread is spawned.
14:26:54
beach
So to make that work, the new thread had to be initialized with the same values of those special variables.
14:32:57
beach
I thought for a while I had a better solution, but now I think mine has the same problem.
14:36:59
jackdaniel
correct solution would be binding separate streams for this thread and passing keyboard input to the process
15:16:46
scymtym
can anybody confirm that (defclass foo () ((bar :initform (make-hash-table)))) (clouseau:inspector (make-instance 'foo)) shows the "Hash table" string with a vertical offset and also misaligned with respect to the presentation highlight?
15:27:55
beach
The text is upside-down in the sense that it is a mirror image with respect to a horizontal line.
15:42:12
jackdaniel
looking at screenshots it looks as if beach is using freetype (ffi-based) renderer loke wrote, while scymtym is using ttf, which performs only text translation
15:48:21
scymtym
jackdaniel: looks nice. if can make a suggestions: use a more subtle color palette like #0072bd #d95319 #edb120 #7e2f8e #77ac30 #4dbeee #a2142f (which is gnuplot's default, i think) - it makes a big difference
15:49:35
jackdaniel
we should make contrasting inks return better values. thank you for a suggestion, I'll change it locally to said colors
15:50:05
scymtym
cool, i didn't know that existed. and i agree improving its defaults would make it super useful