This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
> Date: Sun, 23 Nov 1997 13:59:45 -0800 > From: Rob Engle <grenoble@spimageworks.com> > > I've been using guile-ii for some time now My hat is off to you, sir. > 1) when an error occured during a "load" guile-ii would give the line > number at which the error was detected. Unifying Guile's error reporting (both this question and #5 in your message) is important to me, too. It's very helpful to know where an error occurred even in non-interactive mode. However, other things keep bumping the priority level. We discussed this a while ago, and I think the consensus was that Mikael is the most-qualified one to fix this, and he's too busy to get to it. :-) I took a stab at figuring out why Guile currently behaves the way that you describe, and wasn't able to get far enough into the code to tell. > A bunch of other things I've noted. Most of these you all probably know > but I'll state them in case I'm doing something wrong. > > 1) "#f" used to mean empty list (in addition to "()"). As such: > a. (cons 1 #f) used to return a proper list; now it returns > a dotted pair. The fix is to use "()" instead. > b. (null? #f) used to return #t; now it returns #f. In some > cases (badly written) code was using "null?" instead of "not". > The fix is to use "not" This is correct. Those are the proper Scheme methods for handling code that distinguishes the empty list from the false value: use `()' and `null?' when your data concerns lists, and `#t', `#f', and `not' when your data concerns truthhood. > 2) "defined?" used to be a macro so that (defined? goober) was legit. > Now, one must use (defined? 'goober) I think Mark is right: watch this debate to see what happens. I would guess that you're right, but don't want to take chances. > 3) "print" routine is gone... have to use (write obj) and (newline) > instead There's a `write-line' procedure now that does just that. Thanks for asking such incisive questions!