From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Loading souce Elisp faster Date: Wed, 27 Feb 2013 09:28:09 -0500 Message-ID: References: <874ngytmnr.fsf@gnu.org> Reply-To: rms@gnu.org NNTP-Posting-Host: plane.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: ger.gmane.org 1361975303 14520 80.91.229.3 (27 Feb 2013 14:28:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 27 Feb 2013 14:28:23 +0000 (UTC) Cc: lennart.borgman@gmail.com, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Kenichi Handa Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 27 15:28:46 2013 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 1UAhzt-00043G-KN for ged-emacs-devel@m.gmane.org; Wed, 27 Feb 2013 15:28:41 +0100 Original-Received: from localhost ([::1]:58398 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UAhzY-0002JG-Lg for ged-emacs-devel@m.gmane.org; Wed, 27 Feb 2013 09:28:20 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:50412) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UAhzS-00025C-HZ for emacs-devel@gnu.org; Wed, 27 Feb 2013 09:28:18 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UAhzQ-0005NJ-U6 for emacs-devel@gnu.org; Wed, 27 Feb 2013 09:28:14 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51301) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UAhzQ-0005Md-RH for emacs-devel@gnu.org; Wed, 27 Feb 2013 09:28:12 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1UAhzN-0001D1-8i; Wed, 27 Feb 2013 09:28:09 -0500 In-reply-to: <874ngytmnr.fsf@gnu.org> (message from Kenichi Handa on Wed, 27 Feb 2013 13:18:16 +0900) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:157431 Archived-At: This change in decode_coding_utf_8 should make it considerably faster in the usual case where few characters need conversion. We might still want to do something else for Elisp files, but this is worth doing anyway since it will help for other files too. I have not installed it myself since I have not tested it enough. It might be worth making a similar improvement for other cases, such as ! multibytep && ! eol_dos or multibytep && eol_dos. === modified file 'src/coding.c' *** src/coding.c 2013-01-25 04:41:39 +0000 --- src/coding.c 2013-02-27 11:38:18 +0000 *************** *** 1294,1299 **** --- 1294,1338 ---- break; } + /* In the simple case, rapidly handle ordinary characters */ + if (multibytep && ! eol_dos + && charbuf < charbuf_end - 6 && src < src_end - 6) + { + while (charbuf < charbuf_end - 6 && src < src_end - 6) + { + c1 = *src; + if (c1 & 0x80) + break; + src++; + consumed_chars++; + *charbuf++ = c1; + + c1 = *src; + if (c1 & 0x80) + break; + src++; + consumed_chars++; + *charbuf++ = c1; + + c1 = *src; + if (c1 & 0x80) + break; + src++; + consumed_chars++; + *charbuf++ = c1; + + c1 = *src; + if (c1 & 0x80) + break; + src++; + consumed_chars++; + *charbuf++ = c1; + } + /* If we handled at least one character, restart the main loop. */ + if (src != src_base) + continue; + } + if (byte_after_cr >= 0) c1 = byte_after_cr, byte_after_cr = -1; else -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! That's nonfree (freedom-denying) software. Use Ekiga or an ordinary phone call