Wireshark mailing list archives
Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.]
From: Evan Huus <eapache () gmail com>
Date: Mon, 23 Jun 2014 17:06:21 -0400
Perhaps this is a discussion we should have had at Sharkfest, but it's come up now. Oh well. My objections to generated code in git are two-fold: practical and philosophical. Practically, it's painful to have to run make twice to test ASN.1 changes. It's painful to review diffs full of #line changes in generated code. It's painful to be debugging something and realize that the last time somebody changed the template file they forgot to regenerate the dissector. Generated code also complicates the use of tools like ctags because all the ASN.1 functions end up with two definitions - one in the original template, and one in the generated code. Philosophically, generated C code is not "source". Ideally we store only "source" in git, and the build process turns that source into usable binaries, libraries, etc. Most of our source already goes through an intermediate step (.o file, on *nix at least) before reaching its final form. Whether it goes through a second intermediate step as a .c file is irrelevant to me, because that step is intermediary. I don't want to have to care about it unless I'm actually working on the build system. --- As far as I can see, the main arguments for storing generated code in git are: - not all platforms have the tools necessary to generate the code - generating it can take lots of time Both of these are valid points, in a general sense. I don't think either of them are particularly strong with respect to ASN.1 specifically, but there is a very good argument to be made for keeping the X11 dissector in git (for example). --- There are also cases like lemon, where we don't store the generated files but we store a fork of the entire generating program itself. Ideally we wouldn't do this either, but there are many fewer practical pain points with this approach. --- Are there any general arguments I've missed? Other opinions, or perspectives? Evan
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Evan Huus (Jun 23)
- Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Guy Harris (Jun 23)
- Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Evan Huus (Jun 23)
- Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Anders Broman (Jun 23)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Evan Huus (Jun 23)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Anders Broman (Jun 23)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Evan Huus (Jun 23)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Joerg Mayer (Jun 23)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Bálint Réczey (Jun 24)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Peter Wu (Jun 24)
- Re: Fwd: Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Anders Broman (Jun 24)
- Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Evan Huus (Jun 23)
- Re: Storing Generated Code in Git [Was: master 9079e3a: Cheat and try to fix the generated file manually.] Guy Harris (Jun 23)