libera/#commonlisp - IRC Chatlog
Search
3:08:51
zacque
Is it correct that the only way to create an uninterned symbol at runtime is by evaluating GENSYM?
3:11:08
zacque
Thanks! So, there are three ways to create uninterned symbols: GEMSYM, MAKE-SYMBOL, and COPY-SYMBOL
3:14:45
zacque
Ah, that's fine! Now I understand INTERN better by re-reading its dictionary entry, haha!
3:17:43
mfiano
There are more ways, considering you can invoke the different compiler phases at runtime
3:21:32
mfiano
It may call implementation details shared by both. Here we are only concerned with the standard ways though.
3:30:29
mfiano
Can also get more clever with: (defpackage foo (:use cl) (:export foo)) (in-package :foo) (defparameter *foo* 'foo) (unintern 'foo) *foo*
3:36:34
mfiano
err I guess that should have exported *foo* which holds the reference to the unhomed symbol
3:40:30
Nilby
I feel like the "count the ways to make an uninterned symbol" game could be endless: (progn (make-package :foo) (let ((s (intern "FOO" :foo))) (delete-package :foo) s))
6:01:55
mfiano
I suppose you could even change PROGN to IF since UNINTERN is guaranteed to return non-NIL, if you want to keep playing code golf.
7:19:32
zacque
I'm not playing code golf or count the number game. Just trying to consolidating my CL knowledge, so it's very kind of you to verify my naive observation/hypotheses =D
7:46:37
zacque
Is this a mistake? In the "Notes" of write dictionary entry, it is said (pprint object output-stream) == (write object :stream output-stream :escape t :pretty t). Instead, it should be ... == (progn (terpri output-stream) (write object :stream output-stream :escape t :pretty t)).
7:47:10
zacque
Since PPRINT always insert a line break before printing out the pretty version of an object
8:17:23
specbot
Sections Not Formally Part Of This Standard: http://www.lispworks.com/reference/HyperSpec/Body/01_dc.htm
9:55:42
madnificent
I'm catching errors when constructing an answer for a web service. However, I'd like the full error stack trace to be printed on STDOUT in that case for development purposes. If I hook slime onto the image then I can get a full stack trace, but how do I print that out when catching the error.
9:56:28
madnificent
I'm on SBCL normally and it's fine if it only works there. I've tried using trivial-backtrace but that prints substantially less depth than what I get through slime.
10:05:34
jackdaniel
you are probably doing something like (handler-case (handle) (error () (trivial-backtrace…))
10:06:02
jackdaniel
what you want is handler-bind that does not unwind the stack before passing the control to the handler
12:24:39
dbotton
If asking why I may want, testing for reproducible builds probably most common reason for me
13:28:20
mrcom
dbotton: are you dropping into ldb? Ouch. That sounds like a heap-exhaustion or we-did-something-not-thread-safe-and-now-we're-toast.
13:32:01
mrcom
Just looked at the HT docs, and it says the default Taskmaster creates a thread for each connection. So killing a thread won't run out of task handlers.