From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tassilo Horn Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Wed, 14 Oct 2015 14:12:26 +0200 Message-ID: <87zizlps2d.fsf@gnu.org> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <878u78b3hg.fsf@fencepost.gnu.org> <87h9lwyv33.fsf@gmail.com> <561C368F.6010306@cs.ucla.edu> <87oag3xb2i.fsf@gmail.com> <561D241E.1010902@cs.ucla.edu> <87vbaaagr5.fsf@gmail.com> <86io6amqhd.fsf@gmail.com> <06472760353f91fb2b6a1e427e954a70@mail.iq.pl> <874mhtra55.fsf@gnu.org> <87twptheg0.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444824858 21556 80.91.229.3 (14 Oct 2015 12:14:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 Oct 2015 12:14:18 +0000 (UTC) Cc: =?utf-8?Q?Przemys=C5=82aw?= Wojnowski , emacs-devel@gnu.org To: Oleh Krehel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 14 14:14:05 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZmKwV-0000hd-VJ for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 14:14:04 +0200 Original-Received: from localhost ([::1]:42046 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmKwV-0006yM-Gv for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 08:14:03 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36568) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmKv4-0005RM-G5 for emacs-devel@gnu.org; Wed, 14 Oct 2015 08:12:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmKuz-0007gx-Ft for emacs-devel@gnu.org; Wed, 14 Oct 2015 08:12:34 -0400 Original-Received: from nsmtp.uni-koblenz.de ([141.26.64.14]:44034) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmKuz-0007gp-3M for emacs-devel@gnu.org; Wed, 14 Oct 2015 08:12:29 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by nsmtp.uni-koblenz.de (Postfix) with ESMTP id 48631239F61; Wed, 14 Oct 2015 14:12:28 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at uni-koblenz.de Original-Received: from nsmtp.uni-koblenz.de ([127.0.0.1]) by localhost (nsmtp.uni-koblenz.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZnFRoc_uAAFI; Wed, 14 Oct 2015 14:12:28 +0200 (CEST) Original-Received: from deliver.uni-koblenz.de (deliver.uni-koblenz.de [141.26.64.15]) by nsmtp.uni-koblenz.de (Postfix) with ESMTPS; Wed, 14 Oct 2015 14:12:28 +0200 (CEST) Original-Received: from thinkpad-t440p (dhcp66.uni-koblenz.de [141.26.71.66]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by deliver.uni-koblenz.de (Postfix) with ESMTPSA id 270D41A82F4; Wed, 14 Oct 2015 14:12:27 +0200 (CEST) Mail-Followup-To: Oleh Krehel , =?utf-8?Q?Przemys?= =?utf-8?Q?=C5=82aw?= Wojnowski , emacs-devel@gnu.org In-Reply-To: <87twptheg0.fsf@gmail.com> (Oleh Krehel's message of "Wed, 14 Oct 2015 13:33:51 +0200") User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 141.26.64.14 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191552 Archived-At: Oleh Krehel writes: >> OTOH, they reduce the helpfulness version control offers to new and >> old developers. I.e., it's good when "git blame" shows you the last >> changes which actually changed the code, and switching "char const *" >> to "const char *" or vice versa are no real changes. > > I've seen this excuse before. Doesn't it mean that there's a flaw in > the "git blame" workflow rather than in the refactoring commits? No. That's a very effective workflow when it works, and it works quite often with mature code. For example, there are tons of lines in AUCTeX which haven't been changed for more than a decade and `vc-annotate' still suffices to get to know why some specific piece of code is like it is. > Besides, "git blame" provides a way to specify a range of revisions > that you're interested in. Yes, and we have `vc-region-history' which is fantastic. > Personally, looking through the revision history in order to > understand code is a last resort for me. The code should be written > and documented well enough to be understandable at the current > revision. This is further magnified by the fact that we release > source tarballs, which should be self-containing. Yes, obviously that's ideal. Now of course the current version might have introduced some new problem, so you can't always take it as a trusty source of information. >> In the same vein, it's of course good to have one consistent >> indentation style, one consistent style of setting braces, one >> consistent style of naming variables, etc. But I'd suggest to clean >> up the non-conforming parts only when you do significant changes in >> that area anyhow. > > You mean: > > /* TODO: change "char const *" to "const char *" when an opportunity arises > to change foo */ > void foo (char const *bar); Yes, exactly that but without the TODO. You just do it when you change foo(). And don't get me wrong, I'm all for refactoring. But IMHO switching from one thing to a synonym of it or changing indentation from tabs to spaces doesn't outweight the disadvantages of such "nothing really done" commits. > In the same vein, concerning the matter of one consistent indentation > style, on occasion I've received complaints of producing too large > whitespace diffs when changing Elisp functions. On those occasions I > had to twist myself into never using `indent-sexp' and inserting the > appropriate amount of mixed tabs and spaces with "C-q". It wasn't fun. For that reason, it's best to just go with the standard intentation settings even when there's potential to improve them. When I contribute to your projects (and I like doing that, you do a great job!), I always have to remember to turn off `aggressive-indent-mode' or later stage my changes hunk-wise omitting hunks where only whitespace changes are in. ;-) Bye, Tassilo