June 91 - BAMADA Notes
BAMADA Notes
James Plamondon
It was Debugger Night in Cupertino at the May BAMADA meeting. The meeting started
with Mike Lockwood of Savitar, who demonstrated SourceBug, Apple's new
source-level debugger.
SOURCEBUG
SourceBug has special features for debugging MacApp programs, but can be used with
non-MacApp programs as well. It requires MPW 3.2 and System 7, or 6.0x with the
SADE version of MultiFinder. It looks like a cross between MacBrowse and THINK
Pascal's debugger. Its windows contain the source at the bottom, with a class list in the
upper left and a method list (for the selected class) in the upper right. There is no
fields (aka members) list. Alternatively, a stack crawl can replace the class and
method list across the top of the window.
To set a breakpoint, drop a stop sign on the statement where you want to stop
execution. A pointing finger indicates the current PC, with similar but dimmed fingers
indicating each step in the current call chain.
SourceBug supports both source and assembly-level debugging, side by side in
different windows, each updated as you step through your code. You can step by source
statement or assembly statement, depending on whether a source or assembly window
is frontmost.
All in all, SourceBug looks great, with its simplicity, elegance, and ease of use. It's
still missing some features, but that's not surprising in a pre-1.0 version. Give it a
year or two to mature, and it will be a serious contender.
THE DEBUGGER
Steve Jasik of Jasik Designs presented The Debugger, which is both a high-level
debugger, like SourceBug, and a low-level debugger, like MacsBug. The Debugger is
not limited to debugging MacApp programs; it can debug anything-DAs, INITs,
non-MacApp applications, and XCMDs or other code resources. It uses a hypertext
metaphor, allowing the user to select a function name to display its source, a variable
name to display its value, or a type name to display its structure.
The Debugger contains a complete evaluation language, allowing the user to set
breakpoints on arbitrarily complex conditions. Its assembly-language display
juxtaposes the assembly and the source that produced it. One can step by source
statement or assembly statement, depending on whether the window is displaying a
source or assembly listing.
INCREMENTAL BUILD SYSTEM
Having impressed the audience with The Debugger, Jasik went on to wow 'em with the
Incremental Build System (IBS). IBS allows you to edit, recompile, and relink
portions of your program's source while it is running. To use it, you must break into
The Debugger, and take a "side door" into MPW. Once in MPW you can edit the
implementation of a number of routines; you can't edit interfaces, however. Then,
execute a single menu command and bingo-within 30 seconds you're back in The
Debugger, ready to re-enter the application, with the changes linked into the running
code. The improvement is dramatic, considering that the alternative is often a five-
minute wait for the MPW linker to build a sym file.
Everyone was impressed with The Debugger's power and flexibility. The Incremental
Build System was a hit. Now, if only Jasik could get his user interface under control,
and produce some usable documentation.
OBJECT MASTER
Before yielding the floor, Jasik also demonstrated Acius' new syntax-directed source
code editor, Object Master, which is still in development. Object Master communicates
with MPW, ToolServer, and IBS via AppleEvent hooks. Object Master's source code
editor is full-featured and syntax-aware; you can select which of a half-dozen
language editors to use on any given file (such as Object Pascal, C, C++, or Rez). The
code is displayed in color, with different colors highlighting comments, keywords, etc.
The system works very well with IBS-the editor can automatically tell IBS what
routines have been changed, so that only they are recompiled and linked. In MPW, you
have to remember to keep track of this yourself, manually.
ObjectMaster is an excellent example of the way a tool should work under System
7.0-it does one thing, and does it well, using AppleEvent hooks to other tools that do
the tasks it leaves undone. It also works under System 6.0.x. Of course, it was written
in MacApp. It should be released later this year.
ICE PICK
Our final speaker, Chris Arbogast of Exis, demonstrated Ice Pick-a great view editor.
It can do a lot of things ViewEdit can't do: multiple selection, derezzing, displaying
views in a hierarchical outline, and "running" a window-in which buttons flash, radio
button clusters work right, popups pop up, and so forth. Ice Pick, like Object Master,
is still under development, but Arbogast was handing out beta versions and
non-disclosure agreements right and left after the meeting adjourned.
JUNE BAMADA AGENDA
The June meeting of BAMADA will be held Wednesday, June 26, from 7 to 9 p.m. in the
Mountain View Room at Apple's City Center Four, 20450 Stevens Creek Boulevard (on
the southwest corner of Stevens Creek and De Anza Boulevards).
The meeting will feature demonstrations of Object Master and AppMaker. Both
applications will be presented by their authors: Loic Vandereyken of Acius will
demonstrate Object Master, and Spec Bowers of Bowers Development will demonstrate
the latest version of AppMaker. AppMaker is an interface building tool and code
generator that has the ability to generate code not just for MacApp, but also for XVT,
Windows, and other platforms. Everything you've ever wanted ViewEdit to do,
AppMaker does, plus a whole lot more.
A representative of the MacApp Team will be on hand to discuss MacApp 3.0a2, which
should hit the streets about that time on Apple's ETO#4 CD. Don't miss this
opportunity to hear about, and help define, the future directions of MacApp.
TENTATIVE JULY BAMADA AGENDA
July's BAMADA meeting topic will be "Object Application Frameworks (OAFs) Other
Than MacApp." It will feature demonstrations and discussion of up to four OAFs:
Borland's Object Windows Library (OWL), CNS' C++/Views, Microsoft's AFX, and
Zinc's Zinc Interface Library (ZIL). So far, I have tentative agreement from three of
the invited participants, and a firm commitment from the fourth. We'll use the
meeting to compare and contrast these OAFs with MacApp.
This special meeting will have special hours-6 pm to 10 pm-to make sure we have
enough time to get good demos of the OAFs, plus have time for a lively panel discussion
at the end. It may also be held in a special location, not yet determined, in order to
hold the larger than usual crowd I expect this meeting to attract. All of the OAFs being
demonstrated target Microsoft Windows 3.0; two also target the Mac; one also targets
DOS in both text and graphics modes.
If you're thinking of porting your MacApp application to any of these other platforms,
and you don't want to give up the application framework approach, or if you just want
to see how other OAFs compare to MacApp-this is your best chance to get down into the
nitty-gritty details of all your alternatives at once.