From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Org Build System (aka Makefile) Date: Mon, 13 Aug 2012 07:16:18 -0600 Message-ID: <87boifrkyl.fsf@gmx.com> References: <87y5mkrca2.fsf@Rainer.invalid> <87ipcs3smd.fsf@Rainer.invalid> <871ujf5i7g.fsf@gnu.org> <874no8dxik.fsf@Rainer.invalid> <87k3x4rlb2.fsf@gmx.com> <87zk5zdery.fsf@Rainer.invalid> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:49749) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0uVn-0002xf-4Z for emacs-orgmode@gnu.org; Mon, 13 Aug 2012 09:16:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T0uVj-0003UO-8b for emacs-orgmode@gnu.org; Mon, 13 Aug 2012 09:16:51 -0400 Received: from mailout-us.gmx.com ([74.208.5.67]:44379 helo=mailout-us.mail.com) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1T0uVj-0003Tm-28 for emacs-orgmode@gnu.org; Mon, 13 Aug 2012 09:16:47 -0400 In-Reply-To: <87zk5zdery.fsf@Rainer.invalid> (Achim Gratz's message of "Sun, 12 Aug 2012 22:41:21 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Achim Gratz Cc: emacs-orgmode@gnu.org Achim Gratz writes: > Eric Schulte writes: >> But we certainly shouldn't (and currently aren't?) inhibit the display >> of any warnings when the default make is run. I was surprised to run >> make compile-source and see additional warnings which weren't shown >> during regular make. > > These warnings aren't reliable =E2=80=94 the byte compiler doesn't really= try to > find and report problems. > Understood, however they are still a useful check, especially after large code changes or during code cleanup. In fact, because I never run compiled Org-mode, these checks are one of my main uses of the Makefile. > >> What is the difference between "make" and "make >> compile-source" which results in different warnings? > > make -n compile > make -n _COMPILE_=3Dsingle compile > > The difference is starting a single Emacs and then compiling all files > vs. starting a fresh Emacs instance for each file to be compiled. The > change was originally triggered by some differences to the builds in > package manager (ELPA) and solidified due to the fact that this is the > only method that does function with only Emacs available. Should have > been discussed around November last year, IIRC. > Thanks for clarifying. It certainly does sound like we are using the correct default build option. It would be preferable if the Emacs compilation process produced more predictable warnings, but I doubt this is a high priority for the busy core Emacs devs. > >> After some time digging through the make files, it looks to me like one >> must edit the local.mk file to run these. > > You are welcome to dig through whatever files, but maybe you might > consult the documentation first? I don't find the strings "single compile", "compile-source" or "elint" anywhere in the Org documentation. Perhaps there is different documentation for the Makefile? > As you would read there and can see above, you can do it all on the > command line if you wish. If you want to enact that change > permanently, you should edit local.mk =E2=80=94 that's the only reason it > exists. > >> I'd propose that they are added as a separate Makefile target >> (mentioned by "make help") so that they can be easily run. > > If you want additional make targets you can also implement those in > local.mk; run `make helpall=C2=B4 some time and ask yourself if you really > need more. > Despite the huge number of Makefile targets (do we really need 12 different versions of "make clean"), I do think that a make target to run a static code check would be useful. > >> Very few people (users or developers) are willing to edit make >> configuration files. > > Those same people that have no problem to edit the sources? Come on, > you can't be serious. > I am one of these people and I am completely serious. This is the first time I've looked at Org-mode's make system -- beyond my help with the test infrastructure. The Makefile uses different languages and has different goals than the source code and I think there are many who feel comfortable editing one but not the other. If you'll permit me an exaggerated metaphor, asking developers to edit a Makefile is like asking a watch maker to rebuild the table in her workshop. She will likely find the task to be a waste of time, to be outside of her core competency, and not directly related to her real work, even if it results in a more comfortable work environment. > >> Perhaps these elint build options should be used to build when "make >> check" is run. If a user is willing to run the test suite they should >> be willing to endure a slower build for more thorough warnings. > > If they want to, they can edit local.mk. As I continue to contend, editing local.mk simply will not happen in most cases. > But since it is not necessary for the build and there won't be any > warnings to see if the developers do a good job, it's not a useful > default. It is maybe useful as an additional configuration for > release tests (just as it is useful to have multiple configurations to > be able to test different versions of Emacs). > Having spent some time playing around with the elint options, I withdraw my suggestion that this should be the default for running "make test" as it is often simply too slow, however, I do think it should be exposed as a make file target (listed by "make help"), or in some way made possible without requiring esoteric configuration (either on the command line or in local.mk). Thanks for your patient explanations and consideration. > > > Regards, > Achim. --=20 Eric Schulte http://cs.unm.edu/~eschulte