NLua/NLua — pull request #106 by Mervill (2014-10-04 07:58:06+00:00)
Title: Unity3D compatibility.

The main change in this pull is that instances of `CLSCompliantAttribute` have been wrapped with the directive `!UNITY_3D` to suppress compiler warnings related to the attribute on that platform (Unity itself is not CLS Compliant). There is an undocumented way to disable these warnings, but it needlessly complicates the install process, this method only requires a compiler directive.

The issue of line endings has been [discussed before](https://github.com/NLua/NLua/pull/84), here is my rationale as to why they should be normalized:

- There is no easy way to prevent Unity from throwing warnings about inconsistent line endings. Normalizing them is then a technical requirement for platform compatibility, not just a 'style' or 'cleanliness' change. Normalizing line endings means that NLua won't throw compiler warnings "out of the box", which is always the best option.

- It allows the Unity changes to be integrated directly into the master branch instead of being separate. The changes needed by Unity are so minor that they don't necessitate a branch, they fall into the same category as the `XBOX` and `SILVERLIGHT` directives. There would also be one less branch that needs to be kept up to date.

- It's unfortunate that changing line endings changes the blame for the entire line. Overall the lines that do have their blame changed are relatively minor, and the commit message states that line endings are being changed.

- Consistent line endings is a good best practice.

I think it would be much easier to deal with this problem now, and enforce consistent line endings going forward, then it would be to (perhaps permanently) maintain a Unity branch in parallel to master, and again, branching seems like overkill when you see what changes are needed to properly support the platform.