From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: emacs-28 9c222b9: Port to C compilers that lack size-0 arrays Date: Fri, 03 Dec 2021 10:16:26 +0200 Message-ID: <83bl1y85np.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9136"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Dec 03 09:17:47 2021 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 1mt3lK-0002BR-Qz for ged-emacs-devel@m.gmane-mx.org; Fri, 03 Dec 2021 09:17:47 +0100 Original-Received: from localhost ([::1]:57106 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mt3lI-0004Go-Ol for ged-emacs-devel@m.gmane-mx.org; Fri, 03 Dec 2021 03:17:44 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42780) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mt3kF-0003Zy-Lq for emacs-devel@gnu.org; Fri, 03 Dec 2021 03:16:39 -0500 Original-Received: from [2001:470:142:3::e] (port=50870 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mt3kD-0000Hj-Oz; Fri, 03 Dec 2021 03:16:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:Subject:To:From:Date:in-reply-to: references; bh=uboCiZLUityAFU73htjg+6/9dTex7iqZHLUpWvMLSvE=; b=hSoaMrAENcEmER 6DSqFG0vEuOGhZLLiLj5o8YUdPuegvgtwQ/IMpJvivQIdOn/vKoeSu7ThkosTBAWVWI4XmP9kr8Dg cK5MmlXrOn7CD+yja8JqESsYqh6T+6V0zMDQFHCbsM4tz7zxxjk6zEdQoAMLPr9yBbg5oszp6UQYB J33bNvOOqDgQYI/UDqY0bmlQxicGAkRMgQ76msQa1mAQ8Z8+aMtkCTRdSFsL0zjtmg1VWQnzMQYYv JQCHA5oOKIlJXg/EyU3Gu+Qb1fNjekzHNri/PaJ8XXjeBS5J6Qo1JwDZoG/C2r7IYwHVlf71Ktm3e mbj7nCd9NfEcCphIsIBg==; Original-Received: from [87.69.77.57] (port=3424 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mt3kC-0001Qd-Ft; Fri, 03 Dec 2021 03:16:37 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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:280814 Archived-At: > branch: emacs-28 > commit 9c222b9c1a7f91497a37567b4d7de3a511fff069 > Author: Paul Eggert > Commit: Paul Eggert > > Port to C compilers that lack size-0 arrays > > The C standard does not allow size-zero arrays, so redo struct > Lisp_Subr to not use size-zero arrays when native compilation is > not being used. Formerly, the code was using size-zero arrays (a > GNU C extension) to avoid using memory unnecessarily when > HAVE_NATIVE_COMP is not defined. Replace this hack with the > more-traditional hack of putting the relevant members inside > ‘#ifdef HAVE_NATIVE_COMP’. > * src/alloc.c (cleanup_vector, mark_object): > * src/comp.c (make_subr): > * src/data.c (Fsubr_native_lambda_list, Fsubr_native_comp_unit): > * src/eval.c (init_eval_once, funcall_lambda): > * src/lisp.h (SUBR_NATIVE_COMPILEDP, SUBR_NATIVE_COMPILED_DYNP) > (SUBR_TYPE): > * src/lread.c (Fload): > Conditionally compile with ‘#ifdef HAVE_NATIVE_COMP’ instead of > with ‘if (NATIVE_COMP_FLAG)’. Redo members like native_comp_u[0] > to be plain native_comp_u. Put all uses of these members inside > ‘#ifdef HAVE_NATIVE_COMP’. > * src/lisp.h (struct Lisp_Subr): Members native_comp_u, > native_c_name, lambda_list, type are now all ifdeffed out if > HAVE_NATIVE_COMP is not defined, instead of being size-zero > arrays. All uses changed. > * src/pdumper.c (dump_subr, dump_cold_native_subr) > (dump_do_dump_relocation): > * src/comp.h (NATIVE_COMP_FLAG): Remove; no longer needed. Paul, why did you install this large and non-trivial changeset on the release branch without any discussion? Please don't do that. We have already started the pretest. How serious is the problem this attempts to solve, and what bad things will happen if we release Emacs 28.1 without those changes?