[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] How to implement protocols?


  • To: mirageos-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Hannes Mehnert <hannes@xxxxxxxxxxx>
  • Date: Thu, 12 Nov 2015 22:45:00 +0100
  • Delivery-date: Thu, 12 Nov 2015 21:45:20 +0000
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>
  • Openpgp: id=11B5464249B5BD858FFF6328BC896588DF7C28EE

Hey,

I just revived a draft on how to write protocols in a purely functional
way.  The goal is that the protocol logic is independent of any side
effects, but has an explicit API what action the effectful client should
do (which a test harness could also check for, instead of putting the
bytes onto the wire).

I think the design space of software implementations is very thinly
populated, and we should try out more approaches.  The draft is based on
experience developing TLS with David (which was my first OCaml project),
and OTR, but also experience from implementing TCP/IP in Dylan (a LISP
dialect) back in 2005 (retrospectively I can find shortcomings of that
approach much easier).

I'm eager to discuss it in further detail on this list (I'm pretty sure
it is incomplete and partially wrong).

  https://gist.github.com/hannesm/17f478233508b42297d9


Thanks to David and Mort for feedback on earlier drafts.  Feedback welcome,

hannes

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.