On Fri, Apr 13, 2012 at 11:00:40AM -0400, Marc Feeley wrote:
On 2012-04-13, at 10:40 AM, Hendrik Boom wrote:
On Thu, Apr 12, 2012 at 03:46:21PM -0400, Marc Feeley wrote:
I am proposing to include the generated .c files in the repo, but only commit changes occasionally. Basically, every time a new release would be published (i.e. a .tar.gz with a new version number) the new .c files would be committed to the repository.
The .c bloat in the repository would be greatly reduced if gambit's output were to be a continuous function of the input -- that small changes in the gambit source code would usually produce small changes in the .c files.
That is not the case. Think of the .c file as assembly code with lots of numbered labels for various things (code labels, global variable labels, etc). Just adding a single code label (because an "if" was added) will renumber many of the remaining code labels.
That's usually the case with generated C code. It takes a lot of effort to do otherwise, by making all generated names depend in a relatively deterministic way on relevant names in the original source code.
I tried that once. I never really succeeded, but it did mean that when I fixed code generation bugs, diffs between old and new output were somewhat easier to read.
-- hendrik