X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fbyte-interp.lisp;h=738f9013fd582e15cc99c9f7e69183d62f970fab;hb=3b45a7b66afe95080562d266dd447b1286abece0;hp=821abd68ba6cac23c4ac8e7ea887278b0b53528b;hpb=a946a48c414ad327d83b50ac622752b56f078dc7;p=sbcl.git diff --git a/src/code/byte-interp.lisp b/src/code/byte-interp.lisp index 821abd6..738f901 100644 --- a/src/code/byte-interp.lisp +++ b/src/code/byte-interp.lisp @@ -50,16 +50,13 @@ ((nil))) `(function ,(res) *)))))) -;;;; the evaluation stack +;;;; the 'evaluation stack' +;;;; +;;;; (The name dates back to CMU CL, when it was used for the IR1 +;;;; interpreted implementation of EVAL. In SBCL >=0.7.0, it's just +;;;; the byte interpreter stack.) -;;; the interpreter's evaluation stack (defvar *eval-stack* (make-array 100)) ; will grow as needed -;;; FIXME: This seems to be used by the ordinary (non-byte) interpreter -;;; too, judging from a crash I had when I removed byte-interp.lisp from -;;; the cold build sequence. It would probably be clearer to pull the -;;; shared interpreter machinery out of the byte interpreter and ordinary -;;; interpreter files and put them into their own file shared-interp.lisp -;;; or something. ;;; the index of the next free element of the interpreter's evaluation stack (defvar *eval-stack-top* 0) @@ -400,17 +397,17 @@ ;;;; miscellaneous primitive stubs -(macrolet ((frob (name &optional (args '(x))) +(macrolet ((def-frob (name &optional (args '(x))) `(defun ,name ,args (,name ,@args)))) - (frob %CODE-CODE-SIZE) - (frob %CODE-DEBUG-INFO) - (frob %CODE-ENTRY-POINTS) - (frob %FUNCALLABLE-INSTANCE-FUNCTION) - (frob %FUNCALLABLE-INSTANCE-LAYOUT) - (frob %FUNCALLABLE-INSTANCE-LEXENV) - (frob %FUNCTION-NEXT) - (frob %FUNCTION-SELF) - (frob %SET-FUNCALLABLE-INSTANCE-FUNCTION (fin new-val))) + (def-frob %code-code-size) + (def-frob %code-debug-info) + (def-frob %code-entry-points) + (def-frob %funcallable-instance-function) + (def-frob %funcallable-instance-layout) + (def-frob %funcallable-instance-lexenv) + (def-frob %function-next) + (def-frob %function-self) + (def-frob %set-funcallable-instance-function (fin new-val))) ;;;; funny functions