chakra-core/ChakraCore

Include paths prevent hermetically sealed builds

Open

#3,916 opened on Oct 10, 2017

View on GitHub
 (2 comments) (0 reactions) (0 assignees)JavaScript (9,000 stars) (1,374 forks)batch import
Codebase Qualityhelp wanted

Description

I am trying to port ChakraCore to Buck Build, but the include paths used in ChakraCore are making this difficult.

For instance:

  • RuntimeBasePch.h contains #include "Runtime.h";
  • Runtime.h contains #include "../JITIDL/JITTypes.h".

This causes the compiler to walk outside of the top-level of the build, which breaks reproducibility.

This scenario is avoidable if a path without ../ is used instead. For example:

#include "JITIDL/JITTypes.h"

Or better yet, something like this:

#include <ChakraCore/JITIDL/JITTypes.h>

Ideally, all headers would be included from the same include-path. This is common practice is many C++ libraries, such as Boost.

What are the ChakraCore team's thoughts on this?

Contributor guide