Mercurial > hg > xemacs-beta
view src/s/hpux8.h @ 4686:cdabd56ce1b5
Fix various small issues with the multiple-value implementation.
lisp/ChangeLog addition:
2009-08-31 Aidan Kehoe <kehoea@parhasard.net>
* byte-optimize.el (byte-optimize-form-code-walker):
Be careful about discarding multiple values when optimising
#'prog1 calls.
(byte-optimize-or):
Preserve any trailing nil, as this is a supported way to
explicitly discard multiple values.
(byte-optimize-cond-1):
Discard multiple values with a singleton followed by no more
clauses.
* bytecomp.el (progn):
(prog1):
(prog2):
Be careful about discarding multiple values in the byte-hunk
handler of these three forms.
* bytecomp.el (byte-compile-prog1, byte-compile-prog2):
Don't call #'values explicitly, use `(or ,(pop form) nil) instead,
since that compiles to bytecode, not a funcall.
* bytecomp.el (byte-compile-values):
With one non-const argument, byte-compile to `(or ,(second form)
nil), not an explicit #'values call.
* bytecomp.el (byte-compile-insert-header):
Be nicer in the error message to emacs versions that don't
understand our bytecode.
src/ChangeLog addition:
2009-08-31 Aidan Kehoe <kehoea@parhasard.net>
* eval.c (For, Fand):
Don't declare val as REGISTER in these functions, for some reason
it breaks the non-DEBUG union build. These functions are only
called from interpreted code, the performance implication doesn't
matter. Thank you Robert Delius Royar!
* eval.c (Fmultiple_value_list_internal):
Error on too many arguments.
tests/ChangeLog addition:
2009-08-31 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el (Assert-rounding):
Remove an overly-verbose failure message here.
Correct a couple of tests which were buggy in themselves. Add
three new tests, checking the behaviour of #'or and #'and when
passed zero arguments, and a Known-Bug-Expect-Failure call
involving letf and values. (The bug predates the C-level
multiple-value implementation.)
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 06 Sep 2009 19:36:02 +0100 |
parents | 3ecd8885ac67 |
children |
line wrap: on
line source
/* Synched up with: FSF 19.31. */ /* system description file for hpux version 8. This contains changes that were suggested "for the hp700". They were not needed for the 800. Our conjecture that they are needed for hpux version 8, which is what runs on the 700. */ /* XEmacs change -- suggested by hamish@bnr.ca */ #define DONT_DEFINE_NO_REMAP /* `static' hack not needed */ #include "hpux.h" #define HPUX8 /* XEmacs change -- suggested by hamish@bnr.ca */ #undef HPUX_PRE_8_0 /* XEmacs change -- Ugly, nasty kludge to prevent X11R4 Xos.h from redefining struct timeval and struct timezone. */ #define __TIMEVAL__ /* Don't use shared libraries. unexec doesn't handle them. Note GCC automatically passes -a archive to ld, and it has its own conflicting -a. */ #ifdef __GNUC__ /* No need to specify roundabout way of linking temacs. */ #define ORDINARY_LINK #ifdef HPUX_USE_SHLIBS #define LD_SWITCH_SYSTEM #else #define LD_SWITCH_SYSTEM "-Xlinker -a -Xlinker archive" #endif #else /* not __GNUC__ */ #if (defined(hp9000s700) || defined(__hp9000s700)) #ifdef HPUX_USE_SHLIBS #define LD_SWITCH_SYSTEM "-L/lib/pa1.1" #else #define LD_SWITCH_SYSTEM "-a archive -L/lib/pa1.1" #endif #else /* not (defined(hp9000s700) || defined(__hp9000s700)) */ #ifdef HPUX_USE_SHLIBS #define LD_SWITCH_SYSTEM #else #define LD_SWITCH_SYSTEM "-a archive" #endif #endif /* not (defined(hp9000s700) || defined(__hp9000s700)) */ #endif /* not __GNUC__ */ /* XEmacs change */ #ifndef __GNUC__ #define C_SWITCH_SYSTEM "-Aa -D_HPUX_SOURCE" #endif /* Some hpux 8 machines seem to have TIOCGWINSZ, and none have sioctl.h, so might as well define this. */ #define NO_SIOCTL_H #if 0 /* autoconf should be detecting the presence or absence of random and srandom now. */ /* If you use X11R4 you must define this. If you use X11R5 you must comment this out */ /* #define HAVE_RANDOM */ #define random foo_random #define srandom foo_srandom #endif #if 0 /* This seems to be spurious. */ /* "X11R5" on hpux8 doesn't have this function, which is supposed to exist in X11R5. Maybe things will work if we just don't call it. */ #define NO_XRM_SET_DATABASE #endif /* Enable a special hack in XTread_socket. */ /* XEmacs change: we don't use this. */ #if 0 #define X_IO_BUG #endif