Hi ironpython,

Here's your Daily Digest of new issues for project "IronPython".

In today's digest:ISSUES

1. [New issue] GetEncodings called in StringOps.cs fails using Mono
2. [New comment] GetEncodings called in StringOps.cs fails using Mono

----------------------------------------------

ISSUES

1. [New issue] GetEncodings called in StringOps.cs fails using Mono
http://ironpython.codeplex.com/workitem/33646
User TRJG has proposed the issue:

"I have submitted this verified bug to Mono because its technically their 
implementation of Text.GetEncodings() that is extremely flawed (and absolutely 
does not work). Since I have submitted it I have not seen much interest to fix 
it even though it absolutely does not return supported encodings. I figured I 
would let you guys know about it, and how IronPython's only call to this method 
ends up throwing an uncaught exception.

The GetEncodings() call I am referring to is in StringOps in the function 
MakeCodecsDict. What happen is when this calls is made, an array of hardcoded 
encoding names are returned. When called, the encodings fail and throw an 
exception that is not caught in IronPython.  Normally when GetEncodings() is 
called in .NET only supported encodings are returned, however is not the case 
with MONO. In fact, I'd argue that at this point GetEncodings() is pretty much 
guaranteed to fail on alot, if not most systems. (As a note, I am using 
OpenSuse 64 bit)

I'm not 100% sure but wrapping a try catch around 
"NormalizeEncodingName" might just fix the problem. 

Thanks,
Trjg"-----------------

2. [New comment] GetEncodings called in StringOps.cs fails using Mono
http://ironpython.codeplex.com/workitem/33646
User TRJG has commented on the issue:

"I have just confirmed that this technique works. Out of 95 encodings provided, 
72 failed on my machine while 23 passed. 

Here is the simple code I used to check this.

static void Main()
{
    Console.WriteLine("Getting Encodings");
    var encodings = Encoding.GetEncodings();
    int successful = 0;
    int failed = 0;
    foreach(var encoding in encodings)
    {
        try
        {
            var name = encoding.Name;
            Console.WriteLine(string.Format("Encoding name is {0}",name));
            ++successful;
        }
        catch(Exception e)
        {
            Console.WriteLine("Got error.");
            ++failed;
        }
    }
    Console.WriteLine(string.Format("Successful {0}",successful));
    Console.WriteLine(string.Format("Failed {0}",failed));
}


I modded my personal source code of IronPython but have not yet personally 
tested it against the massive code base that I wrote and am looking to port to 
Linux. Mono's GetEncodings, and IronPython's call to it have been hanging me up 
thus far.

Thanks for the stellar library,
Mike"
----------------------------------------------



----------------------------------------------
You are receiving this email because you subscribed to notifications on 
CodePlex.

To report a bug, request a feature, or add a comment, visit IronPython Issue 
Tracker. You can unsubscribe or change your issue notification settings on 
CodePlex.com.
_______________________________________________
Ironpython-users mailing list
[email protected]
http://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to