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