Vulkan ErupteD breaking changes and transition strategy
Peter Particle
ParticlePeter at gmx.de
Sun Mar 25 22:23:06 UTC 2018
ErupteD [0] is deprecated (one of its major modules). The project
content is supposed to be replaced completely. Current state was
copied into ErupteD-V1 [1] (without deprecation message), neither
ErupteD nor ErupteD-V1 will be further developed.
The breaking changes and Vulkan 1.1 are implemented in ErupteD-V2
[2]. At some future point ErupteD will be destroyed and recreated
with all releases of ErupteD-V2 [3].
Two issues bugged me with the previous design of the binding:
1. versions are not only disconnected from, but also far beyond
Vulkan
2. too many dub dependencies - if on windows, than platform
foreign ones
1. this is the reason for the involved transition, ErupteD needs
to get rid of all releases / version tags to restart with a clean
slate.
I also extracted the python generator script into its own non-dub
project, V-Erupt [5]. It was kind of wired to mix two different
purposes into one project version scheme.
2. the new approach does not require dependencies at all (other
than phobos / druntime). Platform dependent extensions are
implemented in form of a parameterizable mixin template. User is
supposed to mix them into his project and take care of the
dependencies himself [4]. Platform windows is pre-instantiated,
as it relies only on druntime. With this approach dub cache stays
clean from foreign platform dependencies and silences version
mismatch noise.
While at it, I also removed the DerelictUtil dependency and added
simple entrypoint loading mechanics. ErupteD-V2 is now fully
nothrow @nogc and should be -betterC compatible (not tested yet).
Moreover, no requirement for dub configurations any more.
[0] : https://github.com/ParticlePeter/ErupteD
[1] : https://github.com/ParticlePeter/ErupteD-V1
[2] : https://github.com/ParticlePeter/ErupteD-V2
[3] :
https://github.com/ParticlePeter/ErupteD-V2#erupted-deprecation-and-upgrade-process
[4] :
https://github.com/ParticlePeter/ErupteD-V2#platform-extensions
[5] : https://github.com/ParticlePeter/V-Erupt
More information about the Digitalmars-d-announce
mailing list