+2010-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
+ Don't macroexpand before evaluating in eval-and-compile, in case
+ `body's macro expansion uses macros and functions defined in itself.
+
2010-06-14 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/bytecomp.el (byte-compile-check-variable):
(cons 'progn body)
byte-compile-initial-macro-environment))))))
(eval-and-compile . (lambda (&rest body)
- (byte-compile-eval-before-compile
- (macroexpand-all
- (cons 'progn body)
- byte-compile-initial-macro-environment))
+ (byte-compile-eval-before-compile (cons 'progn body))
(cons 'progn body))))
"The default macro-environment passed to macroexpand by the compiler.
Placing a macro here will cause a macro to have different semantics when
+2010-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * bytecode.c (exec_byte_code):
+ * eval.c (Ffunctionp): Fix up int/Lisp_Object confusions.
+
2010-06-12 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
if (! VECTORP (vec))
wrong_type_argument (Qvectorp, vec);
else if (index < 0 || index >= XVECTOR (vec)->size)
- args_out_of_range (vec, index);
+ args_out_of_range (vec, make_number (index));
if (op == Bvec_ref)
PUSH (XVECTOR (vec)->contents[index]);
Lisp_Object Qand_rest, Qand_optional;
Lisp_Object Qdebug_on_error;
Lisp_Object Qdeclare;
-Lisp_Object Qcurry, Qunevalled;
+Lisp_Object Qcurry;
Lisp_Object Qinternal_interpreter_environment, Qclosure;
Lisp_Object Qdebug;
}
if (SUBRP (object))
- return (XSUBR (object)->max_args != Qunevalled) ? Qt : Qnil;
+ return (XSUBR (object)->max_args != UNEVALLED) ? Qt : Qnil;
else if (FUNVECP (object))
return Qt;
else if (CONSP (object))
Qcurry = intern_c_string ("curry");
staticpro (&Qcurry);
- Qunevalled = intern_c_string ("unevalled");
- staticpro (&Qunevalled);
-
Qdebug = intern_c_string ("debug");
staticpro (&Qdebug);