Difference between revisions of "Applications and libraries/Operating system"
Jump to navigation
Jump to search
DonStewart (talk | contribs) (Bulat's process lib belongs here) |
DonStewart (talk | contribs) (Add JohnM's GetOptions) |
||
Line 1: | Line 1: | ||
+ | '''Operating Systems and Systems Programming''' |
||
+ | |||
__TOC__ |
__TOC__ |
||
Line 33: | Line 35: | ||
See also [[Libraries_and_tools/Concurrency_and_parallelism]] |
See also [[Libraries_and_tools/Concurrency_and_parallelism]] |
||
+ | |||
+ | == Environment == |
||
+ | |||
+ | ;[http://repetae.net/john/recent/out/GetOptions.html GetOptions] |
||
+ | :This module provides an advanced option parsing routine which can properly parse options depending on what types are infered for them as well as produce a pretty error message with usage info when an incorrect option is used. |
||
== Shell == |
== Shell == |
||
Line 58: | Line 65: | ||
:library for communicating with other processes via Haskell code |
:library for communicating with other processes via Haskell code |
||
− | + | == Shell utilities == |
|
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/haskell-ls/ haskell-ls] |
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/haskell-ls/ haskell-ls] |
||
Line 66: | Line 73: | ||
:h4sh provides a set of Haskell List functions as normal unix shell commands. This allows us to use Haskell in shell scripts transparently. Each program is generated from the corresponding Haskell function's type |
:h4sh provides a set of Haskell List functions as normal unix shell commands. This allows us to use Haskell in shell scripts transparently. Each program is generated from the corresponding Haskell function's type |
||
− | + | == File utilities == |
|
;[http://quux.org/devel/magic-haskell magic-haskell] |
;[http://quux.org/devel/magic-haskell magic-haskell] |
Revision as of 04:10, 1 April 2006
Operating Systems and Systems Programming
Standalone implementations of operating systems in Haskell
- House
- House is a platform for exploring various ideas relating to low-level and system-level programming in a high-level functional language, or in short for building operating systems in Haskell.
Filesystems
- Fuse
- David Roundy's combination of a nice DarcsIO-style filesystem interface on the Haskell side (called FuseIO) with an interface to libfuse (which is a library for creating filesystems from user space on linux).
- hfuse
- Jeremy Bobbio's fuse bindings
- Halfs, the Haskell Filesystem
- ZipperFS
- Oleg Kiselyov's file server/OS where threading and exceptions are all realized via delimited continuations.
Dynamic linking
- hs-plugins
- Library support for dynamically loading Haskell modules, as well as compiling source or eval code fragments at runtime.
Processes
- popenhs
- A small library, based on runProcess in the standardised posix library. It provides lazy output from subprocesses.
- Process
- Process is a fun library for easing decomposition of algorithms to several processes, which transmit intermediate data via Unix-like pipes. Each sub-process is just a function started with forkIO/forkOS with one additional parameter-pipe.
See also Libraries_and_tools/Concurrency_and_parallelism
Environment
- GetOptions
- This module provides an advanced option parsing routine which can properly parse options depending on what types are infered for them as well as produce a pretty error message with usage info when an incorrect option is used.
Shell
Link collections on pure functional shells
Haskell shell examples
- HsShellScript
- A library for using Haskell for tasks which are usually done by shell scripts, e.g. command line parsing, analysing paths, etc. It can be used also for tasks usually done GetOpt (a module for GNU-/POSIX-like option handling of commandline arguments). But also for many other things.
- Jim Mattson's Hsh Haskell shell
- on the software page by Ralf Hinze. Hsh seems to be written in Haskell 1.3.
- HaSh
- a nascent project page on a shell scripting system
- Monadic i/o and UNIX shell programming
- UNIX pipes as IO monads.
- shell-haskell
- library for communicating with other processes via Haskell code
Shell utilities
- haskell-ls
- A (near-)clone of the GNU ls utility.
- h4sh
- h4sh provides a set of Haskell List functions as normal unix shell commands. This allows us to use Haskell in shell scripts transparently. Each program is generated from the corresponding Haskell function's type
File utilities
- magic-haskell
- magic-haskell is a binding to the libmagic library. With magic-haskell, you can determine the type of a file by looking at its contents rather than its name. This library also can yield the MIME type of a file by looking at its contents.