comp.lang.objective-c FAQ, part 2/3: ClassWare Listing

---
From: tiggr@es.ele.tue.nl (Pieter J. Schoenmakers)
Newsgroups: comp.lang.objective-c,comp.answers,news.answers,comp.sys.mac.programmer.info
Subject: comp.lang.objective-c FAQ, part 2/3: ClassWare Listing
Supersedes: <classes_867061111@es.ele.tue.nl>
Followup-To: comp.lang.objective-c
Date: 20 Jul 1997 12:17:00 GMT
Organization: Eindhoven University of Technology, the Netherlands
Expires: 29 Aug 1997 12:16:59 GMT
Message-ID: <classes_869401019@es.ele.tue.nl>
Reply-To: tiggr@ics.ele.tue.nl
Summary: This second part of the comp.lang.objective-c FAQ postings
	gives an overview of available class libraries.

Archive-name: Objective-C/classes
Version: $Id: classes,v 3.33 1997/07/14 07:06:06 tiggr Exp $

				Objective-C

			     ClassWare Listing



This is the second of three FAQ postings for comp.lang.objective-c.  This
posting lists available kits and classes, to aid the reader in answering the
question `to re-use or to re-invent?'.	In order to keep this list up to date
and as interesting and diverse as possible, send your additions, deletions
and suggestions to tiggr@ics.ele.tue.nl.

The available classes and kits are categorized as follows:

	Stepstone	Stepstone libraries,
			for use with Stepstone's environment
	NeXT		NeXT kits, for use with NEXTSTEP
	FSF		FSF maintained/released classes
			for use with GNU CC

	Third Party	commercial classes
	    OS/2 Objective C class library
	    BARCODEKIT
	    SERIALPORTKIT
	    BPG Blocks
	    Objective-C Views	UI library for MS Windows
	    OBJECT:Math		extensible match and string handling
	    Store		OO user level virtual file system
	    DOME 3.0		distributed object management environment
	    Computer Algebra Kit	objects for multiprecision arithmetic
				[stepstone & portable object compiler]
	    Objective-Framework, Objective-Browser

	GPL		classes released under the GPL
	    objcX	[gnu]
	    Tcl/Objective-C Interface Library [gnu, nextstep]
	    libtl	Tiggr's Objective-C Library [gnu, nextstep]

	Public Domain	public domain classes---no GPL
	    IconKit	[nextstep]
	    MiscKit	[nextstep / openstep]
	    MusicKit	[nextstep]
	    ObjectPak   collection class library
			[gnu, nextstep, stepstone, portable object compiler]

Stepstone

    Bundled with the compiler is ICpak 101 Foundation Class Library.  This
    library provides twenty classes and more than three hundred methods
    including such things as Collections (OrdCltn, Stack, Set, Dictionary,
    SortCltn), Arrays (IdArray, IntArray), String, Sequences, Automatic
    Object I/O (ASCII Filer), etc.

    The ICpak 201 Graphical User Interface library is used to build iconic
    multi window user interfaces for workstation applications.	The library
    consists of 58 classes and over 1,100 methods.  Classes include such
    things as Controllers, Menu's, Menu Items, Icons, Windows(StdLayer),
    Timers, Buttons, Text, etc, etc.  ICpak 201 is ported to X Windows,
    OpenWindows, Motif and SunView and provides a consistent user interface/
    look-and-feel between all platforms.

    Contact

	The Stepstone Corporation
	75 Glen Road
	Sandy Hook, CT 06482
	tel: +1 203 426-1875
	fax: +1 203 270-0106
	telex: 506127

NeXT

    Common Classes

	Several classes provided with NeXTSTEP do not belong to a specific
	kit: Object (core of the runtime system, root of the general class
	hierarchy), Storage, List (an abstract array), HashTable (to store
	(key, object) associations), NXStringTable (to store (key, string)
	associations) and NXBundle (file-resources management and dynamic
	loading).

    Application Kit

	The Application Kit defines a set of Objective-C classes and
	protocols, C functions, and assorted constants and data types that
	are used by virtually every NeXTSTEP application.  The pith of the
	Kit are the tools it provides for implementing a graphical,
	event-driven user interface:

	    The Application Kit provides classes---most notably Window and
	    View---that make drawing on the screen exquisitely succinct.
	    Much of the unromantic work that's involved in
	    drawing---communicating with hardware devices and screen
	    buffers, clearing areas of the screen before drawing,
	    coordinating overlapping drawing areas---is taken care of for
	    you, letting you concentrate on the much more gratifying task of
	    supplying code that simply draws.  And even this task is
	    assisted by many of the other classes and a number of C
	    functions that provide drawing code for you.

	    The Application Kit makes event handling extremely simple.	The
	    Responder class, from which many of the Kit's classes inherit,
	    defines a mechanism by which the user's actions are passed to
	    the objects in your application that can best respond to them.
	    The Application class, which inherits from Responder,
	    establishes the low-level connections that makes this system
	    possible.  It provides methods that inform your application of
	    watershed events, such as when the user makes the application
	    active and inactive, and when the user logs out or turns off the
	    computer.

	By using these tools, you bless your application with a look and
	feel that's similar to other applications, making it easier for the
	user to recognize and use.

	(Introduction from the NeXTSTEP General Reference, "Application Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Database Kit

	The Database Kit provides a comprehensive set of tools, classes, and
	protocols for building applications that use a high-level
	entity-relationship model to manipulate database servers such as
	those provided by Oracle or Sybase.  The kit provides services that
	include:

	    Communication with client-server databases.

	    Modeling properties (attributes and relationships) of each
	    database.

	    Record management and buffering.

	    Data flow between record managers and the application user
	    interface.

	    User interface objects for display and editing.

	(Introduction from the NeXTSTEP General Reference, "Database Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Distributed Objects

	The Distributed Objects system provides a relatively simple way for
	applications to communicate with one another by allowing them to
	share Objective-C objects, even amongst applications running on
	different machines across a network.  They are useful for
	implementing client-server and cooperative applications.  The
	Distributed Objects system subsumes the network aspects of typical
	remote procedure call (RPC) programming, and allow an application to
	send messages to remote objects using ordinary Objective-C syntax.

	The Distributed Objects system takes the form of two classes,
	NXConnection and NXProxy.  NXConnection objects are primarily
	bookkeepers that manage resources passed between applications.
	NXProxy objects are local objects that represent remote objects.
	When a remote object is passed to your application, it is passed in
	the form of a proxy that stands in for the remote object; messages
	to the proxy are forwarded to the remote object, so for most intents
	and purposes the proxy can be treated as though it were the object
	itself.	 Note that direct access to instance variables of the remote
	object isn't available through the proxy.

	(Introduction from the NeXTSTEP General Reference, "Distributed Objects"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Indexing Kit

	The Indexing Kit is a set of programmatic tools for managing data,
	especially the large amounts of data characteristic of information
	intensive applications.	 Much as the Application Kit provides a
	framework for a graphical interface, the Indexing Kit provides a
	framework for data management.

	The Indexing Kit supplies facilities for building custom databases
	and for searching the UNIX file system.	 Key benefits include
	guaranteed data integrity, excellent performance, thread-safe
	operation, tight integration with the NeXTSTEP programming
	environment, and the ability to efficiently store and retrieve
	Objective-C objects and unstructured data like text, sound, and
	images.

	The Indexing Kit consists of:

	    A transaction-oriented foundation for storing and retrieving
	    persistent data, using virtual memory mapping for efficient
	    random access to parts of a file without reading or writing the
	    entire file. Transactions guarantee data integrity on persistent
	    storage media, and are also used to manage concurrent access to
	    shared data.

	    Fast sequential and associative access to stored data.
	    Associative access is untyped, in that the programmer defines
	    the data types of keys and their ordering by means of a
	    comparison function or a format string.

	    A simple data management capability based on the Objective-C
	    run-time system.  Records can be moved efficiently between
	    working memory and the storage substrate in the form of
	    Objective-C objects.  Multiple indexes can be built over
	    programmer-defined attributes, so that records can be ordered
	    and retrieved by the values of their indexed attributes.

	    A general query processing facility, including a declarative
	    query language and its interpreter.	 Queries can be applied to
	    individual objects, to collections of objects, or to the
	    attribute/value lists produced by Indexing Kit's customizable
	    text processing tools.

	    High-level file system searching facilities based on the
	    supporting layers described above, including fast literal
	    searching of file contents.

	(Introduction from the NeXTSTEP General Reference, "Indexing Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Mach Kit

	The Mach Kit provides an object-oriented interface to some of the
	features of the Mach operating system.	At this time, it is most
	useful to applications that make use of the Distributed Objects
	system, since these applications rely upon Mach's message sending
	abilities to transport objects, ports, and data between processes.
	The Mach Kit may also be useful for drivers and multi threaded
	applications.  The Mach Kit provides several classes and protocols,
	listed below.

	(Introduction from the NeXTSTEP General Reference, "Mach Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    NetInfo Kit

	The NetInfo Kit is a collection of classes and a single function
	used to provide a connection to and interface with NetInfo domains.
	The NetInfo Kit provides classes for basic interface with a domain
	as well as specialized panels.

	(Introduction from the NeXTSTEP General Reference, "NetInfo Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    3D Kit

	The 3D Graphics Kit enables NeXTSTEP applications to model and
	render 3-dimensional scenes.  Much as the Application Kit's 2D
	graphics capabilities are based on the Display PostScript
	interpreter, the 3D Kit's capabilities are based on the Interactive
	RenderMan renderer.  There are both similarities and differences in
	the inner workings of the two implementations.

	One similarity is that both are implemented with a client-server
	model, in which client applications send drawing code to the Window
	Server, which does the actual drawing.	Another similarity is that
	N3DCamera---the 3D Kit's View---generates all drawing code, both 2D
	and 3D, when its drawSelf: method is invoked.  This keeps the
	Application Kit's display mechanism intact for both PostScript and
	RenderMan drawing.

	One difference in the implementations is in the code generated for
	drawing. For 2D drawing, a View sends PostScript code to the Window
	Server's Display PostScript interpreter.  For 3D drawing, a View
	sends RenderMan Interface Bytestream (RIB) code to the Window
	Server's Interactive RenderMan renderer.

	(Introduction from the NeXTSTEP General Reference, "3D Graphics Kit"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Sound Kit

	The Sound Kit is designed to provide both low- and high-level access
	to sound hardware on workstations running NeXTSTEP, including
	support for a wide variety of sound formats, real-time mixing and
	compression.  The Sound Kit consists of five general categories of
	objects:

	    Sound Device Objects

		Sound Device objects, like NXSoundIn and NXSoundOut,
		wrap the low-level hardware and sound drivers into
		simple, extensible packages.

	    Sound Streams

		Sound Stream objects, like NXPlayStream or NXRecordStream,
		allow the sound output of many simultaneous programs to be
		mixed, scaled, and processed before being sent out the Sound
		objects.

	    The Sound Object

		The Sound object is NeXTSTEP's fundamental sound data
		storage and playback/recording facility.

	    The SoundView Object

		NeXTSTEP's Sound View is a graphical display of sound data
		that interacts well with the NeXTSTEP GUI.

	    The Sound Meter Object

		The Sound Meter displays the current running amplitude of a
		playing or recording sound (in mono), much like volume
		meters on amplifiers or tape decks.

	In addition to this library, NeXT provides two sets of sound driver
	and sound access functions.

    NXLiveVideoView

	The NXLiveVideoView class provides API for interactive display of
	live video on the screen of a NeXTdimension Computer.  The
	NXLiveVideoView class specification provides a complete discussion
	of the NeXTdimension Computer's video capabilities and the API
	provided by NXLiveVideoView.

	(Introduction from the NeXTSTEP General Reference, "Video"
	reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
	All rights reserved.)

    Applications

	There are several classes which solely exist to enable the
	programmer to add functionality to specific existing NEXTSTEP
	applications:

	    IBPalette, IBInspector

		These classes allow developers to expand the functionality
		of the Interface Builder application, creating their own
		palettes of objects that can be dragged into an interface,
		and inspectors to set and view the attributes of those
		objects.

	    Layout

		This class allows developers to add their own modules to the
		Preferences application.

	    WMInspector

		This class allows developers to add their own file contents
		inspectors to the Workspace Manager application.

    Portable Distributed Objects (PDO)

	PDO makes it possible to deploy server-based objects on non-NEXTSTEP
	server machines.  PDO provides this framework by extending the same
	seamless object framework that NEXTSTEP developers already use for
	local and distributed objects.

    Enterprise Objects Framework (EOF)

	Enterprise Objects Framework seamlessly extends the power of
	NEXTSTEP's object-oriented paradigm to the development of
	client-server database applications.

    Other

	Before NeXTSTEP 3.0, MusicKit was distributed as part of NEXTSTEP.
	MusicKit is now maintained and made available by CCRMA (see the
	entry under `Public Domain Kits').  Also until the advent of
	NeXTSTEP 3.0, PhoneKit was part of NeXTSTEP.  PhoneKit classes
	provided easy to ISDN connections.

    Contact

	NeXT Computer, Inc.
	900 Chesapeake Drive
	Redwood City, CA 94063
	tel: +1 800 848 NEXT
	fax: +1 415 780 2801
	email: NeXTanswers@NeXT.COM

FSF

    Object

	Object is the root class which comes as part of the Objective-C
	runtime library provided with the GNU CC compiler.

    GNU Objective-C Class Library

	The GNU Objective C Class Library, version 0.1.19, is now available.

	What is the GNU Objective C Class Library?
	==========================================

	    It is a library of general-purpose, non-graphical Objective C
	    objects designed in the Smalltalk tradition.  It includes
	    collection objects for maintaining groups of objects and C
	    types, streams for I/O to various destinations, coders for
	    formating objects and C types to streams, ports for network
	    packet transmission, distributed objects (remote object
	    messaging), pseudo-random number generators, string handling,
	    and time handling facilities.

	Noteworthy changes since version `0.1.10'
	=========================================

	  * Now using `src', `config' and `doc' directories to un-clutter
	    the top-level directory.

	  * New GNUStep classes implemented: NSDictionary,
	    NSMutableDictionary; concrete classes NSGDictionary,
	    NSGMutableDictionary; enumeration classes
	    NSGDictionaryKeyEnumerator, NSGDictionaryObjectEnumerator.

	  * More methods in NSData are implemented, thanks to Albin Jones.

	  * More methods in NSString are implemented; we have new classes
	    NSCharacterSet and NSBitmapCharSet; all thanks to Adam Fedor.

	  * And several bug fixes.  See the ChangeLog for details.

	Where can you get it?  How can you compile it?
	==============================================

	    The library requires gcc 2.7.0 or higher.  The library does not
	    work with the NEXTSTEP 3.2 compiler because that version of
	    NeXT's cc cannot handle nested functions.  Until a later release
	    from NeXT, NEXTSTEP users will have to install gcc.  See the
	    `INSTALL' file for more instructions about compiling and
	    installing the library.

	    The library has been successfully compiled and tested with the
	    following configurations: mips-sgi-irix5.2

	    Some previous snapshots of the library worked with these
	    configurations, but they haven't been tested recently (We are
	    looking for a volunteer to write a test suite using dejagnu):
	    sparc-sun-sunos4.1.3, m68k-next-nextstep3.0, rs6000-ibm-aix3.2,
	    sparc-sun-solaris2.3, i386-unknown-linux, i386-sun-solaris2.4,
	    i386-unknown-sysv4.0, Ultrix 4.2, HP/UX 9.01.  It is known not
	    to work with: alpha-dec-osf

	    The `.tar' file is compressed with GNU gzip.  Gzip can be
	    obtained by anonymous ftp at any of the GNU archive sites.

	    For info about FTP via email, send email to
	    `ftpmail@decwrl.dec.com' with no subject line, and two-line body
	    with line one `help' and line two `quit'.

	    The most recent (not necessarily tested) snapshots of the
	    library will be placed in `ftp://alpha.gnu.ai.mit.edu/gnu'.

	Contact

            R. Andrew McCallum
            mccallum@gnu.ai.mit.edu

    Contact

	Free Software Foundation
	59 Temple Place -- Suite 330
	Boston, MA   02111
	+1-617-542-5942


Third Party Kits

    OS/2 Objective C class library

	This visual development environment provides Objective C classes
	for most of the window classes provided by OS/2 PM.  Instead of
	writing ANSI C applications you can use the features provided by
	Objective C to create OS/2 applications using the Graphical User
	Interface Presentation Manager.

	Also included is a small library to simplify access to DBase III
	database files in your programs.

	The library, current version 0.8, is available as
	ftp://ftp.leo.org/pub/comp/os/os2/gnu/emx+gcc/contrib/vd08.zip.
	All documentation needed is included in Postscript format.

	Contact

	    Thomas Baier
	    Center for Computational Intelligence
	    Technische Universitaet Wien
	    Resselgasse 3/CI
	    A-1040 Wien, Austria
	    Phone: +43-1-58801-4100
	    E-Mail: baier@ci.tuwien.ac.at

    Hot Technologies

	BARCODEKIT

	    BarCodeKit is a comprehensive collection of object palettes for
	    creating international standard bar codes.	BarCodeKit allows
	    both developers and organizations to quickly add bar coding to
	    custom NEXTSTEP applications.  By combining the power of object
	    orientation and PostScript into a comprehensive library of bar
	    code symbologies, BarCodeKit represents the state of the art in
	    bar code technology.  Developers can seamlessly add bar coding to
	    an existing application in a matter of minutes by using any of
	    the 35 pretested and reusable objects in the BarCodeKit library
	    of palettes.  Previously, adding bar coding to an application
	    meant weeks or months of development, incompatibility with
	    different bar code readers and the use of costly proprietary bar
	    code printers.

	    The BarCodeKit features a full range of bar code symbologies
	    including Code 3 of 9, Code 39 Extended, UPC-A, UPC-E, HRI, NDC,
	    EAN-8, EAN-13, JAN-8, JAN-13, ISBN, ISSN, SICI, SISAC, POSTNET,
	    ABC, FIM, BRM, Interleaved Two of Five, MSI, Codabar, Code 11,
	    Code 93, Code 128, Code 16K and Code 49.  It complies to
	    international, national, military and commercial bar coding
	    standards including EAN, JAN, CEN, ANSI, MIL, USS and HIBCC.
	    Furthermore, it provides developers with flexibility; bar codes
	    created using the kit can be scaled and rotated to fit a
	    specific area on a label or document and saved in EPS, EPSI (EPS
	    with interchange bitmap preview for non Display PostScript
	    computers), or TIFF formats.  BarCodeKit is an excellent
	    complement to NEXTSTEP's Application Kit and Database Kit It was
	    nominated for a Best of Breed Award by the editors of NeXTWORLD
	    Magazine.

	SERIALPORTKIT

	    SerialPortKit is a fundamental class library and palette that
	    makes communication with serial peripherals easy to add into
	    your custom NEXTSTEP applications without any of the drawbacks
	    of other solutions.	 You can use SerialPortKit to communicate
	    with a variety of serial peripherals such as modems, printers,
	    terminals, audio/video equipment, bar code readers, magnetic
	    stripe readers, controllers and data acquisition devices.  The
	    SerialPortKit contains a single SerialPort class which
	    interfaces to our SerialPortServer. Additional classes for
	    specific peripherals are available in our SerialPeripheralsKit
	    or through our consulting service.

	    You can easily incorporate the SerialPortKit into your custom
	    applications due to its professionally designed and truly
	    object-oriented programming interface. The included Interface
	    Builder palette, source code examples, on-line indexed reference
	    manuals and tutorial further removes the tedious task of
	    traditional serial port programming.  Requires SerialPortServer
	    or SerialPortServer Lite which are available also from Hot
	    Technologies.

	Contact

	    Hot Technologies
	    75 Cambridge Parkway, Suite E-504
	    Cambridge, MA 02142-1238 USA
	    tel: + 1 617 252 0088
	    fax: + 1 617 876 8901
	    email: info@hot.com (NeXTmail)

    Berkeley Productivity Group

	BPG BLOCKS

	    BPG BLOCKS is an open extensible manufacturing framework which
	    supports a variety of applications including factory definition,
	    real-time tracking, real-time scheduling, short-term planning,
	    shift scheduling, production planning and capacity analysis.
	    BPG BLOCKS creates a virtual reality which represents the real
	    factory including the people, machines, material, processes,
	    their dynamics and interactions.  BPG BLOCKS is based on an easy
	    to understand design where every software object represents
	    either a real-world entity, or an important concept in the
	    manufacturing domain.  BPG BLOCKS' object-oriented manufacturing
	    model mirrors the real world, captures numerous manufacturing
	    details accurately, supports commonly used abstractions, and
	    allows decisions to be made based on aggregate information.	 BPG
	    BLOCKS forms the basis for building custom applications which
	    meet the unique needs of your particular manufacturing
	    facility.

	Objective-C Views

	    Objective-C Views is a user interface class library for
	    Microsoft Windows.

	Contact

	    Christopher Lozinski
	    BPG
	    35032 Maidstone Court
	    Newark, CA 94560
	    tel: +1 510 795-6086
	    fax: +1 510 795-8077
	    email: info@bpg.com


    M. Onyschuk and Associates Inc.

	OBJECT:Math

	    OBJECT:Math is a comprehensive set of tools and 23 Objective-C
	    classes used to add extensible math and string handling to your
	    custom and commercial applications:

		Compiler---The OBJECT:Math Compiler converts math and string
		expressions (as might be typed into a spreadsheet cell,
		plotting package, etc.) into Objective-C objects.

		Unbundler---The OBJECT:Math Unbundler object allows
		end-users to extend their OBJECT:Math applications with
		custom-built or third-party OBJECT:Math function bundles.

		User Interface Objects---OBJECT:Math comes complete with a
		Lotus Improv style function picker, a variable editor, and
		objects used to display OBJECT:Math expression trees and
		other tree structures.

	    As product sources are available the product may even be of
	    interest to non-NeXT Objective-C programmers.

	Contact

	    Mark Onyschuk
	    M. Onyschuk and Associates Inc.
	    tel: +1 416 462 3954
	    email: ask-oa@plexus.guild.org


    Stream Technologies Inc.

	Store

	    Store is an Object Oriented User Level Virtual File System.
	    It is described extensively in `Store - Object Oriented Virtual
	    File System' by Timo Lehtinen, which is available by anonymous
	    FTP from ftp://ftp.sti.fi/pub/sti/doc/papers/store.ps.

	Contact

	    Stream Technologies Inc.
	    Valkj\"arventie 2
	    SF-02130 Espoo
	    Finland
	    tel: +358 0 4357 7348
	    fax: +358 0 4357 7340
	    email: info@sti.fi


    SuiteSoftware

	DOME 3.0

	    Developers who need to create truly distributed applications now
	    have a Distributed Object Management Environment.  Suite's DOME
	    is a complete distributed object-oriented architecture with
	    class libraries, application development tools and run-time
	    environment.

	    With DOME, systems can be developed for diverse platforms,
	    created using all of the features of different platforms, while
	    minimizing their complexities and disparities.

	    DOME addresses application development with a layered approach.
	    Figure 1 above [where?] shows DOME, the relationships of the
	    various components or services, and how they communicate with
	    one another.

	    Suite's DOME 3.0 lays the foundation for a truly distributed
	    computing environment. All basic functionality needed to create
	    a true Distributed Object Management Environment are present.
	    The business benefits of DOME are time and money.  DOME reduces
	    the time needed to build applications that work across
	    distributed and heterogeneous environments.	 All companies today
	    face the problem that old applications run on physically
	    disparate environments.  The DBMSs, network protocols and
	    operating systems are not homogenous.  New application
	    development is being forced to build applications that work with
	    the old applications.  Computers on the desktop are a reality.
	    DOME facilitates building new applications that take advantage
	    of the new high performance workstations while making it easy to
	    tie the new applications to the old applications, i.e.,
	    application interoperability.  All of this can be done much
	    easier and quicker, with fewer maintenance problems with DOME.

	    Features

		Messaging

		    - Store and forward (i.e., queueing)
		    - Multicast and Broadcast support
		    - Link Services
		    - Scripting support
		    - Uses Directory Services

		    - User definable Messages
		    - Message packing and unpacking
		    - Message translation
		    - Large Messages
		    - Multiple levels of message recovery
		    - Priority Message Queuing
		    - Selective Message reception
		    - Logical Addressing (Uses Directory Services)

		Directory Services

		    - Scripts
		    - Object location
		    - Parent/child and peer-to-peer
		    - Aliasing (i.e., logical names)
		    - Concerns (i.e., the ability to notify users of an
		      object of a change)
		    - Application, process, user, node object support
		    - Caching

		Time Services

		    - Time arithmetic
		    - Time stamps
		    - String formatting
		    - Time zone conversions

		DDM

		    - SQL92 (DML and DDL)
		    - Horizontal fragmentation (i.e., data stored in more
		      than one location by value)
		    - Vertical fragmentation (i.e., data stored in more than
		      one location by type of data)
		    - Replication (partial and full)
		    - Triggers and Procedures
		    - Flow of Control (If..Then..Else, While, Return,
		      Begin..End)
		    - SQL92/Sybase interoperability
		    - Support for legacy databases
		    - Distribution of data handled by DBA and DA, not the
		      application programmer

		DOMEShell

		    - Scripting, full lexical parsing, regular expressions,
		      flow control, buffer management.
		    - Ability to invoke all DOME services from within script

		EventServices

		    - Event Queueing
		    - Callbacks
		    - Event Priority Scheduling

		Management Services

		    - Process recovery
		    - Utilities

		Programming Services

		    - Trace facilities
		    - Playback capability for debugging and audit purposes
		    - Error Logging
		    - Error Recovery
		    - Exception Handling

		Object Services

		    - Object store
		    - Object location
		    - Object registration

	Contact

	    SuiteSoftware
	    Anaheim, USA
	    tel: +1 714 938 8850
	    fax: +1 714 978 1840
	    email: info@suite.com


    Computer Algebra Kit

	Objects for Multiprecision Arithmetic and Computer Algebra

	The Computer Algebra Kit is a collection of Objective C objects
	for arbitrary precision integer arithmetic, efficient polynomial
	arithmetic over arbitrary coefficient domains, and for computing
	with matrices of integers, polynomials, fractions etc.  Each
	carefully designed object comes with a clean, exquisite header
	file and a man page containing both a description of the object
	and a discussion of all public, class and instance methods.

	The Computer Algebra Kit comes with the source of an application,
	called "MySystem", consisting of trivial subclasses of the classes
	in the toolkit.  Once compiled however, this small system provides
	interactive access to many of the features of the Computer Algebra
	Kit.  The "MySystem" application can be used as a shell for adding
	functionality to the Computer Algebra Kit, by extending the
	subclasses, or as a starting point for building your own symbolic
	"front-end" system to numerical code.

	Version: 1.2.2
	Number of Objects: 15
	Key Objects:
	  - Integer object for fast, exact, multiprecision integer
	    arithmetic
	  - Polynomial object for advanced, polynomial arithmetic, over
	    arbitrary domains
	  - Matrix object for working with matrices of polynomials,
	    fractions etc.

	Binary Bulk of Library: between 1.0 and 1.5 MB dep. platform
	Source Bulk of Library: about 65,000 lines of generated Objective C

	Portability: Stepstone, GNU, NeXT Objective C compatible

	Platforms: Linux, SunOS, Solaris, AIX, IRIX, NeXT available now,
		others coming soon!

	For more information, or to download a copy of this library of
	objects, please refer to the Computer Algebra Kit's web:
	"http://www.can.nl/~stes".

	Contact

	    David Stes
	    http://www.can.nl/~stes/

    TipTop Software

	Objective-Framework (Objective-Tcl, Objective-Perl, ...)

	    The Objective-Framework from TipTop Software
	    (http://www.tiptop.com) system provides true language
	    independence to the Objective-C (e.g., OpenStep) object model.
	    Objective-Framework provides a seamless integration of the
	    Objective-C runtime system with other languages.
	    Objective-Framework not only breaks the barrier between
	    interpreted and compiled code, but it also breaks the barrier
	    between various programming languages!  Objective-Tcl and
	    Objective-Perl are two languages currently available.  More to
	    come...

	    Some of the benefits of Objective-Framework include:

	      - Rapid application prototyping and development environment.
		The Objective-Framework languages, Objective-Tcl and
		Objective-Perl, provide a dynamic interactive interpretive
		environment.  You get immediate feedback to all your
		programming actions in this environment, so you can
		prototype and develop much more rapidly.  You can define and
		redefine classes on-the-fly, at runtime, skipping the
		traditional code-compile-lik-debug development cycle.

	      - True language independence.  You can seamlessly
		mix-and-match languages.  Thus you can use Objective-Perl
		for heavy-duty text processing, use Objective-Tcl for highly
		interactive (e.g., exploratory) programming, etc.  Classes
		can have mixed implementation; certain methods can be
		implemented in Objective-C, other methods can be implemented
		in Objective-Tcl, yet some other methods can be implemented
		in Objective-Perl, etc.  It is transparent and irrelevant to
		the sender of a message which language implements the
		corresponding method---the method looks "native" to the
		caller.

	      - Extend existing applications.  The Objective-Framework
		runtime library can be linked with any NEXTSTEP/OpenStep
		application to easily provide a high-level control
		(scripting) languages.

	      - Interactive Enterprise Object Framework (EOF) development
		environment.  Objective-Tcl and Objective-Perl are very
		useful for EOF development, since this kind of development
		consists of writing high-level glue code which is hard to
		write in a low-level compiled language such as Objective-C,
		and easy to write in high-level languages such as Tcl or
		Perl.

	      - Testing environment.  Objective-Tcl and Objective-Perl are
		ideally suited for regression testing.

	    A more detailed description of the Objective-Framework
	    functionality is availble at
	    http://www.tiptop.com/Objective/WhitePaper.htmld/.  See also
	    http://www.tiptop.com for more info.

	    Fully functional evaluation version is available:

		ftp://ftp.tiptop.com/pub/Objective/ObjSys.pkg.tar

	Objective-Browser

	    Objective-Browser (OB) is a graphical runtime introspection and
	    debugging tool.  The browser allows you to view live objects
	    within a running application in many object-specific ways.  OB
	    allows you to easily investigate the structure and methods of
	    various objects and classes.  For example, methods, instance
	    variables, and other object information can be viewed and edited
	    during execution.

	    To a user, OB appears as a hierarchical browsing tool, similar
	    to the file system browser.  Each node in the browser represents
	    an object or some other piece of information (e.g., a method)
	    with an arbitrary number of subnodes.  For example, when looking
	    at an object, instance variables or methods appear as subnodes.

	    OB is extensible.  You can provide object-specific browser nodes
	    and custom inspectors for any object in the system.  OB can be
	    used from any application which is linked with the Objective-Tcl
	    runtime---the browser is dynamically loaded when needed.

	Contact Information:

	    TipTop Software
	    PO Box 30681
	    Bethesda, MD 20824-0681
	    USA
	    tel: +1-301-656-3837
	    fax: +1-301-656-8432
	    www: http://www.tiptop.com
	    email: info@tiptop.com

GPL Kits

    objcX

	An alpha version of an GNU Objective-C class library for X/Motif
	Windows is available via anonymous ftp from
	ftp://ftp.slac.stanford.edu/software/ObjC/objcX-0.87.tar.gz

	For lack of a good witty name, the library is called objcX.  The
	library requires gcc 2.7.0 or later and libobjects 0.1.10 or later.

	Because we built this library to support porting NeXTSTEP
	applications to X/Motif and because our GUI programming experience
	has been with NeXTSTEP, this class library has a strongly
	resemblance to NeXT's AppKit.  However, it is only a Objective-C
	wrapper to Motif widgets and does not support Display PostScript,
	rich text, pasteboard, drag and drop, services or many other things
	associated with the NeXTSTEP environment that are not available
	under X windows.

	From version 0.8, the nib translator is part of the objcX
	distribution, as well as some examples of using objcX.

	These announcements are also a call for help.  The library and the
	translator program could use much more work in two areas...

	 - first the library could be flushed out with more features to
	   support larger applications

	 - second, I would like to contribute the library to the GNU
	   project.  But it is based on Motif widgets which is not free
	   software.  Thus, work is needed to replace Motif widgets with
	   widgets based on free software.

	To stay informed, join the mailing list gnustep-l@netcom.com by
	sending a subscription email to gnustep-l-request@netcom.com.

	Contact

	    Paul F. Kunz	Paul_Kunz@slac.stanford.edu (NeXT mail ok)
	    Stanford Linear Accelerator Center, Stanford University
	    Voice: (415) 926-2884   (NeXT) Fax: (415) 926-3587


    Tcl/Objective-C Interface Library

	A library of Objective-C objects and support functions for
	communication between Objective-C and Tcl/Tk.  From Tcl you can send
	messages to Objective-C objects and get textual representations of
	what's returned.  Thus it provides a way to interactively type
	messages and see the results, all inside the rich structure of the
	Tcl scripting language---almost an Objective-C interpreter.  The
	library also provides an Objective-C object that will forward all of
	its messages to the Tcl interpreter in textual format.

	The library does NOT provide:
	  * Handling arguments of non-atomic C types.
	  * Tk widgets based NeXTSTEP AppKit objects.
	  * The ability to create new Objective-C classes
	    or methods from Tcl.

	The library is available by anonymous ftp at
	    ftp.cs.rochester.edu:pub/libcoll/libtclobjc-1.0.tar.gz

	The library requires gcc (2.5.8 or higher) or NeXT's cc and tcl-7.3.
	If you have tk-3.6, the library can be configured to use it.  If you
	have libreadline, the library can be configured to use it.  Gcc and
	libreadline are available at any of the GNU archive sites; tcl and
	tk are available at ftp.cs.berkeley.edu.

	Contact

	    R. Andrew McCallum		  ARPA: mccallum@cs.rochester.edu
	    Computer Science Department	  UUCP: uunet!cs.rochester.edu!mccallum
	    University of Rochester	  VOX: (716) 275-2527
	    Rochester, NY  14627-0226	  FEET: CSB  Rm. 625

    Tiggr's Objective-C Library

	TL is a basic Objective-C library, which happens to incorporate a
	Lisp interpreter, which provides a seamless integration between
	Objective-C and Lisp.  (It is neither common lisp nor emacs lisp; it
	is probably best described by the name tiggr's lisp.)  TL provides
	mark & sweep garbage collection to instances of TLObject or a
	subclass thereof.

	TL provides the following classes: The `root' object TLObject, a
	patch for existing root objects (like TLPatchObject), TLString (and
	TLMutableString), TLRange, TLDictionary plus enumerators
	(TLDictionaryEnumerator, TLDictionaryDictEnumerator,
	TLDictionaryKeyEnumerator, TLDictionaryValueEnumerator), basic
	streams (TLFDStream, TLFILEStream), TLSocketStream
	(TLInetSocketStream, TLUnixSocketStream) plus addresses
	(TLInetAddress, TLUnixAddress), TLStringStream
	(TLConstantStringStream, TLMutableStringStream), TLBase64Stream
	(TLBase64InputStream, TLBase64OutputStream), various other streams
	(TLBufferedStream, TLHTTPStream, TLSneakStream, TLStreamStream,
	TLSyslogStream, TLTelnetStream, TLWrapStream), lisp specific classes
	(TLCons, TLConsEnumerator, TLLDelegate, TLLInvocation, TLLLambda,
	TLLLex, TLLSubroutine, TLLTag, TLNil, TLSymbol, TLSymbolValue) and
	various others: TLDate, TLMimeItem, TLNumber, TLRunLoop, TLURL,
	TLVector and TLVectorEnumerator.  Furthermore, it includes a host of
	Lisp invokable (but C written and thus also C invokable) functions.

	If reference counting is not provided by another library, TL
	provides reference counting and an NSAutoreleasePool.

	TL has been tested on HP9000/735 HP-UX 9.05 with the GNU runtime,
	and on a NeXTstation Mono Turbo NS3.3 with the NeXT runtime.

	TL is distributed under the GNU General Public License.  TL comes
	WITHOUT ANY WARRANTY.  See the file LICENSE in the TL distribution
	for details.

	TL is available through anonymous FTP at
	ftp://ftp.ics.ele.tue.nl/pub/tiggr/tl.tar.gz.

	Contact

	    Pieter J. `Tiggr' Schoenmakers
	    email: tiggr@ics.ele.tue.nl
	    tel: +31 40 2473387 (work, voice)

Public Domain Kits

    IconKit

	IconKit is an Objective-C class library for building drag-and-drop
	applications.  It recreates the shelves, browsers, folders, and
	suitcases that are present throughout the basic NEXTSTEP
	applications:

	    - The file browser and shelf in Workspace.
	    - The bookshelves in Librarian.
	    - The project browser in ProjectBuilder.
	    - The suitcases in InterfaceBuilder.
	    - The feature browser used to configure a DBTableView.

	IconKit contains all the objects one needs to build new applications
	of this kind.  It is fully integrated with InterfaceBuilder,
	providing a palette and inspectors for all the IconKit classes.  It
	comes complete with source code, documentation, and an example
	application that mimics the NEXTSTEP Workspace file viewer.

	IconKit is freely distributable and free for noncommercial use.  It
	costs money for a commercial license, but you are allowed to use
	IconKit get your application working before deciding whether to
	purchase it.  The General Objectware License that covers this policy
	is broadly applicable, and other developers are encouraged to adopt
	it for their own software.

	IconKit should work on any system running NEXTSTEP 3.0 or later.


	Distribution
	------------

	IconKit may be freely distributed, in whole or in part, provided
	only that the included ReadMe file and the General Objectware
	License are neither removed nor altered in any way.  The complete
	kit is available from either of the two archive locations,

	ftp.cs.orst.edu:
		/pub/next/sources/objects/IconKit-1.2.*
		/pub/next/binaries/util/FileViewer-1.2.*

	ftp.informatik.uni-muenchen.de
		/pub/comp/platforms/next/Developer/objc/iconkit/IconKit-1.2.*

	FileViewer is a compiled MAB version of an example application that
	recreates the NEXTSTEP file browser.  Complete source is included in
	IconKit-1.2.

	In the event that you cannot locate IconKit at either of these two
	locations, you should contact the author to receive the complete
	distribution.  All questions and correspondence are welcome!

	Contact

	    H. Scott Roy
	    2573 Stowe Ct.
	    Northbrook, IL  60062-8103
	    email: hsr@cs.stanford.edu

    Various authors

	MiscKit

	    [Abridged press release].

	    ANNOUNCING THE RELEASE OF THE MISCKIT VERSION 1.8.1

	    Update to Kit of Free Objective-C Objects Is Now Available

	    PROVO, UT, Nov. 1, 1996 -- A new release of the MiscKit has
	    been made publically available.  It contains many new objects
	    and fixes all problems reported since the previous release.
	    The MiscKit may be obtained via ftp to any of the following
	    site:

	    ftp://next-ftp.peak.org/pub/next/sources/classes/MiscKit1.8.1.s.gnutar.gz
	    ftp://ftp.thoughtport.com/pub/next/misckit/MiscKit1.8.1.s.gnutar.gz
	    ftp://ftp.informatik.uni-muenchen.de/pub/comp/platforms/next/Developer/objc/misckit/MiscKit1.8.1.s.gnutar.gz

	    The thoughtport.com site always has the most recent official
	    MiscKit distribution available in /pub/next/misckit with all
	    previous versions archived in /pub/next/misckit/old.

	    The MiscKit is an easy to install kit consisting of
	    Objective-C objects, Interface Builder palettes, bundles, and
	    other useful programming resources.  All the resources in the
	    MiscKit have been donated by various Internet personalities
	    for the benefit of other NEXTSTEP programmers.

	    Objects include data structures (string, tree, stack, queue,
	    priority queue, linked list), interface widgets (find panel,
	    textfield, button and slider subclasses, clock and calendar
	    views, icon wells, progress pie/bar), macros, other useful
	    objects (lock file, log file, time, stopwatch, serial port,
	    colors, subprocess, remote subprocess, file), frameworks for
	    building complex interfaces (MiscMergeKit, MiscInspectorKit,
	    InfoMenuKit) and even some useful example applications...plus
	    much more!

	    To make the MiscKit more attractive to developers, use of the
	    MiscKit resources is absolutely free of charge, no matter how
	    the resources are used.  Redistribution of the MiscKit is also
	    encouraged.  Many developers are reluctant to use objects
	    which are under the GNU "Copyleft".  As a result, the MiscKit
	    has its own license which allows developers to reuse the code
	    freely, even in commercial projects.  Everything possible has
	    been done to encourage the use of the MiscKit to speed
	    development efforts.

	    Any developer who has generally useful objects, palettes, or
	    other programming resources and would like to donate them to
	    the MiscKit effort is welcome to do so.  Contact Don Yacktman
	    at don@misckit.com for information on how to prepare a MiscKit
	    submission.  By making a submission to the MiscKit, a
	    developer can avoid the hassles of packaging up a formal
	    distribution of their resources and in turn help add to a
	    growing centralized pool of useful resources.

	    The misckit mailing lists are temporarily out of order and we
	    hope to have them up and working at a new site soon.  Until
	    then, inquiries and subscription requests should be made to
	    don@misckit.com.  If you request a subscription, be sure to
	    specify whether you wish to be part of the development
	    discussion or only receive MiscKit-based press releases.  When
	    the mailing lists are once again up and running, a press
	    release will be sent out to and let everyone know about the
	    changes in addresses and any other important details.

	    Please note that the creation of the "misckit.com" domain does
	    NOT mean that the MiscKit is "going commercial" in any way--it
	    will always be free and open as it has been in the past.
	    Nothing has changed and NO special significance should be read
	    into the use of ".com" instead of ".org".

	    The MiscKit has evolved from the DAYMiscKit and several
	    objects released over the past few years by Don Yacktman and
	    other USENET personalities.

	Contact

	    Don Yacktman
	    (801)221-0344
	    don@misckit.com


    CCRMA

	MusicKit

	    The Music Kit provides tools for designing music
	    applications. These tools address three topics: music
	    representation, performance, and synthesis (digital sound
	    generation and processing).	 The Objective-C classes defined in
	    the Music Kit fall neatly into these three areas.

	    The design goal of the Music Kit is to combine the interactive
	    gestural control of MIDI with the precise timbral control of
	    MUSIC 5-type systems in an extensible, object-oriented
	    environment. To this end, the Music Kit is capable of fully
	    representing MIDI.	The Music Kit accepts MIDI in and can send
	    MIDI out through the two serial ports at the back of the
	    computer. Nonetheless, the Music Kit isn't limited by the MIDI
	    specification; for example, its resolution of frequency and
	    amplitude is much finer than MIDI's highly quantized values.

	    The Music Kit generates sounds by sending synthesis instructions
	    to the DSP.	 The generality of the synthesis software far
	    surpasses that of commercial synthesizers.	While most
	    synthesizers employ only one type of synthesis-the Yamaha DX-7
	    uses only frequency modulation, for example-the Music Kit can
	    implement virtually any sound synthesis strategy.  And since the
	    synthesis engine (the DSP) and the control stream are brought
	    together in a single high-performance computer, the Music Kit
	    makes possible an unprecedented level of expressive control.
	    (from Documentation/MusicKit+DSP/General/SoundMusicDSP.rtfd)

	    MusicKit used to be supplied by NeXT as part of NeXTSTEP (pre
	    3.0).  It is now maintained by CCRMA and available in two
	    packages:

		ftp://ccrma-ftp.stanford.edu/pub/NeXT/MusicKit_4.1.1.pkg.tar

		    NI-fat Class library, header files, documentation,
		    programming examples, and a suite of applications
		    (size = 13MB).

	      ftp://ccrma-ftp.stanford.edu/pub/NeXT/MusicKitSource_4.1.1.pkg.tar

		    Source of the MusicKit class library (size = 5MB).

	Contact

	    email: musickit@ccrma.stanford.edu


    ObjectPak

	`ObjectPak' is not just `another' collection class library.
	ObjectPak is a rewrite from scratch of the objects described in
	Brad Cox' book. ObjectPak is largely compatible in interface with
	the collection classes of Stepstone's ICpak101 (but not with the
	ICpak101 foundation classes), and hence also with the Smalltalk
	Collection Classes from Adele Goldberg's book.  The library comes
	with source code, header files, RTF and HTML documentation.

	Runtime dependencies are left out of ObjectPak.  You can therefore
	work with the same objects on any current or future implementation
	of Objective C, yet take advantage of each particular environment:
	ObjectPak has been tested on NextStep, Stepstone and GNU Objective
	C, and has been ported to several Unix platforms (Linux, Solaris,
	AIX).

	Classes in ObjectPak
	--------------------
	String     string objects
	Collection collections of objects, ordered
	Set        sets of objects, no duplicate entries
	Dictionary dictionaries, key-value tables
	Tree       instances keep their contents sorted in a tree
	Sequence   sequencing over groups of objects

	ObjectPak is an ideal starting-point for writing all sorts of text
	filters or processors in Objective C : as a demonstration of what
	can be done, the library comes with a small program to print a
	collection, a set without duplicates, a dictionary or a sorted
	list of the words in a text file.

	ObjectPak is public domain software; get a copy from the Computer
	Algebra Objects web-site, located at "http://www.can.nl/~stes".

	Contact

	    David Stes
	    http://www.can.nl/~stes/


ADMINISTRATIVIA

    The information in this file comes AS IS, WITHOUT ANY WARRANTY.  You may
    use the information contained in this file or distribute this file, as
    long as you do not modify it, make money out of it or take the credits.

    All trademarks appearing in this file are owned by their respective
    owner.  To increase the information content in this file, any indication
    to that effect is not present in the FAQ other than in this paragraph.

A Japanese language version of this FAQ is maintained by Norihiro Itoh
<nito@argotechnos.co.jp>.  It is posted to fj.archives.answers
regularly.  A hypertext version is maintained by Toru Sato
<www-admin@cnds.canon.co.jp> and available at:
http://www.cnds.canon.co.jp/Japanese_EUC/Contribution/FAQ_Objective-C/objc_faq_J.html

A World Wide Web hypertext version of this FAQ is maintained by Brian Harvey
<theharv@csld.ucr.edu>.  It is http://csld.ucr.edu/NeXTSTEP/objc_faq.html.
Another WWW version of this FAQ is maintained by Steve Dekorte
<dekorte@suite.com> at http://www.batech.com/~dekorte/Objective-C/objc.html

The first version of this FAQ was written by Bill Shirly, helped by the
feedback and information given to him by a lot of people.  The current
version is maintained by Tiggr, supported by feedback from Glen Diener,
Christopher Lozinski, Sean Luke and a lot of other people.  Mail your bug
reports, comments, suggestions and additions to tiggr@ics.ele.tue.nl.
------------------------------------------------
[ By Archive-name | By Author | By Category | By Newsgroup ]
[ Home | Latest Updates | Archive Stats | Search | Usenet References | Help ]

------------------------------------------------

Send corrections/additions to the FAQ Maintainer:
tiggr@ics.ele.tue.nl

Last Update August 13 1997 @ 02:04 AM

faq-admin@faqs.org