🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #10872

Re: Unsupported Programming Practices

#10872
From: Jim Mackraz
Date: Sun, 08 Jan 1989 00:56
79 lines
4793 bytes
In article <10262@well.UUCP> ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) writes:
)In article <5632@cbmvax.UUCP> steveb@cbmvax.UUCP (Steve Beats) writes:
)>In article <10227@well.UUCP> ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) writes:
)>>	I occasionally put RastPorts on my stack; does that count?
)>Yes that certainly does count.
)	AARRGGHHH!  What a bloody nuisance.

I think this is going a little far.  I think we have to divide the problems
up into what will break with what.  Most of the things Carolyn suggested are
things that will cause you problems real soon now, for sure.  There were things
that will break with any non-68000 processor, there were things that will
screw up with the data cache on an 030 or the instruction cache on an 020 or 030,
there were things that will break with new ROM revisions. 

These are all things we'll be seeing soon, if not already.

Now, down the future road, there is this dream of a protected task version
of the Amiga OS.

Let's face it, this isn't going to be a smooth transition.  I do not think that
anyone has compiled a list of the areas where we will find problems with
existing programs when and if we try this.  One thing is sure, tossing things
in MEMF_PUBLIC isn't going to be the only trick.  At least not until a big
list is made of everything that would require this.  Don't forget image planes,
sound samples, the name string of your child task, every gadget, your QBSBlit
entry points, your interrupt structures and data areas, and so on.  There are
probably more obvious ones that have never been listed.

It seems clear to me that moving to protected tasks on an Amiga will be an
evolutionary effort.  No existing program will work, I'd expect, so we'll need
to find a way to support the existing programming model side-by-side with new,
protected tasks.  At that time, there will be new rules and procedures for making
protected tasks.  Things like AddTask() (instead of a system CreateTask()) will
probably have to go, anyway, so there will probably be a whole new paradigm.

If we are to move beyond protection into separate, overlapping logical
address spaces for tasks, this whole "pointers to gadgets hanging off of
windows" and "linked lists of menu items" business has to go, anyway.

I strongly believe that a clear line should be drawn between practices which will
break real soon and those, such as the traditional MEMF_PUBLIC lip service,
which target some very long range, foggy future.

Now, if there are concrete, today type reasons why a rastport can't be on
a stack, perhaps I am missing them.  The key question would be whether anyone
might use the rastport asynchronously (i.e., not as your task), and then,
of course, whether the system tasks will ever be disallowed from using
memory on your stack.

My feeling is that until C-A gives the developers a list of exactly what it
will take to be a protected task, including exactly which functions might
use structures you provide to functions on a schedule other than your own,
it is not a positive step to scare people into tossing everything in the
world into MEMF_PUBLIC.

In the meantime, I put rastport structures on my stack all the time.  I love
doing it, it makes me hot.  Of course, I'm prepared to revise my programs
and issue a timely update to my registered users if:
1) I inadvertantly did something incompatible with a new OS release, or
2) I want to take advantage of major new features in a new OS release, or
3) I think they should all send me $25 more. ;^)

I don't like disagreeing with Steve in public like this, because it clouds
the fact that I take almost every other thing he says as Gospel.

Oh, yes, don't take this posting as a suggestion that the majority of
Carolyn's suggestions are not extremely important.  I'd like a little more
explanation about which of the suggestions are related to protected tasks,
and which are related to anticipated new processors, caches, and MMU usage.

Also, note well that my views do not represent Commodore's official policy.

	jimm

-- 
Jim Mackraz, I and I Computing	   	"Like you said when we crawled down
{cbmvax,well,oliveb}!amiga!jimm          from the trees: We're in transition."
							- Gang of Four
Opinions are my own.  Comments are not to be taken as Commodore official policy.
Technical Details
Message-ID: <3237@amiga.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!ames!oliveb!amiga!jimm
References: <5605@cbmvax.UUCP> <10227@well.UUCP> <5632@cbmvax.UUCP> <10262@well.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!ames!oliveb!amiga!jimm
From: jimm@amiga.UUCP (Jim Mackraz)
Newsgroups: comp.sys.amiga.tech
Subject: Re: Unsupported Programming Practices
Message-ID: <3237@amiga.UUCP>
Date: 8 Jan 89 00:56:28 GMT
References: <5605@cbmvax.UUCP> <10227@well.UUCP> <5632@cbmvax.UUCP> <10262@well.UUCP>
Reply-To: jimm@cloyd.UUCP (Jim Mackraz)
Organization: Commodore-Amiga Inc, Los Gatos CA
Lines: 79