[comp.lang.c++] Differences in Zortech C++ v1.06 and Zortech C++ v1.07

cs161akx@sdcc10.ucsd.EDU (cs161akx) (01/25/89)

Can anyone tell me what differences are between Zortech C++ v1.06
and Zortech C++ v1.07 ?   The reason I ask for these differences
is because I bought my Zortech C++ v1.06 and a week after the
Zortech people shipped out a new version v1.07.

Thanks in advance.

PS:  I prefer if you could post your opinion 
in the news group rather than e-mail to me.
Thanks again.

bright@Data-IO.COM (Walter Bright) (01/26/89)

In article <69@sdcc10.ucsd.EDU> cs161akx@sdcc10.ucsd.edu () writes:
>Can anyone tell me what differences are between Zortech C++ v1.06
>and Zortech C++ v1.07 ?
>PS:  I prefer if you could post your opinion 
>in the news group rather than e-mail to me.

The following is extracted from the READ.ME that comes with 1.07:

------------------ 1.07 Notes -------------------
CODEVIEW SUPPORT
	At last! Symbolic information is output and passed to Microsoft
	CodeView! Here's how to do it:

	1. Compile with:
		-gl	line number info only
		-gs	symbolic info only
		-g	line number and symbolic info
		-S	always generate stack frame
			(otherwise CodeView exhibits some strange behavior)
	2. Link with the Microsoft Linker (not Zortech's!) with:
		/CO	specify CodeView

	Limitations and problems:
	o	Zortech C sometimes assigns variables to the registers
		AX,BX,CX,DX, and sometimes the byte registers. There
		is no way to tell CodeView about this, the variable
		locations come up as ??.
	o	In order to conserve the size of the symbol table,
		typedefs and enums are not emitted. Only the minimal
		type information for variables actually used is emitted.
	o	Because the optimizer moves variables and sections of code
		around, there becomes only one scope per function. Thus,
		avoid using the same variable names in nested scopes
		if you want to use the debugger on them.
	o	Use the -S switch to cause the code generator to always
		generate a stack frame for each function if you want
		symbolic debugging. CodeView seems to expect this.
		ZTC.COM will automatically invoke -S if the -g or -gs
		switch was specified.
	o	C++ stuff is 'converted' to C-ish types, because CodeView
		doesn't know anything about C++. This makes symbolic
		debugging of C++ rather ugly.
	o	This was tested with the CodeView that came with MASM 5.1.

ZTC.COM
	Now recognizes files with a .CXX extension as being C++ files.
	.CXX is used by Glockenspiel C++.

	Added -S switch to cause the code generator to always generate
	a standard stack frame.

	Added -C switch to prevent inline function expansion in C++ files.

	Added -L switch to run LINK.EXE instead of BLINK.EXE when linking.

C COMPILER
	Fixed a problem with expanding circular nested macros.

	Fixed cast to void bugs. Casting an expression to void can
	be used to suppress the warning about the value of an
	expression not being used.

C++ COMPILER
	Added -C switch to prevent inline function expansion. This is
	useful if you're debugging the logic of your program, since
	inline expansion can be confusing when you look at it with
	the debugger. It's also interesting to use this switch to look
	and see if you're getting any real speed/size improvements
	by using inlines!

	Fixed problems with initializing references.
	Fixed problems where destructors sometimes were called in the
	wrong place.

BLINK
	Now is called BLINK.EXE instead of LINK.EXE, which caused
	annoyance to many people.

	Use MS-LINK if linking for CodeView. If BLINK encounters CodeView
	records, it will ignore them.

C LIBRARY
	Added sleep(), msleep() and usleep().
	Added _rotl(), _rotr(), _lrotl(), _lrotr().

	Fixed problem with 8087 support.

FLASH GRAPHICS
	Added support for CGA in medium resolution mode, and the IBM 8514A
	graphics adapter. The new initialization routines are:
		fg_init_cgamedres()
		fg_init_8514a()
	The "FG_" is no longer necessary as the value of the environment
	string for FG_DISPLAY used by fg_init_all(). Thus, fg_init_all()
	supports the following:

	a)		b)		c)
*	HERC		FG_HERCHALF	fg_init_herc()
	HERCFULL	FG_HERCFULL	fg_init_herc()
	CGAHIRES	FG_CGAHIRES	fg_init_cga()
	CGAMEDRES	FG_CGAMEDRES	fg_init_cgamedres()
	EGAECD		FG_EGAECD	fg_init_egaecd()
	VGA11		FG_VGA11	fg_init_vga11()
	VGA12		FG_VGA12	fg_init_vga12()
	EGAMONO		FG_EGAMONO	fg_init_egamono()
	EGACOLOR	FG_EGACOLOR	fg_init_egacolor()
	TOSHIBA		FG_TOSHIBA	fg_init_toshiba()
	8514A		FG_8514A	fg_init_8514a()

	a) Value for environment variable FG_DISPLAY.
	b) Return value from fg_init_all() if successful initialization.
	   Values are defined in fg.h.
	c) Initialization routine actually called by fg_init_all().
	*  fg_init_herc() determines if FG_HERCHALF or FG_HERCFULL is returned
	   based on testing if two pages is possible.

raw@ushiva.UUCP (Roland Wilcher) (01/26/89)

In article <1843@dataio.Data-IO.COM> bright@dataio.Data-IO.COM (Walter Bright) writes:
>In article <69@sdcc10.ucsd.EDU> cs161akx@sdcc10.ucsd.edu () writes:
>------------------ 1.07 Notes -------------------
>CODEVIEW SUPPORT
>	At last! Symbolic information is output and passed to Microsoft
>	CodeView! Here's how to do it:

Please excuse a possibly (likely) stupid question but...
When using codeview I found that the only variables I could examine were
in main. All vars in function calls were unknown to CV although I could 
single step at the source level. Even parameters to the function could not
be examined. Did I blow it somehow ? I have 1.07 .


---
"If aint broke, don't fix it"                        raw@neologic%hal.crwu.edu
-Bert lance                                     {hal,decvax}!ncoast!ushiva!raw
                                                             Roland A. Wilcher
------------------------------------------------------------------------------