<div dir="ltr"><div>Upstream has implemented my suggestion to re-add default initialization as opt-in via a new define:<br><br></div><div><a href="https://github.com/g-truc/glm/issues/735">https://github.com/g-truc/glm/issues/735</a><br><a href="https://github.com/g-truc/glm/commit/8390a77b3a278b15259e5ca6e67f7e41badc457b">https://github.com/g-truc/glm/commit/8390a77b3a278b15259e5ca6e67f7e41badc457b</a><br><br>Could you apply the commit as a patch so maintainers can then define GLM_FORCE_CTOR_INIT and avoid having to modifying code?<br><br></div><div>Let me know as then I can then avoid having to embed the current release in my software.<br><br></div><div>Thanks<br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 23, 2018 at 3:07 PM, Andrew Caudwell <span dir="ltr"><<a href="mailto:acaudwell@gmail.com" target="_blank">acaudwell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<br><div><div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Sat, Mar 17, 2018 at 9:31 AM, Guus Sliepen <span dir="ltr"><<a href="mailto:guus@debian.org" target="_blank">guus@debian.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">tags 892861 + wontfix<br>
thanks<br>
<span class="m_-2130934793910647570gmail-"><br>
On Wed, Mar 14, 2018 at 10:48:33AM +1300, Andrew Caudwell wrote:<br>
<br>
> The packaged version of GLM, 0.9.9~a2 is an alpha (the current release is still<br>
> 0.9.8.5) and removes the default initialization of vector, matrix and<br>
> quaternion types. Because of this code written against any earlier versions of<br>
> GLM may now have uninitialized value bugs introduced by this change (e.g. where<br>
> GLM types are member variables of a class) or now behave differently (mat4()<br>
> previously gave you an identity matrix, now this gives you a zero'd matrix).<br>
> Several issues have been raised upstream (including by myself) to re-add<br>
> initialization or at least make it optional.<br>
</span><span class="m_-2130934793910647570gmail-">> Additionally the requirement in this version to define GLM_ENABLE_EXPERIMENTAL<br>
</span>[...]<br>
<span class="m_-2130934793910647570gmail-">> to use simple functions like length2() has broken multiple packages. I have put<br>
> off fixing this since making it compile just exposes the user to the<br>
> uninitialized value bugs. Unfortunately this has now meant my gource and<br>
> logstalgia debian packages have been removed from debian since they don't<br>
> complile with this GLM version.<br>
<br>
</span>I believe these are intentional changes by the author of GLM. I expect<br>
that GLM 1.0.0 will be released before the next release of Debian, and<br>
any packages that depend on GLM should instead be fixed to handle the<br>
new behavior.<br></blockquote><div><br></div></span><div>The upstream author hasn't commented on these issues yet so there's no reason to assume they will leave things in the current state without at least providing at least a work around to the initialization issue.<br></div><span class=""><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Unless I am mistaken, projects depending on GLM can just #define<br>
GLM_ENABLE_EXPERIMENTAL and provide explicit default initializers, which<br>
will be backwards compatible with older versions of GLM.<br></blockquote><div><br></div></span><div>Fixing the default initializers issue requires a thorough code review and probably debugging with valgrind to find these cases (-Wuninitialized won't find these) which I think is an unreasonable burden on maintainers.<br><br></div><div><div>Other distros such as Redhat, Gentoo and Arch Linux have continued 
to package the current release 0.9.8.5 with a fix for the GCC 7.3 issue 
(which only requires changing an == to >=):<br><br><a href="https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/glm" target="_blank">https://git.archlinux.org/<wbr>svntogit/community.git/tree/<wbr>trunk/PKGBUILD?h=packages/glm</a><br></div><div><br>Ubuntu 18.04 has imported the current Debian unstable libglm-dev package which has made resolving this issue more urgent in my view.<br><br>My current work around is to embed the patched version of 0.9.8.5 and provide a --with-glm option for distros that have a compatible version of the library.<br><br>Ideally I would like to be able to use the Debian libglm-dev package so I hope you reconsider.<br><br></div><div>Cheers<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>Andrew<br></div><div></div><br></font></span></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class="m_-2130934793910647570gmail-HOEnZb"><font color="#888888"><br>
--<br>
Met vriendelijke groet / with kind regards,<br>
      Guus Sliepen <<a href="mailto:guus@debian.org" target="_blank">guus@debian.org</a>><br>
</font></span></blockquote></span></div><br></div></div></div></div>
</blockquote></div><br></div>