diff options
Diffstat (limited to 'src/ChangeLog.lexbind')
-rw-r--r-- | src/ChangeLog.lexbind | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/ChangeLog.lexbind b/src/ChangeLog.lexbind new file mode 100644 index 00000000000..c8336d12e9c --- /dev/null +++ b/src/ChangeLog.lexbind @@ -0,0 +1,104 @@ +2008-04-23 Miles Bader <miles@gnu.org> + + * eval.c (Ffunctionp): Return nil for special forms. + (Qunevalled): New variable. + (syms_of_eval): Initialize it. + +2007-10-18 Miles Bader <miles@gnu.org> + + * eval.c (FletX): Test the type of VARLIST rather than just !NILP. + (Flet): Use XCAR instead of Fcar. + +2007-10-16 Miles Bader <miles@gnu.org> + + * alloc.c (make_funvec, Fpurecopy): Set the pseudo-vector type. + +2006-02-10 Miles Bader <miles@gnu.org> + + * eval.c (Ffunctionp): Supply new 2nd arg to Findirect_function. + +2005-03-04 Miles Bader <miles@gnu.org> + + * eval.c (FletX): Update Vinterpreter_lexical_environment for each + variable we bind, instead of all at once like `let'. + +2004-08-09 Miles Bader <miles@gnu.org> + + Changes from merging the funvec patch: + + * eval.c (Feval, Ffuncall): Don't special-case vectors. + (funcall_lambda): Use FUNVEC_SIZE. + (Fcurry): Remove function. + + Merge funvec patch. + +2004-04-10 Miles Bader <miles@gnu.org> + + * eval.c (Fspecialp): New function. + (syms_of_eval): Initialize it. + +2004-04-03 Miles Bader <miles@gnu.org> + + * eval.c (Feval): If a variable isn't bound lexically, fall back + to looking it up dynamically even if it isn't declared special. + +2002-08-26 Miles Bader <miles@gnu.org> + + * bytecode.c (Fbyte_code): Fsub1 can GC, so protect it. + +2002-06-12 Miles Bader <miles@gnu.org> + + Lexical binding changes to the byte-code interpreter: + + * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, Bvec_ref, Bvec_set) + (BdiscardN): New constants. + (exec_byte_code): Renamed from `Fbyte_code'. + Implement above new bytecodes. + Add ARGS-TEMPLATE, NARGS and ARGS parameters, and optionally use + them push initial args on the stack. + (Fbyte_code): New function, just call `exec_byte_code'. + Add additional optional arguments for `exec_byte_code'. + (Qand_optional, Qand_rest): New extern declarations. + * eval.c (Fcurry, Ffunctionp): New functions. + (syms_of_eval): Initialize them. + (funcall_lambda): Call `exec_byte_code' instead of Fbyte_code. + If a compiled-function object has a `push-args' slot, call the + byte-code interpreter without binding any arguments. + (Ffuncall): Add support for curried functions. + * lisp.h (Fbyte_code): Declare max-args as MANY. + (exec_byte_code): New declaration. + + Lexical binding changes to the lisp interpreter: + + * lisp.h (struct Lisp_Symbol): Add `declared_special' field. + (apply_lambda): Add new 3rd arg to decl. + * alloc.c (Fmake_symbol): Initialize `declared_special' field. + * eval.c (Vinterpreter_lexical_environment): New variable. + (syms_of_eval): Initialize it. + (Fsetq): Modify SYM's lexical binding if appropriate. + (Ffunction): Return a closure if within a lexical environment. + (Flet, FletX): Lexically bind non-defvar'd variables if inside a + lexical environment. + (Feval): Return lexical binding of variables, if they have one. + Pass current lexical environment to embedded lambdas. Handle closures. + (Ffuncall): Pass nil lexical environment to lambdas. Handle closures. + (funcall_lambda): Add new LEXENV argument, and lexically bind + arguments if it's non-nil. Bind `interpreter-lexenv' if it changed. + (apply_lambda): Add new LEXENV argument and pass it to funcall_lambda. + (Fdefvaralias, Fdefvar, Fdefconst): Mark the variable as special. + (Qinternal_interpreter_environment, Qclosure): New constants. + (syms_of_eval): Initialize them. + (Fdefun, Fdefmacro): Use a closure if lexical binding is active. + * lread.c (defvar_bool, defvar_lisp_nopro, defvar_per_buffer) + (defvar_kboard, defvar_int): Mark the variable as special. + (Vlexical_binding, Qlexical_binding): New variables. + (syms_of_lread): Initialize them. + (Fload): Bind `lexically-bound' to nil unless specified otherwise + in the file header. + (lisp_file_lexically_bound_p): New function. + (Qinternal_interpreter_environment): New variable. + * doc.c (Qclosure): New extern declaration. + (Fdocumentation, store_function_docstring): Handle interpreted + closures. + +;; arch-tag: 7cf884aa-6b48-40cb-bfca-265a1e99b3c5 |