X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsrctran.lisp;h=7383e72a9646b33f33c8e532c2e4741887bd45f2;hb=bc1783335d78be988465e4fc7cf9c5fdb88a3fa4;hp=8e96110966d7d6e80525ed1a43147c918e09cbd7;hpb=8e500c66a52b58fd8dab4b098f76e36734d8fdbd;p=sbcl.git diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index 8e96110..7383e72 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -128,12 +128,12 @@ (define-source-transform nth (n l) `(car (nthcdr ,n ,l))) -;; (define-source-transform last (x) `(sb!impl::last1 ,x)) -(define-source-transform last (x) - `(let* ((x (the list ,x)) - (r (cdr x))) - (do () ((atom r) x) - (shiftf x r (cdr r))))) +(define-source-transform last (x) `(sb!impl::last1 ,x)) +(define-source-transform gethash (&rest args) + (case (length args) + (2 `(sb!impl::gethash2 ,@args)) + (3 `(sb!impl::gethash3 ,@args)) + (t (values nil t)))) (defvar *default-nthcdr-open-code-limit* 6) (defvar *extreme-nthcdr-open-code-limit* 20)