From 3b9f2339aacb305847aa08c95a36b6aae8c92079 Mon Sep 17 00:00:00 2001 From: Greg Buchholz Date: Mon, 8 Sep 2003 21:27:00 +0000 Subject: none --- Hurd/TranslatorWishList.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Hurd') diff --git a/Hurd/TranslatorWishList.mdwn b/Hurd/TranslatorWishList.mdwn index a23f10c2..3ba74bba 100644 --- a/Hurd/TranslatorWishList.mdwn +++ b/Hurd/TranslatorWishList.mdwn @@ -56,7 +56,15 @@ Perl is a wonderful language for hacking together something useful in a short am Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. --- Greg Buchholz - 25 Jul 2003 +## Libraries + +Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): + +* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. + +* This may sound strange, but device file APIs have at least three advantages over a typical library API. First, it becomes much more language independent--any language that can make system calls can access the factorization library. Second, the factorization code is running in a different address space; if it crashes, it won't crash or corrupt the caller. Third, and most interestingly, it is possible to use `select(2)` to wait for the factorization to complete. `select(2)` would make it easy for a client to factor a large number while remaining responsive to other events that might happen in the meantime. In other words, FUSD allows normal user-space libraries to integrate seamlessly with UNIX's existing, POSIX-standard event notification interface: `select(2)`." + +-- [[Main/GregBuchholz]] - updated 08 Sep 2003 Minor formatting updates. -- cgit v1.2.3