Giter Site home page Giter Site logo

msakai / hoppy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lingnand/hoppy

0.0 2.0 0.0 994 KB

C++ FFI generator for Haskell. Mirror of https://gitlab.com/khumba/hoppy; pull requests over there please!

License: Other

Shell 2.56% Makefile 0.70% Haskell 88.80% C++ 6.77% Nix 1.17%

hoppy's Introduction

Hoppy - A C++ FFI generator for Haskell

Hoppy brings all the fun of pointers and manual memory management to Haskell, making binding to C++ easy.

Homepage: http://khumba.net/projects/hoppy

Copyright 2015-2018 Bryan Gardiner [email protected]

A range of successive copyright years may be written as XXXX-YYYY as an abbreviation for listing all of the years from XXXX to YYYY inclusive, individually.

The LICENSE file contains information about Hoppy's license.

Dependencies

  • GHC 7.8-8.0
  • haskell-src (for binding development only)
  • mtl (for binding development only)

If you just want to install Hoppy to use it as a dependency of another project, then all you need to do is build and install the Cabal package in runtime/.

Using

Hoppy consists of four Cabal packages:

  • generator/ holds the code generator library. Developers specify interfaces in Haskell code, that then link against this library to produce a generator program that can create actual binding source code. This package is only used while generating code, and isn't a dependency of generated bindings.

  • std/ provides interface definitions for the C++ standard library, including strings, containers, and iterators.

  • runtime/ is a runtime support library for Haskell bindings. This is needed by generated Haskell code, so bindings created using Hoppy should list this as package as a dependency in their .cabal files.

  • docs/ contains documentation written using Haddock. It depends on the previous packages for hyperlinks.

It can be built and installed with the install.sh script.

There is a user's guide written using Haddock at docs/src/Foreign/Hoppy/Documentation/UsersGuide.hs. You can read it as is, or browse the HTML files in docs/dist/doc after building.

Developing

Patches welcome! Please enable the pre-commit hook at scripts/git-pre-commit which checks lint and copyright/license issues:

$ ln -s ../../scripts/git-pre-commit .git/hooks/pre-commit

Also please try to fix warnings that your changes introduce, check that the unit tests in the tests/ directory pass, and follow local style, or the style guide.

hoppy's People

Contributors

khumba avatar lingnand avatar msakai avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.