| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | YACL - Portable Class Lib |
README.TXT for YACL
Version 1.4
November 17th, 1995
What's new in this version:
* WIN32 support has been added so YACL can be used under Windows NT
and Windows 95
* Microsoft Visual C++ 2.1 (under Windows NT/ Windows 95) and IBM
Visual Age C++ (under OS/2) are now supported
* Better support for bitmaps
* Support for bitmap buttons (both push buttons and toggle buttons)
* Several new GUI classes: NumberEditor, DateEditor, PasswordEditor,
BitmapButton, ShadowRectangle, ShadowedLine
* New demo programs for bitmap buttons, editors, border displays
* Combo boxes supported under Motif (This uses the ComboBox widget
written by Harald Albrecht, and its use is subject to the GNU GPL)
* Several bugs fixed under all platforms
See the file changlog.txt for details about the new stuff.
About 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 yields two major benefits:
- The programming task becomes easier, since the application developer
has high-level objects available.
- Portability is a natural spinoff: 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. YACL's base and I/O classes 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
89 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 about 89 million, even under
MS Windows' segmented architecture
- utility classes: string splitter, tree walker
- memory leak checker class, and support 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
- Leverages platform's native API. So GUI applications have the
native look and feel.
- GUI objects well integrated with base library, to enhance the
overall power and reusability of classes
- GUI objects: menus, dialogs, buttons, listboxes, button
groups, and the like
- Graphic resource objects: cursors, fonts, pens, colors and
brushes
- Graphic objects: bitmaps, ellipses, rectangles, arcs and pie
wedges, 3-d graphics with raised and recessed lines and
rectangles
- Supports printing under OS/2, MS Windows and Windows NT
- Provides for easy composition of basic objects, as well as
high reusability
- Includes many demo programs
CURRENT STATUS (As of November 17th, 1995):
The YACL base classes provide equivalent functionality under DOS, Microsoft
Windows, Microsoft Windows NT, OS/2 versions 2.1 and Warp and several
flavors of Unix. The GUI classes provide equivalent functionality under
four platforms: MS Windows, Windows NT, OS/2 PM and Unix with X/Motif. Here
is a summary of the platforms and compilers it has been tested under. (The
YACL package includes makefiles for all the platforms and compilers listed
below.)
Platform Compiler
--------- --------
MS Windows Borland C++ 3.1 and later
Watcom C++ 10.0a
MS Windows NT Borland C++ 4.0
Watcom C++ 10.0a
Microsoft Visual C++ 2.1
OS/2 2.1 Borland C++ 1.5
OS/2 Warp EMX (GNU) C++
Borland C++ 1.5
Watcom C++ 10.0a
IBM Visual Age C++ 3.0
Linux GNU C++ 2.6.3
SunOS 4.1 GNU C++ 2.6.3
Solaris 2.3 GNU C++ 2.6.3
DEC Ultrix GNU C++ 2.6.3
NCR SysV GNU C++ 2.6.3
The implementations do not use any compiler-specific features, and so it
should be easy to build the library using other compilers. The base classes
will not compile under versions of GNU C++ earlier than 2.6.1 due to bugs in
the compiler. Also, YACL doesn't yet compile under GNU C++ 2.7, primarily
because GCC 2.7 crashes with an internal compiler error when compiling YACL.
YACL cannot be compiled with any compiler that does not support templates.
Under Microsoft Windows, YACL's classes have been tested for memory and
resource leaks using Bounds Checker for Windows.
AVAILABILITY:
YACL is available via:
World-wide web: http://www.cs.sc.edu/~sridhar/yacl.html
Anonymous ftp: From ftp.cs.sc.edu (129.252.131.11), in the
directory /pub/yacl. Log in as anonymous, with
your e-mail address as password.
There is also a YACL mailing list. To be included in it, please send e-mail
to yacl-list{at}cs.sc.edu with the message "subscribe yacl-list
address" where
address is your e-mail address.
Please send your comments, suggestions and bug reports to the author at the
address below.
DOCUMENTATION:
A tutorial and reference manual for YACL, titled "Building portable C++
applications with YACL," is now available from Addison-Wesley Publishing
Company (ISBN 0-201-83276-3). This book describes just about everything
needed to use YACL effectively. All comments, criticisms and reports of
bugs or other errors in both the software and the book will be gratefully
accepted by the author at the address below.
Note that the book describes YACL version 1.3, which was released in July
1995. Functionality added subsequently is not described in the book; see the
file changlog.txt for details on the added functionality.
FUTURE WORK:
Here is a brief list of items that still need work (there are probably lots
more):
- Shared library (DLL) support on platforms that provide for shared
libraries
- Support for other compilers, e.g., SGI's Delta C++
RELATED PROJECTS:
A GUI layout designer (with functionality similar to Borland's Resource
Workshop) and a graphic editor are 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 under Windows and Windows NT; this is, however, a
non-portable feature.
AUTHOR: M. A. Sridhar
Snail mail: E-mail: sridhar{at}cs.sc.edu
Department of Computer Science WWW: http://www.cs.sc.edu/~sridhar
University of South Carolina Phone: (803) 777-2427
Columbia, SC 29208 Fax: (803) 777-3767
USA
CONTRIBUTORS:
N. Bhowmik, currently with Object Design Inc., coded the initial
version of the GUI classes of YACL.
Ram Sampath implemented several aspects of Motif functionality.
Holger Pfaff (holger.pfaff{at}class.de) provided several bug fixes and
enhancements under MS Windows and Motif.
Tony T. Ton (t.t.ton{at}massey.ac.nz) helped out with bug fixes and
enhancements under OS/2.
Tom Satter (tsatter{at}purecode.com) contributed the fixes and makefiles
for IBM Visual Age C++ 3.0 under OS/2.
Rajesh Chandran (chandran{at}cs.sc.edu) showed how to make YACL
applications compatible with editres under X windows.
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 of the
source code. (If you do not distribute this source code or modifications
thereof, you need not include this copyright or disclaimer.)
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.
## 2:240/5033.11 & clemens.anhuth{at}xpand.de ##
--- CrossPoint v3.0 R
* Origin: (2:240/5033.11)SEEN-BY: 270/101 620/243 711/401 409 410 413 430 808 809 934 955 712/407 515 SEEN-BY: 712/517 628 713/888 800/1 7877/2809 @PATH: 240/5033 5002 5500 24/24 396/1 270/101 712/515 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.