From: <cli...@li...> - 2005-09-20 03:11:30
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/doc impbody.xml,1.399,1.400 (Sam Steingold) 2. clisp/modules/rawsock rawsock.c,1.40,1.41 (Sam Steingold) 3. clisp/src ChangeLog,1.4912,1.4913 (Sam Steingold) 4. clisp/src ChangeLog,1.4913,1.4914 (Sam Steingold) 5. clisp/src ChangeLog,1.4914,1.4915 (Sam Steingold) 6. clisp/modules/bindings/win32 win32.lisp,1.21,1.22 test.tst,1.1,1.2 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/doc impbody.xml,1.399,1.400 Date: Mon, 19 Sep 2005 16:24:32 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26016 Modified Files: impbody.xml Log Message: (num-dict): minor rearrangements Index: impbody.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impbody.xml,v retrieving revision 1.399 retrieving revision 1.400 diff -u -d -r1.399 -r1.400 --- impbody.xml 16 Sep 2005 14:20:35 -0000 1.399 +++ impbody.xml 19 Sep 2005 16:24:30 -0000 1.400 @@ -1710,25 +1710,17 @@ <section id="num-dict"><title>The Numbers Dictionary <ulink url="&clhs;/Body/sec_the_numbers_dictionary.html">[CLHS-12.2]</ulink></title> -<formalpara id="ucpt"><title>Function &upgraded-complex-part-type;</title> -<para>When the argument is not a &recog-subt; or &real-t;, - &upgraded-complex-part-type; &signal;s an &error-t;, otherwise it - returns its argument (even though a &complex-t; number in &clisp; can - always have ℜ and ℑ of any type) because it allows - the most precise type inference.</para></formalpara> - -<formalpara id="default-float-format"> - <title>Variable &default-float-format;</title> -<para>When rational numbers are to be converted to floats (due to - &float;, &coerce;, &sqrt; or a transcendental function), the result - type is given by the variable &default-float-format;.</para></formalpara> - -<formalpara id="no-underflow"><title>Macro &no-underflow;</title> -<para>The macro <code>(&no-underflow; {&form-r;}*)</code> executes the - &form-r;s, with errors of type &floating-point-underflow-t; inhibited. - Floating point operations will silently return zero instead of - &signal;ing an &error-t; of type &floating-point-underflow-t;. -</para></formalpara> +<section id="random-state"><title>Random Numbers</title> +<para>To ease reproducibility, the variable &random-state-var; is + initialized to the same value on each invocation, so that <screen> +<prompt>$</prompt> clisp -q -norc &opt-x; '(&random; 1s0)' +</screen> will always print the same number.</para> +<para>If you want a new random state on each invocation, you can arrange + for that by using &init-function;: <screen> +<prompt>$</prompt> clisp -norc &opt-x; '(saveinitmem "foo" :init-function (&lambda-m; () (&setq; &random-state-var; (&make-random-state; &t;))))' +<prompt>$</prompt> clisp -q -norc &opt-M; foo.mem &opt-x; '(&random; 1s0)' +</screen> or by placing <code>(&setq; &random-state-var; + (&make-random-state; &t;))</code> into your &RC-file;.</para></section> <section id="int-func-ext"><title>Additional Integer Functions</title> @@ -1758,20 +1750,9 @@ is equivalent to <code>(&mod; (&expt; &k-r; &l-r;) &m-r;)</code> except it is more efficient for very large arguments.</para></formalpara> -<simplesect id="random-state"><title>Variable &random-state-var;</title> -<para>To ease reproducibility, the variable &random-state-var; is - initialized to the same value on each invocation, so that <screen> -<prompt>$</prompt> clisp -q -norc &opt-x; '(&random; 1s0)' -</screen> will always print the same number.</para> -<para>If you want a new random state on each invocation, you can arrange - for that by using &init-function;: <screen> -<prompt>$</prompt> clisp -norc &opt-x; '(saveinitmem "foo" :init-function (&lambda-m; () (&setq; &random-state-var; (&make-random-state; &t;))))' -</screen> or by placing <code>(&setq; &random-state-var; - (&make-random-state; &t;))</code> into your &RC-file;.</para></simplesect> - </section> -<section id="float-notes"><title>Floating Point</title> +<section id="float-notes"><title>Floating Point Arithmetics</title> <formalpara id="expt"><title>Function &expt;</title> <para><code>(&expt; &base-r; <replaceable>exponent</replaceable>)</code> @@ -1788,6 +1769,34 @@ automatically recomputed. Therefore &pi-v; is ¬-e; a &constant;. </para></formalpara> +<formalpara id="ucpt"><title>Function &upgraded-complex-part-type;</title> +<para>When the argument is not a &recog-subt; or &real-t;, + &upgraded-complex-part-type; &signal;s an &error-t;, otherwise it + returns its argument (even though a &complex-t; number in &clisp; can + always have ℜ and ℑ of any type) because it allows + the most precise type inference.</para></formalpara> + +<formalpara id="default-float-format"> + <title>Variable &default-float-format;</title> +<para>When rational numbers are to be converted to floats (due to + &float;, &coerce;, &sqrt; or a transcendental function), the result + type is given by the variable &default-float-format;.</para></formalpara> + +<formalpara id="no-underflow"><title>Macro &no-underflow;</title> +<para>The macro <code>(&no-underflow; {&form-r;}*)</code> executes the + &form-r;s, with errors of type &floating-point-underflow-t; inhibited. + Floating point operations will silently return zero instead of + &signal;ing an &error-t; of type &floating-point-underflow-t;. +</para></formalpara> + +<formalpara id="float-invalid-op"> + <title>Condition &floating-point-invalid-operation-t;</title> +<para>This &condition-t; is never &signal;ed by &clisp;.</para></formalpara> + +<formalpara id="float-inexact"> + <title>Condition &floating-point-inexact-t;</title> +<para>This &condition-t; is never &signal;ed by &clisp;.</para></formalpara> + </section> <section id="float-decode"><title>Float Decoding @@ -1869,15 +1878,6 @@ </section> -<section id="float-invalid-op"> - <title>Condition &floating-point-invalid-operation-t;</title> -<para>This &condition-t; is never &signal;ed by &clisp;.</para> -</section> - -<section id="float-inexact"> - <title>Condition &floating-point-inexact-t;</title> -<para>This &condition-t; is never &signal;ed by &clisp;.</para> -</section> </section> </chapter> --__--__-- Message: 2 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/rawsock rawsock.c,1.40,1.41 Date: Mon, 19 Sep 2005 18:51:11 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25474/modules/rawsock Modified Files: rawsock.c Log Message: (MAKE-SOCKADDR): do not make unwarranted assumptions about struct sockaddr structure (SENDTO): pass size to sendto() Index: rawsock.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- rawsock.c 16 Sep 2005 20:21:43 -0000 1.40 +++ rawsock.c 19 Sep 2005 18:51:09 -0000 1.41 @@ -156,16 +156,17 @@ int family = check_socket_domain(STACK_1); struct sockaddr sa; unsigned char *buffer; - size_t buffer_len; + size_t buffer_len, data_start = offsetof(struct sockaddr,sa_data); STACK_0 = check_buffer_arg(STACK_0); buffer_len = Sbvector_length(STACK_0); - pushSTACK(allocate_bit_vector(Atype_8Bit,sizeof(sa.sa_family)+buffer_len)); + pushSTACK(allocate_bit_vector(Atype_8Bit,data_start + buffer_len)); buffer = (unsigned char *)TheSbvector(STACK_0)->data; - ((struct sockaddr*)buffer)->sa_family = family; begin_system_call(); + memset(buffer,0,data_start + buffer_len); memcpy(((struct sockaddr*)buffer)->sa_data,TheSbvector(STACK_1)->data, buffer_len); end_system_call(); + ((struct sockaddr*)buffer)->sa_family = family; funcall(`RAWSOCK::MAKE-SA`,1); skipSTACK(2); } @@ -504,7 +505,7 @@ buffer = (void*)TheSbvector(STACK_1)->data; buffer_len = Sbvector_length(STACK_1); SYSCALL(retval,sock,sendto(sock,(const BUF_TYPE_T)buffer, - buffer_len,flags,sa,sizeof(struct sockaddr))); + buffer_len,flags,sa,size)); VALUES1(fixnum(retval)); skipSTACK(2); } --__--__-- Message: 3 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.4912,1.4913 Date: Mon, 19 Sep 2005 18:51:11 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25474/src Modified Files: ChangeLog Log Message: (MAKE-SOCKADDR): do not make unwarranted assumptions about struct sockaddr structure (SENDTO): pass size to sendto() Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4912 retrieving revision 1.4913 diff -u -d -r1.4912 -r1.4913 --- ChangeLog 17 Sep 2005 05:53:33 -0000 1.4912 +++ ChangeLog 19 Sep 2005 18:51:08 -0000 1.4913 @@ -1,3 +1,9 @@ +2005-09-19 Sam Steingold <sd...@gn...> + + * modules/rawsock/rawsock.c (MAKE-SOCKADDR): do not make + unwarranted assumptions about struct sockaddr structure + (SENDTO): pass size to sendto() + 2005-09-17 Sam Steingold <sd...@gn...> * utils/modprep.lisp (print-tables-1): do not use NOTREACHED, --__--__-- Message: 4 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.4913,1.4914 Date: Mon, 19 Sep 2005 20:25:49 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14237/src Modified Files: ChangeLog Log Message: typo Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4913 retrieving revision 1.4914 diff -u -d -r1.4913 -r1.4914 --- ChangeLog 19 Sep 2005 18:51:08 -0000 1.4913 +++ ChangeLog 19 Sep 2005 20:25:46 -0000 1.4914 @@ -18,7 +18,7 @@ (SOCKADDR-SLOT): new function, replaces SOCKADDR-FAMILY-SIZE; not exported * modules/rawsock/sock.lisp (sockaddr-data): use SOCKADDR-SLOT; - use EXPORTING:DEFIN, export SOCKADDR-P and MSGHDR-P + use EXPORTING:DEFUN, export SOCKADDR-P and MSGHDR-P 2005-09-16 Sam Steingold <sd...@gn...> --__--__-- Message: 5 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.4914,1.4915 Date: Mon, 19 Sep 2005 22:47:48 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14350/src Modified Files: ChangeLog Log Message: (GetProcessVersion, GetThreadPriority, GetThreadPriorityBoost) (GetProcessPriorityBoost, with-handle): added Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4914 retrieving revision 1.4915 diff -u -d -r1.4914 -r1.4915 --- ChangeLog 19 Sep 2005 20:25:46 -0000 1.4914 +++ ChangeLog 19 Sep 2005 22:47:46 -0000 1.4915 @@ -1,5 +1,11 @@ 2005-09-19 Sam Steingold <sd...@gn...> + * modules/bindings/win32/win32.lisp (GetProcessVersion) + (GetThreadPriority, GetThreadPriorityBoost, GetProcessPriorityBoost) + (with-handle): added + +2005-09-19 Sam Steingold <sd...@gn...> + * modules/rawsock/rawsock.c (MAKE-SOCKADDR): do not make unwarranted assumptions about struct sockaddr structure (SENDTO): pass size to sendto() --__--__-- Message: 6 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/bindings/win32 win32.lisp,1.21,1.22 test.tst,1.1,1.2 Date: Mon, 19 Sep 2005 22:47:48 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/bindings/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14350/modules/bindings/win32 Modified Files: win32.lisp test.tst Log Message: (GetProcessVersion, GetThreadPriority, GetThreadPriorityBoost) (GetProcessPriorityBoost, with-handle): added Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/bindings/win32/test.tst,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- test.tst 16 Sep 2005 20:10:53 -0000 1.1 +++ test.tst 19 Sep 2005 22:47:46 -0000 1.2 @@ -9,16 +9,53 @@ (integerp (show (win32:GetCurrentProcessId))) T (integerp (show (win32:GetCurrentThreadId))) T -(let ((handle (win32:GetModuleHandleA "kernel32"))) - (unwind-protect (show-mv (win32:GetModuleFileNameA handle win32:MAX_PATH)) - (win32:CloseHandle handle))) +(let ((version (win32:GetProcessVersion 0))) + (listp (show (list (ldb (byte 16 0) version) + (ldb (byte 16 16) version))))) +T + +;;; longhorn +;; (win32:with-handle (thread (win32:GetCurrentThread)) +;; (= (win32:GetProcessIdOfThread thread) +;; (win32:GetCurrentProcessId))) +;; T + +;;; longhorn +;; (win32:with-handle (thread (win32:GetCurrentThread)) +;; (= (win32:GetThreadId thread) +;; (win32:GetCurrentThreadId))) +;; T + +;;; longhorn +;; (win32:with-handle (process (win32:GetCurrentProcess)) +;; (= (win32:GetProcessId process) +;; (win32:GetCurrentProcessId))) +;; T + +(win32:with-handle (thread (win32:GetCurrentThread)) + (show-mv (win32:GetThreadPriority thread))) +T + +(win32:with-handle (thread (win32:GetCurrentThread)) + (show-mv (win32:GetThreadPriorityBoost thread))) +T + +(win32:with-handle (process (win32:GetCurrentProcess)) + (show-mv (win32:GetProcessPriorityBoost process))) +T + +(win32:with-handle (handle (win32:GetModuleHandleA "kernel32")) + (show-mv (win32:GetModuleFileNameA handle win32:MAX_PATH))) T (show-mv (win32:GetConsoleTitleA win32:BUFSIZ)) T (show-mv (win32:GetSystemDirectoryA win32:MAX_PATH)) T (show-mv (win32:GetWindowsDirectoryA win32:MAX_PATH)) T (show-mv (win32:GetCurrentDirectoryA win32:MAX_PATH)) T -(integerp (show (win32:GetVersion))) T +(let ((version (win32:GetVersion))) + (listp (show (list (ldb (byte 16 0) version) + (ldb (byte 16 16) version))))) +T (show-mv (win32:GetUserNameA win32:UNLEN)) T (show-mv (win32:GetComputerNameA win32:MAX_COMPUTERNAME_LENGTH)) T Index: win32.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/bindings/win32/win32.lisp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- win32.lisp 16 Sep 2005 20:10:53 -0000 1.21 +++ win32.lisp 19 Sep 2005 22:47:46 -0000 1.22 @@ -48,12 +48,43 @@ (def-call-out GetCurrentProcessId (:library kernel32) (:arguments) (:return-type dword)) +(def-call-out GetProcessVersion (:library kernel32) + (:arguments (pid dword)) (:return-type dword)) + +;;; longhorn +;; (def-call-out GetProcessId (:library kernel32) +;; (:arguments (hProcess handle)) (:return-type dword)) + (def-call-out GetCurrentThreadId (:library kernel32) (:arguments) (:return-type dword)) +;;; longhorn +;; (def-call-out GetProcessIdOfThread (:library kernel32) +;; (:arguments (hThread handle)) (:return-type dword)) + +;;; longhorn +;; (def-call-out GetThreadId (:library kernel32) +;; (:arguments (hThread handle)) (:return-type dword)) + +(def-call-out GetThreadPriority (:library kernel32) + (:arguments (hThread handle)) (:return-type int)) + +(def-call-out GetThreadPriorityBoost (:library kernel32) + (:arguments (hThread handle) (no-boost (c-ptr boolean) :out)) + (:return-type boolean)) + +(def-call-out GetProcessPriorityBoost (:library kernel32) + (:arguments (hProcess handle) (no-boost (c-ptr boolean) :out)) + (:return-type boolean)) + (def-call-out CloseHandle (:library kernel32) (:arguments (handle handle)) (:return-type boolean)) +(defmacro with-handle ((handle form) &body forms) + `(let ((,handle ,form)) + (unwind-protect (progn ,@forms) + (when ,handle (CloseHandle ,handle))))) + ;; (c-lines "#include <winnt.h>~%") (eval-when (compile eval load) (def-c-enum RIGHTS --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |