freenode/#lisp - IRC Chatlog
Search
2:27:33
ealfonso`
I can't seem to find how to get a hunchentoot stream to use with cl-who... is there an example?
6:14:50
White_Flame
is there some way in slime to see how the dynamic bindings for a symbol change throughout the backtrace?
6:33:44
White_Flame
I think 'e' might work to evaluate the variable, but it's curiously consistent throughout the trace
6:34:13
White_Flame
I'm getting symbols from READ-FROM-STRING that are from the CL-USER package instead of the package I'm in, for no discernable reason
6:34:29
White_Flame
so I want to trace what's happening with *PACKAGE* in the stack trace as it blows up
6:34:57
White_Flame
when starting a thread, it appears to default *package* to cl-user, which is one thing
6:58:44
on_ion
something in here perhaps? https://stackoverflow.com/questions/1511981/how-to-examine-list-of-defined-functions-from-common-lisp-repl-prompt
7:17:16
beach
White_Flame: Set the *package* to the KEYWORD package. Then it always prints package prefixes.
7:17:48
beach
White_Flame: A new thread does not take the current thread-local values of special variables by default.
7:18:36
beach
I think SBCL has some extra arguments to the thread-creating function to bind special variables.
7:20:51
White_Flame
because it's threadpooling, the thread launch doesn't matter as much as my thread-local bindings that surround the context switch
7:21:56
White_Flame
each job registered to the pool starts off running with a particular set of dynamic bindings
7:22:07
White_Flame
and those are set for the duration of the task in that thread, not for the thread as a whole
7:22:17
beach
OK, but one thread can not normally influence the thread-local values of special variables in another thread.
7:26:39
White_Flame
beach: fundamentally, there's a read-from-string deep in code called within the threadpool, which is returning symbols from CL-USER instead of my project's package
7:27:18
White_Flame
and the code that launches inside the threadpool is surrounded by dynamic bindings for *PACKAGE*
7:31:54
engblom
I have several times been reading Lisp tutorials, and I have a very basic understanding of the language. Somehow I never really get time to study the tools in order to begin making real things and not single file stuff.
7:32:18
engblom
I wonder if there is any tutorial fulfilling these thoughts: https://pastebin.com/q8am8NGa
11:31:12
schweers
I have an operation which may fail due to a full disk, and would like to offer a restart, which simply tries again (i.e. give the user the possibility to clean up some space and then proceed). Is there a standard idiom for such a restart? I’m thinking of using a tagbody, but it feels icky to me.
11:45:40
schweers
_death: that looks quite reasonable, thanks for the hint. I’ve gone with a recursive call for now, but I’ll try to keep that macro in mind.