[comp.sys.mac.programmer] Two suggestions for THINK C

eby@pegasus.ATT.COM (Robert P. Eby) (07/26/90)

A favorite hobby of people here in comp.sys.mac.programmer seems to be
making suggestions for improvements to THINK C.  Here are two things I would
like to see: 

1) When doing text selection in the editor, TC should use the user's
selected highlight color on a color monitor (rather than white on black,
yecch!)   This shouldn't be that hard to do; just a matter of adding
	HiliteMode &= ~(1 << hiliteBit);
in a few places.

2) There ought to be a "Cancel" or "Stop Compiling" button on the
compilation dialog.  Many's the time that I've hit propeller-R and THEN
remembered that I needed to update the .rsrc file (for example).  I can't
imagine that this should be hard either (it could finish compiling the
"current file" before it stopped).

So whaddaya say?  In 4.0.3 maybe?  Of course, 2.1 level C++ would be nice
also, but I can wait a little longer for that.

Robert P. Eby			UUCP:   att!pegasus!eby
AT&T Bell Laboratories		Domain: eby@pegasus.ATT.COM

weyand@csli.Stanford.EDU (Chris Weyand) (07/29/90)

In <4930@pegasus.ATT.COM> eby@pegasus.ATT.COM (Robert P. Eby) writes:

>A favorite hobby of people here in comp.sys.mac.programmer seems to be
>making suggestions for improvements to THINK C.  Here are two things I would
>like to see: 

>1) When doing text selection in the editor, TC should use the user's
>selected highlight color on a color monitor (rather than white on black,

That would be nice!

>2) There ought to be a "Cancel" or "Stop Compiling" button on the
>compilation dialog.  Many's the time that I've hit propeller-R and THEN
>remembered that I needed to update the .rsrc file (for example).  I can't
>imagine that this should be hard either (it could finish compiling the
>"current file" before it stopped).


Try command-period.  It works very well.



Chris Weyand
weyand@csli.Stanford.edu

d88-jwa@nada.kth.se (Jon W{tte) (07/29/90)

In article <4930@pegasus.ATT.COM>, eby@pegasus.ATT.COM (Robert P. Eby) writes:

|> 1) When doing text selection in the editor, TC should use the user's
|> selected highlight color on a color monitor (rather than white on black,

Yes, I have also wanted this...

|> 2) There ought to be a "Cancel" or "Stop Compiling" button on the
|> compilation dialog.  Many's the time that I've hit propeller-R and THEN

Cmd-dot works fine for me. What's your problem ?

Now, MARKS in the editor, and option-doubleclick that found the RIGHT
definition of a function, and the use of scrolling keys, and saving
all compilation errors in a window instead of stopping at the first
would be a good start for 5.0...

	Jon W{tte, Stockholm, Sweden, h+@nada.kth.se

mkelly@cs.uoregon.edu (Michael A. Kelly) (07/30/90)

|> 1) When doing text selection in the editor, TC should use the user's
|> selected highlight color on a color monitor (rather than white on black,

Try the 'ThC, Hilite!' init, found (I believe) in the sumex archives.  (If
not there, probably America Online.)  It provides a temporary (we hope!)
solution.


Mike.
--
Michael A. Kelly
mkelly@cs.uoregon.edu

mdavis@pro-sol.cts.com (Morgan Davis) (07/31/90)

In-Reply-To: message from eby@pegasus.ATT.COM

> 2) There ought to be a "Cancel" button on the compilation dialog.

Just press Command-Period to cancel a compilation.

UUCP: crash!pnet01!pro-sol!mdavis		ProLine:  mdavis@pro-sol
ARPA: crash!pnet01!pro-sol!mdavis@nosc.mil	MCI Mail: 137-6036
INET: mdavis@pro-sol.cts.com			America Online, BIX: mdavis

lippin@ragu.berkeley.edu (The Apathist) (08/01/90)

Recently mdavis@pro-sol.cts.com (Morgan Davis) wrote:
>In-Reply-To: message from eby@pegasus.ATT.COM
>> 2) There ought to be a "Cancel" button on the compilation dialog.
>Just press Command-Period to cancel a compilation.

Some of us would *still* like a button, however.

(While you're at it, how about making it a movable modal so we can
switch out and do something else?)

					--Tom Lippincott
					  lippin@math.berkeley.edu

	"Hell is like a supermarket in other ways, too --
	 there's an express lane for ten sins or less,
	 and they won't let you take the carts out to the parking lot."
					--Mister Boffo

purcell@sciences.tmc.edu (Guy B. Purcell) (08/02/90)

In article <1990Jul31.224245.24110@agate.berkeley.edu> lippin@math.berkeley.edu writes:
>Recently mdavis@pro-sol.cts.com (Morgan Davis) wrote:
>>In-Reply-To: message from eby@pegasus.ATT.COM
>>> 2) There ought to be a "Cancel" button on the compilation dialog.
>>Just press Command-Period to cancel a compilation.
>
>Some of us would *still* like a button, however.
>
>(While you're at it, how about making it a movable modal so we can
>switch out and do something else?)
>
>					--Tom Lippincott
>					  lippin@math.berkeley.edu
>
If this were done, compiling would be *much* slower.  Maybe later when
multitasking is handled better this will be worth it, but not currently.
I mean can you imagine putting in 'wait' statement in a compiler just
to allow other tasks some CPU time?  The OS should handle allocating
CPU resources, not the various applications.  Apple is working toward
this -- we just have to be patient.

Guy (purcell@zeus.sdsu.edu)

omh@cs.brown.edu (Owen M. Hartnett) (08/02/90)

This is really a suggestion for Think Pascal, but it probably applies to
Think C as well:

Have an option so that files will be saved *before* compilation starts.

Many times the compiler has crashed during compilation (undoubtedly due to
some gaffe of mine the previous compilation), but the changes don't get
saved until *after* the compilation finishes.  

This doesn't happen often, but when it does, it's aggravating.

-Owen

Owen Hartnett				omh@cs.brown.edu.CSNET
Brown University Computer Science	omh@cs.brown.edu
					uunet!brunix!omh
"Don't wait up for me tonight because I won't be home for a month."

minich@d.cs.okstate.edu (Robert Minich) (08/02/90)

lippin@math.berkeley.edu writes:
|#> 2) There ought to be a "Cancel" button on the compilation dialog.
|#Just press Command-Period to cancel a compilation.
|
|Some of us would *still* like a button, however.
|
|(While you're at it, how about making it a movable modal so we can
|switch out and do something else?)

by purcell@sciences.tmc.edu (Guy B. Purcell):
| If this were done, compiling would be *much* slower.  Maybe later when
| multitasking is handled better this will be worth it, but not currently.
| I mean can you imagine putting in 'wait' statement in a compiler just
| to allow other tasks some CPU time?  The OS should handle allocating
| CPU resources, not the various applications.  Apple is working toward
| this -- we just have to be patient.

  I agree an OS should deal with CPU scheduling, but I don't think that
it would be prohibitively difficult to support background compilation.
Judging how often to yield CPU time might entail a little bit of work,
but it seems obvious to me that they are already checking for events,
since they catch cmd-'.' to interrupt compiling.
  I s'pose the main difficulty would be ensuring the foreground process
regular CPU bursts. However, I think it would be relatively simple to
add some code around the are that provides status updates ("xxx lines")
that looks at the current number of ticks and calls WNE() after a
reasonable amount have gone by.
  There are two reasons I see to provide this feature: (1) you can read
the netnews while you compile :-), and (2) you can start fixing the
errors that are showing up in the "compile errors" window. :->
-- 
|_    /| | Robert Minich            |
|\'o.O'  | Oklahoma State University| There are no heroes --
|=(___)= | minich@a.cs.okstate.edu  |   We all wear gray hats.
|   U    | - Ackphtth               |

jackiw@cs.swarthmore.edu (Nick Jackiw) (08/02/90)

minich@d.cs.okstate.edu (Robert Minich) writes:
>   I agree an OS should deal with CPU scheduling, but I don't think that
> it would be prohibitively difficult to support background compilation.
> Judging how often to yield CPU time might entail a little bit of work,
> but it seems obvious to me that they are already checking for events,
> since they catch cmd-'.' to interrupt compiling.
>   I s'pose the main difficulty would be ensuring the foreground process
> regular CPU bursts. However, I think it would be relatively simple to
> add some code around the are that provides status updates ("xxx lines")
> that looks at the current number of ticks and calls WNE() after a
> reasonable amount have gone by.

My project (THINK Pascal 3.0, but the argument's equivalent) takes a good
10 minutes to compile on an SE/30, locking up my machine entirely. Thus I
frequently have time to ruminate about these issues.  In that apple's not
going to come up with user-based OS task scheduling soon, I frequently
dream about my more sophisticated and time-consuming utilities (e. g. my
compilers) allowing me at least to schedule their individual behavior.
Some sort of meter in the Compile Options dialog could represent a percent
of CPU time I desire to allocate to the compilation.  It would default to
100--never switch out, never call WNE.  (This is what it does now, I 
assume--it checks for cmd-. by consulting the keymap, not the event queue.)
However, if I set it to 75%, I would expect my compile to take 13 minutes,
but I'd have enough spare cycles to watch me tap the space bar in netnews.
Alternately, I could allot it only 20%, have it take an hour, and work on
my documentation with a fairly-good response time in the word processor.

This sort of self-scheduling can never be better than approximative, in that
you can't force tasks to return to you at a given time, but 5 minutes worth
of scattered timeouts is still far more desirable than the 10 minute total
lockup now confronting me every time I change a trans-project header.


-- 

------------------------
Nick Jackiw		jackiw@cs.swarthmore.edu  "We are what we think,
Visual Geometry Project	jackiw@swarthmr.bitnet     having become what we

pete@titan.rice.edu (Pete Keleher) (08/02/90)

jackiw@cs.swarthmore.edu (Nick Jackiw) writes:

> going to come up with user-based OS task scheduling soon, I frequently
> dream about my more sophisticated and time-consuming utilities (e. g. my
> compilers) allowing me at least to schedule their individual behavior.
> Some sort of meter in the Compile Options dialog could represent a percent
> of CPU time I desire to allocate to the compilation.  It would default to
> 100--never switch out, never call WNE.  (This is what it does now, I 
> assume--it checks for cmd-. by consulting the keymap, not the event queue.)

Although I haven't actually checked w/ MacNosy, I would guess that it does
use the event queue, not the keymap. Command equivalents that are typed
during compilation are lost, although as soon as linking starts, keyboard
events can be entered which take you though the debugger and quite far into
the application that you are working on.

Many of the comments in this thread have dealt with how the compiler can
decide that it has had enough cpu so that it can let the foreground
processcrank for a bit time. In reality, the problem is that there are many
applications out there that still don't use WaitNextEvent, which would
prevent the compiler (the background applicataion) from getting any time at
all.
--
=============================================================================
Pete Keleher						pete@titan.rice.edu
The Alpha Editor is available from 'rascal.ics.utexas.edu' (128.83.144.1).
=============================================================================

gft_robert@gsbacd.uchicago.edu (08/02/90)

----- 
In article <PETE.90Aug2104554@titan.rice.edu>, pete@titan.rice.edu (Pete Keleher) writes...
 
[...]
>Many of the comments in this thread have dealt with how the compiler can
>decide that it has had enough cpu so that it can let the foreground
>processcrank for a bit time. In reality, the problem is that there are many
>applications out there that still don't use WaitNextEvent, which would
>prevent the compiler (the background applicataion) from getting any time at
>all.


I'm not too sure about this.  I wrote an app a couple of weeks ago which didn't
use WaitNextEvent (I know, shame, shame).  I can get VersaTerm to download
files and stuff even when my GetNextEvent-app is in the foreground.


Robert



============================================================================
= gft_robert@gsbacd.uchicago.edu * generic disclaimer: * "It's more fun to =
=            		         * all my opinions are *  compute"         =
=                                * mine                *  -Kraftwerk       =
============================================================================