adonthell-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Adonthell-devel] v0.3 code update underway


From: Kai Sterker
Subject: Re: [Adonthell-devel] v0.3 code update underway
Date: Wed, 27 Apr 2016 11:57:39 +0200

Actually, that is an easy one. With SWIG 3.x, integers are no longer converted to booleans automatically.

There appears to be a define (SWIG_PYTHON_LEGACY_BOOL) to restore the old behaviour, but it might be better to change the Python scripts and use the True/False boolean types present since Python 2.2.1.

I don't think limiting us to Python newer than 2.2 in this day and age would be big restriction (2.2.1 was released in April 2002).

Tonight will see the beast fully running again (I hope!) :-)

Kai

P.S.: I am also thinking of adding a bit of a version check to the configure script, to make sure SWIG and Python are compatible. Here's an incomplete list I came across right now. Need to check newer Pythons and then the details for the 2.x series, but it's a start:
   swig version:            2.0.3   2.0.4

A. python 2.x                 +       +
B. python 3.1                 +       +
C. python 3.2                 -       +

On Wed, Apr 27, 2016 at 12:00 AM, Kai Sterker <address@hidden> wrote:
Hooray,

Adonthell 0.3 compiles, installs and runs with Python 3.5 :-).
Admittedly, it isn't getting very far yet:

address@hidden:~/adonthell/adonthell-0.3$ adonthell-wastesedge
exec_file: init load failed:
Traceback (most recent call last):
  File "./init.py", line 229, in <module>
  File "./init.py", line 43, in __init__
  File "./adonthell.py", line 3420, in set_visible
TypeError: in method 'win_base_set_visible', argument 2 of type 'bool'
init: destructor called

But after struggling mightily for a while to get "import _adonthell" working that's quite a good point to conclude todays coding session. Apparently, with Python 3, SWIG is missing some of the required glue to support statically linked Python modules, so I had to throw in some extra code to get it past that hurdle. For a minute I already feared I'd have to convert stuff to dynamic module loading. That would not have been fun.

Regards,

Kai

On Mon, Apr 25, 2016 at 11:34 PM, Kai Sterker <address@hidden> wrote:
Just a little update:

I have everything compiling with gcc 5.3 and Python 3.5, with only a few more warnings to get rid off.

The thing I need to look at next, however, is the make install step, during which we compile the python scripts and only install the compiled ones. This is different with Python 3, as (a) the .pyc files end up in a subdirectory called __pycache__ and (b) they get decorated with the name of the python interpreter. Guess there is some reading I have to do in order to figure out what to make of that.

Once that is done, I'll check that things still work with Python 2 and get rid of the remaining warnings. Then I should be able to commit the first batch of changes (really only a few!).

Regards,

Kai


On Mon, Apr 25, 2016 at 11:32 AM, Kai Sterker <address@hidden> wrote:
Hi all,

as discussed in January, I have started with the process of going over the 0.3 code to make sure it still compiles on modern systems. I assume nobody else has done anything on that front yet?


I am currently touching up the configure script, so have not even attempted to compile anything.

My plan is to enable support for Python 3 (and I would have dropped Python 2 completely, if OSX didn't still only ship 2 by default). Our scripts shouldn't really have anything in them that would be incompatible between 2 and 3, and SWIG should take care of the rest. So unless it turns out to be a huge effort, I will try to see this through.

SDL I'd keep at 1.2. Porting to 2.0 might be feasible by taking the relevant code from v0.4, but I don't think there is much to gain. But we'll see ... I do have a bit of time right now :-).


In general, I want to make sure the code configures and builds on at least Ubuntu 14.04 and 16.04 (both I have around for testing). I'd also like to get a 64bit Windows build, but not sure yet if I try cross-compiling or install Windows again. Possibly former, as the effort of getting all the dependencies set up appears to be the same in either case.

For OSX, I can get my hands on 10.9, and I might be willing to install a more recent version on a separate partition, at least. From what I've read, SDL 1.2 has some troubles on newer OSX, unless the bleeding edge is used [1], so ensuring that a new build runs seems to be essential. It would also be nice to get the binary signed, but I don't think I'll pay for a developer account just for that.


Oh, I am also thinking about moving the v0.3 code from CVS to git. Even if nobody else will work on the code, it might not be a bad idea to migrate. Since Savannah is offering git repos too, I'll probably keep it there.


For Waste's Edge, there isn't really much to change. Maybe some of the scripts need some updates for Python 3. However, I would want to replace the music files with ones that have a higher quality. If I recall correctly, those that are in the game were encoded with a lousy bitrate to keep the download small. But I believe I had versions with better quality around somewhere. Got to see if I can dig them out.


That's all I can think of that really needs doing. Once the first changes are in, it would of course be nice to test on other distros. I'll let you know when it's time for that.

Let me know if there is anything else that might be worth considering.

Regards,

Kai




reply via email to

[Prev in Thread] Current Thread [Next in Thread]