[Vm-dev] SCTP in the socket plugin

David T. Lewis lewis at mail.msen.com
Sat Feb 9 19:40:19 UTC 2013

On Sat, Feb 09, 2013 at 10:14:49AM +0000, Holger Freyther wrote:
> Hi,
> Frank has asked me to post here. I have started to add basic SCTP support
> to the socket plugin and VMMaker. To the best of my knowledge Linux, (Free)BSD
> and Solaris have SCTP support. OSX and Windows do not support SCTP out of
> the box.
> My change to the unix SocketPlugin is quite tiny and can be seen here[1].
> The change to the VMMaker and Pharo's NetworkKernel is here[2]. I am interested
> to get this include into the VM.

Hi Holger,

Thanks for posting. Based on a quick look at this, these are straightforward
additions to the existing SocketPlugin. It looks like you are working with a
Pharo branch of VM, which is derived from Eliot Miranda's Cog VM, so I'm assuming
this is a set of changes relative to that code base. FYI, there is also the
upstream interpreter VM (see squeakvm.org), and the code base there is managed
by Ian Piumarta, who is the author of the unix socket plugin and the unix VM.
Ian accepts changes directly, but given that you are working with Pharo it may
be more straightforward to have them adopted in Eliot's branch first, in which
case I will volunteer to help coordinate the updates with Ian.

Right now it looks like there is one addition in the Cog unix support code
to sqSocketCreateRawProtoTypeRecvBytesSendBytesSemaIDReadSemaIDWriteSemaID(),
as well as some other differences of presumably minor impact. I think that
Andreas Raab probably did the sqSocketCreateRawProtoTypeRecvBytesSendBytesSemaIDReadSemaIDWriteSemaID()
work, and I don't know the background but it is probably something that should
be adopted in all flavors of the VM.

By the way, I am assuming you are contributing changes under MIT license, but
just for the record can you please confirm this?

> What I have not done is to change the CMakeVMMaker to generate a CMakeLists
> that will test for the availability of runtime sctp libraries. How would you
> support such an optional dependency?

There are actually three different build systems in use right now, so we
would want to get this incorporated in all three. I have not looked at
your code in detail, but if it's a compile time issue it's usually done
with ifdefs in the code controlled by the respective build system. If
it's a runtime issue, then I'm not so sure how to handle it. Certainly
we would not want the socket plugin to fail if runtime sctp libraries
are not installed.

Sorry for the hasty response, but I figured some response is better than
none :)


> holger
> [1] https://gitorious.org/~zecke/cogvm/zeckes-
> cogvm/commit/24bb6fd2c1666137356754049f03ca5f246711d7
> [2] http://smalltalkhub.com/#!/~hfreyther2/sctp/source

More information about the Vm-dev mailing list