On Tue, Oct 14, 2003 at 09:27:04AM +0200, Mario Mommer wrote:
How portable is it?
Fairly. On the lisp side UFFI is enough, plus sane NAMESTRING. Any lisp that doesn't return a namestring understandable to the OS deserves to lose.
On the OS-side a standard libc + gcc is enough.
Some of the stuff sounds familiar to me. I know that most lisps have an environment variable facility, and also some functionality to deal with directory deletion/creation.
Correct. ...but since i'm not relying on the host-lisp's features the functionality should work across implementations.
Also, I dare to claim my interface is nicer than what average lisp offers:
Example:
;; Make *.sh in SBCL_HOME executable (with-directory-iterator (next (environment-variable 'sbcl_home)) (loop for entry = (next) while entry do (when (equal "sh" (pathaname-type entry)) (pushnew 'user-exec (file-permissions entry)))))
What are the differences to what PORT (from cclan) offers?
PORT tries to offer portablity between the functionality offered by various lisps, and is GPL. Osicat bases functionality on portable foreign interface and is MIT-licensed.
PORT mimics the native functions in interface (eg. GETENV), Osicat offers a lispier interface (eg. ENVIRONMENT-VARIABLE).
PORT target a wide array of functionality, Osicat has a narrower focus: commonly needed operating system functionality not accessible via ANSI CL.
Good questions!
Cheers,
-- Nikodemus