On 8 May 2015 at 13:34, Rafael Schloming <r...@alum.mit.edu> wrote: > On Thu, Apr 30, 2015 at 11:18 AM, Robbie Gemmell <robbie.gemm...@gmail.com> > wrote: > >> On 30 April 2015 at 15:56, Ken Giusti <kgiu...@redhat.com> wrote: >> > >> > >> > ----- Original Message ----- >> >> From: "Robbie Gemmell" <robbie.gemm...@gmail.com> >> >> To: proton@qpid.apache.org >> >> Cc: us...@qpid.apache.org >> >> Sent: Thursday, April 30, 2015 10:20:07 AM >> >> Subject: Re: Python 3 port is 'done' >> >> >> >> On 29 April 2015 at 21:05, Ken Giusti <kgiu...@redhat.com> wrote: >> >> > >> >> > Well, done enough to consider merging to master. >> >> > >> >> > While the patch is quite large, most of the changes are simple syntax >> >> > changes to avoid non-python3 compliant syntax. >> >> > >> >> > The code is available on the kgiusti-python3 branch at the Apache >> repo. >> >> > >> >> > >> https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=shortlog;h=refs/heads/kgiusti-python3 >> >> > >> >> > I've also made a patch that can be viewed up on reviewboard: >> >> > >> >> > https://reviews.apache.org/r/33691/ >> >> > >> >> > I've verified that the unit tests and python examples run under >> python2.6, >> >> > 2.7, and python3.3. I'd appreciate if folks would take this patch >> for a >> >> > spin and report back their experience. >> >> > >> >> > Known Issues: >> >> > >> >> > These changes will be incompatible with earlier versions of the >> python 2.x >> >> > series. I know for a fact that python versions <= 2.4 won't even >> parse >> >> > this patch, and I suspect getting such older versions of python to >> work >> >> > would require lots of effort. I'm a little unsure of how well >> python 2.5 >> >> > will be supported - I have yet to test that far back. I also didn't >> test >> >> > anything earlier than 3.3 in the python3.x stream. >> >> > >> >> > -- >> >> > -K >> >> >> >> I gave thigns a kick with Python 2.7, and Jython 2.5.3 without issue. >> >> >> >> I also tried the maven build with Jython 2.7 RC3 (there was a new one) >> >> and things exploded similarly to the way they did before. >> >> >> > >> > Thanks Robbie. >> > >> > What kind of issues does Jython 2.7 complain about? I'll have to >> install that RC at some point... :( >> > >> > -K >> >> Lots of the tests fail due to error, most if not all of which seem to >> be "TypeError: Type not compatible with array". As I say though, this >> isnt to do with your changes since it did that last time I tried too >> :) >> > > I happened to run into a similar error recently and tracked the issue down. > I believe this error is due to an API incompatibility between jython 2.5 > and jython 2.7. In jython 2.5 you need to convert python strings into java > byte arrays manually and you use the 'array' constructor from the jarray > module to do this, e.g. something like: > array("string-that-has-bytes-in-it", 'b') will construct a java byte array > from a python string. In jython 2.7 this conversion is done automatically > (which is nice). Sadly though, the array constructor that worked in jython > 2.5 now barfs with exactly the TypeError message you are showing above. I > was able to get a simple smoke test working with proton-j and jython 2.7 by > removing the array constructor and just passing the string directly, > however this will not work on 2.5, so we probably either need to write our > own conversion function that behaves differently for different jython > versions or do a full switch over to 2.7. > > --Rafael
Oops. I missed your reply at the time, just saw it while looking for something else. I think we would just switch entirely to Jython 2.7, which has since reached GA, wouldnt we? Given those bits are only really intended for use in the tests, I don't see the same need for wide ranging compatibility there. I also wouldn't expect people to be configuring a different major version of Jython (but if I were to try, some incompatibility wouldn't necessarily be that surprising to me either). Robbie