
   __ o  o __
   \_\|__|/_/
     \(o  o)      Giraffe Library
      |\ _|
      |\`-'       Version 1.0.0-alpha.12
      |/|
      |\|         SML interface to libraries using GObject Introspection
      |/|         http://giraffelibrary.org/
      |\|


This README file covers the following topics:

  1  Overview
  2  System Requirements
  3  Installation
  4  Contact and support


Full documentation is available at

  http://giraffelibrary.org/


         ---------------          1.  Overview          ---------------

Giraffe Library is an SML interface to libraries using GObject Introspection,
such as GLib and GTK.  The interface introduces some abstraction of the
libraries to provide expected features of SML such as:

  - automatic memory management (garbage collection)
  - static type safety
  - no uninitialized values
  - portable source code

Currently, an interface to a predefined set of libraries is provided.  The
interface for these libraries was generated offline using the Giraffe code
generator which can be used to generate interfaces to other libraries.  This
release provides an interface to parts of the following libraries, where the
interface is based on the indicated version:

  - GLib 2.0              2.66.4
  - Atk 1.0               2.36.0
  - cairo 1.0             1.14.0
  - HarfBuzz 0.0          2.7.2
  - Pango 1.0             1.48.0
  - GdkPixbuf 2.0         2.40.0
  - GTK 3.0               3.24.24
  - GtkSourceView 3.0     3.24.11
  - VTE 2.90              0.36.5  (VTE is a Virtual Terminal Emulator)
  - VTE 2.91              0.62.1

Later versions are expected to work but newer features are not available.
Earlier versions may still work, depending on the actual dependencies of an
application using Giraffe Library.

The interface has various omissions due to limitations.  Most limitations are
due to missing support in the Giraffe code generator, which is under
development.  Despite this, the library should be sufficient to create useful
non-trivial applications.

Giraffe Library has been tested on various combinations of

  - Fedora and Ubuntu GNU/Linux and Mac OS X systems
  - i686 and x86_64 platforms


         ---------------    2.  System Requirements     ---------------

At least one of the following SML compilers is required:

    MLton    >= 20130715
    Poly/ML  >= 5.6

Other standard tools are required:

  - An ANSI C compiler, such as GCC, and a linker.
  - Common GNU utilities, such as Bash, Make, Grep and Sed.
  - The pkg-config utility.


         ---------------        3.  Installation        ---------------

See the file 'INSTALL'.


         ---------------    4.  Contact and support     ---------------

Please send any queries to the Giraffe User mailing list:

  http://giraffelibrary.org/mailman/listinfo/giraffe-user_giraffelibrary.org
