From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] emacs-24 r116836: Fix keyword argument parsing. Please bootstrap. Date: Sun, 23 Mar 2014 19:58:26 -0700 Message-ID: <532F9F52.8020906@dancol.org> References: <532F9AFF.1020108@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="5p3wBObXhL6VB9G9q22ItaQIqEHoR7sgi" X-Trace: ger.gmane.org 1395629910 32568 80.91.229.3 (24 Mar 2014 02:58:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 24 Mar 2014 02:58:30 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Mar 24 03:58:41 2014 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 1WRv5z-00055G-7J for ged-emacs-devel@m.gmane.org; Mon, 24 Mar 2014 03:58:39 +0100 Original-Received: from localhost ([::1]:34242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRv5y-00009s-Na for ged-emacs-devel@m.gmane.org; Sun, 23 Mar 2014 22:58:38 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52948) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRv5u-00004x-Mv for emacs-devel@gnu.org; Sun, 23 Mar 2014 22:58:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WRv5t-0001dw-00 for emacs-devel@gnu.org; Sun, 23 Mar 2014 22:58:34 -0400 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:48090) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRv5s-0001ds-M3 for emacs-devel@gnu.org; Sun, 23 Mar 2014 22:58:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=05Iz9oTdkDWxfVIrXyF1EqEFVrH4a4j/ol17MTMUsdA=; b=grOB2Q87tmsNjtUUTzhx7daQNnUNHebBzeo2SAFZxDB4qET0M+D7at3WHN8raj4F0O4lfxF7hKLdc9mev3eEsgOiHGsETuTSHD/TtfhI9mYHZa3dCezAulH7wZ6kvi3HWqFkqzytYzrWzkEWz1SiwYkQgErB5nikKy6oPjYmkrHGZ4NmPu5VC+VvinG4fThRN82Q8q9eoLgquilU2r0fOe2MYTqxnCIc/y+Dvj1xkLMYHBBMNKbItDdjOa9rcBIlM6prl7x3+VREaXzncYb9/2AQvV28xp3ls6SFzwhhl/vZ0F/x52ZsneoraVAmORL9QppOe3jRiLOTZyT45WdiRA==; Original-Received: from [2601:8:b200:551::2b1] by dancol.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1WRv5r-0005lU-87; Sun, 23 Mar 2014 19:58:31 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: <532F9AFF.1020108@dancol.org> X-Enigmail-Version: 1.6 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 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:170897 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --5p3wBObXhL6VB9G9q22ItaQIqEHoR7sgi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 03/23/2014 07:39 PM, Daniel Colascione wrote: > On 03/23/2014 06:43 PM, Stefan wrote: >>> + * emacs-lisp/cl-macs.el (cl--do-arglist): Use a little `cl-loop' >>> + list to look for keyword arguments instead of `memq', fixing >>> + (Bug#3647) --- unfortunately, only for freshly-compiled code. >>> + Please make bootstrap. >> >> Have you checked the performance and code-size impact of this change? >> Maybe it's OK to try it on trunk, but it seems much too risky >> performancewise for 24.4. There is no hurry to fix this: the bug has >> been with us forever (IIRC it was even documented in CL's texinfo). >=20 > The new code ranges from about a half to a third of the speed of the ol= d > code, measured by byte-compiled, lexically-bound functions that just > return lists of their arguments. Code size increases as well: with the > old code, the 7-old keyword noop function requires 99 bytecode > instructions, while the new code generates 371 instructions. >=20 > IMHO, that's fine, since keyword argument parsing isn't particularly > fast to begin with and shouldn't be on any hot path. >=20 > If we really care about performance here, we can add a subr that works > like assq (`assq-plist' ?), but that skips every other list element. > This approach should will yield correct semantics and shouldn't be any > slower (or larger) than the existing code. If you want to do it that > way, I'll back out my change from the emacs-24 branch and write > something better for trunk. Or we can just use plist-member. plist-member produces code that's only 10% slower than the old code and 7% larger: we have an opcode for memq, but not for plist-member. Is that performance difference small enough for emacs-24? --5p3wBObXhL6VB9G9q22ItaQIqEHoR7sgi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJTL59WAAoJEMAaIROpHW7I4+YP/2VoUDNW0heHQf57HtbnGonE 3pcawu+nBRzr9qvuVbth+ocGPsTnSmHFX8nGeqGFOFoXOOst7DmAG6LNnKqbY2ep FwllUmh07Zj5LA5h/wFvWS9slZ/4kCNF5TqB+4wdUNpMJOemsSZQWUaeOflLPZve TMoK1hXYDW9YyoS+XKiqlnjcIRMZIJfdn9DhvJRN7ZFRyX9W0wBIkeKN+YQYJ6hn IW1Sx50kRgPD+OxlvtqDWgUhSYqk0kB0UAI+YRcgVvB1Wuf/DH38aqRicjKxTnjb 7HRQsxSMww2Bpzituz65WR6vkec3x4ykIIkP505iDn2TAwQkoSW3EM1P2HcRIjU+ GGzKAMM/BGsXrlfIjVRfyOdpsyPIIR4E3KSFcK0Q/p46Q3tKmhgap8ORa/g1oI13 ce+wnlN23h6lutfGmU0myjWURPjlvZMbLfGz0VB2VD6VkgZQ/qnkUlEg6WbexK9Z Gj3YH282hMiXRjAppR9vkR7ppZOhxg75GX82tBKgcAp8Hf5sqtt/QjCnZK1rkLRw X6+JtNdB2VzcnNmy+AM7b4zUChbwZVfwYe8TDxLNVwLCQKy3qu8kvSVfjg7nI+4h yp/x6OXhW4rcA01/pW0q2W02xhbFlQ+L2Y/p7Vn8GJvvqeErDZCPEeOs60D8kBR9 blxaeAcnUWzcHxFvmrJx =YvDk -----END PGP SIGNATURE----- --5p3wBObXhL6VB9G9q22ItaQIqEHoR7sgi--