From kenner@vlsi1.ultra.nyu.edu Thu Feb 22 20:20:22 1990
Received: from VLSI1.ULTRA.NYU.EDU by jan.ultra.nyu.edu (5.61/1.34)
	id AA00881; Thu, 22 Feb 90 20:20:18 -0500
Date: Thu, 22 Feb 90 20:21:22 EST
From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
Message-Id: <9002230121.AA12800@vlsi1.ultra.nyu.edu>
Received: by vlsi1.ultra.nyu.edu; Thu, 22 Feb 90 20:21:22 EST
To: rtgurus@jan.ultra.nyu.edu
Subject: hc2.1y
Status: R


>From raeburn@ATHENA.MIT.EDU Thu Feb 22 19:02:50 1990
Received: from ATHENA.MIT.EDU by vlsi1.ultra.nyu.edu; Thu, 22 Feb 90 19:02:44 EST
Received: from PROMETHEUS.MIT.EDU by ATHENA.MIT.EDU with SMTP
	id AA23231; Thu, 22 Feb 90 19:05:09 EST
Received: by prometheus.MIT.EDU (5.61/4.7) id AA13517; Thu, 22 Feb 90 19:04:36 -0500
Date: Thu, 22 Feb 90 19:04:36 -0500
Message-Id: <9002230004.AA13517@prometheus.MIT.EDU>
From: Ken Raeburn <Raeburn@ATHENA.MIT.EDU>
To: kenner@VLSI1.ULTRA.NYU.EDU
In-Reply-To: Richard Kenner's message of Tue, 20 Feb 90 17:10:07 EST,
	<9002202210.AA10497@vlsi1.ultra.nyu.edu>
Subject: Re: Could you please forward to Tiemann...
Status: R


   Where did you get hc2.1y?

John picked up 2.1y from someone via ftp from uunet, where it was
stored in /tmp.

I had him put a version somewhere accessible; if you ftp to
achates.mit.edu (18.72.0.117), ~ftp/rt/hc?com are the relevant files.
(The driver from earlier versions works fine, if you use -B.)

Here's the description we've got (which was posted to
comp.sys.ibm.pc.rt):

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>From bloom-beacon!snorkelwacker!usc!cs.utexas.edu!uunet!ibmpa!bullhead!brunner Tue Jan 30 16:52:59 EST 1990


The current version (2.1y) of the Metaware High C compiler is available
as a compressed tar file on ibmsupt. This version replaces version 2.1s
which had serious optimization problems.

The compressed tar image contains the first and second pass of
the hc compiler, /usr/lib/hc?com. The driver, /bin/hc is unchanged
and is not included.

This version has compiled X11r.4, the Andrew Tool Kit, etc. No
effort has yet been made to compile the AT&T C++ cfront code as
the sources to AT&T's licensed code are not immediately at hand.

The 2.1y version is available via UUCP, the path is:

	ibmsupt!/usr/spool/uucppublic/ibm43-fixes/hc2.1y.tar.Z

A brief list of the fixes follows:

	o Floating-point evaluation at compile time now correspond
	  to run time: (float)1e50 and 1.0/0.0 are both infinity,
	  not errors.

	o System error compiling paranoia.c fixed.

	o Tag declaration within a function prototype had scope
	  incorrectly extending through function definition.
	  (Obscure ANSI point)

	o Dbx stab for static block-scope variable should be type V,
 	  not S.

	o Floating-point code-generation used live register as scratch.

	o Code generation problem fixed when strcpy() used as function
	  argument and inline code being generated for strcpy.

	o ANSI preprocessor whitespace problem fixed.

	o Bad operand-field in .s caused assembler errors.

	o Code generation problem in while/if/for conditional fixed.

	o -Hon=print_protos output incorrect types for arguments implicitly
	  declared int.

	o Some volatile declarations caused spurious error messages. 

Still open:

	o sizeof(0,arrayname) should be 4, not sizeof(arrayname).
	o sizeof(0,charvalue) is 1, which is correct.  (ANSI subtlety.)

	o Float constant 0.1f has 53-bit precision; s/b 24-bit.

	o Disable constant propagation for -g: in effect make all variables
	  volatile.

	o Disable while-condition optimization for -g: don't duplicate
	  code for condition-testing at loop bottom.

	o Warn if setjmp() and alloca() are used within same function.

	o -E -Hnocpp outputs incorrect whitespace for
		#define m -
		...  a = b m-- c;
	o -Hnocpp alone parses correctly.
	
	o File-scope declaration with no declarators should produce warning
	  or error.

Related fixes:

V1.10	o correction to a relocation error for stabs in /bin/ld.c

V1.15	o a 5 part kit, substantial fix for dbx.


Eric Brunner, Consultant, IBM AWD Palo Alto	(415) 855-4486
inet: brunner@monet.berkeley.edu
uucp: uunet!ibmsupt!brunner	

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are still some problems, though.  The "-Hansi" option is
completely botched in this one.  This version, like previous ones,
also doesn't seem to complain about declarations following statements.
I haven't experimented with it too much yet, so I don't know if there
are serious (parsing or codegen) bugs.  (It works well enough to
bootstrap gcc....)

Are you getting near to being able to distribute 1.90.01 officially?
Has Tiemann said anything about the bug report I sent you?

-- Ken


