packages feed

Cabal revisions of posix-api-0.4.0.0

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-cabal-version: 2.2-name: posix-api-version: 0.4.0.0-synopsis: posix bindings-description:-  This library provides a very thin wrapper around POSIX APIs. It can be-  compiled on any operating system that implements the standard as specified-  in <http://pubs.opengroup.org/onlinepubs/9699919799/ IEEE Std 1003.1>-  faithfully. It has similar goals as the `unix` package, but its design-  differs in several areas:-  .-  * `ByteArray` and `Addr` are used pervasively. There is no use of-    `String` in this library.-  .-  * Functions do not throw errors. This library uses `IO (Either Errno a)`-    in places where `unix` would use `IO a`.-  .-  * The numeric types from `Foreign.C.Types` and `System.Posix.Types` are-    used in the type signatures of functions so that a haskell function's-    type signature matches its underlying POSIX equivalent exactly.-  .-  * Flags are newtypes over `CInt` (or whatever integral type matches the-    posix specification) rather than enumerations. The data constructors-    are exported, making the types extensible for operating system that-    have additional flags.-  .-  About a dozen other packages offers wrappers for some subset of the POSIX-  specification are strewn across hackage. They include `regex-posix`,-  `posix-paths`, `posix-timer`, `posix-socket`, `posix-filelock`,-  `posix-acl`, etc. This library differs from all off these in various-  ways. Here are some of the design guidelines followed here that distinguish-  this package from some or all of these others:-  .-  * Scope. Although this library does not include all APIs specified by-    POSIX, it welcomes as many of them as anyone is willing to implement.-  .-  * Monomorphization. Effectful functions in this library return their-    results in `IO` rather than using a type that involves `MonadIO`-    or `MonadBaseControl`.-  .-  * Typeclass avoidance. This library does not introduce new typeclasses.-    Overloading is eschewed in favor of providing multiple functions-    with distinct names.-  .-  * Minimality. Functions wrapping the POSIX APIs do little more than-    wrap the underlying functions. The major deviation here is that,-    when applicable, the wrappers allocate buffers are the underlying-    functions fill. This eschews C's characteristic buffer-passing-    in favor of the Haskell convention of allocating internally and returning.-    A more minor deviation is that for safe FFI calls, this library-    will perform additional work to ensure that only pinned byte arrays are-    handed over.-  .-  Unlike `network`, this sockets API in this library does not integrate-  sockets with GHC's event manager. This is geared-  toward an audience that understands how to use `threadWaitRead`-  and `threadWaitWrite` with unsafe FFI calls to avoid blocking-  the runtime.-homepage: https://github.com/andrewthad/posix-api-license: BSD-3-Clause-license-file: LICENSE-author: Andrew Martin-maintainer: andrew.thaddeus@gmail.com-copyright: 2018 Andrew Martin-category: System-build-type: Simple-extra-source-files:-  README.md-  CHANGELOG.md-  cbits/HaskellPosix.c-  include/HaskellPosix.h-  include/custom.h--flag assertions-  manual: True-  description: Extra run-time invariant checking -  default: False--library-  exposed-modules:-    Foreign.C.String.Managed-    Linux.Epoll-    Linux.MessageQueue-    Linux.Socket-    Linux.Systemd-    Posix.Directory-    Posix.File-    Posix.MessageQueue-    Posix.Poll-    Posix.Select-    Posix.Socket-    Posix.Types-    Posix.Struct.SocketAddressInternet.Peek-    Posix.Struct.AddressInfo.Peek-  other-modules:-    Linux.Epoll.Types-    Linux.MessageQueue.Types-    Linux.Socket.Types-    Posix.File.Types-    Posix.MessageQueue.Types-    Posix.Poll.Types-    Posix.Socket.Platform-    Posix.Socket.Types-    Assertion-  build-depends:-    , base >=4.11.1 && <5-    , byte-order >= 0.1.2 && <0.2-    , byteslice >= 0.1.3 && <0.3-    , primitive >= 0.7 && <0.8-    , primitive-addr >= 0.1 && <0.2-    , primitive-offset >= 0.2 && <0.3-    , primitive-unlifted >= 0.1 && <0.2-    , run-st >= 0.1.1 && <0.2-  hs-source-dirs: src-  if flag(assertions)-    hs-source-dirs: src-assertions-  else-    hs-source-dirs: src-noassertions-  if os(linux)-    hs-source-dirs: src-linux-  default-language: Haskell2010-  ghc-options: -Wall -O2-  c-sources: cbits/HaskellPosix.c-  include-dirs: include-  includes: HaskellPosix.h-  extra-libraries: systemd-  build-tool-depends: hsc2hs:hsc2hs >= 0.68.5--test-suite test-  type: exitcode-stdio-1.0-  hs-source-dirs: test-  main-is: Main.hs-  build-depends:-    , base-    , posix-api-    , tasty-    , tasty-hunit-    , primitive >= 0.7-    , primitive-unlifted-  ghc-options: -Wall -O2 -threaded-  default-language: Haskell2010-+cabal-version: 2.2
+name: posix-api
+version: 0.4.0.0
+x-revision: 1
+synopsis: posix bindings
+description:
+  This library provides a very thin wrapper around POSIX APIs. It can be
+  compiled on any operating system that implements the standard as specified
+  in <http://pubs.opengroup.org/onlinepubs/9699919799/ IEEE Std 1003.1>
+  faithfully. It has similar goals as the `unix` package, but its design
+  differs in several areas:
+  .
+  * `ByteArray` and `Addr` are used pervasively. There is no use of
+    `String` in this library.
+  .
+  * Functions do not throw errors. This library uses `IO (Either Errno a)`
+    in places where `unix` would use `IO a`.
+  .
+  * The numeric types from `Foreign.C.Types` and `System.Posix.Types` are
+    used in the type signatures of functions so that a haskell function's
+    type signature matches its underlying POSIX equivalent exactly.
+  .
+  * Flags are newtypes over `CInt` (or whatever integral type matches the
+    posix specification) rather than enumerations. The data constructors
+    are exported, making the types extensible for operating system that
+    have additional flags.
+  .
+  About a dozen other packages offers wrappers for some subset of the POSIX
+  specification are strewn across hackage. They include `regex-posix`,
+  `posix-paths`, `posix-timer`, `posix-socket`, `posix-filelock`,
+  `posix-acl`, etc. This library differs from all off these in various
+  ways. Here are some of the design guidelines followed here that distinguish
+  this package from some or all of these others:
+  .
+  * Scope. Although this library does not include all APIs specified by
+    POSIX, it welcomes as many of them as anyone is willing to implement.
+  .
+  * Monomorphization. Effectful functions in this library return their
+    results in `IO` rather than using a type that involves `MonadIO`
+    or `MonadBaseControl`.
+  .
+  * Typeclass avoidance. This library does not introduce new typeclasses.
+    Overloading is eschewed in favor of providing multiple functions
+    with distinct names.
+  .
+  * Minimality. Functions wrapping the POSIX APIs do little more than
+    wrap the underlying functions. The major deviation here is that,
+    when applicable, the wrappers allocate buffers are the underlying
+    functions fill. This eschews C's characteristic buffer-passing
+    in favor of the Haskell convention of allocating internally and returning.
+    A more minor deviation is that for safe FFI calls, this library
+    will perform additional work to ensure that only pinned byte arrays are
+    handed over.
+  .
+  Unlike `network`, this sockets API in this library does not integrate
+  sockets with GHC's event manager. This is geared
+  toward an audience that understands how to use `threadWaitRead`
+  and `threadWaitWrite` with unsafe FFI calls to avoid blocking
+  the runtime.
+homepage: https://github.com/andrewthad/posix-api
+license: BSD-3-Clause
+license-file: LICENSE
+author: Andrew Martin
+maintainer: andrew.thaddeus@gmail.com
+copyright: 2018 Andrew Martin
+category: System
+build-type: Simple
+extra-source-files:
+  README.md
+  CHANGELOG.md
+  cbits/HaskellPosix.c
+  include/HaskellPosix.h
+  include/custom.h
+
+flag assertions
+  manual: True
+  description: Extra run-time invariant checking 
+  default: False
+
+library
+  exposed-modules:
+    Foreign.C.String.Managed
+    Linux.Epoll
+    Linux.MessageQueue
+    Linux.Socket
+    Linux.Systemd
+    Posix.Directory
+    Posix.File
+    Posix.MessageQueue
+    Posix.Poll
+    Posix.Select
+    Posix.Socket
+    Posix.Types
+    Posix.Struct.SocketAddressInternet.Peek
+    Posix.Struct.AddressInfo.Peek
+  other-modules:
+    Linux.Epoll.Types
+    Linux.MessageQueue.Types
+    Linux.Socket.Types
+    Posix.File.Types
+    Posix.MessageQueue.Types
+    Posix.Poll.Types
+    Posix.Socket.Platform
+    Posix.Socket.Types
+    Assertion
+  build-depends:
+    , base >=4.11.1 && <5
+    , byte-order >= 0.1.2 && <0.2
+    , byteslice >= 0.1.3 && <0.3
+    , primitive >= 0.7 && <0.10
+    , primitive-addr >= 0.1 && <0.2
+    , primitive-offset >= 0.2 && <0.3
+    , primitive-unlifted >= 0.1 && <0.2
+    , run-st >= 0.1.1 && <0.2
+  hs-source-dirs: src
+  if flag(assertions)
+    hs-source-dirs: src-assertions
+  else
+    hs-source-dirs: src-noassertions
+  if os(linux)
+    hs-source-dirs: src-linux
+  default-language: Haskell2010
+  ghc-options: -Wall -O2
+  c-sources: cbits/HaskellPosix.c
+  include-dirs: include
+  includes: HaskellPosix.h
+  extra-libraries: systemd
+  build-tool-depends: hsc2hs:hsc2hs >= 0.68.5
+
+test-suite test
+  type: exitcode-stdio-1.0
+  hs-source-dirs: test
+  main-is: Main.hs
+  build-depends:
+    , base
+    , posix-api
+    , tasty
+    , tasty-hunit
+    , primitive >= 0.7
+    , primitive-unlifted
+  ghc-options: -Wall -O2 -threaded
+  default-language: Haskell2010
+