[comp.sys.ibm.pc] Reflections on TC2.0, or ... "Impulse Buying"

schanck@schooner.cis.ohio-state.edu (Christopher Schanck) (01/28/89)

Okay ladies and gents, pull up a chair, this may take awhile. Today,
after all my mulling over whether or not to upgrade, I was passing
through the OSU computer store and saw the 2.0 package (*not* the
Professional one :-() was a mere $40. So okay, I bought it. I have
since spent about 4 hours with it and have some impressions.

First off, a word on upgrades. A couple people have stated that they
were irritated that <insert your pet change here> was not documented
as changed in the manuals. When I upgraded from 1.0 to 1.5, I
*upgraded*, that is, I got the "Changes and Enhancements" book rather
than the complete 1.5 docs. For the past several months I have been
cursing having to refer to 3 manuals when I was unsure where things
were, but today it was just the opposite. Since I bought 2.0 outright,
the writers obviously felt they didn't need to detail all the changes,
as they did/do in an update addition. Ideally I would like to have
both the "changes" booklet and the full docs, but what can I say :-)! 

A word on the docs; they are much improved, particularly the Reference
manual. There are headers on every page, and the cross references have
been enhanced. For instance gives a good spot of info about it,
instead of "see ...printf". This is a welcome addition. Minor Gripe:
The manuals and such are yellow now; I prefer the old blue scheme!

The integrated is certainly capable, basically as capable as 1.5 with
the debugging options added. The debuggin is impressive for a small
as the environment is; I can't wait to lay my hands on the standalone
version. The screen handling by the editor is the same (boo-hiss) and
the editor still has no windowing/multiple file capability. Oh well.

I tested the make/tcc combo against the 1.5 versions as far as
compile/link times were considered. Over a variety of files, with
applications ranging in size from 10k-140k, I got a speedup
improvement of ~15%. Pretty signifigant on my V20 4.77Mhz system!

One drawback came for execution sizes. All the object files compiled
with 2.0 were bigger than their 1.5 counterparts, even though I used
the -v- option. Not by a whole lot, but they were bigger. Sigh. I
haven't checked if there is a seperated "include debugging info"
switch for the linker, but I think that is a far reach....

On the upside, from a completely subjective standpoint, the
applications all seem zippier. Escpecially the couple I have which are
string routine intensive. In the manual it states "increased speed of
memory allocation and string routines". My VERY informal testing would
seem to bear this out....

The issue of the copyright notice is moot as far as I am concerned;
Borland wants EITHER you to copyright any software written with TC, or
you have to insert their copyright notice in. That si just sound logic
to protect their library routines. (you watch, I'll draw more
discussion on this point than any other, go figure...)

But I have saved the best for last. In 2.0, Borland has given us a
real treat and a timesaver. I almost *overlooked* THELP. This is one
hell of a memory resident program. Installed, it takes up about 8k.
This 8k is the front for accessing a 200k+ file with oodles of good
stuff, most importantly to my mind being a short description of each
and every library function and reserved word! Neato! Never have to
look up the order of arguments again. In my very humble opinion, this
is worth $40 easily, and is justification for buying it if you are at
all interested in C. It is geared toward the integrated environment,
having editor commands and such, but it is neato.

So overall, I give it a resounding thumbs-up. Buy it. If for THELP if
nothing else. Feel free to respond/flame/complement etc here or by e-mail.

Until version 2.5....

Chris



-=-
"I do not THINK in regular expressions, and I am not NP-complete!"
--- Christopher Schanck, occasional human being.
schanck@.cis.ohio-state.edu

Ralf.Brown@B.GP.CS.CMU.EDU (01/28/89)

In article <32857@tut.cis.ohio-state.edu>, schanck@schooner.cis.ohio-state.edu (Christopher Schanck) writes:
}One drawback came for execution sizes. All the object files compiled
}with 2.0 were bigger than their 1.5 counterparts, even though I used
}the -v- option. Not by a whole lot, but they were bigger. Sigh. I

What nobody seems to have thought of is the the *runtime*library* is larger,
due to increased functionality.  1.5 executables are larger than 1.0
executables, for the same reason.  The .COM for the null program ( main(){} )
grew from 1100-odd bytes in 1.0 to 1726 bytes in 2.0.

}haven't checked if there is a seperated "include debugging info"
}switch for the linker, but I think that is a far reach....

There is in fact such a switch, which TCC passes to the linker when invoked
with -v.

}[THELP] is geared toward the integrated environment,
}having editor commands and such, but it is neato.

No wonder, it uses the same help file that the integrated environment uses.

--
UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=-=-=- Voice: (412) 268-3053 (school)
ARPA: ralf@cs.cmu.edu  BIT: ralf%cs.cmu.edu@CMUCCVMA  FIDO: Ralf Brown 1:129/31
			Disclaimer? I claimed something?
	You cannot achieve the impossible without attempting the absurd.

wacey@paul.rutgers.edu ( ) (01/31/89)

When I first used 2.0 I noticed that my programs where about 1% larger
than under 1.5. This was without debugging info. I then checked the
code generated and discovered that Borland has made a Standard Stack
Frame the default. In 1.5 they it wasn't, which resulted in smaller
EXEs. So that get back the space all you have to do is turn off the
stack frame option. But then you want be able to track back through
the stack in the debugger.

Iain Wacey

mdfreed@ziebmef.uucp (Mark Freedman) (02/03/89)

   (larger Turbo C 2.0 object files)
    Turbo C 2.0 incorporates dependancy information into the object file.
I don't believe that this can be defeated with the current release.
    In my experience, the EXE files are about the same size as for 1.5
once the debugging information is removed (by recompiling with the proper
options, or by running TDSTRIP, which comes with the "Professional" package).
   
   According to Al Stevens' "C Programming" column in Dr. Dobbs' Journal
(January 1989), TLIB has an undocumented switch (/0) which removes this
information from library modules. He also mentions that Borland will be
posting a utility to strip the extra information from OBJ files, and that
the next release will incorporate "no dependancy information" as an option.