freenode/lisp - IRC Chatlog
Search
17:55:55
axion
Xach: is there a way to see all the projects that depend on a system? I actually didn't think sdl2kit was really used much
18:03:07
vydd
axion: (ql:who-depends-on "sdl2kit") looks like only sketch is using it...and it's using kit.sdl2
18:07:25
axion
Not sure how it affected several projects though. If sketch is indeed the only thing using it, and correctly, I would like to make that namespace obsolete.
18:15:24
Xach
axion: the only thing actually broken was sdl2kit itself, but that breakage affected things even though they used the right package
18:38:21
emaczen
is there a balance between arguments of #'invoke-restart and #'invoke-restart-interactively? The first lambda-list is a restart-name and &rest argument, the second lambad-list is only a restart-name. I would like to pass some arguments as well as have the user supply some interactively
20:44:08
fourier
the difference is what instead of (if-let* ((var1 val1) (var2 (1+ var1))) then-stmt else-stmt) i have to write (if-let (var1 val1) (let ((var2 (1+ var1))) then-stmt) else-stmt).
21:12:26
aeth
The problem with writing your own macros is that no one will use them. The solution is to put them in a util.lisp or something, and ideally that could be the start of a new library over a long time, or perhaps get merged into an existing one.
21:27:02
_death
also, sometimes implementing an operator leads to a better understanding of the issues involved.. which may help with questions you had about it before
22:11:37
emaczen
Bike: I like when *sldb* appears, gives me a backtrace and then offers some restarts
22:12:48
Bike
if you want to send the condition to the restart from the debugger it'll be more annoying/difficult.
22:15:52
emaczen
Bike: when a file is not formatted correctly, the user is given the option to insert a value at user-chosen location so that it will parse correctly on the restart.
22:19:08
fourier
_death: yes i can write it but i was curious why it was not implemented. I thought maybe some design principles applied to _not_ to write such a macro since we don't have it in alexandria.
22:19:33
Bike
emaczen: i don't understand how this implies that the restart needs access to the condition.
22:20:28
emaczen
Bike: The user is just supplying an index to insert at. The condition contains the value.
22:21:47
Bike
Oh. So you have something like (restart-case (error 'bad-parse :value value) (use-index (index) ...))?
22:22:09
emaczen
Bike: I think the mix between #'invoke-restart and #'invoke-restart-interactively is missing -- the first
22:22:27
emaczen
the first's lambda list takes a &rest in its lambda-list and the last takes no arguments
22:23:32
Bike
it doesn't take any arguments because it just calls the :interactive function. so you could have like (restart-case (error 'bad-parse :value value) (use-index (value index) :interactive (lambda () (list value (prompt-for-index))) ...))
22:23:43
Bike
or in that particular code you wouldn't need it since you have value in context anyway
22:24:15
emaczen
Bike: I have (restart-case (some-outer-form which calls methods where (error 'bad-parse :value value) can be called) (use-index ...))
22:25:55
Bike
like (let (value) (restart-case (handler-bind ((bad-parse (lambda (c) (setf value (bad-parse-value c))))) (outer-form)) (use-index (index) ... value ...)))
22:27:38
Bike
Basically, when the inner function signals there's a bad parse, at the restart-case you have a handler set up so that you grab the value and then let the condition continue up to the debugger.
22:29:11
Bike
it's how condition signaling works. when you call error or whatever it looks for the most recent handler, and if that doesn't handle it continues up, etc. if it runs out it calls the debugger.
22:29:59
emaczen
Bike: I'll be back at my computer later, I am enjoying the condition system though!
22:38:37
_death
fourier: alexandria is not a kitchen-sink utility library.. it is meant to be a conservative least-common-denominator library.. personally I never felt the need for an if-let* operator, and I don't think I've ever seen it in the wild..
22:41:55
_death
fourier: such concerns should not prevent you from writing it yourself though.. before alexandria, many people had their own utility libraries.. after alexandria, the only desired effect is that they shrink a little
1:49:51
aeth
My only concern with utility libraries, that keeps me to just alexandria and uiop, is that they tend to (1) do too much and (2) be incompatible with alexandria (even uiop is)
2:08:54
aeth
irisl: If you already know how to program, Lisp only having expressions (instead of expressions and statements) can be tricky
2:19:15
beach
irisl: You need to find a good intro book. For Common Lisp, the one that is typically recommended is:
2:19:24
minion
irisl: look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
2:25:10
beach
irisl: Seriously, there are some very smart and some very knowledgeable people hanging out here. I very much enjoy discussing all kinds of problems of programming and software design with them, because the advice I am given is very often pertinent.
2:28:44
beach
irisl: This channel is not (as some people think) a "Lisp support channel". It is a channel for mutual discussion by people who program in Common Lisp. Newbie questions are tolerated, though. But things can get hostile here as well, especially when newbies are given advice that they then reject. But if you follow advice and behave normally, you should be fine.
2:33:23
loke`
irisl: Good luck, and do try to push through to get over that first hump into “aha!” land. I'm currently trying to get my daughter to learn, and I can see it can be frustrating initially.
3:54:26
Bike
little did they realize that i can only be killed by a sword forged from the four lost fragments of Izathitch