On 11/5/20 2:08 AM, Boris Kolpackov wrote:


To give an example of such a likely change, currently the mapper
has a notion of the central module repository directory that is
used to resolve all the relative CMI (compiled module interface[1])
paths (even paths like ./foo.gcm). However, this model will not
apply to all build systems. For example, in build2 (the build
system I am involved with), there can be no such central place
since a project can pull dependencies that are built in other
places. Currently, the only way to disable this repository
semantics is to use absolute CMI paths throughout.

The repo is providing a mechanism by which two processes can synchronize on a fixed location in the file system that is not /. You need such a capability as the file system is the bulk transfer mechanism.

The alternatives are to always use absolute paths, or require the two ends of the communication to have the same working directory, or have one end of the communication to map file system locations into the other end's view. That'll probably require knowing some fixed point, which you have to figure out how synchronize, and we're back to defining more fixed points in the file system.

The location of the repo is entirely under the mapper-server's control. Set it to / if you want.

nathan
--
Nathan Sidwell

Reply via email to