Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


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

petdance opened this Issue · 1 comment

2 participants


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.


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
Something went wrong with that request. Please try again.