Skip to content

Refactor apex/core/prelude.hpp into apex/detail/prelude/*.hpp #13

@bruxisma

Description

@bruxisma

Going forward, we're going to have to start hiding more implementation details and using parts in a more piecemeal fashion. While the prelude header has been a decent success, it turns out we don't need half the declarations found within it in most files, and this

  1. makes IWYU go absolutely bonkers when run on our codebase
  2. makes it VERY hard to maintain the header.

While creating a huge splayed filesystem of headers used to be considered "bad practice", we've moved to Clang for our C++ stuff, so we can rely on its faster preprocessor for performance.

The current plan to refactor the header is as follows:

  • macros are back into their own header
  • bare minimum concepts are placed into their own headers
  • ranges:: CPOs are placed into their own headers
  • using declarations and "elementary" types go into one header

This should break up a lot of the monotony of our current setup and make this way more manageable for our uses. It also means that as time goes on and most of these shims are implemented, we can slowly remove these detail headers and eventually place everything back into apex/core/prelude.hpp

Metadata

Metadata

Assignees

Labels

type: chorework needed to keep the product and development running smoothly

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions