I'm applying for project hosting for Osicat:
Osicat is a lightweight operating system interface for Common Lisp. It is intended to augment the facilities provided by CL on POSIX-like platforms, but does not try to provide a comprehensive API.
Features in 0.1:
* Directory iteration and deletion * Environment variables * Symbolic links * File permissions * File kind (regular, directory, pipe, etc.) identification
Osicat is under MIT-style licence and relies on UFFI for foreign bindings.
The current version is at:
http://random-state.net/files/osicat_0.1.tar.gz
Cheers,
-- Nikodemus
I Approve.
I have a few questions, though: How portable is it? 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. What are the differences to what PORT (from cclan) offers?
Regards, Mario.
Nikodemus Siivola nikodemus@random-state.net writes:
I'm applying for project hosting for Osicat:
Osicat is a lightweight operating system interface for Common Lisp. It is intended to augment the facilities provided by CL on POSIX-like platforms, but does not try to provide a comprehensive API.
Features in 0.1:
- Directory iteration and deletion
- Environment variables
- Symbolic links
- File permissions
- File kind (regular, directory, pipe, etc.) identification
Osicat is under MIT-style licence and relies on UFFI for foreign bindings.
The current version is at:
http://random-state.net/files/osicat_0.1.tar.gz
Cheers,
-- Nikodemus _______________________________________________ Admin mailing list Admin@common-lisp.net http://common-lisp.net/mailman/listinfo/admin
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
Nikodemus Siivola nikodemus@random-state.net writes:
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.
Indeed! :-)
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.
(I'm not sure this belongs on this list, but) If you change an environment variable, how does the host Lisp know? :-)
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)))))
Looks sweet, certainly.
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.
Well, PORT is LGPL which for some is allmost the same, but, fair enough.
Good questions!
You're wellcome :-)
Regards, Mario.
On Tue, Oct 14, 2003 at 04:25:55PM +0200, Mario Mommer wrote:
(I'm not sure this belongs on this list, but) If you change an environment variable, how does the host Lisp know? :-)
Probably doesn't but since our signal to noise ratio is not yet in danger:
If you change an environment variable, the host lisp will not know -- not until it accesses the selfsame variable that is. But when it does, the change will naturally be visible to it as well.
Cheers,
-- Nikodemus
Nikodemus Siivola nikodemus@random-state.net writes:
I'm applying for project hosting for Osicat:
Looks good, I'll go ahead and add the project.
Erik.