Giraffe Library Releases
To install the latest library release, see the README and INSTALL files provided with the release.instructions. For more detailed instructions, see the . For previous releases, see the
Changes since release 1.0.0-alpha.10:
Changed functions [Child]Signal.connect[After] to take signal and handler arguments as a pair, e.g. Signal.connect obj (aSig, handlerFun).
Renamed signature UTF8 to UTF_8
MLton 20180207 supported, retaining support for MLton 20130715 by applying the following changes to versions after 20130715:
Specified import attribute reentrant as required to avoid seg. faults.
Added valrecConstr ignore annotation to MLB files to avoid warnings.
Updated library versions:
Added Cairo.Context functions except functions involving the C types cairo_rectangle_list_t and cairo_path_t.
Fixed Giraffe.exit to release ownership of C objects and memory on exit.
Source files installed for only requested compilers.
Changes since release 1.0.0-alpha.9:
Fixed build for GLib >= 2.62.0.
Updated configure script to check for MLton include directory under lib64.
Changes since release 1.0.0-alpha.8:
Updated representation of properties, which changes the way properties are accessed as follows:
Added bind functions to the module Property that provide a type-safe interface for binding properties.
Added support for accessing fields of a record.
Added support for constructing value-like records: for a value-like record R with no private fields, a function R.new is generated if no function of the same name already exists.
SML type for a non-string C array type made abstract as follows:
For each C array type, where the SML type of the C element type is Elem.t, the following modules are declared if referenced:
structure ElemCArray : C_ARRAY
structure ElemCArrayN : C_ARRAY_N
structure ElemCPtrArray : C_ARRAY
structure ElemCPtrArrayN : C_ARRAY_N
The abstract SML type is ElemC[Ptr]Array[N].t and represents a C array as follows:
referenced by a pointer
(The change in array representation avoids performance issues with large arrays by allowing the internal representation to be a C array allocated on the C heap that is not necessarily converted to/from an SML value.)
SML type for C integer types gsize and gssize changed from LargeInt.int to int.
Added a function that returns the instance type to root classes:
Removed bespoke version of GLib.childWatchSourceNew that was added manually.
Fixed introspection metadata for the following functions, which now return an optional value:
Fixed introspection metadata for the following functions, which now return a new buffer:
Added module Giraffe with functions exit and error.
Updated top-level function use to support references to environment variables using the notation $(var) for the value of var.
Updated code generation to use nullable attribute of 'out' and 'inout' arguments to determine whether an optional type is used. With the exception of arrays with a size parameter or fixed size zero (which may be null when empty), an optional type is used iff nullable is specified.
A callback no longer leaks memory. (A closure, which cannot be freed, is now allocated for each callback type only, not for each callback instance, following the approach already used for MLton.)
Fixed an unlikely but theoretically possible issue where memory for a function argument could be freed immediately on returning from the function call (because the last use of the memory was for the function argument) but some of the memory is referenced in the value passed back from an 'out' or 'inout' argument and needs to be copied after returning from the call.
Changes since release 1.0.0-alpha.7:
Removed restriction on Poly/ML 5.7 that required C function argument/return values with a C integer type to be in the range of Int.int which, in practice, required Int to be the same as IntInf.
Generated C wrapper functions for use with MLton so all functions supported.
Generated C functions to determine the size of value-like records.
Updated library versions:
Included deprecated functions in generated code.
GLib namespace is loaded before GObject namespace.
Fixed property operators to respect construct-only mode.
Supported case-insensitive file systems.
Fixed use of dynamic loader with Poly/ML under Darwin.
Changes since release 1.0.0-alpha.6:
Poly/ML 5.6 required.
Poly/ML 5.7 supported.
Introduced finalizers based on weak references.
Used the new FFI (provided by the structure Foreign).
Added required MLton annotations to Giraffe library MLB files.
Added support for C array types.
Updated support for object types. For a class C, object types are changed as follows:
(new local type)
Added support for structure types. (Previously, a limited number of record modules were created manually.) For a record R, structure type R.record_t has been removed.
Added remaining parts of namespaces that can be supported.
Changed type names in the module Signal:
Generated codegen log in excluded-log.page.
Used non-option type for 'out' parameters conditional on error and ignored boolean return value if it indicates an error.
Changes since release 1.0.0-alpha.5:
Added type abbreviation for object and structure types:
for class C, object type C.t is equivalent to base C.class_t
for record R, structure type R.t is equivalent to R.record_t
Changed naming convention for types and constructors to use underscores between words in line with the Basis Library convention.
Changed Gdk button event names in line with GTK+ as follows:
TWOBUTTONPRESS changed to DOUBLE_BUTTON_PRESS
THREEBUTTONPRESS changed to TRIPLE_BUTTON_PRESS
Removed experimental type-safe interface to style properties. Style properties must be accessed via GObject.Value which is not type-safe.
Changes since release 1.0.0-alpha.4:
Added support for Darwin (Mac OS X).
Poly/ML 5.5.2 required.
scripts compatible with Dash and Bash 3
further configure options and checks
corrections to Makefile
config.mk file installed to provide configuration to applications.
Archive (A) files built for MLton C libraries instead of object (O) files.
Fixed bugs in C libraries and turned on C compiler warnings.
Changed runtime licence to LGPL v2.1.
Changes since release 1.0.0-alpha.3:
Added support for multiple versions of a library.
Added library vte-2.91.
Restructured source code directories.
Introduced configure script for installation.
Changes since release 1.0.0-alpha.2:
SML generated from GIR files:
no longer platform-specific
alias types included
Added support for Pango and GtkSourceView libraries.
Pid.t moved to GLib.Pid.t
FFI module for basic types restructured.