X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fnode.lisp;h=3554d018b7eeb8660fad49be171b9af21856f518;hb=8f45dd3a5a074998e1aa697ba8f2a8b1b7388427;hp=e0ee5cb19974df21249d089e91ed85ae85e75b48;hpb=28b2447f2775779fe49fd024d8cce069060431c6;p=sbcl.git diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index e0ee5cb..3554d01 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -711,16 +711,16 @@ ;; global environment. (inlinep nil :type inlinep) (inline-expansion nil :type (or cons null)) - ;; the block-local definition of this function (either because it - ;; was semi-inline, or because it was defined in this block). If - ;; this function is not an entry point, then this may be deleted or - ;; LET-converted. Null if we haven't converted the expansion yet. - (functional nil :type (or functional null))) + ;; List of functionals corresponding to this DEFINED-FUN: either from the + ;; conversion of a NAMED-LAMBDA, or from inline-expansion (see + ;; RECOGNIZE-KNOWN-CALL) - we need separate functionals for each policy in + ;; which the function is used. + (functionals nil :type list)) (defprinter (defined-fun :identity t) %source-name #!+sb-show id inlinep - (functional :test functional)) + (functionals :test functionals)) ;;;; function stuff @@ -972,7 +972,11 @@ ;; list of embedded lambdas (children nil :type list) (parent nil :type (or clambda null)) - (allow-instrumenting *allow-instrumenting* :type boolean)) + (allow-instrumenting *allow-instrumenting* :type boolean) + ;; True if this is a system introduced lambda: it may contain user code, but + ;; the lambda itself is not, and the bindings introduced by it are considered + ;; transparent by the nested DX analysis. + (system-lambda-p nil :type boolean)) (defprinter (clambda :conc-name lambda- :identity t) %source-name %debug-name @@ -1159,7 +1163,7 @@ (%source-name (missing-arg) :type symbol :read-only t)) (defprinter (ref :identity t) #!+sb-show id - %source-name + (%source-name :test (neq %source-name '.anonymous.)) leaf) ;;; Naturally, the IF node always appears at the end of a block.