-
Notifications
You must be signed in to change notification settings - Fork 5
/
linux-inotify.cabal
67 lines (62 loc) · 2.48 KB
/
linux-inotify.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: linux-inotify
version: 0.3.0.2
synopsis: Thinner binding to the Linux Kernel's inotify interface
description:
This is a binding for GHC 7 to the Linux Kernel's inotify interface,
which provides notifications to applications regarding file system
events, such as file creation, modification, deletion, etc.
.
Some of the advantages over hinotify are:
.
1. linux-inotify provides a plain getEvent operator that blocks,
instead of implementing a callback API.
.
2. linux-inotify avoids most of GHC's standard IO handling code,
relying on plain system calls with minimal overhead in Haskell-land.
(However, it still does make good use of GHC's IO manager via
nonblocking inotify sockets and threadWaitRead, so getEvent is
still efficient.)
.
3. linux-inotify does not call forkIO, which means less context
switching and scheduling overhead, especially in contexts where
hinotify's particular event router isn't a very good fit for
your application; e.g. you are implementing a following log file
processor.
.
Some of the disadvantages compared to hinotify are:
.
1. Due to the use of `inotify_init1`, `linux-inotify` currently
requires linux 2.6.27 or later, even though `inotify` support
debuted in linux 2.6.13. You can check which version of linux is
on a machine via `uname` `-a`. I would like to fix this at some point,
but it isn't a personal priority.
.
2. `linux-inotify` requires GHC 7.8.1 or later, whereas `hinotify`
works with many versions of GHC 6. I have no plans to fix this.
license: BSD3
license-file: LICENSE
author: Leon P Smith
maintainer: leon@melding-monads.com
copyright: (c) 2013-2015 Leon P Smith
category: System
build-type: Simple
cabal-version: 1.18
Extra-Doc-Files: CHANGES.md
library
default-language: Haskell2010
hs-source-dirs: src
exposed-modules: System.Linux.Inotify
build-depends: base >= 4.7 && < 5,
bytestring >= 0.10.4,
hashable >= 1.1.2,
unix
if !impl(ghc >= 8.0)
build-depends: semigroups == 0.18.*
ghc-options: -Wall
source-repository head
type: git
location: http://github.com/lpsmith/linux-inotify
source-repository this
type: git
location: http://github.com/lpsmith/linux-inotify
tag: v0.3.0.1