From psilord at cs.wisc.edu Wed May 12 07:54:55 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Wed, 12 May 2010 02:54:55 -0500 Subject: [iolib-devel] edge/level trigger in epoll backend Message-ID: <20100512075455.GA1410@cs.wisc.edu> Hello, I'm seeing a problem in my codes where I have many clients using the multiplexer with nonblocking i/o all connected to a master process also using the multiplexer and nonblocking i/o and the master process only wants to serve one client for a very long time, then switch to another, and serve it a very long time. Meanwhile everyone is ready for work and should be marked as ready in the file descriptor set. This makes me wonder, is IOLib using EPOLLET to do edge triggered I/O in the linux backend? If so, I think that's not what most people will want since if data is left in the input/output buffers due to a short read/write, you'll never be notified of stuff left there. I want level triggered I/O to force pumping of the data regardless of what happens. Is there a means in IOLib I can control the edge/levelness of the backend? Thank you. -pete From psilord at cs.wisc.edu Fri May 14 19:45:17 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Fri, 14 May 2010 14:45:17 -0500 Subject: [iolib-devel] Introductory tcp client/server examples In-Reply-To: References: <20100108051711.GA18185@cs.wisc.edu> Message-ID: <20100514194517.GA1062@cs.wisc.edu> On Fri, May 14, 2010 at 03:38:16PM -0400, Far? wrote: > is there a git repository or some other place to download the latest > version of your iolib examples? Thanks! Sure, the latest version is always under "Live Sources" on this web page: http://common-lisp.net/project/iolib/download.shtml The repository mentioned there is: git clone git://common-lisp.net/projects/iolib/iolib.git Generally, if there is some patches/enhancements for the example codes or the tutorial, send it to this list, but I'll take care of them. If you use clbuild and whatnot to manage your lisp environment then ./clbuild install iolib will get you the latest revision with the tutorial examples and document. I welcome additional example codes and patches and will help document them into the tutorial. Any bugs or changes to IOLib itself should be directed to Stelian Ionescu. Thank you! -pete From fahree at gmail.com Fri May 14 19:38:16 2010 From: fahree at gmail.com (=?ISO-8859-1?Q?Far=E9?=) Date: Fri, 14 May 2010 15:38:16 -0400 Subject: [iolib-devel] Introductory tcp client/server examples In-Reply-To: <20100108051711.GA18185@cs.wisc.edu> References: <20100108051711.GA18185@cs.wisc.edu> Message-ID: Peter, is there a git repository or some other place to download the latest version of your iolib examples? Thanks! [ Fran?ois-Ren? ?VB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities. Truth isn't. ? Mark Twain From sionescu at common-lisp.net Sat May 15 09:00:08 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Sat, 15 May 2010 05:00:08 -0400 Subject: [iolib-devel] New patches: 14-May-2010 Message-ID: commit 5bdf5b99fbfcdf805241ce858e57d83a5ef7b3f4 Author: Stelian Ionescu Date: Fri May 14 23:07:43 2010 +0800 Don't restart ioctl(2) calls automatically src/syscalls/ffi-functions-unix.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit f1942709909f64be7b61ead753176b4bd28b3fe9 Author: Stelian Ionescu Date: Fri May 14 18:53:43 2010 +0800 The REQUEST parameter of ioctl(2) is an unsigned int not a signed int src/syscalls/ffi-functions-unix.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 34507ba419bc214c9d8201ef7724224fb6284f4e Author: Stelian Ionescu Date: Thu May 13 23:11:51 2010 +0800 Stop using :NO-ERROR in HANDLER-CASE forms: it's cool but generates slow code src/streams/gray/io-helpers.lisp | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) commit e837cf7321cff8e124042af6e4603c4f1df4aebb Author: Stelian Ionescu Date: Thu May 13 00:33:01 2010 +0800 Include syscall name in SYSCALL-ERRORs src/syscalls/conditions.lisp | 4 +++- src/syscalls/early.lisp | 19 +++++++++++-------- src/syscalls/ffi-functions-unix.lisp | 6 +++--- src/syscalls/os-conditions-unix.lisp | 14 +++++++------- 4 files changed, 24 insertions(+), 19 deletions(-) commit 911f5a749bdddf2c6839f5f04450738de94062ce Author: Stelian Ionescu Date: Mon May 10 22:44:28 2010 +0200 Better names for some IOBUF functions src/streams/gray/buffer.lisp | 4 ++-- src/streams/gray/io-helpers.lisp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit e040ed3faa591a090e49c9e699b81775b982a130 Author: Stelian Ionescu Date: Mon May 10 22:35:01 2010 +0200 Better %WRITE-SIMPLE-ARRAY-UB8 src/streams/gray/buffer.lisp | 9 +++++++ src/streams/gray/io-helpers.lisp | 48 +++++++++++++++----------------------- 2 files changed, 28 insertions(+), 29 deletions(-) commit fcd7169480115039c3ca27f6cf31ae73a4baf84b Author: Stelian Ionescu Date: Sun May 9 14:10:28 2010 +0200 Fix typo: the socket option is TCP_WINDOW_CLAMP not TCP_WINDOW. src/sockets/grovel.lisp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100514.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From sionescu at common-lisp.net Sun May 16 09:00:05 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Sun, 16 May 2010 05:00:05 -0400 Subject: [iolib-devel] New patches: 15-May-2010 Message-ID: commit ff6853832b3b2aa755ee3f2927e0276ac53b2038 Author: Stelian Ionescu Date: Sun May 16 02:08:30 2010 +0800 Fix UTF8-EXTRA-BYTES on non-Unicode Lisps src/syscalls/unix-syscall-path-strings.lisp | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) commit 766b32e310bb44d93709c2ad3d4f0d49ffe86638 Author: Stelian Ionescu Date: Sun May 16 01:37:03 2010 +0800 Style changes src/syscalls/ffi-wrappers-unix.lisp | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) commit 37be2f44c685f1d51d8678854c93d91319907862 Author: Stelian Ionescu Date: Sun May 16 01:34:52 2010 +0800 Better waitpid(2) src/syscalls/ffi-functions-unix.lisp | 7 +++++- src/syscalls/ffi-types-unix.lisp | 28 +++++++++++++++++++++++- src/syscalls/ffi-wrappers-unix.lisp | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) commit e2792ff719b06bef9ae112e1efaf8751e3118918 Author: Stelian Ionescu Date: Sun May 16 01:15:23 2010 +0800 Fix typo src/multiplex/backend-kqueue.lisp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit d61328a6f80fe53a0b8cdc5e133cbaff7f9c1ba3 Author: Stelian Ionescu Date: Sun May 16 01:15:00 2010 +0800 Rename TIMEOUT->MILISEC to TIMEOUT->MILLISECONDS src/multiplex/backend-epoll.lisp | 2 +- src/multiplex/backend-poll.lisp | 2 +- src/multiplex/fd-wait.lisp | 2 +- src/multiplex/utils.lisp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit d583b6718beaffb62005d03a0165f3461888ed81 Author: Stelian Ionescu Date: Sun May 16 00:42:34 2010 +0800 The examples don't depend on cl-serializer any more examples/iolib.examples.asd | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit d5bb42db664ed78c616ca9fdc1fe1ec5b0ae0b0d Author: Stelian Ionescu Date: Sat May 15 23:43:43 2010 +0800 Fix if_nametoindex() too src/sockets/bsd.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 078d672dbc3ec6f8e7c3a23220d183dd9ec66414 Author: Stelian Ionescu Date: Sat May 15 23:40:27 2010 +0800 Include syscall name in errors signaled by nice(2) and getenv(2) src/syscalls/ffi-functions-unix.lisp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 23ee76831b303ae190907d102047b71fd8b87172 Author: Stelian Ionescu Date: Sat May 15 23:39:06 2010 +0800 Fix signalig of socket errors src/sockets/conditions.lisp | 14 +++++++------- src/sockets/socket-methods.lisp | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 23ea2f8fc127c60a7bb57edc11dc2640d7d6e64f Author: Stelian Ionescu Date: Sat May 15 23:11:00 2010 +0800 Make sure that CLOSE is a generic function on ECL src/base/gray-stream-mixin.lisp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 5a390907d616d44c3633835291fca6a9e7f81610 Author: Stelian Ionescu Date: Sat May 15 23:10:35 2010 +0800 Untabify src/base/gray-stream-mixin.lisp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 73e8d3a05b21fbac180994a41753c8bcf6617ce4 Author: Stelian Ionescu Date: Sat May 15 23:10:21 2010 +0800 Signal TYPE-ERROR in ioctl/fcntl src/syscalls/ffi-functions-unix.lisp | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100515.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From marsijanin at gmail.com Mon May 17 18:24:50 2010 From: marsijanin at gmail.com (Nikolay V. Razbegaev) Date: Mon, 17 May 2010 22:24:50 +0400 Subject: [iolib-devel] Running io handler periodically Message-ID: <87aaryz8r1.fsf@gmail.com> Hello! Is it possible to make io handler, that will be running periodically, i.e. not every time when io will be possible? `iomux:set-io-handler' have `:timeout' &key parameter, but, as i understand, it is poll timeout. Of course I cat call `sleep' inside io handler body, but it will be freeze all other handlers in this thread too. So, can I run `iomux:event-base' io handler periodically w/o `sleep' dirty hack? Thank you. Nikolay. From sionescu at common-lisp.net Thu May 20 09:00:04 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Thu, 20 May 2010 05:00:04 -0400 Subject: [iolib-devel] New patches: 19-May-2010 Message-ID: commit 8b4239e31146ea2b6603fe7a9e154955cb020dd8 Author: Francois-Rene Rideau Date: Sun May 16 10:06:16 2010 -0400 Export a few recently added symbols src/syscalls/pkgdcl.lisp | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) commit b8f5e33fdb3fb58c8fac565287264c6d0790426b Author: Stelian Ionescu Date: Wed May 19 20:33:40 2010 +0800 Allow DEFSYSCALL and DEFCFUN* to receive the syscall name as a string src/sockets/bsd.lisp | 40 ++++++++++++++++++++-------------------- src/syscalls/early.lisp | 33 +++++++++++++-------------------- 2 files changed, 33 insertions(+), 40 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100519.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From sionescu at cddr.org Thu May 20 09:13:07 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Thu, 20 May 2010 17:13:07 +0800 Subject: [iolib-devel] Running io handler periodically In-Reply-To: <87aaryz8r1.fsf@gmail.com> References: <87aaryz8r1.fsf@gmail.com> Message-ID: <1274346787.19708.9.camel@blackhole.cddr.org> On Mon, 2010-05-17 at 22:24 +0400, Nikolay V. Razbegaev wrote: > Hello! > > Is it possible to make io handler, that will be running periodically, > i.e. not every time when io will be possible? `iomux:set-io-handler' > have `:timeout' &key parameter, but, as i understand, it is poll > timeout. > > Of course I cat call `sleep' inside io handler body, but it will be > freeze all other handlers in this thread too. So, can I run > `iomux:event-base' io handler periodically w/o `sleep' dirty hack? > You can add a timer: the function is iolib.multiplex:add-timer -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From marsijanin at gmail.com Thu May 20 18:35:43 2010 From: marsijanin at gmail.com (Nikolay V. Razbegaev) Date: Thu, 20 May 2010 22:35:43 +0400 Subject: [iolib-devel] Running io handler periodically In-Reply-To: <1274346787.19708.9.camel@blackhole.cddr.org> (Stelian Ionescu's message of "Thu, 20 May 2010 17:13:07 +0800") References: <87aaryz8r1.fsf@gmail.com> <1274346787.19708.9.camel@blackhole.cddr.org> Message-ID: <87iq6i4e0w.fsf@fobos.mars> Stelian Ionescu writes: > On Mon, 2010-05-17 at 22:24 +0400, Nikolay V. Razbegaev wrote: >> Hello! >> >> Is it possible to make io handler, that will be running periodically, >> i.e. not every time when io will be possible? `iomux:set-io-handler' >> have `:timeout' &key parameter, but, as i understand, it is poll >> timeout. >> >> Of course I cat call `sleep' inside io handler body, but it will be >> freeze all other handlers in this thread too. So, can I run >> `iomux:event-base' io handler periodically w/o `sleep' dirty hack? >> > > You can add a timer: the function is iolib.multiplex:add-timer Thank you! I guess, that I missed it some how, then I looked for the corresponding function/method in iomux package. From sionescu at common-lisp.net Tue May 25 09:00:05 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Tue, 25 May 2010 05:00:05 -0400 Subject: [iolib-devel] New patches: 24-May-2010 Message-ID: commit 6f3995a954af321f9f1a2260ab28cb5b41c7253c Author: Stelian Ionescu Date: Tue May 25 13:18:23 2010 +0800 Add class MUFFLED-SOURCE-FILE Make CL-SOURCE-FILE inherit MUFFLED-SOURCE-FILE and remote UTF-8 usage around file compilation. src/base/asdf.lisp | 25 ++++++++++++++++--------- src/base/pkgdcl.lisp | 2 +- src/iolib.base.asd | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) commit 1d6fad2a8e174d9dbe43a339c07d5b7ce76ad76c Author: Stelian Ionescu Date: Tue May 25 13:07:18 2010 +0800 Remove UTF-8 characters from sources src/os/os-unix.lisp | 2 +- src/sockets/base-sockets.lisp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 776d979daf9213d6807f261c14f591b23423bd03 Author: Stelian Ionescu Date: Tue May 25 12:52:39 2010 +0800 Fix WRAP-BODY-FOR-RETURN-STAR for (SETF ) functions src/base/return-star.lisp | 35 +++++++++++++++++++++-------------- 1 files changed, 21 insertions(+), 14 deletions(-) commit daf1305faa9466cf220c94016b97c0a1e964631f Author: Stelian Ionescu Date: Tue May 25 12:25:50 2010 +0800 Add ASDF component class iolib.base:cl-source-file src/base/asdf.lisp | 18 ++++++++++++++++++ src/base/pkgdcl.lisp | 2 ++ src/iolib.asd | 4 ++++ src/iolib.base.asd | 3 ++- src/iolib.multiplex.asd | 4 ++++ src/iolib.os.asd | 4 ++++ src/iolib.pathnames.asd | 4 ++++ src/iolib.sockets.asd | 2 ++ src/iolib.streams.asd | 4 ++++ src/iolib.syscalls.asd | 2 ++ src/iolib.trivial-sockets.asd | 4 ++++ src/iolib.zstreams.asd | 4 ++++ 12 files changed, 54 insertions(+), 1 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100524.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From whalliburton at gmail.com Tue May 25 15:53:55 2010 From: whalliburton at gmail.com (William Halliburton) Date: Tue, 25 May 2010 08:53:55 -0700 Subject: [iolib-devel] Doc error. Message-ID: The README refers to http://common-lisp.net/~sionescu/texinfo-docstrings.tar.bz2 But this file no longer exists. From sionescu at cddr.org Tue May 25 17:19:35 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Wed, 26 May 2010 01:19:35 +0800 Subject: [iolib-devel] Doc error. In-Reply-To: References: Message-ID: <1274807975.16218.34.camel@blackhole.cddr.org> On Tue, 2010-05-25 at 08:53 -0700, William Halliburton wrote: > The README refers to > > http://common-lisp.net/~sionescu/texinfo-docstrings.tar.bz2 > > But this file no longer exists. Thanks for reporting this. I updated the README to point to http://gitorious.org/iolib/texinfo-docstrings -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From sionescu at common-lisp.net Wed May 26 09:00:05 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Wed, 26 May 2010 05:00:05 -0400 Subject: [iolib-devel] New patches: 25-May-2010 Message-ID: commit 057f9eeba08179743e324b804f547961f7aa517f Author: Stelian Ionescu Date: Wed May 26 01:19:17 2010 +0800 Use project page for texinfo-docstrings README | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit aea6bcc9220fde96625057b1543e6259d4bc6056 Author: Stelian Ionescu Date: Wed May 26 01:13:41 2010 +0800 Update link to texinfo-docstrings README | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit b14e64451a121366dc3904583c9152c9e63cf342 Author: Stelian Ionescu Date: Tue May 25 23:12:54 2010 +0800 Fix .asd files for ASDF2 src/iolib.asd | 3 ++- src/iolib.base.asd | 3 ++- src/iolib.multiplex.asd | 3 ++- src/iolib.os.asd | 3 ++- src/iolib.pathnames.asd | 3 ++- src/iolib.sockets.asd | 3 ++- src/iolib.streams.asd | 3 ++- src/iolib.syscalls.asd | 3 ++- src/iolib.trivial-sockets.asd | 3 ++- src/iolib.zstreams.asd | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100525.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From attila.lendvai at gmail.com Wed May 26 09:08:32 2010 From: attila.lendvai at gmail.com (Attila Lendvai) Date: Wed, 26 May 2010 11:08:32 +0200 Subject: [iolib-devel] regression after 6d63d32fb7f400e93066cb37a139a43dae4721c1 In-Reply-To: <20100415133336.GA29657@cs.wisc.edu> References: <1270166836.6856.0.camel@blackhole.cddr.org> <20100415133336.GA29657@cs.wisc.edu> Message-ID: > I've seen that exact error. My example programs will produce it. > Just start up ex6-server, connect with ex5a-client, type 'hello' > at the client prompt, then 'quit'. The client hangs around forever > while the server closed the connection. anything new on this? i've managed to reproduce the problem using the examples and iolib version 5dfec183c4d57fa315d2b29c92d2b90045ea8eed (current head) i've added some output printing to the client code as seen below. CL-USER> (in-package :iolib.examples) EXAMPLES> (make-thread 'run-ex6-server :name "ex6 server") EXAMPLES> (run-ex5a-client) Connected to server 127.0.0.1:9999 from my local connection at 127.0.0.1:42670! alma Writing to socket: "alma" Flushing socket Done Writing to socket: "" Flushing socket Done alma Writing to socket: "" Flushing socket Done quit Writing to socket: "quit" Flushing socket Done happy writing?! Writing to socket: "happy writing?!" Flushing socket Done quit and in the inferior lisp buffer i see: Accepted a client from 127.0.0.1:42670 Creating line-echoer for 127.0.0.1:42670 Read 127.0.0.1:42670: alma Wrote 127.0.0.1:42670: alma Read 127.0.0.1:42670: Wrote 127.0.0.1:42670: Read 127.0.0.1:42670: Wrote 127.0.0.1:42670: Read 127.0.0.1:42670: quit Wrote 127.0.0.1:42670: quit Client requested quit! Closing connection to 127.0.0.1:42670 as you can see "happy writing?!" was written into a socket that has been closed by the server at the previous "quit" line. i'm not sure it's exactly the same issue as mine, but could be related. -- attila From psilord at cs.wisc.edu Wed May 26 15:09:01 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Wed, 26 May 2010 10:09:01 -0500 Subject: [iolib-devel] regression after 6d63d32fb7f400e93066cb37a139a43dae4721c1 In-Reply-To: References: <1270166836.6856.0.camel@blackhole.cddr.org> <20100415133336.GA29657@cs.wisc.edu> Message-ID: <20100526150857.GA28819@cs.wisc.edu> On Wed, May 26, 2010 at 11:08:32AM +0200, Attila Lendvai wrote: > > I've seen that exact error. My example programs will produce it. > > Just start up ex6-server, connect with ex5a-client, type 'hello' > > at the client prompt, then 'quit'. The client hangs around forever > > while the server closed the connection. > > anything new on this? I know of no new work on fixing this bug. > as you can see "happy writing?!" was written into a socket that has > been closed by the server at the previous "quit" line. > > i'm not sure it's exactly the same issue as mine, but could be related. Yup, that's the error as I produced it. The server states it closes the socket, but the client never sees it. I haven't yet done a tcpdump to see if any FIN really happens. If not, that would be a smoking gun that IOLib didn't actually close the fd associated with the socket. Thank you. -pete From sionescu at cddr.org Wed May 26 16:51:10 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Thu, 27 May 2010 00:51:10 +0800 Subject: [iolib-devel] regression after 6d63d32fb7f400e93066cb37a139a43dae4721c1 In-Reply-To: <20100526150857.GA28819@cs.wisc.edu> References: <1270166836.6856.0.camel@blackhole.cddr.org> <20100415133336.GA29657@cs.wisc.edu> <20100526150857.GA28819@cs.wisc.edu> Message-ID: <1274892670.29498.4.camel@blackhole.cddr.org> On Wed, 2010-05-26 at 10:09 -0500, Peter Keller wrote: > On Wed, May 26, 2010 at 11:08:32AM +0200, Attila Lendvai wrote: > > > I've seen that exact error. My example programs will produce it. > > > Just start up ex6-server, connect with ex5a-client, type 'hello' > > > at the client prompt, then 'quit'. The client hangs around forever > > > while the server closed the connection. > > > > anything new on this? > > I know of no new work on fixing this bug. > > > as you can see "happy writing?!" was written into a socket that has > > been closed by the server at the previous "quit" line. > > > > i'm not sure it's exactly the same issue as mine, but could be related. > > Yup, that's the error as I produced it. The server states it closes the > socket, but the client never sees it. I haven't yet done a tcpdump to see if > any FIN really happens. If not, that would be a smoking gun that IOLib > didn't actually close the fd associated with the socket. > > Thank you. I think that my last commit fixed this -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From sionescu at common-lisp.net Thu May 27 09:00:05 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Thu, 27 May 2010 05:00:05 -0400 Subject: [iolib-devel] New patches: 26-May-2010 Message-ID: commit d5498b020c5ee35d9dae359061afa0bbb9a508fd Author: Stelian Ionescu Date: Wed May 26 18:55:53 2010 +0800 ACCEPT-CONNECTION now doesn't duplicate the FD any more src/sockets/socket-methods.lisp | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) Merge: 4614d27 4aef463 Merge: 089e7bf d985d59 Merge: 9340619 ce4e6d2 Merge: 81e5ad0 6a8d228 An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100526.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From psilord at cs.wisc.edu Thu May 27 16:14:59 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Thu, 27 May 2010 11:14:59 -0500 Subject: [iolib-devel] Windows port? Message-ID: <20100527161458.GA17192@cs.wisc.edu> Hello, What would it take to get a port of IOLib to SBCL on windows? I'm not volunteering because I don't know anything about windows, but some people I know do and might step up if they knew the scope of the work involved. Thank you. -pete From sionescu at cddr.org Thu May 27 16:20:10 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Fri, 28 May 2010 00:20:10 +0800 Subject: [iolib-devel] Windows port? In-Reply-To: <20100527161458.GA17192@cs.wisc.edu> References: <20100527161458.GA17192@cs.wisc.edu> Message-ID: <1274977210.7494.2.camel@blackhole.cddr.org> On Thu, 2010-05-27 at 11:14 -0500, Peter Keller wrote: > Hello, > > What would it take to get a port of IOLib to SBCL on windows? I'm not > volunteering because I don't know anything about windows, but some people > I know do and might step up if they knew the scope of the work involved. > > Thank you. One or more persons with (very) good knowledge of Windows programming and Common Lisp. The amount of work to be done is IMO considerable - the start would be to port cffi-grovel - then the sockets, I/O multiplexer, file system functions, etc... -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From psilord at cs.wisc.edu Fri May 28 05:09:14 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Fri, 28 May 2010 00:09:14 -0500 Subject: [iolib-devel] regression after 6d63d32fb7f400e93066cb37a139a43dae4721c1 In-Reply-To: <1274892670.29498.4.camel@blackhole.cddr.org> References: <1270166836.6856.0.camel@blackhole.cddr.org> <20100415133336.GA29657@cs.wisc.edu> <20100526150857.GA28819@cs.wisc.edu> <1274892670.29498.4.camel@blackhole.cddr.org> Message-ID: <20100528050914.GA19894@cs.wisc.edu> On Thu, May 27, 2010 at 12:51:10AM +0800, Stelian Ionescu wrote: > On Wed, 2010-05-26 at 10:09 -0500, Peter Keller wrote: > > On Wed, May 26, 2010 at 11:08:32AM +0200, Attila Lendvai wrote: > > > > I've seen that exact error. My example programs will produce it. > > > > Just start up ex6-server, connect with ex5a-client, type 'hello' > > > > at the client prompt, then 'quit'. The client hangs around forever > > > > while the server closed the connection. > > > > > > anything new on this? > > > > I know of no new work on fixing this bug. > > > > > as you can see "happy writing?!" was written into a socket that has > > > been closed by the server at the previous "quit" line. > > > > > > i'm not sure it's exactly the same issue as mine, but could be related. > > > > Yup, that's the error as I produced it. The server states it closes the > > socket, but the client never sees it. I haven't yet done a tcpdump to see if > > any FIN really happens. If not, that would be a smoking gun that IOLib > > didn't actually close the fd associated with the socket. > > > > Thank you. > > I think that my last commit fixed this I just checked, and yes, I believe his last commit does fix the bug shown by my example programs. Thank you! -pete From sionescu at common-lisp.net Fri May 28 09:00:05 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Fri, 28 May 2010 05:00:05 -0400 Subject: [iolib-devel] New patches: 27-May-2010 Message-ID: commit b46d84a7526124684d7eeab0ade1665d06396d0d Author: Stelian Ionescu Date: Thu May 27 17:11:14 2010 +0800 Remove ??Syntax:?? from file headers .template.lisp | 2 +- examples/echo-server.lisp | 2 +- src/base/asdf.lisp | 2 +- src/base/conditions.lisp | 2 +- src/base/debug.lisp | 2 +- src/base/definitions.lisp | 2 +- src/base/defobsolete.lisp | 2 +- src/base/gray-stream-mixin.lisp | 2 +- src/base/matching.lisp | 2 +- src/base/pkgdcl.lisp | 2 +- src/base/reader.lisp | 2 +- src/base/return-star.lisp | 2 +- src/base/scl-gray-streams.lisp | 2 +- src/base/sequence.lisp | 2 +- src/base/split-sequence.lisp | 2 +- src/base/time.lisp | 2 +- src/base/types.lisp | 2 +- src/iolib.asd | 2 +- src/iolib.base.asd | 2 +- src/iolib.multiplex.asd | 2 +- src/iolib.os.asd | 2 +- src/iolib.pathnames.asd | 2 +- src/iolib.sockets.asd | 2 +- src/iolib.streams.asd | 2 +- src/iolib.syscalls.asd | 2 +- src/iolib.trivial-sockets.asd | 2 +- src/iolib.zstreams.asd | 2 +- src/iolib/pkgdcl.lisp | 2 +- src/multiplex/backend-epoll.lisp | 2 +- src/multiplex/backend-kqueue.lisp | 2 +- src/multiplex/backend-poll.lisp | 2 +- src/multiplex/backend-select.lisp | 2 +- src/multiplex/detect.lisp | 2 +- src/multiplex/event-loop.lisp | 2 +- src/multiplex/fd-entry.lisp | 2 +- src/multiplex/fd-wait.lisp | 2 +- src/multiplex/multiplexer.lisp | 2 +- src/multiplex/pkgdcl.lisp | 2 +- src/multiplex/queue.lisp | 2 +- src/multiplex/scheduler.lisp | 2 +- src/multiplex/timers.lisp | 2 +- src/multiplex/utils.lisp | 2 +- src/os/os-unix.lisp | 2 +- src/os/pkgdcl.lisp | 2 +- src/pathnames/file-path-unix.lisp | 2 +- src/pathnames/file-path.lisp | 2 +- src/pathnames/pkgdcl.lisp | 2 +- src/sockets/address-arithmetic.lisp | 2 +- src/sockets/address-predicates.lisp | 2 +- src/sockets/address.lisp | 2 +- src/sockets/base-sockets.lisp | 2 +- src/sockets/bsd.lisp | 2 +- src/sockets/common.lisp | 2 +- src/sockets/conditions.lisp | 2 +- src/sockets/config.lisp | 2 +- src/sockets/dns/common.lisp | 2 +- src/sockets/dns/conditions.lisp | 2 +- src/sockets/dns/dynamic-buffer.lisp | 2 +- src/sockets/dns/lookup.lisp | 2 +- src/sockets/dns/message.lisp | 2 +- src/sockets/dns/nameservers.lisp | 2 +- src/sockets/dns/query.lisp | 2 +- src/sockets/grovel.lisp | 2 +- src/sockets/iface.lisp | 2 +- src/sockets/make-socket.lisp | 2 +- src/sockets/namedb/etc-files.lisp | 2 +- src/sockets/namedb/file-monitor.lisp | 2 +- src/sockets/namedb/hosts.lisp | 2 +- src/sockets/namedb/protocols.lisp | 2 +- src/sockets/namedb/services.lisp | 2 +- src/sockets/pkgdcl.lisp | 2 +- src/sockets/socket-methods.lisp | 2 +- src/sockets/socket-options.lisp | 2 +- src/sockets/trivial-sockets.lisp | 2 +- src/sockets/wrappers.lisp | 2 +- src/streams/gray/buffer.lisp | 2 +- src/streams/gray/classes.lisp | 2 +- src/streams/gray/conditions.lisp | 2 +- src/streams/gray/fd-mixin.lisp | 2 +- src/streams/gray/gray-stream-methods.lisp | 2 +- src/streams/gray/io-helpers.lisp | 2 +- src/streams/gray/pkgdcl.lisp | 2 +- src/streams/zeta/conditions.lisp | 2 +- src/streams/zeta/device.lisp | 2 +- src/streams/zeta/ffi-functions-unix.lisp | 2 +- src/streams/zeta/file-unix.lisp | 2 +- src/streams/zeta/iobuf.lisp | 2 +- src/streams/zeta/pkgdcl.lisp | 2 +- src/streams/zeta/stream.lisp | 2 +- src/streams/zeta/types.lisp | 2 +- src/syscalls/conditions.lisp | 2 +- src/syscalls/designators.lisp | 2 +- src/syscalls/early.lisp | 2 +- src/syscalls/ffi-functions-unix.lisp | 2 +- src/syscalls/ffi-types-unix.lisp | 2 +- src/syscalls/ffi-wrappers-unix.lisp | 2 +- src/syscalls/os-conditions-unix.lisp | 2 +- src/syscalls/pkgdcl.lisp | 2 +- src/syscalls/unix-syscall-path-strings.lisp | 2 +- tests/base.lisp | 2 +- tests/defsuites.lisp | 2 +- tests/events.lisp | 2 +- tests/file-paths-unix.lisp | 2 +- tests/iolib-tests.asd | 2 +- tests/pkgdcl.lisp | 2 +- tests/sockets.lisp | 2 +- tests/streams.lisp | 2 +- 107 files changed, 107 insertions(+), 107 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100527.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git From marsijanin at gmail.com Fri May 28 16:56:10 2010 From: marsijanin at gmail.com (Nikolay V. Razbegaev) Date: Fri, 28 May 2010 20:56:10 +0400 Subject: [iolib-devel] ECL support Message-ID: <87r5kwq82d.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I'm trying to compile recent (b46d84a...: 'Remove =?utf-8?B?wqtTeW50YXg6?= =?utf-8?B?wrs=?= from file headers', Thu May 27 17:11:14 2010 +0800) IOLib version with 32 bit ecl at 32 bit linux host (Archlinux current), but I got some errors about unknown `:long-long' cffi type. As I can see from cffi sources using cffi from darcs). But my local ecl version (10.4.1) can operate with `:long-long' foreign types: CL-USER> (lisp-implementation-type) "ECL" CL-USER> (lisp-implementation-version) "10.4.1" CL-USER> *features* CL-USER> (member :uint64-t *features*) CL-USER> (uffi:size-of-foreign-type :long-long) 8 8 CL-USER> (uffi:allocate-foreign-object :unsigned-long-long) # CL-USER> (uffi:free-foreign-object *) ; No value As I also noticed from the last IOLib commits messages there is some work on ecl support in IOLib development process. So what's about ecl support (32 bit)? Is there any way to make IOLib work on it: right configure flags, right cffi or ecl version or should I just wait and try to compile it again with right phase of the moon? Thank you. Nikolay. Date: Fri, 28 May 2010 20:55:38 +0400 Message-ID: <87sk5cq839.fsf at gmail.com> From psilord at cs.wisc.edu Fri May 28 17:42:53 2010 From: psilord at cs.wisc.edu (Peter Keller) Date: Fri, 28 May 2010 12:42:53 -0500 Subject: [iolib-devel] Windows port? In-Reply-To: <1274977210.7494.2.camel@blackhole.cddr.org> References: <20100527161458.GA17192@cs.wisc.edu> <1274977210.7494.2.camel@blackhole.cddr.org> Message-ID: <20100528174253.GA14256@cs.wisc.edu> On Fri, May 28, 2010 at 12:20:10AM +0800, Stelian Ionescu wrote: > > What would it take to get a port of IOLib to SBCL on windows? I'm not > > volunteering because I don't know anything about windows, but some people > > I know do and might step up if they knew the scope of the work involved. > > > > Thank you. > > One or more persons with (very) good knowledge of Windows programming > and Common Lisp. The amount of work to be done is IMO considerable - the > start would be to port cffi-grovel - then the sockets, I/O multiplexer, > file system functions, etc... What about libevent? That might reduce the windows knowledge a bunch, but still may require a cffi-grovel port to windows. -pete From sionescu at cddr.org Fri May 28 17:45:22 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Sat, 29 May 2010 01:45:22 +0800 Subject: [iolib-devel] Windows port? In-Reply-To: <20100528174253.GA14256@cs.wisc.edu> References: <20100527161458.GA17192@cs.wisc.edu> <1274977210.7494.2.camel@blackhole.cddr.org> <20100528174253.GA14256@cs.wisc.edu> Message-ID: <1275068722.24925.0.camel@blackhole.cddr.org> On Fri, 2010-05-28 at 12:42 -0500, Peter Keller wrote: > On Fri, May 28, 2010 at 12:20:10AM +0800, Stelian Ionescu wrote: > > > What would it take to get a port of IOLib to SBCL on windows? I'm not > > > volunteering because I don't know anything about windows, but some people > > > I know do and might step up if they knew the scope of the work involved. > > > > > > Thank you. > > > > One or more persons with (very) good knowledge of Windows programming > > and Common Lisp. The amount of work to be done is IMO considerable - the > > start would be to port cffi-grovel - then the sockets, I/O multiplexer, > > file system functions, etc... > > What about libevent? That might reduce the windows knowledge a bunch, but > still may require a cffi-grovel port to windows. I don't want to depend on a C library(other than the standard C library) -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From sionescu at cddr.org Fri May 28 19:02:15 2010 From: sionescu at cddr.org (Stelian Ionescu) Date: Sat, 29 May 2010 03:02:15 +0800 Subject: [iolib-devel] ECL support In-Reply-To: <87r5kwq82d.fsf@gmail.com> References: <87r5kwq82d.fsf@gmail.com> Message-ID: <1275073335.24925.10.camel@blackhole.cddr.org> On Fri, 2010-05-28 at 20:56 +0400, Nikolay V. Razbegaev wrote: > MIME-Version: 1.0 > Content-Type: text/plain; charset=us-ascii > I'm trying to compile recent (b46d84a...: 'Remove =?utf-8?B?wqtTeW50YXg6?= > =?utf-8?B?wrs=?= from file > headers', Thu May 27 17:11:14 2010 +0800) IOLib version with 32 bit > ecl at 32 bit linux host (Archlinux current), but I got some errors > about unknown `:long-long' cffi type. As I can see from cffi sources > using cffi from darcs). But my local ecl version (10.4.1) can operate > with `:long-long' foreign types: > CL-USER> (lisp-implementation-type) > "ECL" > CL-USER> (lisp-implementation-version) > "10.4.1" > CL-USER> *features* > CL-USER> (member :uint64-t *features*) > CL-USER> (uffi:size-of-foreign-type :long-long) > 8 > 8 > CL-USER> (uffi:allocate-foreign-object :unsigned-long-long) > # > CL-USER> (uffi:free-foreign-object *) > ; No value > As I also noticed from the last IOLib commits messages there is some > work on ecl support in IOLib development process. So what's about ecl > support (32 bit)? Is there any way to make IOLib work on it: right > configure flags, right cffi or ecl version or should I just wait and > try to compile it again with right phase of the moon? I don't know, because I gave up on using ECL. It's too broken for my taste. If you're interested, you'll need to fix cffi and cffi-grovel. Once that is done, iolib should probably work. One thing is sure: waiting is unlikely to be of any use -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: From sionescu at common-lisp.net Sat May 29 09:00:04 2010 From: sionescu at common-lisp.net (Stelian Ionescu) Date: Sat, 29 May 2010 05:00:04 -0400 Subject: [iolib-devel] New patches: 28-May-2010 Message-ID: commit 1f20313e728326d321f48a41fe0aa59bc7fada86 Author: Stelian Ionescu Date: Fri May 28 18:43:20 2010 +0800 Fix CONNECT to signal a SOCKET-ERROR when getting a POLL-ERROR src/sockets/socket-methods.lisp | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) An updated tarball of IOLib's source can be downloaded here: http://common-lisp.net/project/iolib/files/snapshots/iolib-20100528.tar.gz Gitweb URL: http://repo.or.cz/w/iolib.git