[IronPython] Django 1.1 on IronPython 2.6rc2 findings

Markus Törnqvist mjt at nysv.org
Wed Oct 28 11:48:05 CET 2009


Hi!

I got my code to run far enough on IronPython that it sets and clears
the test cookies, stores sessions in MSSQL, executes a lot of queries,
 but dies eventually on
"Process is terminated due to StackOverflowException" :(

However, as the new IPy version was released like yesterday (thanks guys!)
I figured I'd try it out.

So I installed 2.6rc2, but unfortunately it didn't help.

At this point I run into my skill deficiency; as I'm presented with the
options to Debug or Close and Debug doesn't tell me anything, I dunno
how to debug this.

Any hints?

Someone else wanna confirm this?

PS.
Here is how I had to hack generic.py, it's the modification to the beginning
of the execute function:

    def execute(self, operation, parameters=None, parameter_names=None):
        ## Take from mssql.py because of the wrong cursor seems to get initialized
        #"""
        parameter_names = None
        if parameters:
            parameter_names = tuple('@p%i' % i for i in range(len(parameters)))
            operation = operation % parameter_names
        #"""    
        print "adonet2dbapi: executing '" + str(operation) + "' with '" + str(parameters) + "'"

Here's the connect function (in its entirety) from mssql.py

def connect(connstr):
    relevant_parts = [part for part in connstr.split(';') if not part.upper().startswith('PROVIDER')]
    connstr = ';'.join(relevant_parts)
    #return generic_connect("System.Data", "System.Data.SqlClient.SqlConnection", connstr)
    # Fake signature of generic_connect!
    assembly = "System.Data"
    typename = "System.Data.SqlClient.SqlConnection"
    data = connstr
    factory = None
    # Import relevant definitions
    from generic import _build_string, _load_type
    if isinstance(data, dict):
        data = _build_string(data)
    connector = _load_type(assembly, typename)
    connection = connector(data)
    retval = Connection(connection) if factory is None else factory(connection)
    print 'returning', retval
    return retval

Way too hacky for my taste but it gets the job kinda done.

-- 
mjt




More information about the Ironpython-users mailing list