freenode/#lisp - IRC Chatlog
Search
10:58:48
Shinmera
plump can chug X/HTML and with plump-sexp you can output an s-expr like syntax of a plump DOM.
10:59:12
Shinmera
I doubt it's very compatible with cl-who, but even then if you look at the plump-sexp source you should be able to write a serialiser easily enough
11:47:17
SaganMan
I have a function which takes two numbers and I use (check-type a number) and when I give (function p 0), it just gives unbound variable error
11:48:08
SaganMan
phoe_: souldn't check-type like give option to correct myself like it said in clhs
11:52:20
phoe_
(grade2 100 300) prints FAIL, (grade2 900 300) prints PASS, (grade2 300 'a) signals an error.
11:52:47
phoe_
And I can use the STORE-VALUE restart to put a 300 in there, at which point I get PASS.
11:53:25
SaganMan
yeah, it works. I'm trying out check-type and it's not working like it supposed to. I mean like this http://clhs.lisp.se/Body/m_check_.htm
11:55:32
phoe_
The examples are going to look differently on your implementation - and different on slime, if you use it, since you get a slime debugger.
11:57:45
SaganMan
this check-type is only useful in debigging right? otherwise it serves no purpose I guess
11:58:20
phoe_
And it may instruct the compiler that your function accepts something of type X or Y, which helps with optimizing things.
11:58:41
SaganMan
really? even if it's a assertation, I still get the same error and nothing changes
12:07:49
SaganMan
I'm passing (grade2 a 20) with check-type in function and I get "The variable A is unbound" and after I remove the chek-type statements I do the same thing and get the same error.
12:15:38
Bike
that's how to fix the immediate problem, but saganman has some problem of understanding that he should be helped with
12:17:20
SaganMan
Bike: What I'm trying to say is even without check-type, (grade2 a 20) is getting same type of error unbound variable. As you've said the lisp compiler does assume that a is an variable.
12:17:49
Bike
And yes, it has nothing to do with check-type. In fact, it has nothing to do with grade2 at all, beyond the fact that it's a function.
12:19:01
Bike
if you booted up lisp and typed 'johnson' in the repl, you'd get an unbound variable error. if you typed (+ johnson 4) you'd get an unbound variable error. because johnson is unbound.
12:19:27
oleo
just that it turns out that one of the passed on args happens to be unbound and the body of the function works assuming a is a number
12:20:35
SaganMan
haha, yeah Bike. Like you said there's no other thing to imagine other than being variable.
12:21:08
oleo
Bike: when you pass an unbound arg is it as if you invoked the function as (grade2 nil 20) ?
12:22:20
SaganMan
Bike: well before coming here, I expected clhs style debugging with check-type in program but phoe_ told it's not the same as slime
12:23:43
Bike
Here's what the evaluator does. It receives (grade2 a 20). It looks at grade2, sees that it's a function, so it resolves to evaluate the arguments and then pass those arguments to the function. It tries to evaluate the arguments. It tries to evaluate a. But it can't, because a is unbound, so it signals an error. grade2 is never even called.
12:26:26
Bike
that's why i said the definition of grade2 doesn't actually factor in. The error isn't in the definition of grade2 (which looks fine), but just in the code you tried to call it with.
12:32:12
oleo
the function call protocol is in effect, and first all the parameters are evaled (or tried to) so when an error occurs there there is no invoking
12:52:36
Bike
for example, (defmacro bind (variable value &body body) `(let ((,variable ,value)) ,@body))
12:53:51
dim
jmercouris: a macro can choose to evaluate its argument while expanding or only refer to the argument in its expansion, so that the args are evaluated at run-time, later, as Bike is showing
12:54:31
jmercouris
If the function was capable of discerning the time, and executing based on the time, I would agree with "when"
12:55:18
Shinmera
jmercouris: The fuck are you on about. A macro can cause something to be evaluated at compile-time, load-time, or run-time. Those are different times, both in idea and actual real-world clock.
12:55:57
dim
read the spec before defining your own glossary and pretending we're not helpful in direspecting your choices of terms
12:57:16
jmercouris
For something to know "when" something happens, in the sense that you were using it, you were definitely not referring to the spec
12:57:42
dim
ok, but somehow you can't see that there's a link between the choice of the word “when”, the eval-when operator, and the evaluation of macro arguments?
12:58:00
jmercouris
Oh, I can see the link, I'm just pointing out that you are explicitly wrong in your statement
12:58:13
dim
either I'm all wrong or I'm done chatting with you jmercouris, you seem to want to be right rather than learn from our imperfect answers to your questions
12:58:39
jmercouris
You aren't "all" wrong, but you can't seem to be a little bit wrong about anything
12:58:52
jmercouris
It was a socratic question, so that maybe you'd take the opportunity to say "oh, you're right, I actually meant x"
12:59:49
jmercouris
I readily admit to being wrong all the time, please refer to my history in this channel
13:01:33
Shinmera
Referring to compile/load/run-times as when things are evaluated is completely common parlance.
13:04:41
scymtym
and then there is evaluation order of macro arguments which describes the order in which argument forms are evaluated within a given time (such as compile/load/run-time)
13:10:42
jmercouris
Shinmera: I'll say one last thing on the matter, when is a condition, just because it has the name "when" does not making relate to time, it is just a different way of writing IF, in computer science this is an extremely important distinction
13:12:40
jmercouris
He used the phrase "if and when" which commonly refers to a possibilty, and time, he wasn't using it in the sense of "when" as a lisp branch, that's just him backpedaling so he doesn't have to admit mistake
13:13:19
Shinmera
Or it's a conjunction of literally whether you want to evaluate at all, and specifically at which point in time you want to evaluate.
13:17:23
jmercouris
You don't choose at which point in time you evaluate, you choose during which process you evaluate, in other words, during which branch
13:19:55
Shinmera
If I were to further engage your line of thinking, I would also say there's different measures of time that can be established, one of which is the segregation of a timeline into four distinct phases of read, compile, load, evaluate. Using this notion of time, the application of "when" is completely accurate.
13:20:45
jmercouris
Actually no, it would be at "which" time, aka which time line, one wouldn't say "at when timeline"
15:34:35
pjb
oleo: swank resets *random-state*, since it forks a new thread for each evaluation. Try it in the REPL.
15:42:45
flip214
Hrmpf. wrote (DEFUN ... (... &KEYS foo)) once again, and it actually worked with :foo :bar ...
16:19:16
mfiano
What is the correct way to read a file of multiple top-level s-expression forms (a dsl I want to parse)? Normally I only have to read a single form, and READ works, but with multiple top-level forms, it only returns the first one.
16:20:29
mfiano
How would I loop over arbitrary number of them? I'm moreso looking for the idiomatic way to handle all this. I'm sure I could hack something up less than ideal, but this is new territory for me so thought I'd ask for pointers.
16:23:44
pjb
mfiano: (com.informatimago.common-lisp.cesarum.file:sexp-list-file-contents "file.sexps")
16:25:03
pjb
Note: it's an accessor, so you can update the file with: (setf (com.informatimago.common-lisp.cesarum.file:sexp-list-file-contents "file.sexps") '((define-thing x) (define-stuff z)))
17:03:30
pjb
Well, no, I'm wrong. It's ok, it just allocates a little more, hidden by the fill pointer. I need a rest.
17:04:33
mfiano
Is there a way to write a lambda list with destructuring-bind that binds all the BUTLAST forms to a variable, and the LAST form to another variable?
17:08:13
dmiles
gads, since sbcl was 9x faster at fibonacci than YAP-Prolog .. i figured i'd have a go at trying out some prolog-in-lisps ... if figured i'd see if sbcl running one the the prologs would be faster than YAP, however the bad news is all of the prolog-in-lisp run out of memory at fib(18,_) and above :(
17:18:14
oleo
pjb: right, some unicode won't get rendered at least in the listener, not in the repl tho
17:19:23
dmiles
onme would think i am doing something wrong ifg it wasnt for the fact that fib(17,_) returned the correct answers :P
17:22:22
dmiles
not sure why AllgroCL doesnt spend a month making a 3 stack version of prolog so it doesnt do that
17:51:11
mrottenkolber
I have trouble loading CLX on CCL, I get: Unbound variable: XLIB::+RR-CONFIG-STATUS+
17:59:28
mrottenkolber
jackdaniel: as a side note, the work you are doing on McCLIM looks really promising!!
18:05:14
jackdaniel
check out clx repository for a fix. If you want to run McCLIM with CCL I would wait a few days – something is not right and it may not work for you
18:51:20
sjl_
dmiles: I mean, it has a few tests. it's not really done, and I burned out on it before I finished. I should get back to it some time
22:21:05
borodust
Xach: latest quicklisp dist doesnt seem to load a couple of libs after #'ql:update-all-dists