<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal>Thank you for your efforts with IronPython 2.6.1. I am
looking forward to the final product.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I was testing 2.6.1 RC1 to see if an issue I was having with
v2.6.0 was fixed and I ran into an interesting problem with pyReadLine (v1.13),
which I had installed under CPython v2.6.4. A python-based program I am
testing requires the readline module but I am getting an odd error when readline
is loaded. The error is “SystemError: Attempted to read or write
protected memory. This is often an indication that other memory is corrupt.”<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I created a simple test case that shows the problem in
action. This test case runs fine under CPython v2.6.4 but fails under
IronPython v2.6.1 RC1. Please ignore the fact that it is really
weird-looking code and not something that would normally be used. The
test case demonstrates the problem in as few lines as possible while exercising
the same steps that readline uses (see the install_readline() function in
readline’s Console.py).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>import ctypes<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>msvcrt =
ctypes.cdll.LoadLibrary("msvcrt")<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>systemfn =
ctypes.c_int.from_address(ctypes.addressof(msvcrt.system))<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>systemfn.value = ctypes.c_int.from_address(ctypes.addressof(msvcrt.system)).value<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The last line triggers the error: “SystemError:
Attempted to read or write protected memory. This is often an indication that
other memory is corrupt.”<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Apparently readline overwrites a function pointer (“PyOS_ReadlineFunctionPointer”)
inside the DLL that implements the sys module so that the line input
functionality passes through the python readline module. Since readline
uses the sys.dllhandle to get access to the DLL and in IronPython v2.6.1 RC1 the
sys.dllhandle is 0, I’m thinking the pyReadline package won’t work
on IronPython even if the above error is fixed.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>