From: steck@rice.edu (Paul Steckler)
Newsgroups: comp.lang.scheme
Date: 1999/07/15
Subject: DrScheme v100alpha4 released

DrScheme version 100alpha4 is now available from the Rice University
Department of Computer Science Web site,
http://www.cs.rice.edu/CS/PLT/packages/100alpha4/.

DrScheme is a graphical development environment for Scheme. It runs
under Windows 95/NT, MacOS, and X Windows. The underlying Scheme
implementation is MzScheme.

DrScheme version 100alpha4 is a test release for the successor of
DrScheme version 53.

In 100alpha4, DrScheme’s languages and libraries are simpler,
online help is much improved, the memory footprint is smaller,
and the MacOS implementation is stable. DrScheme 100 also provides
a new evaluation stepper that works with the Beginner language.

Here are the release notes for DrScheme 100alpha4:

About 100alpha4
===============
Released July 15, 1999.

DrScheme
--------

DrScheme’s languages have changed. The new languages are:

  - Beginner
  - Intermediate
  - Advanced
  - MzScheme
  - MrEd

The first three languages are essentially the same as in version 53, except
that graphics primitives have been removed. (Instead, domain-specific
graphics commands can be loaded as libraries.) The turtles remain in the
advanced language.

The latter two languages match exactly the languages provided by the
MzScheme and MrEd executables.

Besides the language changes, improved online help, and the new
stepper, little has changed in DrScheme’s interface. Its memory
footprint is smaller, and the MacOS implementation is finally stable.

Other than bug-fixes, the only changes to DrScheme since 100alpha3 are:
  - improved turtles, and
  - added `true’ and `false’ as synonyms for #t and #f.

Stepper
-------

A simple algebraic stepper, dubbed The Foot, is now available.
The Foot permits users to construct a source-level evaluation trace for
programs written in the Beginner language. It will be expanded in
future releases.

Help Desk
----------

Help Desk is the new PLT program for browsing and searching the
documentation. For example, typing "append" into Help Desk’s search
field produces

   In r5rs:
    (append list ...) in "R5RS - Pairs and lists"
    (string-append string ...) in "R5RS - Strings"
   In mzscheme:
    (append! list ...1) in "Lists"
    ’append in "Opening File Ports"
   In mred:
    (send a-list-box append item data) in "append"
    ...

where each search result is a hyperlink into the documentation.

Help Desk runs by itself or within DrScheme (via the `Help’ menu).

MysterX
-------

MysterX turns MzScheme (or MrEd) into an ActiveX container. MysterX
enables Scheme programs to communicate with ActiveX objects
interactively---without IDL files or an external compiler---by using
OLE Automation (i.e., the IDispatch interface). MysterX also offers a
Scheme interface to Dynamic HTML.

MysterX runs only under Windows and requires Internet Explorer 4. For
documentation, search for "mysterx" in Help Desk.

Errortrace
----------

Errortrace is a Poor Man’s debugger that displays a "stack trace" for
unhandled exceptions. Errortrace is quite limited, but still useful;
a full debugger within DrScheme is imminent.

For documentation, search for "errortrace" in Help Desk.

MzScheme Improvements
---------------------

MzScheme version 100alpha4 is a maintenance release of MzScheme.  As
usual, a few things have changed (e.g., the `class’ form), but most
things have not. The release notes are on the web page:

     http://www.cs.rice.edu/CS/PLT/packages/100alpha4/

MzScheme 100alpha4 compiles for BeOS R3/R4 and compiles to x86 kernel
form using OSKit.

MzScheme users who have eschewed previous versions of MrEd should
check out MrEd 100alpha4, which is faster, lighter, cleaner, and
better documented.

MrEd Improvements
-----------------

The release notes for the last few releases of MrEd have included the
following warning:

     IMPORTANT: Expect major changes in the MrEd toolbox with
     version XXX.

The major changes are here; MrEd 100 is a dramatic improvement over
MrEd 53, but also thoroughly incompatible with previous releases
(hence the jump in the version number).

The extended description below was excerpted from the MrEd 100alpha4
release notes.  For the complete notes, see the web page:

    http://www.cs.rice.edu/CS/PLT/packages/100alpha4/

==================================================================

MrEd 100 is the successor to MrEd 53. For MrEd 100, we preserved the
underlying windowing model, but redesigned the GUI toolbox interface
to make it simpler and more Scheme-like. Every MrEd 53 program
requires substantial changes to run in MrEd 100.

The revised interface makes MrEd more accessible to new users: class
and method names are more consistent; useless and redundant methods
have been eliminated; and methods check their arguments more
precisely.  Key portions of the documentation have been re-written,
and a new help system called "Help Desk" makes locating information
much easier than before.

The implementation behind the revised interface is reliable. Whereas
previous versions of MrEd were plagued by bugs and inconsistently
implemented features, the new interface is consistently implemented
across platforms and thoroughly tested. Of course, bugs will always
slip through, but MrEd 100 is far more robust than its predecessors as
a result of a cleaner implementation and a new testing process.

New Application Architecture
----------------------------

MrEd 53 comprised two parts:

 * a core toolbox (containing names prefixed with `wx:’) that was too
   primitive for real programming (notably, no geometry management);
   and

 * an application framework (containing names prefixed with `mred:’)
   that provided crucial functionality (notably, windows with geometry
   management) but also much more, making it too heavyweight for
   simple GUI programs.

For MrEd 100, we moved the boundary between the core toolbox and the
application framework. The name "MrEd" now refers to only the core
toolbox, but the core toolbox now includes the most useful `mred:’
classes from the old application framework. While merging the `wx:’
and `mred:’ classes, we eliminated the prefixes.

All of the core toolbox classes are built into the MrEd executable.
The old `mred:’ classes that are not part of the core toolbox have
been moved into a separate framework library. The framework library is
designed for use in large and polished applications (as opposed to
small or prototype applications), and particularly in applications
that require coordinated groups of frames, editor frames with
searching, or user preference dialogs.

Running MrEd and Developing MrEd Applications
---------------------------------------------

MrEd 100 is more consistent with MzScheme than previous releases. The
default language for MrEd 100 is the same as MzScheme’s default
language. In contrast, MrEd 53’s language had different
case-sensitivity and cond-fallthrough behavior. Command-line handling
for MrEd 100 is nearly the same as for MzScheme; the only difference
is that MrEd executes `(graphical-read-eval-print-loop)’ on startup
instead of `(read-eval-print-loop)’. MrEd 100 programmers do not need
to understand units and collections to implement a simple GUI
application.

MrEd’s `graphical-read-eval-print-loop’ implements a rather primitive
REPL, unlike the relatively useful REPL provided by the old MrEd
toolbox-framework combination. MrEd 100 provides no replacement for
the old REPL. Instead, DrScheme provides a REPL that matches MrEd’s
language exactly.

==================================================================

Enjoy ...

-- Paul

 ----------------------------------------------------------------
| Paul Steckler              |     Rice University PLT           |
| steck@cs.rice.edu          |     DrScheme Project              |
| Tel:  713/527-8101x3814    |     http://www.cs.rice.edu/~steck |
| FAX:  713/285-5930         |     *** Ad astra per hackera ***  |
 ----------------------------------------------------------------