[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
8.0.1 complaints on SLUG
Date: Mon, 27 Aug 90 13:31 EDT
From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
Date: Sun, 26 Aug 90 11:31 EDT
From: Qobi@zermatt.lcs.mit.edu (Jeffrey Mark Siskind)
With all the recent talk about m-sh-C, has anybody noticed that it is
*BROKEN* in Genera 8.0.1! Now, it is not totally broken, it is just unreliable.
The algorithm seems to have changed and that change has introduced bugs.
There are no patches after 8.0 and before 8.0.1 that look like they could have
affected this.
Actually, I was comparing 8.0.1 to 7.2, not 8.0. At MIT we skipped over 8.0 and
went straight to 8.0.1.
I suspect these bugs either are not new, or are not system bugs
but were caused by something you or someone else at your site did. Another
thing to look for when you install new software and things stop working is
whether your copy of the software is bad, either because there was an undetected
tape error or the software somehow got clobbered while you were installing it.
It completely baffles me that Symbolics is unable to provide a simple checksum
on world loads that could be used to verify installation. Lacking that, you
should get a known good world tape and compare against the world on your disk.
Sometimes, it compiles code it shouldn't. Thats alright, just annoying. But
worse, sometimes it doesn't compile code that it should. About one out of every
10 times I've used it since I've switched to 8.0.1 it fails to compile some
function that it should. Often, I've wasted a lot of time, trying to figure out
why a bug I just fixed still reappears in code only to find out the out of the
dozens of functions I've just editted and did a m-sh-C on, one didn't get
recompiled and that was the cause of the bug not being fixed.
I think there has been a bug like this since forever. It may happen when you
create a new definition or kill and yank entire definitions and something gets
confused about where the boundaries between definitions are. I've never heard
of it happening anything like this often though (or it would have been fixed
long ago).
Also, if you have unbalanced parenthesis in a function that you just edited
and do a m-sh-C, it used to complain which was good. Now it doesn't anymore.
It just reads up to the matching closing parenthesis and ignores the rest of the
definition that has changed. This is a bug.
It doesn't do that when I try it. It reads all of what used to be the definition
of the function, stopping before the next open parenthesis in the first column,
thus picking up two forms to be compiled (the second one was malformed and caused
an error, as you'd expect). I don't think anything has been changed here in years.
There is even some more random flakiness in Genera 8.0.1. Sometimes Zmacs gets
wedged in such a way that typing self-inserting characters takes many SECONDS
for it to process. This seems to happen when you edit a function and are in
a temporary state where parenthesis are unbalanced. It can take Zmacs several
MINUTES to echo a few dozen characters that I type. No paging, No GC, no other
processes, the run light is solidly off before I type the characters, goes
solidly on for a few mintues while it processes the typed input and then goes
solidly off again.
This doesn't happen to anyone else, as far as I know. To find out what is
happening while the machine is not responding, use c-m-Suspend. If that doesn't
respond, use h-c-Function and the FEP's Debug command. Either way, you can get
a backtrace. The FEP debugger works about a million times better on Ivory
machines than on 3600s, I hope you're using an Ivory-based machine as that will
make your life easier.
Thanks for the suggestion. I hadn't thought of it when the situation occurred. As
I mentioned, this behvavior is difficult to repeat so I will not try. But I will
keep you suggestion in my bag of trick to try next time it comes up.
Now, I would send these bug to Customer Reports except that I can't repeat
them predictably. I can't isolate them down to a small example. The same exact
file will cause the problems one time and then not another. I can't determine
the circumstances which cause the anomalous behavior to report them. Its just
that code which has been rock solid for at least eight or ten years is now
flakey.
Things like this can't be fixed unless you or someone else provides a
reproducible test case, or unless your description is recognized as an
already known bug. Otherwise there is simply no place to start
investigations.
I guess sending to SLUG is a useful way to find out if anyone else is experiencing
the same thing, but I'm also a little concerned that it makes Genera look bad when
people send mail to SLUG complaining that it's flakey or broken when there is no
proof that Genera is at fault.
Also, for years, my lispm-init file has had the following lines:
(setf zwei:*lisp-defun-indentation* '(2 0))
(setf zwei:*lisp-indent-lone-function-offset* 0)
I have long since forgotten in detail what they do but I know that they used
to specify that code was indented as:
(defun foo (x y)
(+ x y))
instead of:
(defun foo (x y)
(+ x y))
(One space indentation under defun rather than two.)
This too has broken in Genera 8.0.1 and I can't find any documentation in the
release notes warning me about that. Can any body tell me how to fix this?
This was not changed from 8.0 to 8.0.1.
Ditto above. I am pretty sure that this (or something similar) has changed between
7.2 and 8.0.1 since the indenting behavior of c-m-Q has definitely changed.
zwei:*lisp-defun-indentation* is for things that start with DEF and don't have
declared indentation (determined in two minutes by List Callers). DEFUN has
declared indentation, so that variable has no effect on it. I suppose it's
possible that in some older release that you vaguely remember, DEFUN used not to
have declared indentation. Subtle details like this that don't affect program
compatibility would be unlikely to be in the release notes anyway (do you really
want a thousand pages of release notes)?
While strictly they don't affect executable compatability but they sure make my life
uncomfortable. I like to fit the maximum amount of code on a line so that the maximum
amount of code fits on a screen full. Thats why I changed the indentation from 2 to
1. I also, regularly use the indentation commands to reindent functions and buffers
automatically. Now, I have a file that used to have line breaks such that when it
was indented, all lines fit on one line. When, I changed releases, this ws no longer
the case. And I had to manually go and rebreak many of the lines in my file. That
took a lot of time and in my mind defintely is an issue of programming environment
compatability.
Jeff