emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bootstrap problem with union Lisp_Object


From: Ken Raeburn
Subject: Re: bootstrap problem with union Lisp_Object
Date: Tue, 6 Dec 2005 02:50:08 -0500

I'm still trying to track this down, but just for the record: If I build recent sources with CC='gcc -DENABLE_CHECKING - DUSE_LISP_UNION_TYPE', bootstrapping fails:

Fixed... With these options enabled, EQ evaluates its arguments twice. A while back, Stefan changed NILP to use EQ instead of XFASTINT, which is cleaner, but it turns out some invocations of NILP had non-idempotent arguments. I've fixed the cases I spotted that looked troublesome, especially in the bytecode interpreter; some others may still be minor performance issues, like calling intern or Ffile_name_directory twice. Since few people besides me seem to use the union-type mode, and I do it mostly to check type-cleanliness of the Emacs C code (not blindly mixing int and Lisp_Object), I'm not too inclined to go after performance issues that won't come up in a "real" build that anyone's actually likely to use. (Do any platforms actually use that configuration any more?)

I'm unsure about this bit in w32select.c:
          ok = !NILP(render (make_number (current_clipboard_type)));
Someone familiar with the Windows code should please decide whether calling render twice is a bad thing, and if so, assign the value to a temporary before calling NILP.

With the patches I've checked in, it bootstraps for me on a GNU/Linux system with the CC value above.

Ken




reply via email to

[Prev in Thread] Current Thread [Next in Thread]