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 (1,374 forks)batch import
Codebase Qualityhelp wanted

Repository metrics

Stars
 (9,000 stars)
PR merge metrics
 (No merged PRs in 30d)

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