stackless-dev / stackman

Stack manipulation API and implementation for common platforms
Apache License 2.0
8 stars 3 forks source link

Directory layout for includes #6

Closed akruis closed 3 years ago

akruis commented 3 years ago

If we want to bundle Stackman with Stackless Python, we should move all required includes into a single include directory without any sub-directories.

The Python directory layout is tied info the build system and into scripts used for packaging python. Adding include files is usually not a problem, but adding directories might be a lot more complicated. Currently Stackless does not modify the C-Python include directory layout and I don't want to change this.

kristjanvalur commented 3 years ago

Not sure what you mean, stackless already has sub-directories for platform selection, etc... As long as the files in the include hierarchy reference themselves in a relative manner, there should be no problem. Isn't this just a problem of mounting the sub-module inside an already establieshed include folder, e.g. "include/stakless/stackman", then from stackless code you could do an include "stackless/stackman/include/stackman.h"

This will work if the "stackless" folder can be found in an already existing include path.

akruis commented 3 years ago

My problem was related to packaging (i.e. rpm). If you add an new sub-directory to an include directory, you eventually force people to have to update build and packaging scripts. But my concern is no longer relevant for Stackless Python, because I moved stackman from Include/internal/stackman to Stackless/platf/stackman (https://github.com/stackless-dev/stackless/pull/230/commits/e98117930caacfed1a337af50787064aa08a0eb4).

kristjanvalur commented 3 years ago

Okay, I see. I´m happy to try to make things simple, but at the same time, having a hierarchy to separate header files seems kind of necessary. Can packaging tools not add a hierarchy of dependencies? Not familiar with the tools in question, never done any RPM myself.

akruis commented 3 years ago

RPM and Debian packaging tools can do everything. But the most convenient approach is to take the configuration for C-Python and just replace the source archive without any other changes.