In asdf.lisp downloaded from the web page this afternoon, line 500.
With clisp, the package LINUX is available only in special circumstances. (it has to run on Linux, AND the glibc bindings module must have been compiled AND clisp must have been launched with it, usually with -Kfull).
So when using the LINUX package on clisp, we must test for it explicitely:
#+(and clisp #.(cl:if (cl:find-package "LINUX") '(:and) '(:or))) (defun get-uid () (linux:getuid))
A better alternative is to use POSIX:UID, which is available on a wider range of systems (IIRC, MS-Windows is POSIX too): #+clisp (defun get-uid () (POSIX:UID))
(and similarly for the PID if needed, (POSIX:PROCESS-ID))
On 8 February 2010 09:47, Pascal Bourguignon pjb@informatimago.com wrote:
In asdf.lisp downloaded from the web page this afternoon, line 500.
With clisp, the package LINUX is available only in special circumstances. (it has to run on Linux, AND the glibc bindings module must have been compiled AND clisp must have been launched with it, usually with -Kfull).
So when using the LINUX package on clisp, we must test for it explicitely:
#+(and clisp #.(cl:if (cl:find-package "LINUX") '(:and) '(:or))) (defun get-uid () (linux:getuid))
A better alternative is to use POSIX:UID, which is available on a wider range of systems (IIRC, MS-Windows is POSIX too): #+clisp (defun get-uid () (POSIX:UID))
(and similarly for the PID if needed, (POSIX:PROCESS-ID))
Yes, POSIX:UID is better than LINUX:getuid. I'll replace it. (For the record, that code snippet was stolen from common-lisp-controller.)
Note that this whole code is currently #-windows. If there are reasons to believe it will work under Windows, I may as well remove that #- (of course, some non-Windows systems are POSIX and the CLISP change is still needed. Thanks a lot!)
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] ``why'' is always relative to a model of possible explanations. It is never an "absolute" question. Which is precisely what makes it meaningful. — Faré