From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ken Raeburn Newsgroups: gmane.emacs.devel Subject: Re: bootstrap problem with union Lisp_Object Date: Wed, 7 Dec 2005 15:12:56 -0500 Message-ID: <0D268F0D-B278-4307-86E3-E0FCE7A3B57B@raeburn.org> References: <55DA5764-DDB6-4858-9CE2-065857CDC863@gnu.org> <3AFF0594-F842-4079-9A3B-D1CF7358A281@raeburn.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 (Apple Message framework v746.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1133986829 12274 80.91.229.2 (7 Dec 2005 20:20:29 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 7 Dec 2005 20:20:29 +0000 (UTC) Cc: Stefan Monnier , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 07 21:20:21 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1Ek5lh-0001o0-7X for ged-emacs-devel@m.gmane.org; Wed, 07 Dec 2005 21:20:01 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ek5lw-0003db-TP for ged-emacs-devel@m.gmane.org; Wed, 07 Dec 2005 15:20:16 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ek5fJ-00063l-9C for emacs-devel@gnu.org; Wed, 07 Dec 2005 15:13:25 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ek5fF-00060u-KL for emacs-devel@gnu.org; Wed, 07 Dec 2005 15:13:23 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ek5fF-00060e-1y for emacs-devel@gnu.org; Wed, 07 Dec 2005 15:13:21 -0500 Original-Received: from [63.240.77.81] (helo=sccrmhc11.comcast.net) by monty-python.gnu.org with esmtp (Exim 4.34) id 1Ek5g8-0000U7-UZ for emacs-devel@gnu.org; Wed, 07 Dec 2005 15:14:17 -0500 Original-Received: from raeburn.org (c-65-96-168-237.hsd1.ma.comcast.net[65.96.168.237]) by comcast.net (sccrmhc11) with ESMTP id <20051207201300011005j4k9e>; Wed, 7 Dec 2005 20:13:04 +0000 Original-Received: from [18.101.0.226] (laptop.raeburn.org [18.101.0.226]) by raeburn.org (8.12.11/8.12.11) with ESMTP id jB7KD0ft026366; Wed, 7 Dec 2005 15:13:00 -0500 (EST) In-Reply-To: Original-To: Andreas Schwab X-Mailer: Apple Mail (2.746.2) 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:47153 Archived-At: On Dec 6, 2005, at 11:30, Andreas Schwab wrote: >> Try it with asserts (and without GCC extensions, of course). > > IMHO it would be reasonable to require GCC when building with > -DENABLE_CHECKING. If people think this is a good idea, I could start changing those macros that use eassert (XSET, XCONS, XVECTOR, ...) to have GCC and non-GCC versions, with the GCC versions using statement expressions (inline functions wouldn't preserve the file and line number) and temporary variables, and error out if ENABLE_CHECKING is defined but GCC isn't used. Should be straightforward, about a dozen places or so to change I think. > In any case I think that least the basic macros like > NILP and EQ should be side effect safe. It would be nice. CAR and CDR already fail that test for other reasons, though. With ENABLE_CHECKING, most of the basic Lisp object manipulation macros do, because they double-check that the type is correct before extracting data. Ken