Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

parrot/*.h includes are not system includes #749

petdance opened this Issue Mar 26, 2012 · 1 comment


None yet
2 participants

petdance commented Mar 26, 2012

A few dozen files have includes for Parrot header files written as if they were system includes, not local includes.

#include <parrot/memory.h>

instead of

#include "parrot/memory.h"

Fix these mistakes and add a cage test to check that we don't do it again.


gerdr commented Mar 26, 2012

At least with gcc, the decision of whether a header is treated as a system header is independant of the choice of quotes used in the inclusion.

The difference between "..." and <...> is just that the former first checks paths relative to the current input file, whereas the latter does not (see this gist for a more complete story).

If a consistent differentiation between the two include directives is desired, two choices come to mind:

  • use "..." for relative paths and <...> otherwise
  • use "..." for project-internal headers and <...> for 3rd party headers

The 2nd choice has no technical benefit if -iquote is not used, but nevertheless could serve as documentation (though one might argue that the fact that internal headers use a path starting with parrot/ should be documentation enough...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment