(lisp-implementation-type) tells you which "brand" lisp you're running.
(lisp-implementation-version) tells you which release it is.
Also look for hints stored in *features*; these allow for easy conditional compilation such as
- Code: Select all
(defun i-am () "sbcl")
(defun i-am () "ecl")
As regarding sockets, you might be interested in the usocket compatibility layer