anchor.diff:    (:use :uiop/common-lisp :uiop/package :uiop/utility)
     (:export
      #:featurep #:os-unix-p #:os-macosx-p #:os-windows-p #:os-genera-p #:detect-os ;; features
  +   #:os-cond
      #:getenv #:getenvp ;; environment variables
      #:implementation-identifier ;; implementation identifier
      #:implementation-type #:*implementation-type*
  
positive.code:                 (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)
      (error "~S is not supported on your implementation" 'getenv))
  
    (defun getenvp (x)
      "Predicate that is true if the named variable is present in the libc environment,
  
negative.code: 
  ;;;; Early meta-level tweaks
  
  #+(or abcl allegro clasp clisp cmu ecl mkcl clozure lispworks mkcl sbcl scl)
  (eval-when (:load-toplevel :compile-toplevel :execute)
    ;; Check for unicode at runtime, so that a hypothetical FASL compiled with unicode
    ;; but loaded in a non-unicode setting (e.g. on Allegro) won't tell a lie.
    (when (and #+allegro (member :ics *features*)
               #+(or clasp clisp cmu ecl mkcl) (member :unicode *features*)
               #+sbcl (member :sb-unicode *features*))
      (pushnew :asdf-unicode *features*)))
  
  