anchor.diff:                  (ccl:%get-cstring value))))
       #+mkcl (#.(or (find-symbol* 'getenv :si nil) (find-symbol* 'getenv :mk-ext nil)) x)
       #+sbcl (sb-ext:posix-getenv x)
  -    #-(or abcl allegro clisp clozure cmu cormanlisp ecl gcl genera lispworks mcl mkcl sbcl scl xcl)
  +    #-(or abcl allegro clasp clisp clozure cmu cormanlisp ecl gcl genera lispworks mcl mkcl sbcl scl xcl)
       (error "~S is not supported on your implementation" 'getenv))
  +
  +  (defsetf getenv (x) (val)
  +    "Set an environment variable."
  +      (declare (ignorable x val))
  +    #+allegro `(setf (sys:getenv ,x) ,val)
  +    #+clisp `(system::setenv ,x ,val)
  +    #+clozure `(ccl:setenv ,x ,val)
  +    #+cmu `(unix:unix-setenv ,x ,val 1)
  +    #+ecl `(ext:setenv ,x ,val)
  +    #+lispworks `(hcl:setenv ,x ,val)
  +    #+mkcl `(mkcl:setenv ,x ,val)
  +    #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
  +    #-(or allegro clisp clozure cmu ecl lispworks mkcl sbcl)
  +    '(error "~S ~S is not supported on your implementation" 'setf 'getenv))
   
     (defun getenvp (x)
       "Predicate that is true if the named variable is present in the libc environment,
  
positive.code:                  #+clozure (ccl:native-to-pathname string)
                   #+sbcl (sb-ext:parse-native-namestring string)
                   #-(or clozure sbcl)
                   (if (os-unix-p)
                       (parse-unix-namestring string :ensure-directory ensure-directory)
                       (parse-namestring string)))))
             (pathname
               (if ensure-directory
                   (and pathname (ensure-directory-pathname pathname))
  
negative.code:               `(progn
                   ;; We usually try to do it only for the functions that need it,
                   ;; which happens in asdf/upgrade - however, for ECL, we need this hammer.
                   ,@(when (or supersede #+(or clasp ecl) t)
                       `((undefine-function ',name)))
                   ,@(when (and #+(or clasp ecl) (symbolp name)) ; fails for setf functions on ecl
                       `((declaim (notinline ,name))))
                   (,',def ,name ,formals ,@rest))))))
      (defdef defgeneric* defgeneric)
  