[comp.os.os9] osk 2.3, various woes, usenet for osk, and so forth...

blarson@blars (10/11/90)

I finally upgraded my qt20x to osk 2.3.  If I'd known it would cure so
many of my outstanding problems, I wouldn't have hesitated so long.
The few new bugs are so minor in comparison....  (Note: the
motherboard still has residual crud that won't come off due to a broken
pipe in the apartment above.  I had attributed most of my supposed
hardware problem to this.)


Fixed:

nasty C compiler bugs dealing with "string"[0] and sizeof("string").

My system actually keeps the correct time rather than loosing several
hours a day.  I though this was a hardware problem.

My Newburry data disk drive now works.  I'd heard that SCSI support
was better at 2.3, so this wasn't a total surprise.  It's nice not
haveing to look for something else to delete every few days.  (Usenet
promises to use as much disk space as I let it, however.  300 meg
isn't infinite.)

The tape drive Frank Hogg sold me to go with the system now works.
Since Frank claimed not to have problems with them, I was wondering if
this was a hardware problem too.  Now I can even back up my disk drive.

Broken:

The "dir -e" format has inexplicably changed by one column.  This
broke mg, which parses the output from "dir -e".

"." is apperently no longer included in the default include file
search rules in the C compiler.  Adding "-v=." to a make file fixed
this.  (This only applies to compiling files out of subdirectories.)

There doesn't seem to be a way to write an ANSI-like OFFSETOF macro
under the new C compiler.  The new C compiler seems to think:
(((char *)(&((struct foo *)0)->bar)) - ((char *)(struct foo*)0))
is a pointer-valued expression.  (Don't ask me what it thinks it
points to.)  The other semi-portable offsetof definition produces the
correct type, but very wrong values.

The age coumn of procs now accumulates.  This is wrong and useless.

I can't boot off my Newburry.  I get endless "error 215" messages.

Still broken:

My batery-backup clock still doesn't battery backup.  Replacing the
batter did not cure the problem.

Occasional disk hangs requiring reboot.  Usually occur durring the r68
phase of a make.  There is some improvement: it now gives error 68:254
and returns to the shell.  Further access of /h0 doesn't work.
Flopies can be accessed.  Has anybody else experienced this problem?
(Since the hard drive and cable have been replaced, those arn't the
problem.)

Usenet:

This is the second article I've let escape from my qt20x running cnews
and rn.  Mail and uucp are the main requirements besides testing and
documentation before I release it on the world.  The C compiler bug
fixes let me back out some nasty changes I had had to make to cnews.


So fourth:

Microware should worry about fixing the bugs and making their compiler
ANSI compatable before seriously considering changes like register use
on argument passing.  The compiler produces such poor code that a few
extra instructions here or there won't make any real difference.
Passing arguments in registers will be a real win if the compiler ever
does optimize.  The vast majority of the programs I wait for are disk
bound, implementing a caching rbf would make orders of magnatude more
difference.

[apologies for the double signature, it's due to the backdoor way I
currently transfer news to and from my qt20x.]

-- 
blarson@usc.edu
		C news and rn for os9/68k!
-- 
Bob Larson (blars)	blarson@usc.edu			usc!blarson
	Hiding differences does not make them go away.  Accepting
	differences makes them unimportant.

jejones@mcrware.UUCP (James Jones) (10/11/90)

In article <112@blars> blarson@blars writes:
>"." is apperently no longer included in the default include file
>search rules in the C compiler.  Adding "-v=." to a make file fixed
>this.  (This only applies to compiling files out of subdirectories.)

K&R 1st edition says the following about #include semantics, in canonically
vague fashion:

"A compiler control line of the form

	#include "filename"

causes the replacement of that line by the entire contents of the file
filename.  The named file is searched for first in the directory of the
original source file, and then in a sequence of standard places."

The 2**6 dollar question is, is "the original source file" the file
whose name was initially handed to the compiler, or the file containing
the #include directive?  The preprocessor formerly thought it was the
former, and indeed X3J11 seems to think, if one reads the Rationale,
that the former was intended--but the commonly-used Unix C preprocessor
behaves as if the latter were intended.  There were sufficient complaints,
not to mention that the latter interpretation makes somewhat more sense
by making nested #includes with relative pathnames not depend on the
path of the file being compiled, that cpp's interpretation was changed
to the latter, as, I recall, mentioned in release notes.  (That's not
the only debatable behavior of cpp.  K&R 1st edition's "Text inside
a string or a character constant is not subject to replacement" in 12.1
versus cpp's, and Reiser's, behavior on

#define ctrl(a) ('a' - ' ')

char	ctrlx = ctrl(x);

is another example.)

>Microware should worry about fixing the bugs and making their compiler
>ANSI compatable before seriously considering changes like register use
>on argument passing.

To the best of my knowledge, Microware's 680xx C compiler parameter
passing, aside from the relatively recent changes to let one pass
structures and unions, has been unchanged for a long time.  The most
recent changes to improve code generation have involved taking advantage
of the "as if" rule by avoiding superfluous widening of operands.

	James Jones

blarson@blars (10/15/90)

In article <3343@mcrware.UUCP> jejones@mcrware.UUCP (James Jones) writes:
>In article <112@blars> blarson@blars writes:
>>"." is apperently no longer included in the default include file
>>search rules in the C compiler.

[discussion of #include omited]

>cpp's interpretation was changed

I agree that the changed version is supirior, however I don't see why
it can't search both directories.

>mentioned in release notes.

Not as far as I can find.  Page number please.




-- 
blarson@usc.edu
		C news and rn for os9/68k!
-- 
Bob Larson (blars)	blarson@usc.edu			usc!blarson
	Hiding differences does not make them go away.  Accepting
	differences makes them unimportant.