From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lars Magne Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: Compiling Elisp to a native code with a GCC plugin Date: Thu, 16 Sep 2010 19:35:58 +0200 Organization: Programmerer Ingebrigtsen Message-ID: References: <87bp805ecr.fsf@gmail.com> <87bp7zhu0j.fsf@lola.goethe.zz> <8739tbhsiz.fsf@lola.goethe.zz> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: dough.gmane.org 1284662053 7873 80.91.229.12 (16 Sep 2010 18:34:13 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 16 Sep 2010 18:34:13 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 16 20:34:09 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OwJHX-0007lP-07 for ged-emacs-devel@m.gmane.org; Thu, 16 Sep 2010 20:34:03 +0200 Original-Received: from localhost ([127.0.0.1]:42453 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OwJHW-0003Yb-8Y for ged-emacs-devel@m.gmane.org; Thu, 16 Sep 2010 14:34:02 -0400 Original-Received: from [140.186.70.92] (port=57307 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OwINa-0005zY-8S for emacs-devel@gnu.org; Thu, 16 Sep 2010 13:36:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OwINV-0006lc-IF for emacs-devel@gnu.org; Thu, 16 Sep 2010 13:36:14 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:45534) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OwINV-0006lP-3H for emacs-devel@gnu.org; Thu, 16 Sep 2010 13:36:09 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OwINS-00088o-3A for emacs-devel@gnu.org; Thu, 16 Sep 2010 19:36:06 +0200 Original-Received: from cm-84.215.34.171.getinternet.no ([84.215.34.171]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Sep 2010 19:36:06 +0200 Original-Received: from larsi by cm-84.215.34.171.getinternet.no with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Sep 2010 19:36:06 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 82 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: cm-84.215.34.171.getinternet.no Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAD1BMVEXJr5MUBwZCKRiObUhv Ty/hcNDxAAACaUlEQVQ4jXVU0bHjMAjkLBVwdlyAjVQAFipAEfRf0y128ub9XDJJxmwQu7CI1v+8 CJ/t1/N2VT6/wOvSb3y3bHM+wOs6ruML1JF0OgewJ0DlE2eXPLo3HEajFW71ic9CKamZn+tJptTS +ynsVj0pkPf+h+zIJO2Jz34iZ5Y0j4v4pURLxJmtrRsRWy/EoFtd+g0UQ1FXHvNYtlugjtA0awjg 6pXtuoH1kPda3tXf8adpznPlG1BZ2FYOXS9pbO7nDWxLSYkmI2EvskzjANDBPQtROldGO90yl+7z ztjzkchRnfk0SpLB8sNKOuVt4zfzoERZ6Sm+UyoQHx2ZOJSS0tQbEK0JQlnMRwci5Dew1nYs69a5 9uhgAPXJUJJrfU12dbUiJHn6U0PiJFFVH5KE0NZ2zzyhJVsUta4CWniXxwzo4d+gEwUQJsoWwHHh a+CRvMoNSNYf4I6YQ3mibi4BjHBFHELWJYDUrRN8NxpscQMjhfKsbkhzHq1i3ohoNRX0qg9o1Mky K28F3KtKTkncIxu9FsZknBIHp67RrExUJ8MTesI0/CEbUoWYGe4o7LDH/AL0ADDBNg/mfv39CE/V AJyxKXOr4BbUTARU0flIgRFQ47Qo3LSrNxR3r+EjbpM15IFe8/oAFcaBtqoaXkBrVRuBjGPrNtO+ Q2xQWjQhhWt1joxeFZqiSub4fWpjCc6BhHlPyjBlOtctdmArM40+70ktvbdOT3xdS8lSpVc08PLu BRkfQFpyd+5d0WV6DHeveOfkKm64AGZ47ucS6VODEjK0k6YfIK4FiMSmdbFY6983TyxILQ2DO7d/ IfuK0lgjAPMAAAAASUVORK5CYII= Mail-Copies-To: never X-Now-Playing: Kate Bush's _Never For Ever_: "The Wedding List" User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:gfLjSmka+bbrXU6FJV+rfGHTOwI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:130264 Archived-At: --=-=-= Content-Type: text/plain David Kastrup writes: > Lars sounds like he would be better served with looking-at getting an > optional "LITERAL" argument making it do its job without involving the > regexp machinery. Here's a quick take on how an optional LITERALP option to looking-at might look: --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=literal Content-Transfer-Encoding: base64 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9saXNwLmgnCioqKiBzcmMvbGlzcC5oCTIwMTAtMDktMTIg MTQ6MzU6MzcgKzAwMDAKLS0tIHNyYy9saXNwLmgJMjAxMC0wOS0xNiAxNzoyNzo1MCArMDAwMAoq KioqKioqKioqKioqKioKKioqIDMxMTQsMzEyMCAqKioqCiAgRVhGVU4gKEZtYXRjaF9iZWdpbm5p bmcsIDEpOwogIEVYRlVOIChGbWF0Y2hfZW5kLCAxKTsKICBleHRlcm4gdm9pZCByZWNvcmRfdW53 aW5kX3NhdmVfbWF0Y2hfZGF0YSAodm9pZCk7CiEgRVhGVU4gKEZsb29raW5nX2F0LCAxKTsKICBl eHRlcm4gaW50IGZhc3Rfc3RyaW5nX21hdGNoIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwog IGV4dGVybiBpbnQgZmFzdF9jX3N0cmluZ19tYXRjaF9pZ25vcmVfY2FzZSAoTGlzcF9PYmplY3Qs IGNvbnN0IGNoYXIgKik7CiAgZXh0ZXJuIGludCBmYXN0X3N0cmluZ19tYXRjaF9pZ25vcmVfY2Fz ZSAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKLS0tIDMxMTQsMzEyMCAtLS0tCiAgRVhGVU4g KEZtYXRjaF9iZWdpbm5pbmcsIDEpOwogIEVYRlVOIChGbWF0Y2hfZW5kLCAxKTsKICBleHRlcm4g dm9pZCByZWNvcmRfdW53aW5kX3NhdmVfbWF0Y2hfZGF0YSAodm9pZCk7CiEgRVhGVU4gKEZsb29r aW5nX2F0LCAyKTsKICBleHRlcm4gaW50IGZhc3Rfc3RyaW5nX21hdGNoIChMaXNwX09iamVjdCwg TGlzcF9PYmplY3QpOwogIGV4dGVybiBpbnQgZmFzdF9jX3N0cmluZ19tYXRjaF9pZ25vcmVfY2Fz ZSAoTGlzcF9PYmplY3QsIGNvbnN0IGNoYXIgKik7CiAgZXh0ZXJuIGludCBmYXN0X3N0cmluZ19t YXRjaF9pZ25vcmVfY2FzZSAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKCj09PSBtb2RpZmll ZCBmaWxlICdzcmMvc2VhcmNoLmMnCioqKiBzcmMvc2VhcmNoLmMJMjAxMC0wOC0wOSAwOTozNToy MSArMDAwMAotLS0gc3JjL3NlYXJjaC5jCTIwMTAtMDktMTYgMTc6Mjc6MzUgKzAwMDAKKioqKioq KioqKioqKioqCioqKiAyODEsMjg2ICoqKioKLS0tIDI4MSwzMDkgLS0tLQogIAogIAwKICBzdGF0 aWMgTGlzcF9PYmplY3QKKyBsb29raW5nX2F0X2xpdGVyYWxseSAoTGlzcF9PYmplY3Qgc3RyaW5n KQorIHsKKyAgIGludCBzdGFydF9ieXRlID0gQ0hBUl9UT19CWVRFIChQVCk7CisgICBpbnQgZW5k X2J5dGUsIGVuZCA9IFBUICsgU0NIQVJTIChzdHJpbmcpOworIAorICAgQ0hFQ0tfU1RSSU5HIChz dHJpbmcpOworIAorICAgaWYgKFBUIDwgR1BUICYmIEdQVCA8IGVuZCkKKyAgICAgbW92ZV9nYXAg KFBUKTsKKyAKKyAgIGlmIChlbmQgPiBaVikKKyAgICAgcmV0dXJuIFFuaWw7CisgICAKKyAgIGVu ZF9ieXRlID0gQ0hBUl9UT19CWVRFIChlbmQpOworIAorICAgaWYgKCEgbWVtY21wIChTREFUQSAo c3RyaW5nKSwgQllURV9QT1NfQUREUiAoc3RhcnRfYnl0ZSksCisgCQllbmRfYnl0ZSAtIHN0YXJ0 X2J5dGUpKQorICAgICByZXR1cm4gUXQ7CisgICBlbHNlCisgICAgIHJldHVybiBRbmlsOworIH0K KyAKKyBzdGF0aWMgTGlzcF9PYmplY3QKICBsb29raW5nX2F0XzEgKExpc3BfT2JqZWN0IHN0cmlu ZywgaW50IHBvc2l4KQogIHsKICAgIExpc3BfT2JqZWN0IHZhbDsKKioqKioqKioqKioqKioqCioq KiAzNTcsMzcwICoqKioKICAgIHJldHVybiB2YWw7CiAgfQogIAohIERFRlVOICgibG9va2luZy1h dCIsIEZsb29raW5nX2F0LCBTbG9va2luZ19hdCwgMSwgMSwgMCwKICAgICAgICAgZG9jOiAvKiBS ZXR1cm4gdCBpZiB0ZXh0IGFmdGVyIHBvaW50IG1hdGNoZXMgcmVndWxhciBleHByZXNzaW9uIFJF R0VYUC4KICBUaGlzIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBtYXRjaCBkYXRhIHRoYXQgYG1hdGNo LWJlZ2lubmluZycsCiAgYG1hdGNoLWVuZCcgYW5kIGBtYXRjaC1kYXRhJyBhY2Nlc3M7IHNhdmUg YW5kIHJlc3RvcmUgdGhlIG1hdGNoCiEgZGF0YSBpZiB5b3Ugd2FudCB0byBwcmVzZXJ2ZSB0aGVt LiAgKi8pCiEgICAoTGlzcF9PYmplY3QgcmVnZXhwKQogIHsKISAgIHJldHVybiBsb29raW5nX2F0 XzEgKHJlZ2V4cCwgMCk7CiAgfQogIAogIERFRlVOICgicG9zaXgtbG9va2luZy1hdCIsIEZwb3Np eF9sb29raW5nX2F0LCBTcG9zaXhfbG9va2luZ19hdCwgMSwgMSwgMCwKLS0tIDM4MCwzOTggLS0t LQogICAgcmV0dXJuIHZhbDsKICB9CiAgCiEgREVGVU4gKCJsb29raW5nLWF0IiwgRmxvb2tpbmdf YXQsIFNsb29raW5nX2F0LCAxLCAyLCAwLAogICAgICAgICBkb2M6IC8qIFJldHVybiB0IGlmIHRl eHQgYWZ0ZXIgcG9pbnQgbWF0Y2hlcyByZWd1bGFyIGV4cHJlc3Npb24gUkVHRVhQLgogIFRoaXMg ZnVuY3Rpb24gbW9kaWZpZXMgdGhlIG1hdGNoIGRhdGEgdGhhdCBgbWF0Y2gtYmVnaW5uaW5nJywK ICBgbWF0Y2gtZW5kJyBhbmQgYG1hdGNoLWRhdGEnIGFjY2Vzczsgc2F2ZSBhbmQgcmVzdG9yZSB0 aGUgbWF0Y2gKISBkYXRhIGlmIHlvdSB3YW50IHRvIHByZXNlcnZlIHRoZW0uCiEgSWYgTElURVJB TFAgaXMgbm9uLW5pbCwgUkVHRVhQIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdHJpbmcsIGFu ZCB0aGUKISBtYXRjaCBkYXRhIHdpbGwgbm90IGJlIG1vZGlmaWVkLiAgKi8pCiEgICAoTGlzcF9P YmplY3QgcmVnZXhwLCBMaXNwX09iamVjdCBsaXRlcmFscCkKICB7CiEgICBpZiAoTklMUCAobGl0 ZXJhbHApKQohICAgICByZXR1cm4gbG9va2luZ19hdF9saXRlcmFsbHkgKHJlZ2V4cCk7CiEgICBl bHNlCiEgICAgIHJldHVybiBsb29raW5nX2F0XzEgKHJlZ2V4cCwgMCk7CiAgfQogIAogIERFRlVO ICgicG9zaXgtbG9va2luZy1hdCIsIEZwb3NpeF9sb29raW5nX2F0LCBTcG9zaXhfbG9va2luZ19h dCwgMSwgMSwgMCwKCg== --=-=-= Content-Type: text/plain Benchmarking shows the expected -- that this is a *lot* faster than the alternatives. A (while (or (looking-at "thing" t) (search-forward "\nthing"))) loop is about 5% slower than a pure search-forward loop. -- (domestic pets only, the antidote for overdose, milk.) larsi@gnus.org * Lars Magne Ingebrigtsen --=-=-=--