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]