Tested building on OSX (10.6) with Python 2.6.1 and SWIG 1.3.31. Found a
small bug, but otherwise appears to run. Too bad that it has such a new
Python, though. Guess for a really old version I have to dig out the old
iBook with OSX 10.4 on it ;-). Haven't booted that up in years ...

While testing, I also noticed that this machine already has OSX 10.9 on a
second partition. Since we only use that as DVD player hooked up to the TV
normally (backlight of the internal screen is broken), I might as well try
to upgrade that to something newer and get a proper OSX application built
and tested on 10.11 that way. Means I don't have to fight with my wife over
her laptop, and we can keep it running on 10.9 and our data out of the
cloud ;-).

So much for today. Next on the list, testing with c++-11 and hopefully gcc
6.

Kai

On Sat, Apr 30, 2016 at 6:57 PM, Kai Sterker <kai.ster...@gmail.com> wrote:

> First batch of changes committed after I managed to play through from
> start to finish with not obvious problems.
>
> If you can, please give it a try. For instructions, see
> http://savannah.nongnu.org/cvs/?group=adonthell
> You'll want the "adonthell-0.3" and "wastesedge" modules.
>
> I have not yet tried it with Python 2.x, only 3.4 and 3.5. Should have an
> older Python on my old MacBook, so I'll test that next.
>
> The one thing I also have not yet tried is the in-game python console.
> Guess that might not be working yet.
>
> At any rate, it's amazing that even after such a long time, there's still
> stuff in there that made me smile :-).
>
> Up next: more testing and implementing other stuff from my TODO list.
>
> Kai
>
> On Thu, Apr 28, 2016 at 12:22 AM, Kai Sterker <kai.ster...@gmail.com>
> wrote:
>
>> Good news, everyone!
>>
>> I've been able to play for a bit, however more thorough testing is
>> required.
>>
>>
>> Turns out on Python side, there was another incompatibility that needed
>> addressing:
>>
>> [*] Previously, the division operator (/) would perform integer division
>> if both operands were integers. That was something we relied upon. Well, no
>> more with Python 3. Luckily, since Python 2.2 there's the floor division
>> operator (//) that will still do the correct thing.
>>
>> [*] More of a concern is another change in SWIGs behaviour, though.
>> Previously, when calling a wrapped C++ method such as
>> connect_callback(PyObject *callback, PyObject *args = NULL) on Python side
>> with only a single argument, args would indeed be NULL. Right now they get
>> set to Py_None. That in turn leads to issues when actually calling the
>> callback, since Py_None is not a valid argument tuple. I've not yet figured
>> out what is causing this change in behaviour. For now I am setting args to
>> NULL if they come as Py_None, but I am not sure if I fixed all possible
>> locations yet. The better thing would be to find the root cause and restore
>> the expected behaviour.
>>
>>
>> Other than that, my TODO list just keeps growing, as other areas that may
>> need changes come to mind.
>> [*] I.e. using the proper directories for configuration and savegames on
>> Linux systems instead of stuffing everything into ~/.adonthell.
>>
>> [*] And then, just today, gcc 6.1 was released. A couple days after I
>> finally got my hands on 5.3 :-(. To make matters worse, it'll enable C++-14
>> by default, so there definitely will be more changes required. (And I've
>> yet to try and compile with C++-11 turned on!)
>>
>>
>> But we'll be getting there eventually. Weekend is near and then there are
>> some holidays over the next couple weeks as well, so time should be plenty
>> for once. It's actually a quite fun little project for a change. Just hope
>> I am not boring you with these little progress updates.
>>
>> And yes, I should be able to commit the first part of the work this
>> weekend.
>>
>> Regards,
>>
>> Kai
>>
>> P.S: An invaluable resource for the upgrade to Python 3 is
>> http://python3porting.com/, should somebody ever get into a similar
>> situation.
>>
>>
>> On Wed, Apr 27, 2016 at 11:57 AM, Kai Sterker <kai.ster...@gmail.com>
>> wrote:
>>
>>> 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                 -       +
>>>
>>>
>
_______________________________________________
Adonthell-devel mailing list
Adonthell-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/adonthell-devel

Reply via email to