I am about to apply a fairly significant set of changes to the wxHaskell master repository at code.haskell.org. This is in order that I can apply the changes needed to support wxWidgets versions from 2.9 onwards, and the major architectural changes this entails.
The changes will be as follows:
- The current mainline tip will be branched into a wxhaskell-0.13 codeline, which will receive only minor updates going forward. This codeline will be appropriate for users of wxWidgets 2.8.x. In practice, this means that users who pull the darcs repo will see the following new directories:
- wxdirect-0.13: The branch of wxDirect supporting wxWidgets 2.8.x
- wxcore-0.13: The branch of wxcore supporting wxWidgets 2.8.x
- wx-0.13: The branch of wx supporting wxWidgets 2.8.x
- The mainline tip will be tagged WXHASKELL-0-13-BRANCH to show the historical relationship between the two branches.
- The mainline will have the patches needed to update to support wxWidgets 2.9.x, based on the work by Dave Tapley and others, and sourced from the development repositories on Darcsden, Readers of the wxhaskell-devel list will be familiar with these.
- Because Dave's codebase was branched late last summer, it has not been possible to simply push his patches to the wxHaskell mainline, since darcs never manages to resolve the differences. For this reason, I have developed a smaller, equivalent set of patches on whcih I have tried to maintain as much history as possible. This is regrettable, but I don't see an easy way around the problem.
- There are a number of changes, but the most significant is that there is a new module, wxc, which contains the wxWidgets C language wrapper. Wxcore is now a pure Haskell module. In addition, we have removed the vestiges of Eiffel support from wxc.
- The new codeline starts as version 0.15. Users will find that this is contained in the directories:
- wxdirect: wxDirect version supporting wxWidgets 2.9.x and later. Because Eiffel support is removed, this version cannot be used with wxhaskell 0.13.
- wxc: The C language wrapper for wxWidgets. On our supported platforms (Windows, Linux, OS X), this always generates a shared library. As such it is theoretically possible for wxc to be used as the basis for a wxWidgets binding for another language. There are members of the D community playing with this idea.
- wxcore: A pure Haskell wrapper over wxc.
- wx: This is basically unchanged from wx in revision 0.13.
When the new versions are committed, they will be accompanied by uploads to Haskage from both branches, along with build instructions for both versions.
Shortly after the formal release of 0.15, I will be producing a cabal wrapper for wx-config on Windows. This will simplify the Windows build significantly, as it currently depends on my privately updated version of wx-config-win on Google code.
Please shout loudly and soon if you have any problem with what I am planning to do, as I am planning to make these changes within the next week. The wxWidgets 2.9 support has been waiting in limbo for too long now (my fault, I accept).