freenode/#lisp - IRC Chatlog
Search
9:35:26
no-defun-allowed
It really is not hard to remember `dQw`. Then you only have a 1 in 32768 false positive rate (if YouTube uses base32 IDs).
9:38:21
pfdietz_
koenig: defun being a macro means you can play games with *macroexpand-hook* to intercept and modify defun forms, without having to modify the source code in question. Quite useful in some situations.
9:39:38
no-defun-allowed
Given defun usually expands to some implementation-dependent stuff, I would expect implementations do not have to use macros for stuff like that...
9:40:02
aeth
Option A: write your own defmacro wrapper that expands into a defun. Option B: Use *macroexpand-hook* to intercept defun forms
9:43:32
aeth
I have temporarily modified the source of functions in Quicklisp a few times for debugging (technically that's not even necessary, just being in the right package is, afaik), so the situations where Option B is required must be really rare.
9:45:11
pfdietz_
aeth: the situation is where one is writing tooling that applies to other people's code.
14:04:14
schweers
I have a question regarding restarts on sbcl. I have a funcion which contains the following code: https://pastebin.com/W7gipV0A
14:05:10
schweers
I get a warning, that something could not be stack allocated. Can anyone tell me how I might find out what this is about?
14:07:14
schweers
Yeah, I gathered that. But I’m not sure what is to be allocated on the stack. I also only get this on restart-case.
14:07:39
schweers
I guess that a closure has to be allocated, but I’m not sure if that is what SBCL is complaining about.
14:09:07
schweers
what wonders me is that I’m not compiling with optimizations which (to my mind) warrent such a note.
14:10:18
Bike
restart-case expands into something that makes several closures, and sbcl will try to stack allocate them because there's no reason not to
14:11:08
schweers
I compiled under these settings: (declaim (optimize (speed 0) (safety 3) (compilation-speed 0) (debug 3)))
14:11:42
schweers
Bike: I wouldn’t have been surprised if this had happened under aggressive settings. I probably would have just ignored it then. But now I am wondering.
14:19:21
Bike
don't think you need to worry about it, regardless. though i'm not sure why it can't stack allocate this
14:25:44
beach
I have the same "problem", and it is not that I worry about anything, but the notes are irritating, because each time I jump and think I might have a warning.
14:30:39
schweers
beach: That is precisely the reason why I’m asking this question. It seems I’ll just have to live with it.
16:24:39
dim
sb-bsd-sockets:local-socket is not found when using SBCL 1.4.16 on windows, what can I do about that? (it makes loading qmynd impossible and then pgloader too)
16:25:50
dim
I guess #-win32 is what I can do, seeing https://github.com/sbcl/sbcl/commit/6eb5fcbeb890182d3f03c02edb430ec52d72bcfc
18:54:18
pfdietz
Is there Common Lisp support for FlatBuffers? I know there's a protobuf package out there.
19:57:51
katco
for you matrix users: experimenting with matrix "communities" (a way to group users, rooms together -- kind of like a slack instance?) https://matrix.to/#/+common-lisp:matrix.org
20:14:01
jgkamat
it's sort of like that, yes. It's more powerful though as it lets you view all the rooms in one view if you want (or only a subset)
20:16:18
katco
it looks pretty cool! i've opened it to everyone. if there are missing rooms, please lmk. or is there a way i can allow members to add rooms?
21:11:54
pfdietz
Hmm. environment objects can be put in binary files in clisp and ccl. Not sbcl, in general.
21:17:55
pfdietz
The problem here is the lexenv can have function objects in it, and those cannot be put into binary files (as values).
21:19:42
Bike
indeed, functions are not serializable objects. depending on how you interpret the standard it might actually be nonconforming for an implementation to let you serialize functions
21:20:48
pfdietz
Just put in a ticket for SBCL. I just need lexenvs serialized; it's ok to reconstruct the macro functions (make-load-form would build lambda forms for them).
21:24:13
pfdietz
The goal here is to save the context in which a DEFUN (or whatever) is sitting, so it can be redefined later in that context.
21:24:48
pfdietz
This means both the compile-time context (the lexenv), and the runtime context (whatever lexical vars are visible there). The latter is a different problem, but also solvable.
21:26:53
pfdietz
Basically, mutate a function and see if the test suite kills all the mutants. It's a way to evaluate the adequacy of test suites.
21:27:46
pfdietz
It's important not to generate too many mutants that maintain correctness, but there are tricks I can use for that.