This question is mostly just curiosity...

There are build-time dependency cycles between some of Postgres' code
subdirectories.  For example, "storage" and "access" have such a cycle:
storage/buffpage.h #includes access/xlogdefs.h
access/visibilitymap.h #includes storage/block.h

Has there been any discussion about reorganizing these directories so that
no such cycles exist?

As someone very new to this code base, I think these cycles make it a
little harder to figure out the runtime and compile-time dependencies
between the subsystems these directories seem to represent.  I wonder if
that's a problem others face as well?

Reply via email to