MacOS X, memory layout

Simon Marlow simonmar@microsoft.com
Mon, 3 Dec 2001 13:41:30 -0000


This is a multi-part message in MIME format.

--------------InterScan_NT_MIME_Boundary
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C17C00.36B4922A"

------_=_NextPart_001_01C17C00.36B4922A
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

By all means boldy commit, with a warning.
=20
Cheers,
    Simon

-----Original Message-----
From: S=E9bastien Carlier [mailto:sebc@posse42.net]=20
Sent: 03 December 2001 12:58
To: cvs-ghc@haskell.org
Subject: MacOS X, memory layout



In order to implement Plan C in ghc/rts/Storage.h:443:=20

Hence, Plan C: (unregisterised, compile-through-vanilla-C route only)=20
If we didn't manage to get info tables into the text section, then=20
we can distinguish between a static closure pointer and an info=20
pointer as follows: the first word of an info table is a code pointer,=20
and therefore in text space, whereas the first word of a closure pointer =

is an info pointer, and therefore not. Shazam!=20


I need to move the entry code pointer to the start of info tables.=20
I'm a bit uncomfortable with committing this change, as it will=20
require everyone to recompile everything.=20
Should I=20
- boldly commit, with the proper notice that all code must be=20
recompiled ?=20
- guard the change in a #if block so that it is only active on OS X ?=20

--=20
S=E9bastien=20


------_=_NextPart_001_01C17C00.36B4922A
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<TITLE>Message</TITLE>

<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR></HEAD>
<BODY>
<DIV><SPAN class=3D052214113-03122001><FONT face=3DArial size=3D2>By all =
means boldy=20
commit, with a warning.</FONT></SPAN></DIV>
<DIV><SPAN class=3D052214113-03122001><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D052214113-03122001><FONT face=3DArial=20
size=3D2>Cheers,</FONT></SPAN></DIV>
<DIV><SPAN class=3D052214113-03122001>&nbsp;&nbsp;&nbsp; <FONT =
face=3DArial=20
size=3D2>Simon</FONT></SPAN></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px =
solid; MARGIN-RIGHT: 0px">
  <DIV></DIV>
  <DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr =
align=3Dleft><FONT=20
  face=3DTahoma size=3D2>-----Original Message-----<BR><B>From:</B> =
S=E9bastien=20
  Carlier [mailto:sebc@posse42.net] <BR><B>Sent:</B> 03 December 2001=20
  12:58<BR><B>To:</B> cvs-ghc@haskell.org<BR><B>Subject:</B> MacOS X, =
memory=20
  layout<BR><BR></FONT></DIV><!-- Converted from text/enriched format =
--><BR>
  <DIV>In order to implement Plan C in ghc/rts/Storage.h:443: </DIV>
  <BLOCKQUOTE>
    <DIV><FONT color=3D#0000de>Hence, Plan C: (unregisterised,=20
    compile-through-vanilla-C route only) </DIV>
    <DIV>If we didn't manage to get info tables into the text section, =
then=20
    </DIV>
    <DIV>we can distinguish between a static closure pointer and an info =
</DIV>
    <DIV>pointer as follows: the first word of an info table is a code =
pointer,=20
    </DIV>
    <DIV>and therefore in text space, whereas the first word of a =
closure=20
    pointer </DIV>
    <DIV>is an info pointer, and therefore not. Shazam! </DIV>
    <DIV></FONT></DIV></BLOCKQUOTE><BR>
  <DIV>I need to move the entry code pointer to the start of info =
tables. </DIV>
  <DIV>I'm a bit uncomfortable with committing this change, as it will =
</DIV>
  <DIV>require everyone to recompile everything. </DIV>
  <DIV>Should I </DIV>
  <DIV>- boldly commit, with the proper notice that all code must be =
</DIV>
  <DIV>recompiled ? </DIV>
  <DIV>- guard the change in a #if block so that it is only active on OS =
X ?=20
  </DIV><BR>
  <DIV>-- </DIV>
  <DIV>S=E9bastien </DIV></BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C17C00.36B4922A--

--------------InterScan_NT_MIME_Boundary--