freenode/#clim - IRC Chatlog
Search
8:06:50
hjek
Hi, I still have the problem of McCLIM taking quite a while to load (on a reasonably new laptop). In this nice video tutorial, https://www.youtube.com/watch?v=kfBmRsPRdGg , the clim-listener loads in a matter of seconds, but when I load it, it takes exactly 5 minutes. I am getting McCLIM from Quicklisp, and I have no additional operating system repository common lisp packages installed that could possibly interfere.
8:07:42
hjek
Are there any caching tricks or tweaks that are good for speeding up Quicklisp loading?
8:09:25
hjek
@loke: when I was on Debian, previously, and loaded McCLIM via ASDF from the debian repos, then it would display compilation messages too.
8:10:20
hjek
@loke: only happens with McCLIM of what I've seen so far. But I've not used too many CL packages yet
8:10:40
jackdaniel
loke: McCLIM is probably the biggest library in Quicklisp with a lot of dependencies
8:11:17
loke
Stull, 5 minutes? It can't take more than 45 seconds for me to load all of mcclim on my old computer.
8:11:47
hjek
What configuration do you use to cache things? Should it work automagically or do I need to set stuff?
8:14:07
hjek
like, ./asdf-output-translations/home/pelle/quicklisp/dists/quicklisp/software/mccli -20180328-git/Core/clim-basic/encapsulate.o
8:15:42
jackdaniel
it will be either this slow, or you can use sbcl or ccl (they load McCLIM much faster)
8:16:29
jackdaniel
hjek: it is a bug in ASDF, not in QL (or even a bug in our mcclim.asd system definition)
8:18:38
hjek
Ok, but ASDF is likely the issue? So it might make sense to look at ASDF cache options? (Right now using SBCL is not really an option for me, as the packages provided on sbcl.org don't work here, because of musl... etc etc)
8:20:18
jackdaniel
this is not a configuration bug. It is either a problem in mcclim.asd definition (what causes recompilation), or ASDF internals which doesn't recognize, that system is already compiled and cached
8:20:53
jackdaniel
if the problem is with mcclim.asd (or any other *.asd in mcclim) fix should be considerably easy
8:21:11
jackdaniel
if that are asdf internals, then I wouldn't bether if I were you if you are not familiar with asdf internals
8:23:55
jackdaniel
it is easy, but it doesn't work with mcclim (another known issue which i didn't investigte yet0
8:35:14
hjek
ok, another question: How is the Windows support in McCLIM? Is it kinda alright or just a no-go?
11:29:57
jackdaniel
nb: since we introduce new behavior, we should provide demo in clim-demo/drawing-demos
11:31:05
jackdaniel
also, since we change draw-text, we will break *every* application which uses it
11:36:55
jackdaniel
TMA: this was more stylistic question, I know how #+ works – like: do we need another mysterious disabled code?
11:37:19
jackdaniel
because that's how I see all these #+xxx #+nil #+disable-this #+broken things – no explanations, just a dead code
12:44:49
loke
jackdaniel: That's something that is no longer needed, but I wanted to keep it there while testing. I never intended to commit it.
12:45:13
loke
I named it like that in order to not forget to remove before commit. Seems it didn't work :-)
12:57:22
drunk_foxx[m]
ACTION sent a long message: drunk_foxx[m]_2018-04-27_12:57:22.txt <https://matrix.org/_matrix/media/v1/download/matrix.org/UucUpmSMszEiqpNFDBgtuNgT>
13:02:29
loke
jackdaniel: I just realised there is more work for me. The RENDER-MEDIUM needs freetype support too
13:06:14
drunk_foxx[m]
ACTION sent a long message: drunk_foxx[m]_2018-04-27_13:06:14.txt <https://matrix.org/_matrix/media/v1/download/matrix.org/TxzMHmmgsTJeMapixzIZRTnk>
13:08:04
jackdaniel
fact that uiop is bundled with the implementation makes it a no-go (because it's not downloaded from ql, you have to clone it yourself)
13:08:32
jackdaniel
if ASDF had it's own asdf-uiop system, and ql shipped uiop, then there would be no problem
13:08:52
jackdaniel
but right now asdf always may find uiop, so there is no need to query external resources (and in effect uiop is never upgraded)
13:16:08
jackdaniel
as first part of the video (still wip) I've made a recap of the previous one: https://www.youtube.com/watch?v=GUUpyG_6aIw&feature=youtu.be should I include it?
13:18:02
jackdaniel
drunk_foxx[m]: this is the right way. but clim-listener won't work on the version currently published on quicklisp and sbcl <= 1.4.0
13:21:21
jackdaniel
any comments on this 12m video? (you may see a mindmap on the screen – it shows other parts which will be discussed)
13:22:30
jackdaniel
nothing new in light of the previous screencast, but I thought that adding such recap might be useful
13:28:40
loke
the output record bounds (x,y,width,height,etc) should reflect the _translated_ coordinates, right?
13:28:54
jackdaniel
I think I've read in the specification, that output records can, but doesn't have to record the transformation (so basically it is an undefined behavior, when you try to reply record in different transformation context than the one on which it was originally displayed)
13:29:25
loke
OK. Because DRAW-RECTANGLE does it... But DRAW-STRING seems to have never worked right.
13:29:56
jackdaniel
so that means, that both strategies are valid: recording transformation and applying it on reply, or applying transformation and then recording transformed output
13:34:37
loke
Another thing: I noticed that the existing code records the output record dimensions for text with a HEIGHT of (+ font-ascent font-descent). That menas that every output record with text of a given font size will _always_ have the same height. Regardless if the drawn string is just a single period, or a really high letter like "I"
13:35:01
loke
Is there any code that would rely on this fact? It doesn't seem the spec mandates this behaviour.
13:59:51
loke
This is some of the ugliest code I've ever written. Please tell me there is a nicer way to do this: https://gist.github.com/lokedhs/d53a0a691695561d3f5805c2e943963a
14:02:20
jackdaniel
loke: maybe (clim:transform-rectangle* clim:+identity-transformation+ left top right bottom) ?
14:06:10
loke
I wrote an alternative version: https://gist.github.com/lokedhs/d53a0a691695561d3f5805c2e943963a
14:11:24
jackdaniel
if there is such function I'd use it (if you are dissatisfied with the current code)
14:35:05
loke
Committed: https://github.com/lokedhs/McCLIM/commit/1e1abf7a6b18942cdc426f207148c3baf8eadd1e
14:53:58
loke
Now that I have a better font renderer, I've been able to make some progress on Climaxima: https://photos.app.goo.gl/1lv11fEGG01QIt5B3
15:00:16
loke
I'm tempted to go down yet another rabbit hole; to implement A lines drawing. And that would be A with subpixel sampling of course, because I'm a machosist
15:07:34
loke
subpixel? Well, kinda. It does work for colour, but I believe the algorithm is messy. I'm juts letting xrender and freetype handle it for me.
15:10:10
jackdaniel
imo optional antialiasing would be really good for mcclim. right now arrows which are not aligned to xy axis for that instance look atracious
15:11:21
loke
Ass we habve to do is to use xrender for drawing lines instead of the older Xlib primitives
15:14:47
loke
Drawing text using xrender seems to be harder than drawing lines, and I've already done text :-)
15:20:24
loke
One can also draw a monochrome AA arc in memory, and blit it using xrender. I'd imagine that to be rather inefficient htough.
15:23:49
loke
It needs better configurability, but that will be improved once I get my configuration framework done.
15:30:00
loke
There is certainly more hacking I can do on it, and I'm in no particular hurry to merge
15:37:31
fittestbits
jackdaniel - watched your video, looks good. I'm looking forward to where you go with it.
15:41:11
jackdaniel
loke: unless someone else reviews your code I'll go over it after long weekend if that's fine. are there any instructions how to activate/deactivate it? or some summary of what has been changed?
15:44:16
loke
The current code autoamtically activates it (there is a SETQ in the main file). It's activated by a :FONT-RENDERER option in the path.
19:59:23
jackdaniel
I consider putting the videos as a playlist (so pieces vary between 10 and 30 minutes) instead of posting one over-2h-video