smoke@well.sf.ca.us (Nicholas Jackiw) (09/29/90)
I think THINK Pascal's great, and thanks for asking, Rich, etc. etc. The following items, each one perhaps trivial in a given instance, become burdensome when you spend day after day, week after week, coding away on the same project. * If all ten windows are open, and you GO or BUILD, your compilation may abort at any point if a file which needs recompilation is not presently open. When a change in one of your header files involves a ten minute total recompile time (this on a IIci, mind you), you may well be down by the coffee machine when the "can't open window" comes up and your compile croaks. You come back to the Mac and realize you've only compiled 3 files out of 50. I'd like to see THINK maintain one "private" file slot simply for those files which are pseudo-opened during the course of the compile. (If an error occurs in the file, THINK wouldn't need to display it in a window--the finger could point to it in the project window.) Alternately, and much easier to implement, if at BUILD or GO time, all windows are in use and at least one of the files flagged-for-recompilation isn't open, give the error *then*--not after two or three minutes of happily compiling the open files. * Showing some intelligence about multiple-screen environments would be great; at least to the extent of zooming to the screen of maximum window area, instead of always to the main screen. * Throw in another vote for precompiled usage clauses, if this is somehow possible--including them takes far longer than compiling code, on any large project. * If you decide to include an in-line assembler, or even if you don't, having Lightsbug do a simple, asymbolic disassembly of the current instruction would be very nice. I know you can drop into Macsbug at the current step, but you have to keep dropping out again to determine the addresses of your identifiers and all the other good stuff Lightsbug can tell you. * Typecasting in Lightsbug isn't as smooth as it could be. If I double-click on a typecast handle, I'd like to see the expansion open up as the cast-type's dereference, not as the original type. Also, being able to keep some very local state about which identifiers the user's typecast would be handy--every time I follow a reference, or backout of a reference, all of the typecasts I've made in that frame of reference seem to vanish. I know I can use the file cabinet, but that's cumbersome. * HOME and END and the PAGE keys on an extended keyboard move the content but not the cursor. Sometimes this is handy; othertimes I want the cursor to move. If there were some way of getting the cursor to the top visible line in the window, without using the mouse, I could keep my hands on the keyboard all the time. * When the project window's foremost, it sure would be nice to be able to select a file by typing the first few characters of its name. Once selected, I'd like to be able to open it from the keyboard, probably just by hitting <RETURN>. * When I recompile, in MPW, a .o file, I have to explicitly unload and reload it into the project for THINK to reintegrate it's contents, rather than to continue using its old contents. Can you check object files modification date, and if changed, reload it automatically at BUILD? * Now that Apple's warning us that match chips won't go hand in hand with '20s and '30s, the build matrix for cross-platform applications gets really complicated. ('00 no-chip, '20 no-chip, '00 chip, '20 no-chip, etc.) To generate each properly, there's a fair amount of overhead... change the THINK compiler directives, change your own private directives, unload SaneLIB and substitute Sane881.Lib, etc. Without getting into a full scripting system, some way of integrating and automating these sort of tasks would help. * Let's have a real profiler, and also the ability to dump symbolic debugging info for TheDebugger or SADE. Hope this isn't too much for you to get to by tomorrow, Rich ... Cheers, Nick