freenode/#clasp - IRC Chatlog
Search
20:05:55
Bike
so what is this non recursive read bit doing? resets the iteration depth, then sets up a #= table?
20:17:17
stassats
(read-from-string "abc " nil nil :preserve-whitespace T) and NIL return 3 and 4 correctly
20:31:17
drmeister
* If y is a whitespace[2] character, then it terminates the token. First the character y is unread if appropriate (see read-preserving-whitespace), and then step 10 is entered.
20:32:53
stassats
read for some reason is setting that variable to the previous value if recursive-p is t
20:41:24
drmeister
stassats: Thanks for looking at this - if you dig deeper I'll read your comments in the log before proceeding.
20:42:24
Bike
on sbcl read and read-preserving-whitespace go through the same path, but read also eats one more character at the end sometimes. that seems simple enough
20:45:04
drmeister
So eating the whitespace after the read_lisp_object call in the non recursive case was a workable idea?
20:53:04
stassats
sbcl: (with-input-from-string (*standard-input* "#.(progn (read *standard-input* t nil t) (read-char))abc j") (read)) => #\Space
20:55:26
stassats
"read-preserving-whitespace is exactly like read when the recursive-p argument to read-preserving-whitespace is true."
21:06:55
stassats
the example provided by clhs doesn't produce the correct results if the result of the previous snippet is #\Space
21:13:56
specbot
The RECURSIVE-P argument: http://www.lispworks.com/reference/HyperSpec/Body/23_acb.htm
22:23:05
drmeister
It looks like recursiveP is not equivalent to my *preserve-whitespace-p* special variable.
22:25:26
drmeister
And I'm unsettled by the uncertainty in how recursive-p is supposed to work but I'll be ok.
22:26:18
stassats
i think the approach clasp is taking is valid, i.e. preserving on recursive-p being true
22:29:43
drmeister
Hmm, now I can go (read-char) <enter> <enter> <enter> <enter> as many times as I like and it doesn't return until I provide a non-whitespace character.
22:36:25
drmeister
But the cl__peek_char(T,sin,eofErrorP,eofValue,_Nil<T_O>()) doesn't work as I first expected it to.
22:37:42
drmeister
What I think I want it to do is advance over whitespace characters and when it hits the end of file it should return.
22:38:23
drmeister
Passing T as the first argument eats all whitespace until a non-whitespace character is seen - if I understand correctly.
22:41:15
Bike
"read-preserving-whitespace is like read but preserves any whitespace[2] character that delimits the printed representation of the object."
7:59:27
frgo
Good morning. Living on countryside has its disadvantages. Missed my plane due to having to go to the airport by car and traffic jam caused a 1 hour delay for just 20km.... Gave up after 1 and a half hours and drove back home. Hmpf.