ho@hoss.unl.edu (Tiny Bubbles...) (08/28/90)
Thanks to all who responded to my post about Turbo C++, which was even put into the wrong newsgroup (egg on my face). I heard it was good, fast and rodent-friendly; tradeoffs include bugginess and lack of speed. That's a problem when I only have an 8-MHz XT. Of course, most of the people complaining of bugs said they happened in conjunction with a destructor thingamajigie when mounted sufficiently close to Saddam Hussein's chemical factory tent land mine tank anti-missile launcher submarine hangar. I haven't the foggiest idea what a destructor is, not being a C++ programmer, but most of the rest of that stuff sounds pretty destructive to me. :-) I'll wait for another of Borland's incessant "buy! buy!" flyers. Strange, I get flyers for Quattro Pro every month or so, but I've gotten a grand total of one for Turbo C++. Hmmm... wonder why that is. -- --- ... Michael Ho, University of Nebraska Internet: ho@hoss.unl.edu
johnm@cory.Berkeley.EDU (John D. Mitchell) (12/11/90)
In article <25839@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: [...] >get VERY unreliable and my .EXE finished file is pretty buggy when my .PRJ >and/or .DSK files get rather large (32+K). Is there a way to "clean up" my >.PRJ file without deleting it. I dont use many project notes, and it is a [...] There's a bug in the compiler that was supposedly fixed in v1.01 and by the patch disk. Good luck, John D. Mitchell johnm@cory.Berkeley.EDU
cla@isis.cs.du.edu (Chuck Anderson) (12/12/90)
In article <25804@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: >I have Turbo C++ 1.00 but have noticed that it has a couple of errors, ie. >bugs. Has anyone encountered the fact that the debugger REALLY screws up >when tracing code? It seems that it arbitrarily jumps to come code at >times that resembles other code. For example: What I have noticed is the debugger getting confused with reentrant routines. If I am on a statement within proc A, that calls routine B, which happens to call proc A, the debugger's next step is the next line in proc A (The statement following the call to proc B.), but it is the second instance of the call that is now being traced. I suppose that it would be difficult for the debugger to determine that this set of events have taken place. But it is confusing because there's no obvious indication that you are now tracing through another (the second) instance of the routine. Know whadda mean? -- ************************************************************************* Chuck Anderson uucp : uunet!isis!cla Boulder, Co. (303) 494-6278 internet: cla@isis.cs.du.edu *************************************************************************
dgil@pa.reuter.COM (Dave Gillett) (12/12/90)
In <25804@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: >I have Turbo C++ 1.00 but have noticed that it has a couple of errors, ie. >bugs. Has anyone encountered the fact that the debugger REALLY screws up >when tracing code? It seems that it arbitrarily jumps to come code at >times that resembles other code. For example: >....code... >return (0) >.....code.... >return (0) >When it should hit the first return (0) it instead jumps to the other, >completely unrelated, but syntactically similar, piece of code. The debugger works by cross-referencing locations in the source to locations in the machine language. (Use "View CPU" to see this level.) So what happens when the compiler doesn't generate any object code for the source line? The trace and breakpoints get redirected to where the actual code is. In your example, "return (0)" appears twice. This is pretty trivial, but it's not inconceivable that the compiler, as an optimization, generated the code for the second instance and a jump to it for the first instead of two copies of the code. The debugger is torn between stepping through what you wrote, and following the actual path of execution, and has opted for the latter. Dave
spolsky-joel@cs.yale.edu (Joel Spolsky) (12/12/90)
In article <25804@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: >I have Turbo C++ 1.00 but have noticed that it has a couple of errors, ie. >bugs. Has anyone encountered the fact that the debugger REALLY screws up >when tracing code? It seems that it arbitrarily jumps to come code at >times that resembles other code... Hello, That is not a bug. What is happening is that the optimizer is rearranging your code so that it can be made smaller or faster. The debugger, admittedly, gets confused trying to map the binary reality to the source code ideal... When you want to debug, you should just turn off all optimizations. Joel Spolsky spolsky@cs.yale.edu Silence = Death
jdb@reef.cis.ufl.edu (Brian K. W. Hook) (12/13/90)
Okay, I'll say it...I need the number for Borland Tech Support. Could someone please e-mail me the number so I can get my upgrade from 1.00 to 1.01? *sigh*
jdb@reef.cis.ufl.edu (Brian K. W. Hook) (12/18/90)
I am using Turbo C++ 1.00 for my current development. However, I have an excessively large project file (about 26 files, 55K of source) and when I change a single #include that is included by ALL files it will do a build all to keep everything consistent. The question is: Common sense lends one to believe that using TCC would be MUCH faster than recompiling within the environment. If that is the case, is there a way to use my .PRJ file as a response file? I've tried @FILE.PRJ on a whim, and, of course, it didn't work. The only way I can think of is to go into my options windows and write everything down then make a batch file. This is not my idea of fun, especially since a lot of things are already going to be defined in my .TC file and .CFG file. And of course, certain things that it assumes are set are not explicity displayed in the options windows and thus I do not know what switches to set....also, certain thigs set in the .TC file are overridden by my .PRJ file and thus at the command line, certain .TC switches may be used instead of ones in my .PRJ file. THIS GETS VERY CONFUSING AND ANNOYINGH!! ARGH! Anyone know how to handle this in a sane manner? Thanks.... Brian
beoneel@well.sf.ca.us (Bruce O'Neel) (12/21/90)
jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes: >In response to everyone, I have ordered the TC++ patch disk from Borland. >Also, as for the fact that I have only 1 include file, this is because >I am writing a future shareware windowing library and I don't want users >having to worry about multiple include files and what not when and if they >purchse the source code. >Next...does or does not TCC run faster vs. the TC IDE when compiling identical >files? I would assume so, but in e-mail some have disagreed. Actually, you've ordered tc++ 1.01 from borland, right :-) ? TCC faster than TC IDE? Well, yes and no. It is basically the same compiler so the speed difference depends on how much memory you have (regular and EMS) how fast the disk is, and how fast the cpu is. I've found that on my system (Nec v30 8mhz, 640k memory, no ems, quick but not too 20meg disk) if I want to compile 1 file it is faster to use tcc. If I want to edit, compile, edit, compile, etc, the IDE is faster in my experience. Your milage may vary. bruce
dougs@videovax.tv.tek.com (Doug Stevens) (12/22/90)
In article <2261@abcom.ATT.COM>, mdb@abcom.ATT.COM (5013 ) writes: > Have you looked at using make to manage your project?? > At one point Borland was distributing a .PRJ to a .MAK which could then > be used by MAKE. I have used both MAKE with TCC and project-make within TC. The project make appears to be MUCH (much, much ...) faster. I speculate that the main difference is that when running MAKE, TCC must be re-loaded every time that a dependency triggers a compilation, and that TC loads the compiler only once before checking dependencies and compiling. I also prefer the project make because I don't have to maintain dependency lists in the makefile (even with automated tools, such as Polymake, you have to remember to run the tool to update the dependencies). I think the original complaint had to do more with changes in a single .h file triggering compilation in manyh .c files in the system. Changing from TC to make with TCC is not going to fix this (unless you don't add the dependencies into the makefile, in which case you can really generate some confusing problems). My approach is to use lots of .h files, each dealing with a subsystem within the system being created, instead of a single massive .h file; that way, changing a .h only triggers re-compilation in the files in that subsystem.