This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Feature proposal: Kawa socket procedures


Thanks for the proposal! Some notes:

The most important thing missing is of course documentation.
This should be both an API reference, as well as examples
showing how to use the API for common tasks.  It should
preferably be written in the form suitable for merging
into doc/kawa.texi.

Have you looked at other Scheme APIs for sockets?
Coincidentally, Aaron Hsu today announced a socket library:
http://lists.r6rs.org/pipermail/r6rs-discuss/2009-December/006112.html
Chez Scheme also has a sockets library.

The packages gnu.mapping and (to a less extend) kawa/lib are
already too cluttered.  I think it might be better to use
gnu/kawa/net and/or gnu/kawa/slib.

Also, I think this is too large and non-standard an API to be
in the default environment.  By "non-standard" I mean I can see
difficulties if some tries to use some other clashing networking
API.  It should be a library that needs to be explicitly
required or imported.  Using R6RS notation, it should perhaps
be done as:
  (import (kawa sockets))
If so, the Scheme source should be in kawa/lib/kawa/sockets.scm.
The Java source might be in gnu/kawa/net.

Could tell me more about why you need to call setAccessible?

The way we set binary vs text ports and encodings is a kludge,
but you inherit that from Kawa, which should probably migrate
to something closer to R6RS.

There are some style issues:  These days I prefer type specifiers
without the angle brackets, and instead of say:
  (*:closed? (socket-java-implementation socket))
I now suggest:
  ((socket-java-implementation socket):closed?)
--
	--Per Bothner
per@bothner.com   http://per.bothner.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]