libera/#commonlisp - IRC Chatlog
Search
18:06:38
edwlan[m]
One thing I don’t like about a lot of the builtin read macros for data structures is they produce an actual value of some type at read time
18:08:22
edwlan[m]
I find this surprising and often wish they had chosen to expand to a function call and had a separate convention for this “immediate” behavior
18:10:05
gilberth
Well, (+ 1 2) isn't the same as (list + 1 2) either, so it would have been inconsistent. Also: You may want to CL:READ some data as well.
18:12:28
pfdietz
The problem with messing with the read table is your software ceases to be composable with other software that also does so. If you have print methods for objects that exploit the read table customization, these cease to print readably in general.
18:14:40
gilberth
btw in CLtL1 vectors were not self-evaluating. So you would need to say '#(...) to mention a vector literal.
18:19:24
gilberth
But then Lisp used to use symbols for strings. The reverse of JS, which uses strings for symbols.
18:36:20
Filystyn
how to prevent calling function that uses global variable so the glob var is always set
18:40:10
Filystyn
mmm i made a function that simply uses *GLOB-VAR* but what if it's not defined with defvar
19:32:53
danisanti
I have created an lisp image with SBCL. Does anyone know how can I load this image when I am inside the REPL? (I know that sbcl --core image-name does this)
19:34:49
gilberth
That's not possible. This image is like an executable file and can only be loaded once on startup.
20:30:04
zyd
Has anyone got lem to successfully install and run via roswell? If so could you tell me what SBCL version you are running.
21:26:36
jeosol
danisanti: have you resolved your issue yet? Like random-nick and gilberth suggested, it's not possible.
21:27:21
jeosol
danisanti: perhaps, depending on what you are trying to do, you may serialize the objects to file and load them into a running session.
4:12:31
beach`
I need some ideas. Let's say I have a library L that implements some part of the standard, and let's say some Common Lisp implementation C wants to use the library intrinsically, i.e., C does not have its own code for what L implements.
4:12:37
beach`
Now, when some code in L detects an error situation, it needs to signal an error, and sometimes the error condition type is not standardized. But if L defines its own condition types to signal, then the error will be reported in terms of L, and perhaps that situation is not appealing to C.
4:12:38
beach`
So I need a way for C to parameterize what condition types L will use in order to signal errors. How can this be done in a way that is not too hard to do or to understand?
4:16:22
beach
So I guess I need for some names of condition types to have a package determined by C, and then referenced (perhaps indirectly) by L when an error situation occurs.
4:20:27
edwlan[m]
Would it make sense to have the implementation handle the conditions the library provides and signal its own condition?
4:21:03
beach
That would certainly work. But I fear that this mechanism would be too complicated. But maybe not. Perhaps a macro could help.
4:22:18
beach
I guess in some cases for C to establish a condition handler for some function in L would be too expensive.
4:26:10
beach
How about this: L defines a generic function ERROR with one required parameter. It also defines it's own condition types. By default L:ERROR calls CL:ERROR, so that if C does nothing, something reasonable happens.
4:26:10
beach
But C can define a method (EQL specialized to the required parameter with the object being a symbol in L) that calls CL:ERROR using some condition type defined by C itself.
5:31:02
beach
You are probably right. However, in the case of re-signaling, the cost is paid on every call, whether it signals anything or not. In the case of the generic function, the cost is paid only when an error is signaled. And error signaling is usually not cheap, so the cost is drowned by the rest of the processing.