[comp.sys.ibm.pc] Any comments for TOPSPEED C?

jhom@csource.oz.au (joaquim homrighausen) (03/26/90)

> I've been reading ACM's communication mag and usually
> there is an ad for TOPSPEED C. They compare their compiler to
> all other name brands. The question I have is, "If they are so
> worthy of such a comparison, why haven't I seen a reference to
> them on the net?"

This seems to be the case with all new compilers, specially 
C compilers. Most people are waiting for others to try them 
out :-) I got involved with TopSpeed C from a fairly early 
stage and must say that I like it quite a bit. I can't say 
I'm overly impressed with their intergrated environment, 
but that's of course my personal opinion. You can customize 
their environment to a great extent, including redefine 
keys and menu layouts to your liking.

Their built-in project management (make facility) is OK, 
but I'd prefer to use NDMAKE and BRIEF for my development 
and then just compile with TSC. Unfortunately, their 
project management makes this somewhat complicated. The way 
to get around it is to use NDMAKE (or whatever your 
favorite make utility is) to compile everything and then 
you create a .PRJ file and tell TSC to make it - in this 
case, linking would be the only thing left to do.

The compiler is somewhere between MSC and Turbo C in 
regards to speed, but TSC comes very close and in some 
cases better than MSC in regards to optimization. Few 
compilers can claim the same.

If you get their "techkit", which includes a post mortem 
debugger module and RTL source code as well as a cute 
'watch' (tracks which INT 0x21 functions a program calls) 
program..

The biggest problem with TSC as I see it is caused by 
brain-dead third-party library developers.. TSC has a third 
(after pascal and cdecl type functions) calling convention, 
simply referred to as the JPI calling convention. In which 
case TSC uses registers to pass parameters to functions 
instead of on the stack. This causes problems with 
libraries that are not made with TSC. You get around it by 
explicitly defining the prototypes for the library as 
"pascal" or "cdecl" before you re-compile your application.

I've "ported" (not much porting involved) several of my 
applications to TSC and can't say I regret it. A couple of 
#ifdef:s keeps me in touch with Turbo C and MSC just in 
case it'd ever be required :-) But I doubt it.

All in all, TSC is a strong package and I would recommend 
it to anyone who's looking for a possible new compiler. I 
personally think they're here to stay, specially since they 
have one of the best Modula-2 environments for the PC.. a 
Pascal package is "on its way" and rumors about a C++ 
package is starting to pop up in various conferences.


--  

Software solutions on a silver platter
--------------------------------------
    UUCP: mulga!csource!jhom
Internet: jhom@csource.oz.au
 FidoNet: 3:632/348  <Fido/ACSNET Gateway>
---------------------------------------------
Technotron debuggah, the ultimate technopunk!
---------------------------------------------

lau@cs.ubc.ca (03/27/90)

From article <172.260D7B8D@csource.oz.au>, by jhom@csource.oz.au (joaquim homrighausen):
> 
> All in all, TSC is a strong package and I would recommend 
> it to anyone who's looking for a possible new compiler. I 
> personally think they're here to stay, specially since they 
> have one of the best Modula-2 environments for the PC.. a 
> Pascal package is "on its way" and rumors about a C++ 
> package is starting to pop up in various conferences.
> 


I've only had TSC for a couple of months so I can't say I've beaten
it to death and found all its strengths and weaknesses yet but I
can give you my general first impressions so far.  I'll have to agree
with Joaquim's impression of the integrated environment.  It's not
bad but when compared to Turbo C's, it's not as smooth.  Also, it is
completely keyboard based with no support for a mouse(the interface that
is, TSC's libraries do have mouse support).  Another interface quirk
is that the user interface to the Debugger (called VID) is different than
the user interface to the rest of the environment (probably because they
were independently developed).  Of course, I come from a BSD Unix background
and I'm more accustomed to doing everything from the command line so
Integrated Enviroments are kind of new to me.  I'm also an emacs hack
and although I tried to make the editor part of the environment as emacs
as possible, it just ain't emacs 'cause I can't rebind the Esc key (and
every emacs user knows how vital the Esc key is).  Just about everything
else is rebindable, though so I've come close.  Overall, though the
environment is not bad and one I can learn to live with.

As for the compiler itself, the only major thing I've done with it was
to recompile the latest version, MicroEmacs 3.10e.  Aside from adding
a few #ifdef's for TSC's include files, everything compiled without
a hitch and the program runs without any problems.  Since TSC is an
ANSI C compiler, it generated lots of warnings but it is essentially
MSC source code compatible.  I don't have MSC but my brother has QuickC
and MicroEmacs 3.10e was distributed as a Turbo C compiled binary so
I compared briefly the three loaded binaries.  Turbo C produced the smallest
binary with TSC about 8K bigger and QuickC lots bigger (I'm at work so
I can't check the actual sizes).  Speedwise, TSC and Turbo C were comparable
with maybe TSC having just an edge and QuickC not even in the same league
(I just used a timer program that executes a program, printing execution
times, and ran emacs, loaded a file and exited).  This is with all the
optimization switches on in TSC and QuickC (and I assume the TurboC version
was optimized as well).


Pluses?  As Joaquim mentioned, if you get the TechKit as well, you get
a PostMortem debugger and complete libary source code as well as a few
extra utilities.  It has a very extensive library (MS-Windows applications,
BGI interface(umm, that's redundant isn't it?), multi-threaded processes,
mouse support, Borland-style clipping windows and lots more.  So far
I have had no problems at all with the compiler or the environment but
again I haven't really beat on it yet.  I'm very impressed with JPI
support so far for one reason: they sent out a new version (1.03) to
me two weeks ago (11 disk in total) completely free and without my
even asking for it.  I haven't phoned to ask why (serious bug somewhere
that needed fixing???) but I can't imagine Borland or Microsoft sending
a free upgrade without prompting.

Minuses?  It costs twice as much as Turbo C and about as much as MSC (very
roughly).  There is an academic discount of about 30% which brought
it down it about $300 CDN (~$240 US) for me (I bought the "extended version"
which includes the TechKit).  The documentation isn't bad but isn't great
either.  They provide a User's manual, ANSI C Language reference, C Tutorial,
Library Reference Manual and a TechKit Manual.  The TechKit also includes
an assembler but it is NOT compatible with MASM or TASM (yes YAASM - yet
another assembler :-).

Overall I'm happy with TSC.  Whether it is what you're looking for depends
on if you need an ANSI C compiler, how much you want to spend and how
complete of a compiler you want.  And if you already have a TopSpeed
Modula-2 and are happy with it, you should definitely have a look at
TopSpeed C.


		Eric Lau
		lau@cs.ubc.ca