Re: [gambit-list] Separating generated files?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matthieu Moy wrote:
I think the first question is: do you (and why) need to use a version
control system for generated files?

The project in question is a self-hosting compiler which compiles to C as an intermediary language. Providing the generated C files to users makes installation easy (it avoids the bootstrapping issue). So it's more 'severe' of an issue than just one of for example generating documentation files using a 3rd-party tool.

What may make matters worse, is that there are interdependencies between a number of hand-written C files and the generated files, so it's not always possible to use an older compiler version to reproduce the generated C files for a newer compiler; so if you want to merge newer compiler sources, you may also need the generated files, at least if you want that without fuss. So, there is always a need to somehow transmit the generated files too. I guess that this is easier than code the system in a way to always allow backwards compatibility (I haven't worked on the compiler itself yet, so this is a guess and may need confirmation).

Apart from that, I've found it useful (in another project, writing a document translator) to keep generated files in a VCS (Git) as well (I checked them into the *same* repository as the translator source, even if it felt ugly (for the previously mentioned reasons)), as then when I changed the translator, I could easily see where it had effect on the generated output. It can even serve as a debugging help kind of like a test suite does. This may be the case here, too (again, I'm guessing here).

How are other compiler projects which are bootstrapping via C dealing with this?

Christian.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux