clisp-cvs Digest, Vol 42, Issue 23

View: New views
1 Messages — Rating Filter:   Alert me  

clisp-cvs Digest, Vol 42, Issue 23

by clisp-cvs-request :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Send clisp-cvs mailing list submissions to
        clisp-cvs@...

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
        clisp-cvs-request@...

You can reach the person managing the list at
        clisp-cvs-owner@...

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 impissue.xml,1.23,1.24 (Sam Steingold)
   2. clisp/src ChangeLog,1.7177,1.7178 compiler.lisp,1.349,1.350
      (Sam Steingold)
   3. clisp/src ChangeLog,1.7178,1.7179 defs2.lisp,1.47,1.48
      (Sam Steingold)
   4. clisp/src ChangeLog,1.7179,1.7180 stream.d,1.665,1.666
      (Vladimir Tzankov)


----------------------------------------------------------------------

Message: 1
Date: Wed, 28 Oct 2009 19:45:00 +0000
From: Sam Steingold <sds@...>
Subject: clisp/doc impissue.xml,1.23,1.24
To: clisp-cvs@...
Message-ID: <E1N3ES4-0004KJ-PG@...>

Update of /cvsroot/clisp/clisp/doc
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv16625/doc

Modified Files:
        impissue.xml
Log Message:
Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER:
use the CL Condition system for compiler diagnostics.
* compiler.lisp (c-current-location): add
(c-warning): add predefun, uses c-comment
(c-warn): use it
(c-style-warn): use it instead of c-warn
* condition.lisp (simple-style-warning): add
(c-warning): define


Index: impissue.xml
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/impissue.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- impissue.xml 4 Jun 2008 03:17:02 -0000 1.23
+++ impissue.xml 28 Oct 2009 19:44:58 -0000 1.24
@@ -75,7 +75,7 @@
  <varlistentry id="iss062"><term>&iss062;</term>&yes;</varlistentry>
  <varlistentry id="iss063"><term>&iss063;</term>&yes;</varlistentry>
  <varlistentry id="iss064"><term>&iss064;</term>&yes;</varlistentry>
- <varlistentry id="iss065"><term>&iss065;</term>&no;</varlistentry>
+ <varlistentry id="iss065"><term>&iss065;</term>&yes;</varlistentry>
  <varlistentry id="iss066"><term>&iss066;</term>&yes;</varlistentry>
  <varlistentry id="iss067"><term>&iss067;</term>&yes;</varlistentry>
  <varlistentry id="iss068"><term>&iss068;</term>&yes;</varlistentry>




------------------------------

Message: 2
Date: Wed, 28 Oct 2009 19:59:05 +0000
From: Sam Steingold <sds@...>
Subject: clisp/src ChangeLog,1.7177,1.7178 compiler.lisp,1.349,1.350
To: clisp-cvs@...
Message-ID: <E1N3Efh-0004hX-Bf@...>

Update of /cvsroot/clisp/clisp/src
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18062/src

Modified Files:
        ChangeLog compiler.lisp
Log Message:
(ignore-check, value-form-index): make
style-warning "used despite IGNORE declaration"
a regular warning as per COMPILER-DIAGNOSTICS:USE-HANDLER


Index: compiler.lisp
===================================================================
RCS file: /cvsroot/clisp/clisp/src/compiler.lisp,v
retrieving revision 1.349
retrieving revision 1.350
diff -u -d -r1.349 -r1.350
--- compiler.lisp 28 Oct 2009 19:44:59 -0000 1.349
+++ compiler.lisp 28 Oct 2009 19:59:03 -0000 1.350
@@ -3577,8 +3577,8 @@
       (if (var-specialp var)
         (c-warn (TEXT "Binding variable ~S can cause side effects despite IGNORE declaration since it is declared SPECIAL.")
                 sym)
-        (if (var-for-value-usedp var)
-          (c-style-warn (TEXT "variable ~S is used despite IGNORE declaration.")
+        (when (var-for-value-usedp var)
+          (c-warn (TEXT "variable ~S is used despite IGNORE declaration.")
                         sym)))
       ;; var not ignore-declared
       (unless (memq sym *ignorables*)
@@ -8035,7 +8035,7 @@
   (when (fnode-p value)
     (setf (fnode-used value) t)
     (when (fnode-ignore value)
-      (c-style-warn (TEXT "function ~S used despite IGNORE declaration.")
+      (c-warn (TEXT "function ~S used despite IGNORE declaration.")
                     (fnode-name value))))
   (let ((const-list (fnode-consts func))
         (forms-list (fnode-consts-forms func))

Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v
retrieving revision 1.7177
retrieving revision 1.7178
diff -u -d -r1.7177 -r1.7178
--- ChangeLog 28 Oct 2009 19:44:58 -0000 1.7177
+++ ChangeLog 28 Oct 2009 19:59:03 -0000 1.7178
@@ -1,5 +1,11 @@
 2009-10-28  Sam Steingold  <sds@...>
 
+ * compiler.lisp (ignore-check, value-form-index): make style-warning
+ "used despite IGNORE declaration" a regular warning as per
+ COMPILER-DIAGNOSTICS:USE-HANDLER
+
+2009-10-28  Sam Steingold  <sds@...>
+
  Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER:
  use the CL Condition system for compiler diagnostics.
  * compiler.lisp (c-current-location): add




------------------------------

Message: 3
Date: Wed, 28 Oct 2009 21:11:54 +0000
From: Sam Steingold <sds@...>
Subject: clisp/src ChangeLog,1.7178,1.7179 defs2.lisp,1.47,1.48
To: clisp-cvs@...
Message-ID: <E1N3FoA-00070R-Uf@...>

Update of /cvsroot/clisp/clisp/src
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv26928/src

Modified Files:
        ChangeLog defs2.lisp
Log Message:
(date-string): fix the original bug: the date was
printed to the stdout instead of being returned as a string


Index: defs2.lisp
===================================================================
RCS file: /cvsroot/clisp/clisp/src/defs2.lisp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- defs2.lisp 28 Oct 2009 15:38:01 -0000 1.47
+++ defs2.lisp 28 Oct 2009 21:11:52 -0000 1.48
@@ -447,7 +447,8 @@
 (defun date-format ()
   (localized 'date-format))
 (defun date-string ()
-  (funcall (date-format) nil (multiple-value-list (get-decoded-time))))
+  (with-output-to-string (s)
+    (funcall (date-format) s (multiple-value-list (get-decoded-time)))))
 
 ;; list a directory
 (defun dir (&optional (pathnames #+(or UNIX WIN32) '("*/" "*")))

Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v
retrieving revision 1.7178
retrieving revision 1.7179
diff -u -d -r1.7178 -r1.7179
--- ChangeLog 28 Oct 2009 19:59:03 -0000 1.7178
+++ ChangeLog 28 Oct 2009 21:11:52 -0000 1.7179
@@ -1,5 +1,10 @@
 2009-10-28  Sam Steingold  <sds@...>
 
+ * defs2.lisp (date-string): fix the original bug: the date was
+ printed to the stdout instead of being returned as a string
+
+2009-10-28  Sam Steingold  <sds@...>
+
  * compiler.lisp (ignore-check, value-form-index): make style-warning
  "used despite IGNORE declaration" a regular warning as per
  COMPILER-DIAGNOSTICS:USE-HANDLER




------------------------------

Message: 4
Date: Wed, 28 Oct 2009 22:15:20 +0000
From: Vladimir Tzankov <vtz@...>
Subject: clisp/src ChangeLog,1.7179,1.7180 stream.d,1.665,1.666
To: clisp-cvs@...
Message-ID: <E1N3GnY-00009F-Qr@...>

Update of /cvsroot/clisp/clisp/src
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv525/src

Modified Files:
        ChangeLog stream.d
Log Message:
[MULTITHREAD]: fix GC safety issue in SOCKET-STATUS


Index: stream.d
===================================================================
RCS file: /cvsroot/clisp/clisp/src/stream.d,v
retrieving revision 1.665
retrieving revision 1.666
diff -u -d -r1.665 -r1.666
--- stream.d 14 Oct 2009 21:15:12 -0000 1.665
+++ stream.d 28 Oct 2009 22:15:18 -0000 1.666
@@ -14335,31 +14335,31 @@
   }
 }
 
-/* extract socket, direction and status place
-   from the SOCKET-STATUS argument */
-local gcv_object_t* parse_sock_list (object obj,object *sock,direction_t *dir)
+/* extract socket, direction and status place from the SOCKET-STATUS
+   argument. returns the cons which cdr should be changed with the status */
+local object parse_sock_list (object obj,object *sock,direction_t *dir)
 {
   if (consp(obj)) { /* (sock ...) */
     *sock = (object)Car(obj);
     if (nullp(Cdr(obj))) { /* (sock) */
       *dir = DIRECTION_IO;
-      return &Cdr(obj);
+      return obj;
     } else if (consp(Cdr(obj))) { /* (sock dir . place) */
       *dir = check_direction(Car(Cdr(obj)));
-      return &Cdr(Cdr(obj));
+      return Cdr(obj);
     } else { /* (sock . dir) or (server . place) */
       if (socket_server_p(*sock)) { /* (server . place) */
         *dir = DIRECTION_INPUT;
-        return &Cdr(obj);
+        return obj;
       } else {                  /* (sock . dir) */
         *dir = check_direction(Cdr(obj));
-        return NULL;
+        return NIL;
       }
     }
   } else { /* sock */
     *sock = obj;
     *dir = DIRECTION_IO;
-    return NULL;
+    return NIL;
   }
 }
 
@@ -14378,7 +14378,7 @@
   var SOCKET in_sock = INVALID_SOCKET;
   var SOCKET out_sock = INVALID_SOCKET;
   var uintL ret = 0, avail = 0;
-  if (NULL==parse_sock_list(socket,&sock,&dir) && need_new_list)
+  if (eq(NIL,parse_sock_list(socket,&sock,&dir)) && need_new_list)
     *need_new_list = true;
   stream_handles(sock,true,NULL,
                  READ_P(dir)  ? &in_sock  : NULL,
@@ -14407,7 +14407,7 @@
                                  fd_set *writefds, fd_set *errorfds) {
   var object sock, ret;
   var direction_t dir;
-  var gcv_object_t *place = parse_sock_list(socket,&sock,&dir);
+  var object status_cons = parse_sock_list(socket,&sock,&dir);
   var SOCKET in_sock = INVALID_SOCKET;
   var SOCKET out_sock = INVALID_SOCKET;
   var bool char_p = true, wr = false;
@@ -14419,13 +14419,16 @@
     if (FD_ISSET(in_sock,errorfds)) return S(Kerror);
     if (socket_server_p(sock)) {
       ret = FD_ISSET(in_sock,readfds) ? T : NIL;
-      if (place) *place = ret;
+      if (!eq(NIL,status_cons)) Cdr(status_cons) = ret;
       return ret;
     } else if (uint_p(sock)) {
       if (FD_ISSET(in_sock,readfds)) rd = LISTEN_AVAIL;
     } else {                    /* stream */
-      if (FD_ISSET(in_sock,readfds) || (stream_isbuffered(sock) & bit(1)))
+      if (FD_ISSET(in_sock,readfds) || (stream_isbuffered(sock) & bit(1))) {
+        pushSTACK(status_cons);
         rd = (char_p ? listen_char(sock) : listen_byte(sock));
+        status_cons = popSTACK();
+      }
     }
   }
   if (out_sock != INVALID_SOCKET) {
@@ -14438,7 +14441,7 @@
     case LISTEN_WAIT:  ret = wr ? S(Koutput) : NIL; break;
     case LISTEN_ERROR: ret = S(Kerror); break;
   }
-  if (place) *place = ret;
+  if (!eq(NIL,status_cons)) Cdr(status_cons) = ret;
   return ret;
 }
 

Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v
retrieving revision 1.7179
retrieving revision 1.7180
diff -u -d -r1.7179 -r1.7180
--- ChangeLog 28 Oct 2009 21:11:52 -0000 1.7179
+++ ChangeLog 28 Oct 2009 22:15:17 -0000 1.7180
@@ -1,3 +1,11 @@
+2009-10-29  Vladimir Tzankov  <vtzankov@...>
+
+ [MULTITHREAD]: fix GC safety issue in SOCKET-STATUS
+ * stream.d (parse_sock_list): do not return pointer in heap, rather
+ return the cons which cdr should be filled with socket status
+ (handle_set, handle_isset): use new return from parse_sock_list and
+ preserve it across maygc calls
+
 2009-10-28  Sam Steingold  <sds@...>
 
  * defs2.lisp (date-string): fix the original bug: the date was




------------------------------

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference

------------------------------

_______________________________________________
clisp-cvs mailing list
clisp-cvs@...
https://lists.sourceforge.net/lists/listinfo/clisp-cvs


End of clisp-cvs Digest, Vol 42, Issue 23
*****************************************

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
clisp-devel mailing list
clisp-devel@...
https://lists.sourceforge.net/lists/listinfo/clisp-devel