libera/#commonlisp - IRC Chatlog
Search
16:23:06
beach
utis: I haven't been following the discussion, but in that last link, the macro is used only once, so it doesn't seem to serve any purpose.
16:24:53
_death
instead of the double reverse, you can do (append propp (list char)) .. then compare this and simply having two defmethod forms.. if needed, you can define an auxiliary function to reduce
16:27:20
beach
_death: I wasn't commenting on what utis wants. Just the fact that in the code of the link, the macro appears in a single call.
16:33:44
dbotton
Does anyone know of a page some place with lots of Common Lisp quotes? I'd like to have a little tip box appear on my tools start up
16:56:17
Guest74
beach: I think you're the only person I've seen talking about a cl desktop environment. do you have your thoughts written down anywhere?
16:56:36
Guest74
or more specifically anything about multiple desktops/workspaces which is what I'm working on now.
17:07:19
Guest74
Well, I'm only working on a desktop environment, so just desktop stuff. That ones pretty much OS stuff.
17:29:37
jackdaniel
technically speaking clim specification includes abstractions from genera called "silica", that is a windowing substrate. that includes a frame manager that may be used as a wm
17:30:50
jackdaniel
as of desktop thing, as I understand it, it is a universe of interconnected applications and utilities that share data and semantics - I gather that frames and presentations could be arranged to constitue such universe
17:32:18
jackdaniel
I'm not saying that you should jump at that and write clim-desktop if you don't want to, just pointing out that the assertion was incorrect
17:33:18
etimmons
jackdaniel: I got really confused for a moment. I recently learned of another system called doors: https://github.com/Lovesan/doors
17:34:07
phoe
as if the only openings from a building were doors and windows; where's (ql:quickload :chimneys)!?
17:36:00
Guest74
jd: I'll leave that to the clim people. I just said 'i dont see how' wasn't asserting anything.
17:36:39
Guest74
I would prefer a protocol that is agnostic about the things it deals with. So people could include stuff written in other languages.
17:37:26
Guest74
you would think stating how I see things would be my opinion of what I know, not an assertion about the reality of things.
17:37:50
jackdaniel
I would think that if you state opinion you at least believe that it is true. stop playing word games
17:38:56
Guest74
it is HOW I SEE THINGS. which is obviously contingent on what I know, not on my opinion. But this has absolutely nothing to do with a desktop environment.
17:39:48
jackdaniel
simple "ack, I was wrong" would suffice - one you state opinion and someone shows that it is incorrect that is the most honest thing to do
18:40:07
etimmons
Josh_2: what are you trying to do? There's a lot of options to with-temporary-file, so it's not clear an example would be super useful
18:40:36
Josh_2
Chirp seems to only accept a file as an input for uploading to Twitter, I have the binary data itself
18:40:51
Josh_2
so I just want a quick and easy way of creating and deleting a temporary file for use by Chirp
18:48:17
etimmons
Josh_2: Assuming you need a pathname, I think something like this should work: https://plaster.tymoon.eu/view/2913#2913
18:51:10
etimmons
with-temporary-file creates the file for you and gives you both the stream and pathname to it (if you ask for them)
20:11:26
_death
what does git integration mean? also, if I have a medley image and I want to update, what should be done? (hopefully there's a document explaining it, since I'm not sure it's on topic)
20:22:13
dbotton
How do I find what directories will be searched for projects by users when I do (ql:quickload :my-proj)?
20:23:46
dbotton
As I plan on generating projects I'd like to see if some way to see what is available dynamically
20:25:06
White_Flame
there's (ql:list-local-projects) for the paths, and (ql:list-local-systems) for just the names
20:25:35
White_Flame
but those obv don't include the ones in the dist, which since they automatically download, doesn't make a distinction for what's cached
20:25:54
etimmons
It's complicated. In addition to ql:_local-project-directories_, ASDF has asdf:_central-registry_ and the source registry
20:28:02
etimmons
I'd suggest defaulting to something like ~/common-lisp or ~/quicklisp/local-projects and letting the user override it if they have a different setup
20:28:26
etimmons
https://asdf.common-lisp.dev/asdf.html#Controlling-where-ASDF-searches-for-systems
20:29:13
White_Flame
~/common-lisp/ is searched via ASDF, not directly by QL. QL obviously defers to ASDF if it's not under the QL paths
20:30:36
etimmons
I'm working on making ASDF give a justification of why it included a certain .asd file in the source registry (e.g., which config file ended up configuring ASDF to find it).
20:31:02
White_Flame
dbotton: are you trying to solve a specific problem, or just curious as to how things work?
20:31:02
etimmons
Hopefully that'll also be a springboard for just having the source registry be amenable to introspection in general
20:31:30
White_Flame
etimmons: yeah, and then QL has its own override chain of local-projects -> dist -> asdf
20:31:43
dbotton
White-Flame the clog builder generates currently just panels, it will generate whole projects soon
20:32:50
White_Flame
I think the big issue around this is having your own modified versions of libraries that still have the same name, which are loaded in different images
20:33:20
White_Flame
and then what of those modified libraries are visible by default, vs how to include them conditionally
20:34:03
etimmons
White_Flame: Well, QL operates outside the source registry. But that does point to an obvious next step: record for each system which particular system definition search function provided it
20:34:56
etimmons
The only way that's not included by ASDF is if you do things a newbie is unlikely to do
20:36:21
White_Flame
dbotton: it's all about load priority. If you put it in ~/common-lisp, anything from QL will override it. If you put it in ~/quicklisp/local-projects/, then it'll override, but if people don't have QL they won't find it
20:38:06
Xach
White_Flame: yes. see asdf:*system-definition-search-functions*. local-projects and dist search are last.
20:38:12
dbotton
Xach when is the next update to quicklisp projects? (trying to time my 1.0 for builder)
20:38:22
etimmons
dbotton: Yeah, I think something that's missing is an "ASDF Recipes" sort of thing. where common questions like that are answered
20:38:37
White_Flame
so what is the expected procedure for grabbing a library, then having a copy that you're editing, without loading the asdf/ql-pathed one?
20:39:35
Xach
White_Flame: i usually use local-projects because i understand how it works. i don't understand how the source registry configuration works.
20:39:58
dbotton
etimmons I think is critical and now a year in to using CL I still which I had a simple way to add random directories where my projects are found
20:40:06
White_Flame
but if .rc file ASDF setup overrides that, then it wouldn't see the local-projects one?
20:40:52
White_Flame
dbotton: I've been using ASDF/QL for years and apparently still don't understand it :-P
20:41:15
Xach
White_Flame: i don't really understand what you mean, sorry. i would put it somewhere asdf knows about, because that would override the dist-provided one. local-projects is an augmentation of asdf's search, not something super-tied to quicklisp.
20:41:39
Xach
if there was a "conflicting" copy in asdf's search path, maybe i'd use that as my hackable version
20:42:11
etimmons
dbotton: Some people find asdf:_central-registry_ easiest. Just push a directory into that variable and it will be searched. But that requires config to happen within CL, so if you hop back and forth between implementations it can be annoying to get it synced up and you're typically out of luck if you start an implementation without running its init file
20:42:51
etimmons
dbotton: I prefer the source registry. So make a directory ~/.config/common-lisp/source-registry.conf.d/ and add files to it
20:43:00
White_Flame
.sbclrc sets up ASDF libs that has lib FOO. I want to edit FOO's source code, without breaking other image startups that still use FOO. My edited system is still called FOO for now
20:43:56
etimmons
dbotton: like adding the file 20-clog.conf with the contents (:tree "/path/to/clog") will let ASDF find any system belowe /path/to/clog
20:44:58
White_Flame
(however, my scenario is kinda constructed, as I rarely use ASDF raw anymore. It's all QL so I haven't had the problems. But some of our systems require repeatable build, and have their own local lib directory that we add onto the asdf path)
20:57:34
Xach
White_Flame: yeah, i guess if you want max control, different startup/config files seems plausible
21:42:58
White_Flame
Xach: I actually have a number of setup/loader functions in my .sbclrc, that I call at the repl at the beginning of an image, depending on what I'm doing
21:43:28
White_Flame
I guess because of the global nature of the load path setup, especially if it's symlink or directory location based
21:43:58
White_Flame
however, I guess the *whatever-registry* variables could be bound just for load time, but since some dependencies might auto-load components at runtime, I don't trust that
21:53:44
Bike
oh, i see. i was asking because the project i work on is a lisp compiler framework that i thought maybe you could use. but if the code is all in C that won't really work
22:28:09
rotateq
you could also try spacemacs if you're more used to vim for the editing part like me
22:29:46
rotateq
but on the working computer (on which I don't have root) i can deploy portacle what is also nice to have ^^
22:35:22
mayureshkathe
rotateq: i'm impressed with what "vlime" has achieved even in it's nacent state.
22:43:21
rotateq
but no, I can remember it now quite well, the same year when the ANSI CL standard was finalized
22:44:56
rotateq
but it was also good to have practical exercising with different types of regexes. reminds me i must go on really being able to use cl-ppcre
22:47:22
rotateq
mayureshkathe: and all "modern" IDEs converge to the idea of emacs (not a certain implementation)
22:47:31
mayureshkathe
phoe is considering writing a book on 'mop' and 'clos'. that's like "yay". :)
22:47:57
phoe
hey come on it's only plans and it'll only happen in like 2024 earliest gimme a break yo
22:52:42
rotateq
mayureshkathe: ah yes as I asked heisig to read parts of his new PhD thesis and plz don't get me wrong, not for any technical things, but to look if someone on some steps lower can get the central ideas
22:57:41
rotateq
phoe: with the Common Lisp Recipes 2 book you told me about what is now laid on ice, was there a first concept what to add or change?
1:35:41
Guest74
i hope he responds. Sounds like an interesting idiom. I wonder the language it comes from.
1:40:06
Guest74
well, there's put on ice in english. but that doesn't seem to work with what was said.
2:50:32
fe[nl]ix
beach: you need to switch to HTTPS for metamodular.com otherwise browsers will soon start showing a warning, since it's HTTP-only
3:55:50
mfiano
Any idea why this blows my stack at macro-expansion or compile time (when loading)? https://gist.github.com/mfiano/a8144dfc20656866e45f95e41776f78d
3:58:39
Bike
probably isn't what's causing the problem, but is that double backquote intentional? doesn't seem like it
3:59:25
mfiano
Yes for now I just want to test that it expands to that form in each defmethod (I don't want #'g-c-a-t evaluated)
4:00:29
Bike
i see. well, i don't see anything obvious. and i assume none of the lists being mapped over are circular.
4:04:48
Bike
mfiano: well, this is the only thing i can think of, so i'd throw in a check to see that illuminant-pairs does not in fact end up circular
4:05:59
Bike
it wouldln't be illuminant-pairs that would be screwed up if its elements shared structure, but rather the elements would be
4:06:12
mfiano
Bike: inline expansion: https://gist.github.com/mfiano/8f9351dbc41afd17c2c91be56af4edb1
4:06:19
Bike
but if you're looking at it printed out you're presumably only seeing two element lists, so that can't be it
4:11:14
Bike
maybe the compiler is just choking on the hundreds of method definitions. does it work if the lists are shorter?
4:14:25
mfiano
My problem is, each method will be performing the same algorithm, and that can be reduced down to a single array that I want to expand to (load-time-value some-unique-array-per-method)
4:17:28
Bike
like instead of (progn a-million-defmethods) you have (progn a-hundred-thousand-defmethods) (progn a-hundred-thousand-defmethods) ...
4:17:53
Bike
if the compiler is choking on the amount of code, it's probably more because of having them all in the same top level form, rather than just having them at all
4:19:16
EdLangley[m]
I ran into this when I tried to use babel to turn a node project into ES3 and then load the generated code with cl-js
4:19:36
EdLangley[m]
For some reason, cljs can't handle the tremendous amount of code in the typical node project :)