Hi Steve, On 19/03/2012 12:59, Steve Cookson wrote:
Just to be clear it seems that you are saying that the wxWidgets and Wx::Perl classes and/or methods have different APIs (ie different calling parameters or different methods' sets) or different effects in 2.9.x than in 2.8.x and this requires code changes in application code. I've just Googled it and this is all I can find: http://docs.wxwidgets.org/2.9.3/overview_changes_since28.html Is this what we are talking about or is there more?
There is a little more. The changes.txt file in the root of the wxWidgets source gives a longer list. However, you may come across issues not listed there. The C++ folks get most of their problems fixed at compilation time whereas in the dynamic Perl world we get an entire extra layer of things to break in.
I may have given the impression that you would have to do a major rewrite. You probably won't. But there will likely be 4 or 5 lines in your entire application that need changing. When updating the Wx::Demo to work with both 2.8.x and 2.9.3 there were a few changes needed to stop various examples falling over. It wasn't a big job - but without it a few of the Demo examples did not work.
I think the point I was waffling extensively around is that if you install version 0.9912 of a Perl module where 0.9911 was previously installed, you have a reasonable expectation that other code elsewhere in the user's Perl that relied on 0.9911 will continue to work.
It would be very difficult to achieve that within Wx if the process of installing module 0.9912 also changed the underlying wxWidgets version.
So in answer to the question 'how do I force wxWidgets 2.9.3 in a makefile', I was pointing out that at this point in time it would probably be a bad thing and the way to approach it would be to support 2.8.12 and 2.9.3 in your code.
Over the next few weeks there will be another release of Wx to include a few extra 2.9.3 bits then I'll be providing a 2.9.3 based PPM repository in addition to the default 2.8.12 one. (Plus binary versions of Citrus Perl, of course).
I hope that having done enough to make 2.9.3 more easily available to Wx users, the extra features available will encourage folks to try it out and migrate their code. More feedback from real usage in real applications would be nice. What breaks, what doesn't.
When wxWidgets 3.0 is eventually released and then becomes the default install for Alien::wxWidgets, maybe we could revisit the idea of making 'require Alien::wxWidgets 0.70' mean 'force wxWidgets 3.x'.
These are just my thoughts. Maybe Mattia has a different view. If there is a general consensus that everything should work differently in some way, I'd have no problem working towards implementing it.
Best regards Mark