February 12, 2016

DerelictFT 1.1.0

I’ve just tagged release 1.1.0 of DerelictFT. This updates the binding to FreeType 2.6.3 (the 1.0.x series was implemented against FreeType 2.5), which should work with any of the 2.6.x releases so far. The changes in FreeType 2.6 compared to 2.5 are minor, but they are of a nature that makes SharedLibVersion support problematic. As such, I have no plans to add support for it to DerelictFT.

February 10, 2016

DerelictLua 1.3.0

I’ve finally gotten around to adding support for Lua 5.3 to DerelictLua. It can be found in the 5.3 branch at github and is accessible through DUB via the 1.3.0 version tag. Lua 5.2 is still usable through 1.2.x, the most recent release there being 1.2.3. I had intended to add support for SharedLibVersion, but it turned out to be unfeasible. Lua 5.3 removes a number of functions and changes the value of some enum fields.

If you’re using DerelictLua on Windows, I recommend you download the pre-built DLL from Lua Binaries if you aren’t interested in building it yourself.

February 01, 2016

DerelictPQ 2.0.0

After I merged a pull request for DerelictPQ, I realized something I had never noticed before. The binding was quite inconsistent with the rest of Derelict. The number one philosophy behind a Derelict binding is to remain as consistent as possible with the original C library, so that any C code using the library can be easily ported to D. DerelictPQ went against that by using named enums. There were some stylistic issues as well.

As a first step toward fixing this, I created a new branch of DerelictPQ called deprecated-93, added the PR changes there, and tagged a new 1.0.2 release. Those who need, or want, to continue using it can. I will not be making any updates there from here on out.

Next, I went through the pq.d module and made all enums anonymous. The enum names are now aliased to int. This is how the rest of Derelict does it. I could have taken a different approach and fixed it in a way that maintains backwards compatibility, but it would have been stylistically different from the rest of Derelict. So I opted to break things.  I also removed some enum declaration which were apparently added for convenience, as they do not exist in the C headers. This is also a breaking change. I also made some other changes, such as making all of the C functions @nogc, that weren’t breaking.

Because of the breaking changes, I’ve tagged a new 2.0.0 release. If you’ve been declaring your derelict-pq dependency in your dub.json using ~> or == with the version number, you should be able to keep right on with what you’ve been doing. If you’ve been using >=, then next time you run ‘dub upgrade’ on your project things will break. You can change your dub.json to use 1.0.2 as the explicit version (there will be no more updates in that series) or fix your code to use the new 2.0.0 enums.

The binding is still against libpq 9.3. The latest release is 9.5.0. At some point, I’ll get around to diffing the headers from 9.4 and 9.5 with 9.3 to see if I need to add anything to the binding. That may entail new branches and new major version numbers for DerelictPQ. I’ll post any updates here as usual. But this is not a priority for me, so it isn’t happening soon.

I learned a major lesson from this. I need to pay more attention when adding third-party packages to DerelictOrg.