Path: utzoo!utgpu!water!watmath!clyde!att!rutgers!cmcl2!nrl-cmf!ames!pasteur!eris!korn
From: korn@eris.berkeley.edu (Peter "Arrgh" Korn)
Newsgroups: comp.sys.mac.programmer
Subject: Re: LSC 3.0
Message-ID: <5059@pasteur.Berkeley.EDU>
Date: 17 Aug 88 08:15:52 GMT
References: <418@metasoft.UUCP> <5125@husc6.harvard.edu>
Sender: news@pasteur.Berkeley.EDU
Organization: What, me organized???
Lines: 58

In <5125@husc6.harvard.edu>, singer@endor.UUCP (Rich Siegel) said:  
>In article <418@metasoft.UUCP> alan@metasoft.UUCP (Alan Epstein) writes:
>>what i'd really like to know is whether compilations can occur
>>in the BACKGROUND. anyone know?
>
>	No, and there's no good reason for them to do so. Backgroun
>compilation is such a CPU-intensive task that it would slow down all of
>the foreground tasks, and the foreground tasks will slow down compilation,
>particularly if they don't give sufficient time via correct use of
>WaitNextEvent.
>
>		--Rich


Rich, I have to take exception to this statement.  Much of my time is spent 
typing.  Typing in word-processors; typing in terminal emulators; typing 
in editors.  In all three cases, with typing occuring in MPW, LSC, 
MS-Word, MS-Works, and uw, there is PLENTY of free cycles for background 
tasks to do work (if you don't believe me, take a look at one of the 
'load monitoring' programs that's come across the net [like my Graphic 
Load Average program] and see for yourself just how much free time there 
is at any given moment).

There are a number of CPU-intensive tasks that work beautifully in the
background under the MacOS multitasking model.  fracapp generates fractals
quite nicely.  MPW 3.0 alpha (I used to contract at Apple) executes shell
scripts & does compilations quite well in the background.  MPW 3.0 beta
will supposedly hit the streets Real Soon Now, and you can verify that
yourself.


Yes, working in the background will mean that you will go slower.  So?
It will mean that *I* go faster because I'm not waiting for the compile.
Fast as LightSpeedC is, it's not fast enough to complete before I can
switch layers to another program and type a few lines.  If you are worried
about possibly executing slower when Multifinder is not running because
you have to call WNE() or EA() more often, you can easily special case
those situations either with a check box "run in the background", or
simply check for "suspend events" and then call EA() frequently if you've
gotten one.

You claim that some foreground tasks will slow compilation (HyperCard is
a good example).  True.  But if *I* decide to let the compilation take
longer because I want to pop into Hypercard, then it's a better allocation
of *my* time.  Fine, let the compile take longer.  The informed person 
can use a load monitoring program to get a feel for how "greedy" apps are
in the foreground & background, and make their decisions on how to allocate
their time based on that.


But it should be the user's decision, not the program's.


Peter
--
Peter "Arrgh" Korn
korn@ucbvax.Berkeley.EDU
{decvax,hplabs,sdcsvax,ulysses,usenix}!ucbvax!korn