coop/preempt [was: Re: release 0.0.0.20 and thoughts]
Billy Tanksley
tanksley@mailhost2.csusm.edu
Wed, 23 Aug 1995 16:00:21 -0700 (PDT)
On Wed, 23 Aug 1995, Patrick Premont wrote:
> > > Implementing coop will be incredibly easy. Implementing proofs will be
> > > dramatically harder, BUT will allow many good things.
> > a) (safe coop <=> proofs) /\ (proofs are hard) => (safe coop is hard)
> > q.e.d.
The first premise here is incorrect. Safe coop requires proofs, BUT
proofs do not result ONLY in safe coop. Proofs result in a universal
runtime speedup, at the expense of a one-time (constant) speed loss.
> > b) many good things in the far future are worse than some good things now.
> But TUNES is a Usefull Not Expedient System.
Yeah!
Let me add that this can be implemented in parts-- we needn't make our
multitasking completely safe from the start, just as long as we have the
multitasking.
> I think this whole debate over coop VS preempt multitasking is being
> done far too early. We should implement preemptive multitasking and
> only once we have the HLL working with a proof system should we
> consider adding transparent cooperative multitasking to increase performance
> when/if it can. But before that we'll be using the proof system to get
> far more important performance increases like proving the type or the
> value of something at compile type (partial evaluation time).
Just as long as we're aware while we write the programs that we will need
to have a yield in there sometimes, if only to make it easier for the
proof system. True, the initial compiler will just compile them out.
> Patrick
-Billy