From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: master f0b0105: Hoist some byte-code checking out of eval Date: Wed, 20 May 2020 14:21:33 -0700 Message-ID: References: <20200520062521.6783.95407@vcs0.savannah.gnu.org> <20200520062523.3EF4A20AEB@vcs0.savannah.gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="25950"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 20 23:22:41 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jbWAj-0006fK-GY for ged-emacs-devel@m.gmane-mx.org; Wed, 20 May 2020 23:22:41 +0200 Original-Received: from localhost ([::1]:33134 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jbWAi-0000Gs-He for ged-emacs-devel@m.gmane-mx.org; Wed, 20 May 2020 17:22:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47826) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jbW9n-0007gZ-Kp for emacs-devel@gnu.org; Wed, 20 May 2020 17:21:43 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:35264) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jbW9m-0005Z8-3S for emacs-devel@gnu.org; Wed, 20 May 2020 17:21:42 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C31611600CD; Wed, 20 May 2020 14:21:38 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id eckGUnWzBfJK; Wed, 20 May 2020 14:21:38 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 227E71600D1; Wed, 20 May 2020 14:21:38 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fM8mAGw4Q9oa; Wed, 20 May 2020 14:21:38 -0700 (PDT) Original-Received: from [192.168.0.102] (cpe-23-242-74-103.socal.res.rr.com [23.242.74.103]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id EA4C21600CD; Wed, 20 May 2020 14:21:37 -0700 (PDT) In-Reply-To: Content-Language: en-US Received-SPF: pass client-ip=131.179.128.68; envelope-from=eggert@cs.ucla.edu; helo=zimbra.cs.ucla.edu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/20 17:21:38 X-ACL-Warn: Detected OS = Linux 3.1-3.10 X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:251112 Archived-At: On 5/20/20 5:03 AM, Stefan Monnier wrote: > AFAIK this function is only used in the > extremely rare case that Elisp does > > (byte-code "blabla") > > So I think some of the checks you removed from `exec_byte_code` will > simply not be performed any more (at least not on > `byte-code-function-p` objects). Thanks for reviewing the patch. What checks do you have in mind? Formerly, exec_byte_code did this: CHECK_STRING (bytestr); CHECK_VECTOR (vector); CHECK_FIXNAT (maxdepth); if (STRING_MULTIBYTE (bytestr)) bytestr = Fstring_as_unibyte (bytestr); Now, byte-code does this: if (! (STRINGP (bytestr) && VECTORP (vector) && FIXNATP (maxdepth))) error ("Invalid byte-code"); if (STRING_MULTIBYTE (bytestr)) bytestr = Fstring_as_unibyte (bytestr); and to my eye this does everything that exec_byte_code used to do.