From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id Gg5eDAD3q16xFQAA0tVLHw (envelope-from ) for ; Fri, 01 May 2020 10:16:32 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id aHcAAgr3q170EgAAbx9fmQ (envelope-from ) for ; Fri, 01 May 2020 10:16:42 +0000 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 36DE0941AF5 for ; Fri, 1 May 2020 10:16:40 +0000 (UTC) Received: from localhost ([::1]:43364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUSim-00025a-Ao for larch@yhetil.org; Fri, 01 May 2020 06:16:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49086) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUSi1-0001tH-3l for emacs-orgmode@gnu.org; Fri, 01 May 2020 06:15:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUShd-0003gZ-Ig for emacs-orgmode@gnu.org; Fri, 01 May 2020 06:15:52 -0400 Received: from relay7-d.mail.gandi.net ([217.70.183.200]:53433) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUShc-0003Ow-Lj for emacs-orgmode@gnu.org; Fri, 01 May 2020 06:15:29 -0400 X-Originating-IP: 185.131.40.67 Received: from localhost (40-67.ipv4.commingeshautdebit.fr [185.131.40.67]) (Authenticated sender: admin@nicolasgoaziou.fr) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 85AAE2000D; Fri, 1 May 2020 10:15:23 +0000 (UTC) From: Nicolas Goaziou To: tbanelwebmin Subject: Re: [ANN] faster org-table-to-lisp References: <820681a6-4973-f016-6425-4afb9c9486a7@free.fr> <87wo5xcs3p.fsf@nicolasgoaziou.fr> <0166c38e-e1f2-9cbc-4cf8-1b287600368d@free.fr> <878sica9g2.fsf@nicolasgoaziou.fr> <9944ffa3-5e1f-56f2-c337-302b59d204f6@free.fr> Mail-Followup-To: tbanelwebmin , emacs-orgmode@gnu.org Date: Fri, 01 May 2020 12:15:22 +0200 In-Reply-To: <9944ffa3-5e1f-56f2-c337-302b59d204f6@free.fr> (tbanelwebmin@free.fr's message of "Fri, 1 May 2020 08:35:11 +0200") Message-ID: <87v9lg7yh1.fsf@nicolasgoaziou.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=217.70.183.200; envelope-from=mail@nicolasgoaziou.fr; helo=relay7-d.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/01 06:15:24 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 217.70.183.200 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 X-Spam-Score: -1.01 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 2001:470:142::17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [-1.01 / 13.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; GENERIC_REPUTATION(0.00)[-0.49503385819946]; HAS_XOIP(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:470:142::/48:c]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.16), country: US(-0.00), ip: 2001:470:142::17(-0.50)]; DWL_DNSWL_FAIL(0.00)[2001:470:142::17:server fail]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; RCPT_COUNT_TWO(0.00)[2]; MAILLIST(-0.20)[mailman]; FREEMAIL_TO(0.00)[free.fr]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:22989, ipnet:2001:470:142::/48, country:US]; MID_RHS_MATCH_FROM(0.00)[]; TAGGED_FROM(0.00)[larch=yhetil.org]; ARC_NA(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; FROM_NEQ_ENVFROM(0.00)[mail@nicolasgoaziou.fr,emacs-orgmode-bounces@gnu.org]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[nicolasgoaziou.fr]; HAS_LIST_UNSUB(-0.01)[]; DNSWL_BLOCKED(0.00)[2001:470:142::17:from]; FORGED_SENDER_MAILLIST(0.00)[] X-TUID: jn2ILRqj4WDF Hello, tbanelwebmin writes: > Nicolas, how did you do that? Your version is 25% faster than mine, > and the code is 33% shorter! Very elegant. Thank you. There's nothing fancy, really. The main difference is that it does not call `org-table-end'. Minor tweaks are: - use simpler regexps, - call `skip-chars-forward' whenever possible. > Sorry, I may not understood what you said: > = Since you're changing the signature, I suggest to provide the table > = element instead of ORG-AT-TABLE-P. AFAICT, `org-babel-read-element', > = through `org-babel-read-table', would greatly benefit from this. > > Could you elaborate (if still relevant)? If you know the table ELEMENT, you don't need to check if you're at a table, nor do you need to compute table boundaries. We could have made use of this information to avoid a call to `org-at-table-p', much like your initial intent. Thinking about it, we don't even need to call `org-at-table-p' at all. Indeed, this is a low-level, non-interactive, function. We can reasonably expect the callers to check if they are really at a table in the first place. It would increase speed for this function noticeably, and the ELEMENT argument would not be relevant anymore. WDYT? > The side effect of `re-search-forward' was to advance point, while > `looking-at' don't move. Ah true. I overlooked that. Regards, -- Nicolas Goaziou