freenode/#lisp - IRC Chatlog
Search
16:20:45
|3b|
don't even usually have to recompile, just run the thing containing the #' again, since it gets the value when #"foo is evaluated
16:21:22
_death
jollygood2: local functions, anonymous functions, performance... basically passing a symbol is just a useful hack added to lisp at some point.. not meant to serve as the general use
16:23:36
_death
3b: I think I read at some point someone from the CL committee (maybe GLS) and he used the word "hack" to describe it, so I follow ;)
16:25:11
dlowe
oh, yeah. Calling a function can be faster (but not necessarily) than a function symbol
16:38:31
beach
jollygood2: (flet ((less (x y) ...)) (sort list #'less)) works, but (flet ((less (x y) ...)) (sort list 'less)) does not.
17:51:05
mfiano
What is the proper way to ignore unknown initargs unknown to the given class with make-instance? I see &allow-other-keys in the signature, but I'm not sure how to make use of it.
17:59:24
mfiano
This works on SBCL, without a method added: (defclass foo () ((x :initarg :x))) (make-instance 'foo :x 1 :y 2 :allow-other-keys t)
18:02:30
jasom
cl-unicode is the biggest blocker to packages in ql2nix now; both from direct dependencies and via cl-interpol which depends on it
18:35:46
hjudt
i noticed that as time and updates pass, more and more versions of installed libraries pile up in the quicklisp directory. is there a command to clean old versions, keeping only the newest one?
18:37:03
Xach
it is not called automatically, yet, because i was concerned about deleting too much. it will be automatic in the future.
18:37:40
jasom
Xach: am I misinterpreting systems.txt or does QL think that cl-unicode/build depends on the system cl-unicode? That seems wrong to me...
18:38:49
Xach
mfiano: i think a possible option there is to have a separate, infrequently-changing data project that the code depends-on
18:39:43
jasom
Xach: that makes sense; I'm re-running ql2nix completely ignoring the deps in quicklisp for now.
18:39:44
Xach
jasom: in the dist build process, slashed systems are replaced with their depends on or base name or both - don't recall at the moment.
18:44:03
jasom
ACTION also needs to clean-up how he detects missing systems and libraries. A little help on the lisp side of things would make my code much more compact...
18:47:39
hjudt
381M old total, 141M new total. while not much in raw numbers, it's quite some saving. anyways, why waste space?
18:48:10
jasom
ACTION is a digital packrat so his motto is "why delete something you might need later?"
18:49:16
jasom
I honestly agree that wastefulness is bad too, I just can't motivate myself to do anything about something less than 10GB
18:50:43
mfiano
When you scale horizontally and have dozens of servers around the world, sacrificing disk in place of needed resources for a task that takes a small disk footprint, like a website, is a smart choice.
19:03:46
hjudt
it's not the disk space i usually have to worry about, but rather it can complicate things in some cases, e.g. software not behaving as expected because the wrong files are read, people not daring to delete files because they don't know about the consequences, increasing backup time,...
21:31:15
ebrasca
phoe: Do you know how to make ssl certificate for hunchentoot with letsencrypt? ( https://letsencrypt.org )
21:38:58
shrdlu68
In that case you need to shut hunchentoot down so that certbot can take the port, 80 or 443.
21:46:56
shrdlu68
They use some protocol that verified that you really own the domain name you're trying to make the certificate for, which is why certbot needs to either take up port 80 temporarily or give you some files to place in the webroot with any server.
22:08:14
jasom
can't you also give certbot a directory to put a file in, and have hunchentoot serve it up?
22:11:56
shrdlu68
As far as I know, there's only the option of certbot giving you files to place in the web root.
23:45:53
jasom
ebrasca, shrdlu68: and then setup hunchentoot to serve up files in /foo/bar/baz/.well-known/ as the path /.well-known/
0:11:21
iqubic
Like let's say I have a lambda that I want to execute. Why would I use funcall over apply, or vice versa?
0:13:04
iqubic
Why wouldn't you know the number of args? Can you use appy with a function that has an &ress parameter?
0:13:33
pjb
of course. Or you can write a macro that has to call a function, but it doesn't know the number of arguments.
0:15:18
pjb
That said, in both cases, you should check for call-arguments-limit, and use reduce in the later case (signal an error in the former).
0:15:57
iqubic
Can I use a case statement in a macro to have the expansion change based on the value of a variable?
0:16:54
Bike
macro functions are just functions. the only thing magical about them is when they run, which isn't very magical at all
0:17:44
pjb
The only difference is that macro function always take two arguments: the whole expression, and the environment.
0:18:24
Bike
Not directly. You can expand into something like (progn ...), which executes a number of forms in sequence.
0:19:05
aeth
Iirc, a top level progn is the exception to some of the top-level-only rules because that's the intended output for certain kinds of macros
0:19:20
pjb
defmacro wraps that with a destructuring-bind so that you don't have to do it yourself on the whole-sexp.
0:21:29
pjb
Clearly, your brains are not ON. Suck the "fucking" is designed so that you switch from OFF to ON.
0:22:22
aeth
It doesn't have to be designed that way. They could have supported values or something (similar to multiple return values in functions). They just don't. But progn works because the spec was designed for progn to work in that way.
4:12:59
shrdlu68
ACTION hasn't slept all night and has made the mistake of taking coffee in the morning.