diff options
author | GNU Hurd wiki engine <web-hurd@gnu.org> | 2008-07-29 19:33:03 +0000 |
---|---|---|
committer | GNU Hurd wiki engine <web-hurd@gnu.org> | 2008-07-29 19:33:03 +0000 |
commit | 11547ed5585a1cc52ad96eac6607b19cc54357df (patch) | |
tree | c440383a39ebc394a546dc8603477486cf966122 | |
parent | d6663e4a6a60a47f9f64f56ee3128ccb3133d058 (diff) |
web commit by flaviocruz: Add more translators in what's done. Refer upstream integration in TODO list. Add dependencies. Refer asdf.
-rw-r--r-- | community/flavioc.mdwn | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/community/flavioc.mdwn b/community/flavioc.mdwn index 184febdf..89d20950 100644 --- a/community/flavioc.mdwn +++ b/community/flavioc.mdwn @@ -25,7 +25,7 @@ Creating an extensible translator library in lisp using the mig generated stubs. ### What's done - The library for writing translators is mostly written. -- This library is intended to implement virtual filesystems. Examples are: translators were data is located in a local file (like zipfs, tarfs, rarfs, ...), single file translators (that do content filtering, output of a command, etc), network based filesystems (ftpfs, httpfs, ...) +- This library is intended to implement virtual filesystems. Examples are: translators were data is located in a local file (like zipfs, tarfs, rarfs, ...), single file translators (that do content filtering, output of a command, etc), network based filesystems (ftpfs, httpfs, ...), proxy filesystems (like hostmux, usermux, etc..) - It's possible to specialize the basic translator library and implement new translator classes. This is done using CLOS. - There is a tree-translator class that makes the managing of a node tree very easy, doing all the work for us, through a simple directory API and implementing the directory callbacks for us. - There is a simple example (something like zipfs) translator that can expose the directories and file contents of a ZIP file. @@ -33,6 +33,9 @@ Creating an extensible translator library in lisp using the mig generated stubs. - /dev/null translator. - /dev/zero translator. - translator that creates a symlink node. + - tmpfs like translator. + - a translator that does proxying between clients and the underlying translator return all data in upper-case. + - a translator that watches for changes in a file describing the file system structure. - Translator options (manipulated through fsysopts) have a simple and easy to use API. - All the Mach port manipulation API is available. - It's possible to send and receive messages. Simple example: @@ -47,16 +50,34 @@ Creating an extensible translator library in lisp using the mig generated stubs. - New message types (like :string, :integer) can be implemented, providing a powerful extension mechanism. - Creation of symlinks and symlink path resolution. - Creation of character/block devices, fifos and sockets. +- Patch that opens stdin + stdout to /dev/null. +- Project has been separated into 5 ASDF installable systems: + - hurd-common + - mach + - hurd + - hurd-translator + - tree-translator ### What needs to be done - Using continuations for IO blocking operations. This can be done using cl-cont. -- Create an example proxy translator. - Fix file-exec, fsys-getroot (block happens in trivfs based translators, when they do RPC's to me when I call fsys_getroot to them) and fetch-root (for passive translators). - Use the socket stubs? - Documentation - More testing +- Integrate upstream + - I think it's a better idea to create a separate module/project for the project than integrating it in the Hurd tree. + - Another advantage is that savannah provides mercurial hosting. + + +### Project dependencies + +- CLISP +- [CFFI](http://common-lisp.net/project/cffi/) (apt-get installable) +- [Flexi streams](http://www.weitz.de/flexi-streams/) (apt-get installable) +- [Trivial garbage](http://www.cliki.net/trivial-garbage) (not in debian repositories) +- [cl-zip](http://common-lisp.net/project/zip/) (only needed for the example translator) ## To do |