/[emacs]/emacs/src/ChangeLog
ViewVC logotype

Diff of /emacs/src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2701.2.43 by miles, Tue Jul 6 10:26:58 2004 UTC revision 1.2701.2.44 by miles, Thu Jul 8 08:12:30 2004 UTC
# Line 1  Line 1 
 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.  
   
1  2004-07-06  John Paul Wallington  <jpw@gnu.org>  2004-07-06  John Paul Wallington  <jpw@gnu.org>
2    
3          * eval.c (Fdefmacro): Signal an error if NAME is not a symbol.          * eval.c (Fdefmacro): Signal an error if NAME is not a symbol.

Legend:
Removed from v.1.2701.2.43  
changed lines
  Added in v.1.2701.2.44

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26