libera/#commonlisp - IRC Chatlog
Search
16:31:39
pjb
dbotton: more precisely (symbol-value 'symbol) and (locally (declare (special symbol)) symbol) designate the same place.
17:06:38
jcowan
Is it now considered bad style to write (let ((a 32) b (c 34)) ...)? It's invalid in Scheme.
17:08:48
Bike
i try to write (b nil) instead. i'd only write b by itself if's never read before being written by something, but if i had code like that i'd try to rewrite it anyway.
17:15:28
jcowan
If you say so. I'm with Bike; I'd write (b nil) or (b '()) dependent on my intention.
18:26:07
kaskal
hi, stupid question, I run code in an HPC cluster and they do not support iteractive nodes, I would like to kind of submit an sbcl instance with slynk loaded or swank and then communicate with it. However most ports are of course closed. Is there a way to communicate via filesystem files with swank so that I can circumvent this?
18:30:41
kaskal
I tried, they don't allow it, they only allow ssh communication with a selected number of nodes,
18:33:00
kaskal
I could try the node ssh my server, and then through this tunnel, but I'm pretty sure they disallow ssh connections outside of an IP range
19:10:40
verisimilitude
One must recognize it, in any case, because it's allowed, jcowan. I like to use every part of the language for such things. I recall people here criticizing usage of &AUX.
19:12:30
aeth
I can't wait for an implementation of Common Lisp that puts each feature in its own file.
19:20:05
verisimilitude
Usually, it's good for when I know what I want, but before I know how I can express it otherwise.
19:28:47
Bike
my admittedly vague recollection is that a lot of the GOTO uses he identified were for error handling, and we have handler-whatever for that
19:29:06
Bike
but those are generally implemented with cl:go under the hood, so who's laughing in the end
20:38:04
jmes
I find myself wanting to paste an CLOS object as it's printed (e.g. #<RL-MESH {1005BBE653}>) to the REPL so I can inspect it. Or maybe I want to use its value that I know is still hanging around in another REPL usage, but I don't have reference to it other than by how it's printed.
20:44:25
semz
I think if you kill an object in Slime and yank it later, it's still clickable and everything
20:46:43
jmes
Bike: Yeah but I'd have to have returned that value beforehand. What I'm looking for is to be able to hop into some complicated code, throw a print in the middle somewhere, then after running the code via REPL I want to have the same clickable-type access to the printed thing.
20:48:14
Bike
have you considered just putting in, like, (setf cl-user::*temp* the-object) instead of (print the-object)
20:49:40
jmes
Ah, yes, that's just the type of thing I was looking for, thanks :) I forgot setf returns the set value
20:50:02
jmes
There's probably a billion ways to do it, I was just looking for something like this that's easy to do in a pinch
20:56:41
scymtym
if there is one particular object (as opposed, say, you print a thousand objects then pick the one of interest), you can you can use (clouseau:inspect FORM :new-process t) to open an inspector window with the object without stopping the program
21:14:40
pjb
jmes: slime has presentations. So instead of copy-pasting the text of #<foo> you can right-click on it, and you will get a pop-up menu in which there's an inspect option.
21:24:44
phoe
jmes: I tend to use (break "~S" thing) in the code, which lands me in the slime debugger; from there, I can move the condition object to the REPL, and from there I can (FIRST (SIMPLE-CONDITION-FORMAT-ARGUMENTS *)) to get the object I want to operate on
21:25:31
phoe
or, without leaving the debugger, I can copypaste the presentation into the REPL (it still works while the debugger is open!)
1:56:37
jmes
verisimilitude: agreed, I typically use the amazing interactive backtracing and stuff but I'm not familiar with other forms of CL debugging.