[rb-general] rb-prefix-map spec: don't be as democratic to consumers
Daniel Shahaf
danielsh at apache.org
Sun Mar 5 14:58:28 CET 2017
Hi,
https://github.com/infinity0/rb-prefix-map/blob/master/spec-main.rst#applying-the-decoded-structure
currently says:
> Consumers SHOULD implement one of the following algorithms:
>
> 1. …
>
> 2. …
The two algorithms, #1 and #2, have different semantics.
I think specifications MUST NOT allow consumers leeway to choose between
different semantics. (Why? Just imagine a world in which gcc
implemented #1 and clang implemented #2; in such a world, gcc and clang
wouldn't be interchangeable.)
So, I propose:
a. Specify precisely which semantics consumers MUST implement. The spec
MAY recommend a particular algorithm, but MUST NOT give consumers choice
of semantics.
b. I have no opinion as to _which_ semantics consumers should implement;
whether the #1 semantics, the #2 semantics, or possibly something else.
Cheers,
Daniel
P.S. Use-case: imagine a compression program that links two different
libxz versions and allows choosing between them at runtime. The source
of that program might include /foo/xz-42/main.c and /foo/xz-43/main.c
and its build system might then define BUILD_PATH_PREFIX_MAP="/foo/xz=xz".
If the build system then started using a different C compiler, the
program would no longer be reproducible.
P.P.S. Sorry for not catching this earlier, I was a bit busy for the
past few weeks.
More information about the rb-general
mailing list