Gwydion Dylan User's Guide

Edited by

Peter Housel

Andreas Bogk

Use and copying of this software and preparation of derivative works based on this software are permitted, including commercial use, provided that the following conditions are observed:

  • This copyright notice must be retained in full on any copies and on appropriate parts of any derivative works.

  • Documentation (paper or online) accompanying any system that incorporates this software, or any part of it, must acknowledge the contribution of the Gwydion Project at Carnegie Mellon University.

This software is made available "as is". Neither the authors nor Carnegie Mellon University make any warranty about the software, its performance, or its conformity to any specification.

Bug reports, questions, comments, and suggestions should be sent by E-mail to the Internet address .


Table of Contents
1. Introduction
What is Dylan?
About Gwydion Dylan
Gwydion Dylan Resources
2. Installing Gwydion Dylan
Prerequisite Software Installation
Supported Systems
RPM Installation
Debian Package Installation
FreeBSD Installation
3. Using d2c
Getting Started with d2c
A simple Hello World
Structure of a Dylan Program
Using make-dylan-app
A Complete Hello World
Working with LID (Library Interchange Definition) Files
Invoking d2c
Environment Variables
4. Using the Melange Interface Generator
Introduction
A Concrete Example
Basic Use
Loading and Finding Objects
Importing Header Files
Specifying Object Names
Mapping functions
Prefixes
Explicit Renaming
Anonymous Types
Type Definitions
Implicit class definitions
Specifying class inheritance
Translating Object Representations
Specifying low level transformations
Specifying high level transformations
Other File Options
Function Clauses
Struct and Union Clauses
Pointer Clauses
Constant Clauses
Variable Clauses
Low level support facilities
Predefined types
Locating native C objects
Pointer manipulation operations
Static linking mechanisms
Differences from Creole
Known limitations
Proposed modifications
Enumeration clauses
Inheritance of "map" and "equate" options
Remerging of the "equate:" and "map:" options
List of Tables
4-1. Standard Name Mapping Functions