ZFS: Oleg's Zipper FS

[ library, monads, public-domain ] [ Propose Tags ]

A implementation of a zipper filesystem using delimited continuations.

Zipper-based File/Operating system with threading and exceptions all realized via delimited continuations. There are no unsafe operations, no GHC (let alone) Unix threads, no concurrency problems. Our threads can't even do IO and can't mutate any global state - and the type system sees to it.

To run, type main' fs1 on ghci after loading ZFS.hs. Then from some other terminal, type 'telnet localhost 1503'.


[Skip to Readme]

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0, 0.0.1, 0.0.2
Dependencies base (>3 && <5), CC-delcont (<=0.2), containers, mtl, network, unix [details]
License LicenseRef-PublicDomain
Author Amr Sabry, R. Kent Dybvig, Simon L. Peyton Jones, Oleg Kiselyov
Maintainer Julian K. Arni <jkarni@gmail.com>
Category Monads
Home page https://github.com/jkarni/ZipperFS
Bug tracker https://github.com/jkarni/ZipperFS/issues
Source repo head: git clone git://github.com/jkarni/ZipperFS.git
Uploaded by jkarni at 2014-11-25T18:44:11Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2742 total (12 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for ZFS-0.0.2

[back to package description]
This is a Cabalized and somewhat modernized/cleaned-up package containing Oleg's famous ZipperFS. For details, see <http://lambda-the-ultimate.org/node/1036>.

A demonstration of how to use it is contained in zfs.pdf. The short of the matter is:

       "Load ZFS.hs into GHCi
       Start up the system: main at the GHCi prompt
       From some terminal: 'telnet localhost 1503'"

And then you can play around with it.

This package also comes with an old implementation of delimited continuations. Ideally it would be updated to use the maintained package, CC-Delcont <http://hackage.haskell.org/cgi-bin/hackage-scripts/package/CC-delcont>. But I don't know how.