[95] in linux-announce channel archive
YACL Version 1.0 available
daemon@ATHENA.MIT.EDU (Lars Wirzenius)
Thu Jan 19 14:24:07 1995
Date: Thu, 19 Jan 1995 18:53:31 +0200
From: Lars Wirzenius <wirzeniu@cc.helsinki.fi>
To: linux-activists@niksula.hut.fi, linux-announce@vger.rutgers.edu
X-Mn-Key: announce
From: sridhar@usceast.cs.scarolina.edu (M. A. Sridhar)
Newsgroups: comp.lang.c++,comp.os.ms-windows.programmer.tools,comp.os.os2.programmer.oop,comp.os.linux.announce,comp.windows.misc,comp.windows.x.motif
Subject: YACL Version 1.0 available
Organization: University of South Carolina - Columbia - Computer Science
Keywords: Multi-platform class library, GUI
Approved: linux-announce@tc.cornell.edu (Lars Wirzenius)
Followup-to: comp.os.linux.development.apps,comp.lang.c++,comp.os.ms-windows.programmer.tools,comp.os.os2.programmer.oop,comp.windows.misc,comp.windows.x.motif
Version 1.0 of YACL is now available for anonymous ftp. Look for the
file yacl-010.zip (or yacl-010.tar.Z if you don't have unzip) in the
directory pub/sridhar on the site ftp.cs.scarolina.edu.
YACL now supports identical functionality between Microsoft Windows
and X/Motif. There have been many bug fixes and enhancements; most are
documented in the file changlog.
Attached is a readme file describing YACL. I will be very grateful for
all bug reports, criticisms and suggestions for improvement.
Sridhar
-----------------------------------------------------------------------
README.TXT for YACL
This is YACL (Yet Another Class Library). It is a general-purpose
programming library designed with the idea of identifying and
implementing useful object abstractions that frequently occur in
application development, so that development effort can be cut down
significantly. The abstractions are designed to be
application-domain-specific rather than platform-specific. This makes
it possible for YACL to be ported to multiple platforms with little
effort, and any application that is coded to use YACL's classes will be
runnable on any of the supported platforms with merely a recompilation.
YACL is part of an ongoing project to create a completely portable
program development environment.
YACL consists of three kinds of classes: base classes (consisting of
primitive data types and container classes), i/o classes (for data
storage and retrieval) and GUI classes using a variation of the
Model-View-Controller paradigm. The base and i/o classes of YACL have
been designed to support the most efficient algorithms possible, and to
impose as few storage constraints as possible. All classes (base, i/o
and GUI) have been tested for memory and resource leaks.
CONCEPTUAL FEATURES:
- Template-based containers for code sharing
- Easy inter-object communication via notification (used
extensively in the GUI framework -- see below)
- Support for storage and retrieval of objects in binary form
- Support for very large sequences, sets and maps (with up to about
64 million entries), even under MS-Windows, thus circumventing
the 64K segment size limitation
FUNCTIONAL FEATURES:
Base library:
- primitive data types: string, date, time-of-day, byte array,
byte string
- container classes (template-based): sequence (in lieu of
lists), set, bitset, map, tree; as noted above, the sequence,
set and map can have size up to 2^26 (about 64 million), even
under MS-Windows.
- utility classes: string splitter, tree walker
- memory leak checker class and support functionality for
checking for leaks and memory corruption errors
File i/o library:
- SlottedFile for managing files with fixed-length records (well
suited for tables in relational databases); manages upto 800
million records with at most five i/o operations per record
- ByteStringStore for managing files with variable-length
records (whose lengths can even grow and shrink dynamically)
-- suited, for example, for maintaining secondary indices or
other "binary large object" data
B-trees:
- In-memory and disk-based B-trees supported, both sharing the
same B-tree algorithm code
- Can be used in conjunction with the above file i/o library for
B-trees with variable-length keys
GUI library:
- Portable abstractions for building graphic user interfaces,
based on the model-view-controller paradigm
- GUI objects well integrated with base library, to enhance the
overall power and reusability of classes
- Supports menus, dialogs, buttons, listboxes, button groups,
cursors, fonts, pens, colors and elementary drawing
- Provides for easy composition of basic objects, as well as
high reusability
CURRENT STATUS:
Here is a summary of current status in tabular form:
MS/Windows Unix (Linux and Ultrix) OS/2 2.1
Borland C++ 3.1 GNU C++ 2.6.0 Borland C++ 1.0
Base classes X X X
I/O classes X X X
GUI classes X X
All of YACL's classes have been tested under Microsoft Windows using
Borland C++ 3.1, and under GNU C++ 2.6.0 on a Linux machine and on a Sun
Sparc running SunOS 4.1.
The base classes have also been tested with Borland C++ for OS/2. (The
base classes will not compile under earlier versions of GNU C++ due to
bugs in the compiler.)
The base classes do not (yet) compile under Watcom C++, due to a bug in
the 10.0a compiler; this will likely be fixed in the next release of
that compiler.
YACL cannot be compiled with any compiler that does not support
templates.
DOCUMENTATION:
A tutorial and reference manual for YACL will appear as a book published
by Addison-Wesley in the summer of 1995. If you are interested in
looking at sample chapters from a preliminary draft of the book, please
obtain sample chapters by anonymous ftp from the host aw.com, in the
directory pub/aw.computer.science/YACL. All comments, criticisms and
reports of bugs or other errors will be gratefully accepted by the
author at the address below.
FUTURE WORK:
The graphic objects are being ported to the X/Motif environment; this
port is almost complete, and a version will be available within a
month. At a later date, YACL will be available under OS/2 PM and (maybe
possibly) the Apple Mac.
RELATED PROJECTS:
A GUI layout designer (with functionality similar to Borland's Resource
Workshop) is currently under development.
An awk script is available for translating MS-Windows resource files
into a form usable by YACL. Direct support for dialogs loaded from
Windows resource files is also available; this is, however, a
non-portable feature.
AUTHOR:
M. A. Sridhar
Department of Computer Science
University of South Carolina
Columbia, SC 29208
USA
e-mail: sridhar@usceast.cs.scarolina.edu
Phone: (803) 777-2427
Fax: (803) 777-3767
N. Bhowmik, currently with Object Design Inc., coded
the initial version of the GUI classes of YACL.
COPYRIGHT:
This software is Copyright (C) M. A. Sridhar, 1994 and 1995. You are
free to copy, modify and distribute this software as you see fit, and to
use it for any purpose, provided this copyright notice and the following
disclaimer are included without modification in all copies and
modifications.
DISCLAIMER:
The author makes no warranties, either expressed or implied, with
respect to this software, its quality, performance, merchantability, or
fitness for any particular purpose. This software is distributed AS IS.
The user of this software assumes all risks as to its quality and
performance. In no event shall the author be liable for any direct,
indirect or consequential damages, even if the author has been advised
as to the possibility of such damages.
AVAILABILITY:
YACL is available for anonymous ftp from ftp.cs.scarolina.edu
(129.252.131.11), as the file /pub/sridhar/yacl-010.zip. Please send
your comments, suggestions and bug reports to the author at the above
address.
--
M. A. Sridhar |
Department of Computer Science | sridhar@usceast.cs.scarolina.edu (Internet)
University of South Carolina | (803) 777-2427 (Ma Bell)
Columbia, SC 29208 | (803) 777-3767 (Fax)
--
Send submissions for comp.os.linux.announce to: linux-announce@news.ornl.gov
PLEASE remember Keywords: and a short description of the software.