aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2011-03-16 16:08:39 -0400
committerStefan Monnier2011-03-16 16:08:39 -0400
commitca1055060d5793e368c1a165c412944d6800c3a6 (patch)
tree81c850f1a6fdee4a2faea041d72212569bc6ff4f /src
parent2663659f1f1a8566cf0f602969f85965a398f618 (diff)
downloademacs-ca1055060d5793e368c1a165c412944d6800c3a6.tar.gz
emacs-ca1055060d5793e368c1a165c412944d6800c3a6.zip
Remove bytecomp- prefix, plus misc changes.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Make it work to inline lexbind interpreted functions into lexbind code. (bytedecomp-bytes): Not a dynamic var any more. (disassemble-offset): Get the bytes via an argument instead. (byte-decompile-bytecode-1): Use push. * lisp/emacs-lisp/bytecomp.el: Remove the bytecomp- prefix now that we use lexical-binding. (byte-compile-outbuffer): Rename from bytecomp-outbuffer. * lisp/emacs-lisp/cl-macs.el (load-time-value): * lisp/emacs-lisp/cl.el (cl-compiling-file): Adjust to new name. * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add byte-code-function-p. (pcase--u1): Remove left-over code from early development. Fix case of variable shadowing in guards and predicates. (pcase--u1): Add a new `let' pattern. * src/image.c (parse_image_spec): Use Ffunctionp. * src/lisp.h: Declare Ffunctionp.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/bytecode.c12
-rw-r--r--src/image.c5
-rw-r--r--src/lisp.h1
4 files changed, 13 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 00d8e4b8ee3..e34cd694321 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * image.c (parse_image_spec): Use Ffunctionp.
4 * lisp.h: Declare Ffunctionp.
5
12011-03-13 Stefan Monnier <monnier@iro.umontreal.ca> 62011-03-13 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * eval.c (Ffunction): Use simpler format for closures. 8 * eval.c (Ffunction): Use simpler format for closures.
diff --git a/src/bytecode.c b/src/bytecode.c
index b19f9687cdc..ba3c012bd1a 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -939,27 +939,27 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
939 save_restriction_save ()); 939 save_restriction_save ());
940 break; 940 break;
941 941
942 case Bcatch: 942 case Bcatch: /* FIXME: ill-suited for lexbind */
943 { 943 {
944 Lisp_Object v1; 944 Lisp_Object v1;
945 BEFORE_POTENTIAL_GC (); 945 BEFORE_POTENTIAL_GC ();
946 v1 = POP; 946 v1 = POP;
947 TOP = internal_catch (TOP, eval_sub, v1); /* FIXME: lexbind */ 947 TOP = internal_catch (TOP, eval_sub, v1);
948 AFTER_POTENTIAL_GC (); 948 AFTER_POTENTIAL_GC ();
949 break; 949 break;
950 } 950 }
951 951
952 case Bunwind_protect: 952 case Bunwind_protect: /* FIXME: avoid closure for lexbind */
953 record_unwind_protect (Fprogn, POP); /* FIXME: lexbind */ 953 record_unwind_protect (Fprogn, POP);
954 break; 954 break;
955 955
956 case Bcondition_case: 956 case Bcondition_case: /* FIXME: ill-suited for lexbind */
957 { 957 {
958 Lisp_Object handlers, body; 958 Lisp_Object handlers, body;
959 handlers = POP; 959 handlers = POP;
960 body = POP; 960 body = POP;
961 BEFORE_POTENTIAL_GC (); 961 BEFORE_POTENTIAL_GC ();
962 TOP = internal_lisp_condition_case (TOP, body, handlers); /* FIXME: lexbind */ 962 TOP = internal_lisp_condition_case (TOP, body, handlers);
963 AFTER_POTENTIAL_GC (); 963 AFTER_POTENTIAL_GC ();
964 break; 964 break;
965 } 965 }
diff --git a/src/image.c b/src/image.c
index a7c6346f62c..73a45633f3b 100644
--- a/src/image.c
+++ b/src/image.c
@@ -835,10 +835,7 @@ parse_image_spec (Lisp_Object spec, struct image_keyword *keywords,
835 835
836 case IMAGE_FUNCTION_VALUE: 836 case IMAGE_FUNCTION_VALUE:
837 value = indirect_function (value); 837 value = indirect_function (value);
838 /* FIXME: Shouldn't we use Ffunctionp here? */ 838 if (!NILP (Ffunctionp (value)))
839 if (SUBRP (value)
840 || COMPILEDP (value)
841 || (CONSP (value) && EQ (XCAR (value), Qlambda)))
842 break; 839 break;
843 return 0; 840 return 0;
844 841
diff --git a/src/lisp.h b/src/lisp.h
index ece96428253..e4788e63f5b 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2864,6 +2864,7 @@ extern void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN;
2864extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; 2864extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN;
2865extern void signal_error (const char *, Lisp_Object) NO_RETURN; 2865extern void signal_error (const char *, Lisp_Object) NO_RETURN;
2866EXFUN (Fcommandp, 2); 2866EXFUN (Fcommandp, 2);
2867EXFUN (Ffunctionp, 1);
2867EXFUN (Feval, 2); 2868EXFUN (Feval, 2);
2868extern Lisp_Object eval_sub (Lisp_Object form); 2869extern Lisp_Object eval_sub (Lisp_Object form);
2869EXFUN (Fapply, MANY); 2870EXFUN (Fapply, MANY);