-
-
Notifications
You must be signed in to change notification settings - Fork 82
Add bringris to two of the build systems #137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
still-flow
wants to merge
6
commits into
zenorogue:master
Choose a base branch
from
still-flow:bringris_build
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
c7ff0e8
add bringris to Makefile and mymake
still-flow 4889f55
refactor Makefile.simple; fix one warning
still-flow 8da810f
add Travis entries for bringris
still-flow ee047d2
add GH CI entries for bringris
still-flow 12031b3
glew stuff together
still-flow 424bb61
fix sometimes-uninitialized warnings
still-flow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd vastly prefer to see
-Wno-whatever-specific-warning, not a blanket-Wno-error.Also probably this should be split into two rules,
Also, "if you liked it then you should have put a test on it" — please add it to the TravisCI config as part of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re CI entry: I was just thinking about it. How should I organize it, though? Will just adding one Linux and one MacOS entry suffice (...and Windows. Oh.)?
Also, it's probably best done in a later PR, since I'd like this one to be reviewed by zenorogue first. So that I'm sure this is the Official way of building things. Especially when it comes to Windows, since, y'know, Windows.
Re splitting of the rule: yeah, it's likely better to do this. At the very least for convenience of re-building when source changes.
As to
-Wno-error, I should remove it altogether. It's just that then there's the burden of fixing those warnings, but I guess I shouldn't be so lazy.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My strong feeling is that it's best to put it all in one PR (and in fact in one commit). That way, you get the whole thing reviewed by zenorogue, instead of having to come back later and say "oh yeah here are the tests," which incidentally risks having the code committed for a long time without the tests, which is how you get bit-rot. (I say this for all changes, in all repos; this PR isn't special in any way AFAIC.)
Re
-Wno-errorand fixing warnings: The important thing is to hold the bridge against new warnings/bugs. So I don't object at all to committing a laundry-list like-Wno-unused-parameter -Wno-implicit-fallthrough -Wno-maybe-uninitialized. That's just, like, a TODO list. It's not a bad thing. Subsequent commits can deal with the TODO list's items one by one (e.g. 41669ab, fbc7cd3), and meanwhile any bug that doesn't fit one of the shapes on the laundry-list is caught by CI. The problem with-Wno-erroris that it permits an open/unbounded set of bugs.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, that makes sense. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Talking about
-Werror, one thing I do not like about it is that it may cause problems for users if they are using a new version of gcc which introduces some new warning. For example, "maybe-uninitialized" and "misleading indentation" were introduced at some point, and they sometimes show up even if there is no bug. Good for CI and developers, but not sure about normal users who may not know how to fix the issue.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That certainly is a problem. I think fixing it shouldn't be too difficult: something like gutting currently hardcoded switches in
Makefile.simpleandmymake, and then updating CI configs to force the flag anyway. Well, it's probably not that simple, but I can give it a try.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO, "there is a warning with some major compiler's
-Wall -Wextra" and "there is a bug in the code" should be treated as synonymous. Code should compile clean. Once the programmer finds out about a warning, it's easy to fix it in the code.So the concern here seems limited to "what happens if some non-developer end-user [unable to easily edit Makefiles] is trying to compile HyperRogue from source, and their compiler is newer than anything we run in CI, such that it catches a new bug/warning we weren't aware of?" Personally I don't believe that's a likely situation — especially with all the effort @still-flow seems to be pouring into expanding the number of platforms that we CI on. :)
I think it would be relatively easy to move
-Werrorout ofMakefile.simpleand into.travis.yml; but IMO it would not bring any real benefit.(My impression is that this subthread is essentially unrelated to this specific PR.)