🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

3000 memory map causes problem. need advice.

#7160
From: henning
Date: Mon, 03 Dec 1990 04:11
61 lines
2794 bytes
Ok, as of December first, I know what has been causing GNU Emacs to
crash on amiga 3000's.  The only problem is that I am not sure how to
fix the problem.

This is the scoop.  Since all unix systems are remaped by mmu's all
programs start at a virtual address of zero.  Richard Stallman ( or
someone in his employ) decided that noone in his or her right mind
would ever edit files over sixteen megabytes large.  Therefore they
thought that leaving 24 bits for pointers would be sufficient.

They then used the top eight bits for typecast information in their
lisp object scheme.  Well.  That causes a big problem in that the main
memory of amiga 3000s starts at the seventeenth magabyte page.
Therefore, any pointer stored as a lisp object was corrupted when it
was stored.

The obvious fix was to replace all the storage macros ( yes, Mr.
Stallman hd the forsight to use macros rather than store things
hardcoded.) with ones that used a structure such as
struct Lisp_Object{
int val;
char type;
};
Which on the surface looks good.  However, once the compiler starts
chugging away, it finds that many of these structures are then
declared as register variables ( all well and good for the original
definitions which are all 32 bits long, even the union setup. )

I have spent about two hours puting in statemnts like
#ifdef NEED_ALL_BITS
   Lisp_Object foo;
#else
   register Lisp_Object foo;
#endif
when I come to the problem that often these structures are returned as
the value pof a function.  This is much more difficult to fix.

Musing to myself, I come across an idea.  All3000s are 68030 machines.
This means that they have an mmu embeded within them.
Would it be possible to write a loader which wuold set up the mmu to
relocat memory for the single porcess of emacs?  

As I am unfamiliar with 680551 machine calls, I am not sure how this
wuold be done.

Please send me some suggestions.  I am giving up on my former idea of
just restructuring the Lisp_object.

BTW.  Emacs 0.9 coming out soon.

				-henning
henning@stolaf.edu
henning@stolaf.UUCP

 

--
---------------------------------------------
All opinions are my own, as are the spellings
any deviation from the norm is just an effect
of my deviance.
Technical Details
Message-ID: <1990Dec3.041120.1142@acc.stolaf.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!usc!apple!agate!shelby!msi.umn.edu!noc.MR.NET!nic.stolaf.edu!thor.acc.stolaf.edu!henning

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!usc!apple!agate!shelby!msi.umn.edu!noc.MR.NET!nic.stolaf.edu!thor.acc.stolaf.edu!henning
From: henning@thor.acc.stolaf.edu
Newsgroups: comp.sys.amiga.tech
Subject: 3000 memory map causes problem.  need advice.
Message-ID: <1990Dec3.041120.1142@acc.stolaf.edu>
Date: 3 Dec 90 04:11:20 GMT
Sender: news@acc.stolaf.edu
Reply-To: henning@thor.acc.stolaf.edu ()
Organization: St. Olaf College; Northfield, MN
Lines: 61