From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#20322: 25.0.50; indent-tabs-mode should default to nil Date: Mon, 20 Apr 2015 17:56:52 +0300 Message-ID: <553513B4.6040509@yandex.ru> References: <861tjn3069.fsf@yandex.ru> <552D20B6.8030005@yandex.ru> <83mw2abul3.fsf@gnu.org> <552D34BC.4090806@yandex.ru> <83h9sibt0q.fsf@gnu.org> <552D7796.2090109@yandex.ru> <552D9204.3000604@yandex.ru> <552DC816.3030002@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1429541931 28402 80.91.229.3 (20 Apr 2015 14:58:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 20 Apr 2015 14:58:51 +0000 (UTC) Cc: 20322@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 20 16:58:40 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1YkD9j-0003QB-Rl for geb-bug-gnu-emacs@m.gmane.org; Mon, 20 Apr 2015 16:58:40 +0200 Original-Received: from localhost ([::1]:54047 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YkD9j-00078s-C9 for geb-bug-gnu-emacs@m.gmane.org; Mon, 20 Apr 2015 10:58:39 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YkD9B-0006Kj-Dx for bug-gnu-emacs@gnu.org; Mon, 20 Apr 2015 10:58:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YkD98-0007PI-Oc for bug-gnu-emacs@gnu.org; Mon, 20 Apr 2015 10:58:05 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YkD98-0007PD-Kh for bug-gnu-emacs@gnu.org; Mon, 20 Apr 2015 10:58:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YkD98-0006qB-4b for bug-gnu-emacs@gnu.org; Mon, 20 Apr 2015 10:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 20 Apr 2015 14:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20322 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 20322-submit@debbugs.gnu.org id=B20322.142954182826221 (code B ref 20322); Mon, 20 Apr 2015 14:58:02 +0000 Original-Received: (at 20322) by debbugs.gnu.org; 20 Apr 2015 14:57:08 +0000 Original-Received: from localhost ([127.0.0.1]:33711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YkD8F-0006op-Lv for submit@debbugs.gnu.org; Mon, 20 Apr 2015 10:57:08 -0400 Original-Received: from mail-wi0-f172.google.com ([209.85.212.172]:37191) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YkD8A-0006oF-2n for 20322@debbugs.gnu.org; Mon, 20 Apr 2015 10:57:05 -0400 Original-Received: by widdi4 with SMTP id di4so95003066wid.0 for <20322@debbugs.gnu.org>; Mon, 20 Apr 2015 07:56:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=KHf2XTHBahhOcwBY6z9GiiXrb5OuZDHpV+S6hJeFzTQ=; b=HylhhmSX2vxZBlpBl0p4GT6QBALgsmqez6uESf2majLIiISGUJ50OC3WsmKK5EXzvU l1BKEhruzRV+NMK3s8Nw26v1JQJ9FXnFTySkJqHrJwegcIzC6I7ENubAvOiHY+DqzH8o A8YwdQVvgZGlpkVIc1YhBHADOweQZKzo0+RzU/SHECXl3NCW0+YfFUBbLms3Kwa1ScZ3 1wPLmAIYfLsi79ul+qh42ZDB9c/23NXAaEoD0Vb40PnTsOVnS6DtoiRIay3auGBpbcOT ygL2YN59yiNyXD4kuZrmYUdoS9NAfY35z8vj2K0t1Aip84plQZoJPV3L4EcKIWKNONnI JQdQ== X-Received: by 10.180.102.74 with SMTP id fm10mr26035467wib.25.1429541816421; Mon, 20 Apr 2015 07:56:56 -0700 (PDT) Original-Received: from [192.168.1.2] ([82.102.93.54]) by mx.google.com with ESMTPSA id js3sm27614754wjc.5.2015.04.20.07.56.55 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Apr 2015 07:56:55 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Thunderbird/36.0 In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:101760 Archived-At: On 04/15/2015 07:19 AM, Stefan Monnier wrote: > For most major modes, you don't need to convince me (because I just > don't know that language enough to have an opinion), but in any case > if the decision is based on such analysis (which could make sense), then > I think it's worth making the analysis correct, indeed. Looking into this more, your suggestion favors tabs, a lot. Since (as I can tell from looking at all "tabs vs spaces" blog posts, discussions, etc, and from recalling my petulant youth), the prevailing approach is to use one tab per indent level, whereas /^ {8}/ matches 1-4 indent levels, depending on the language and project (but usually 2 for Java and 4 for JS), we skip a lot of space-indented lines. Keeping this in mind, here's some results. I've ran through all 2015-01-01 diffs (which is admittedly not the best date; as far as bias in concerned), and counted the "added" lines matching either regexp. Doing this for the rest of the January would take a few more days, and I'm not sure if that's really valuable, considering the above. C: tabs => 1241263, spaces => 636266 C++: tabs => 466087, spaces => 926052 JS: tabs => 8430336, spaces => 11739058 Java: tabs => 7620803, spaces => 1509610 Elisp: tabs => 150071, spaces => 185015 You can look at the implementation here: https://gist.github.com/dgutov/addc25762453c5a205ea To run it locally, one would also need to download the files for January, from https://www.githubarchive.org/ (it comes out to ~460MB per day), and a persistent Internet connection to actually download the diffs. If anyone wants, I can also post the fairly verbose (as you can see from the script) log from the current run. It's 15MB gzipped.