\input texinfo   @c -*- texinfo; coding: utf-8 -*-
@c %**start of header
@setfilename objective-cl.info
@settitle Objective-CL
@c %**end of header

@c The time stamp is automatically maintained by Emacs.
@c Time-stamp: <2007-09-12 02:51:54 mulk>
@set VERSION 0.0.1
@set UPDATED 12. September 2007

@c Wichtige Emacsbefehle:
@c C-c C-c n
@c C-c C-u C-n
@c C-c C-u C-m
@c C-c C-u C-e
@c C-c C-u C-a
@c C-c C-u m


@c vr
@c fn
@c cp
@defindex mc
@defindex cl
@defindex sym

@copying
This is the official manual for Objective-CL
(version @value{VERSION}, @value{UPDATED}),
a portable Objective-C bridge for Common Lisp.

Copyright @copyright{} 2007 Matthias Benkard.

@quotation
@end quotation
@end copying

@dircategory Lisp Programming
@direntry
* Objective-CL: (Objective-CL)A portable Objective-C bridge for Common Lisp.
@end direntry

@dircategory Common Lisp
@direntry
* Objective-CL: (Objective-CL)A portable Objective-C bridge for Common Lisp.
@end direntry


@titlepage
@title Objective-CL User Manual
@subtitle for version @value{VERSION}, @value{UPDATED}
@author Matthias Andreas Benkard (@email{matthias@@benkard.de})
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@contents

@ifnottex
@node Top
@top Objective-CL

@insertcopying
@end ifnottex

@menu
* Introduction::                  A quick-start guide to Objective-CL.
* Objective-CL Concepts::         Selectors, class instances, and method
                                    invocations.
* Interacting with Objective-C::  Invoking methods, creating instances, defining
                                    classes, and converting data.
* Reference Manual::              A reference of the Objective-CL API.
* Concept Index::                 A menu covering many concepts.
* Symbol Index::                  A list of symbols defined by Objective-CL.
* Copying This Manual::           The GNU General Public License, Version 3.
@end menu


@node Introduction
@chapter Introduction
@menu
* Purpose::             Whom Objective-CL is for and why it exists.
* A Simple Example::    Using Objective-CL to invoke methods.
* History::             How the project came to be.
@end menu


@node Objective-CL Concepts
@chapter Objective-CL Concepts
@menu
@end menu


@node Interacting with Objective-C
@chapter Interacting with Objective-C
@menu
* Initialisation and Shutdown::  Initialising the Objective-C runtime and
                                   shutting it down cleanly.
* Calling Objective-C::          Instantiating and retrieving classes and
                                   objects, and ways of sending messages to
                                   them.
* Defining Classes::             Defining classes and making them accessible to
                                   Objective-C code.
* Data Conversion::              How conversion between Lisp and Objective-C data
                                   types works.
* Special Data Types::           Data types that are handled specially in order
                                   to improve integration.
@end menu

@node Initialisation and Shutdown
@section Initialisation and Shutdown
@menu
* Initialising the runtime::
* Shutting the runtime down::

Details:

* Function `initialise-runtime'::
* Function `shutdown-runtime'::
@end menu


@node Calling Objective-C
@section Calling Objective-C
@menu
* Using the `invoke' function::    The primitive, but safe way of doing things.
* Objective-C-style invocations::  Invoking methods in a syntactically pleasant
                                     way.

Details:

* Function `invoke'::
* Function `invoke-by-name'::
* Function `install-reader-syntax'::

Convenience functions:

* Function `objc-eql'::
* Function `objc-equal'::
@end menu

@node Using the `invoke' function
@subsection Using the @code{invoke} function

@node Objective-C-style invocations
@subsection Objective-C-style invocations

@node Function `invoke'
@subsection Function @code{invoke}
@c @include fun_invoke.texinfo

@node Function `invoke-by-name'
@subsection Function @code{invoke-by-name}
@c @include fun_invoke-by-name.texinfo

@node Function `install-reader-syntax'
@subsection Function @code{install-reader-syntax}
@c @include fun_install-reader-syntax.texinfo

@node Function `objc-eql'
@subsection Function @code{objc-eql}
@c @include fun_objc-eql.texinfo

@node Function `objc-equal'
@subsection Function @code{objc-equal}
@c @include fun_objc-equal.texinfo


@node Reference Manual
@chapter Reference Manual
@menu
* Functions::           Details about some functions.
@c * Macros::              Details about some macros.
* Variables::           Details about some special variables.
* Classes::             Details about some classes.

* Function Index::      A list of all functions.
@c * Macro Index::         A list of all macros.
* Variable Index::      A list of all special variables.
* Class Index::         A list of all classes.
@end menu


@ignore
@include extracted-docs.texinfo

@node Macro @code{invoke}
@chapter Macro @code{invoke}

@findex invoke
@symindex invoke
@cindex invoking methods via @code{invoke}
@include m_invoke.texinfo
@end ignore

@node Copying This Manual
@appendix Copying This Manual

@menu
* GNU General Public License::  The license for copying this manual.
@end menu

@c @include fdl.texi


@node Function Index
@unnumbered Index of Functions
@printindex fn

@ignore
@node Macro Index
@unnumbered Index of Macros
@printindex mc
@end ignore

@node Variable Index
@unnumbered Index of Special Variables
@printindex vr

@node Class Index
@unnumbered Index of Classes
@printindex cl

@node Symbol Index
@unnumbered Index of Symbols
@printindex sym

@node Concept Index
@unnumbered Index of Concepts
@printindex cp

@bye