summaryrefslogtreecommitdiff
path: root/community
diff options
context:
space:
mode:
authorGNU Hurd wiki engine <web-hurd@gnu.org>2008-07-29 19:33:03 +0000
committerGNU Hurd wiki engine <web-hurd@gnu.org>2008-07-29 19:33:03 +0000
commit11547ed5585a1cc52ad96eac6607b19cc54357df (patch)
treec440383a39ebc394a546dc8603477486cf966122 /community
parentd6663e4a6a60a47f9f64f56ee3128ccb3133d058 (diff)
web commit by flaviocruz: Add more translators in what's done. Refer upstream integration in TODO list. Add dependencies. Refer asdf.
Diffstat (limited to 'community')
-rw-r--r--community/flavioc.mdwn25
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