This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Addressing Layout in 1.3.x


Hi,

[ This question can presumably only be answered by people who know the 
internals of the code that goes into cygwin1.dll, and I hope I'm not out of 
line for asking here rather than trying to figure it out from the source, 
both current and historic... ]


One of the applications ported to Cygwin is the XSB Prolog interpreter 
(<http://xsb.sf.net/> / <http://sf.net/projects/xsb/>). The interpreter 
uses a "tagged" scheme (like the old generation of lisp machines had in 
hardware) to make instances of its interpreter's data types 
self-identifying. Since there are no real tag bits available in today's 
general-purpose processors, the XSB implementation puts its tags in 
carefully chosen bits from ordinary words (32 bit iintegers on an x86 machine).

"Carefully chosen" means bits whose values are dictated and fixed by the 
addressing layout of the processor and operating system (and / or any 
execution environment layered over the OS) on which XSB runs.

In practice, this means bits whose value does not change regardless of how, 
when or where the application loads into VM and regardless of how much 
memory the application allocates during execution. Hence those bits can be 
replaced with the interpreter's tag bits until it becomes necessary to 
dereference that value (when the tag indicates the value is a pointer of 
some sort). At that point, the known correct values of the usurped bits are 
replaced with their proper values and the the deference occurs.

Naturally, that means that the XSB implementation is sensitive to changes 
in the addressing assignments of the environment that's hosting it. For XSB 
running under Cygwin, this presumably (potentially, for all I know) 
includes both Windows and Cygwin.


So, after that lengthy introduction, my question is: Did the addressing 
layout change in Cygwin 1.3.x vis. a vis. 1.1.x?


Thanks for reading all the preliminaries to get to the question.

Randall Schulz
Mountain View, CA USA


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]