Robert Brown | 3 Aug 23:58 2011
Picon

SBCL data flush problem

I use SBCL on Linux and have noticed a problem when writing
lots of data to socket streams created with usocket.

In file backend/sbcl.lisp, the function socket-connect creates a
stream as follows:

(setf (socket-stream usocket)
      (sb-bsd-sockets:socket-make-stream socket
                                                             :input t
                                                             :output t
                                                             :buffering :full

:element-type element-type))

If you look at the code for sb-bsd-sockets:socket-make-stream in
sbcl/contrib/sb-bsd-sockets/sockets.lisp, you'll see that it specifies
a default value of T for the keyword argument serve-events:

 (defmethod socket-make-stream ((socket socket)
                              &key input output
                              (element-type 'character)
                              (buffering :full)
                              (external-format :default)
                              timeout
                              auto-close
                              (serve-events t))

This means that SBCL streams created by usocket have a true
serve-events property.  When writing large amounts of data to several
streams, the kernel will eventually stop accepting data from SBCL.
(Continue reading)

Chun Tian (binghe | 8 Aug 16:21 2011
Picon

Re: SBCL data flush problem

Hi, Robert

Your proposal change has been merged into usocket 0.5.x and will be in next releases shortly.

Thanks again!

--binghe

在 2011-8-4,05:58, Robert Brown 写道:

> I use SBCL on Linux and have noticed a problem when writing
> lots of data to socket streams created with usocket.
> 
> In file backend/sbcl.lisp, the function socket-connect creates a
> stream as follows:
> 
> (setf (socket-stream usocket)
>       (sb-bsd-sockets:socket-make-stream socket
>                                                              :input t
>                                                              :output t
>                                                              :buffering :full
> 
> :element-type element-type))
> 
> If you look at the code for sb-bsd-sockets:socket-make-stream in
> sbcl/contrib/sb-bsd-sockets/sockets.lisp, you'll see that it specifies
> a default value of T for the keyword argument serve-events:
> 
>  (defmethod socket-make-stream ((socket socket)
>                               &key input output
(Continue reading)

Chun Tian (binghe | 13 Aug 08:15 2011
Picon

[ANNOUNCE] usocket 0.5.3

Hello people,

This is a cumulative update for USOCKET, version 0.5.3

Changes:

* Bugfix: [MCL] Fixed SOCKET-LISTEN on vector addresses like #(0 0 0 0)
* Bugfix: [MCL] Fixed WAIT-FOR-INPUT on passive sockets (stream-server-usocket)
* Bugfix: [LispWorks] Fixed using UDP in delivered applications (thanks to Camille Troillard and Martin
Simmons, this is from the legacy LispWorks-UDP project).
* Bugfix: [SBCL] Fixed for "SBCL data flush problem", reported by Robert Brown and confirmed by Nikodemus Siivola.

Special thanks to:

	Robert Brown <robert.brown@...>

for his reporting and patching on "SBCL data flush problem".

If you want to download this release, please checkout

	http://common-lisp.net/project/usocket/releases/

or just wait for new Quicklisp releases.

The API documentation page is still here:

	http://common-lisp.net/project/usocket/api-docs.shtml

Any feedback - bugs or hugs - is greatly appreciated.

(Continue reading)

Anton Vodonosov | 16 Aug 16:46 2011
Picon

Re: [ANNOUNCE] usocket 0.5.3

Hello, Chun Tian.

The news are great :) 

Best regards,
- Anton

13.08.2011, 10:15, "Chun Tian (binghe)" <binghe.lisp <at> gmail.com>:
> Hello people,
>
> This is a cumulative update for USOCKET, version 0.5.3
>
> Changes:
>
> * Bugfix: [MCL] Fixed SOCKET-LISTEN on vector addresses like #(0 0 0 0)
> * Bugfix: [MCL] Fixed WAIT-FOR-INPUT on passive sockets (stream-server-usocket)
> * Bugfix: [LispWorks] Fixed using UDP in delivered applications (thanks to Camille Troillard and Martin
Simmons, this is from the legacy LispWorks-UDP project).
> * Bugfix: [SBCL] Fixed for "SBCL data flush problem", reported by Robert Brown and confirmed by Nikodemus Siivola.
>
> Special thanks to:
>
>         Robert Brown <robert.brown <at> gmail.com>
>
> for his reporting and patching on "SBCL data flush problem".
>
> If you want to download this release, please checkout
>
>         http://common-lisp.net/project/usocket/releases/
>
(Continue reading)

Juan Jose Garcia-Ripoll | 26 Aug 11:42 2011

Usocket and ECL's MAKE-BUILD

There are various things in how the usocket library is packaged that prevent it from being used in standalone programs with ECL. I summarize them

- A package usocket-system is defined and used in package.lisp. This package is not needed, as ASDF provides it and when the executable is created it does not exist.

- Standalone executables do not have ASDF in it. There is no need. Yet usocket uses it to define a logical hostname which is never used.

- The references to usocket-system propagate to usocket-test.

I attach a patch against the version that quicklisp distributes. With this patch usocket builds as an independent library without problems and can be shipped in standalone executables as well.

Juano

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com

Attachment (patches.diff): application/octet-stream, 3736 bytes
------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
Ecls-list mailing list
Ecls-list@...
https://lists.sourceforge.net/lists/listinfo/ecls-list
Chun Tian (binghe | 27 Aug 07:51 2011
Picon

Re: Usocket and ECL's MAKE-BUILD

Hi, Juano

Thanks, your patch has been merged into usocket.  I didn't know that packages like XXX-SYSTEM are not needed any more, and you're right that the logical pathname definition was never used by other usocket code.

These changes (with others) will appear in next release 0.5.4, which should be released on mid September.

Regards,

Chun Tian (binghe)

在 2011-8-26,17:42, Juan Jose Garcia-Ripoll 写道:

There are various things in how the usocket library is packaged that prevent it from being used in standalone programs with ECL. I summarize them

- A package usocket-system is defined and used in package.lisp. This package is not needed, as ASDF provides it and when the executable is created it does not exist.

- Standalone executables do not have ASDF in it. There is no need. Yet usocket uses it to define a logical hostname which is never used.

- The references to usocket-system propagate to usocket-test.

I attach a patch against the version that quicklisp distributes. With this patch usocket builds as an independent library without problems and can be shipped in standalone executables as well.

Juano

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
<patches.diff>_______________________________________________
usocket-devel mailing list
usocket-devel-F1HGIaG5STTwUBNsjRvlJw@public.gmane.orgt
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel

_______________________________________________
usocket-devel mailing list
usocket-devel@...
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/usocket-devel

Gmane