ATTN Derelict Users and Package Maintainers

OlaOst via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Dec 31 02:26:16 PST 2014


Works fine for me on windows, after running 'dub upgrade'.

I tested the SharedLibVersion with a 2.0.1 and a 2.0.3 SDL dll.
With the 2.0.3 dll, I could call functions added in SDL 2.0.2 
even when using SharedLibVersion(2, 0, 0) - is this intended 
behaviour?

With the 2.0.1 DLL I got the expected 'Failed to load symbol' 
error without using the SharedLibVersion, or using 
SharedLibVersion(2, 0, 2).

However, if I call one of the functions added in SDL 2.0.2 when 
loading the 2.0.1 context, I get an 'object.Error@(0): Access 
violation' error. Would it be possible to get a more informative 
error message in this case?

Highly appreciate your work on Derelict, BTW.

On Wednesday, 31 December 2014 at 01:35:32 UTC, Mike Parker wrote:
> I've added a new feature to Derelict that I'd appreciate some 
> feedback on. It works for me, but I want to verify that it 
> works in the wild before I expand it to other packages and move 
> forward with another feature I plan to add. You can read more 
> about it in my blog post at [1].
>
> If you are using DerelictSDL2 in a project, I'd appreciate it 
> if you'd change your dependency to "derelict-sdl2": ">=1.9.0" 
> and let me know if it breaks your build or not. And if you 
> aren't using any of the functions added in SDL 2.0.2, then I'd 
> also appreciate it if you'd test the new feature as described 
> in the blog post:
>
> // If you require functions in 2.0.1
> DerelictSDL2.load( SharedLibVersion( 2, 0, 1 ));
>
> // If you don't need any functions beyond 2.0.0
> DerelictSDL2.load( SharedLibVersion( 2, 0, 0 ));
>
> The goal is to allow you to load any version of SDL that your 
> app can support from one package. I've noticed that most people 
> tend to use the highest version of DerelictSDL2 (1.2.x), which 
> only loads SDL 2.0.2 and 2.0.3 and will fail with the lower 
> versions, even though they aren't using any of the newer API 
> additions.
>
> If you have a package you maintain that uses DerelictUtil for 
> loading, you do not need to implement this yourself. It is 
> entirely optional. Not all DerelictOrg packages will get this. 
> However, if it makes sense in the context of the library you 
> are loading, please consider implementing it and letting me 
> know how it goes. Essentially, you'll need to change your 
> dependency to "derelict-util":">=1.9.0" and override the new 
> protected method configureMinimumVersion in your loader to 
> install a library-specific MissingSymbolCallback. I've linked 
> an example in the blog post.
>
> [1] http://dblog.aldacron.net/new-derelict-feature/



More information about the Digitalmars-d-announce mailing list