------------------------------
       Version 5.2.1
------------------------------

  . The keybindings window is no longer a modal dialog (and its contents
    will change to reflect where the keyboard focus currently is)

  . The initial current-directory for unsaved programs in DrRacket is
    now the user's home directory, instead of whatever the
    current-directory was for the underlying OS process.

  . The current-load-relative-directory is now set to #f initially in
    DrRacket (to better match what Racket does).

  . DrRacket no longer shows a stacktrace for syntax errors in the REPL.

  . The preference that makes a single "(" keystroke insert "()" (and
    similarly for [ { " and |) now only takes effect in Racket mode,
    instead of taking effect in all of the modes, as it used to. This
    change is in service to a bugfix that makes the automatic opening
    parentheses adjustment cooperate with the automatic balancing.

  . The scheme:text-mixin now requires input classes that implement
    the editor:keymap<%> interface.

------------------------------
        Version 5.2
------------------------------

  . changed three menu keybidings:
      "New Tab" is now <menukey>-t
      "Run" is now <menukey>-r
      "Replace" is now <menukey>-shift-f

    The Keyboard Shortcuts section in the manual has a sample
    keybindings file a checkbox that restores the old behavior of
    the first two.

  . Under Windows, DrRacket now saves files, in some situations,
    with LF terminators. Previously, under windows, all files
    were saved with CRLF terminators. Now, a file is saved with
    CRLF terminators when every line in the file ends with CRLF.
    In there is any one line that ends with just LF, then the
    file is saved with LF's for each line. Also, newly created
    files are also saved with LFs instead of CRLFs.

    There is a preference in the Edit|General preferences panel
    to go back to the behavior of previous versions of DrRacket.

  . added online expansion and check syntax

  . removed the "open here" functionality (both from
    the DrRacket app and from the framework library)

  . 2htdp/image:
     - shrunk the size of saved files that contain 2htdp/image bitmaps
       (you can get these by copying and pasting from the REPL; using
        "insert image" isn't affected)

     - use the pre-multiplied alphas when doing image comparsion

     - sped up rotation and flipping of bitmaps

  . improved the way the scribble-language buttons (render html and
    render pdf) work; they now basically do what 'Run' does, plus the
    extra work of rendering the document; before they had their own error
    handling and sandboxing code, which was less integrated with DrRacket

  . improved the preference handling for the frame's location
    (specifically for the multiple-monitors case)

  . check syntax no longer turns the module in the #lang line red

  . improved the handling of the 'Open Recent' menu item; specifically it
    discards duplicates in a smarter way.

  . adjust DrRacket to be more accomodating to hostile filesystems; specifically
    it no longer fails if it cannot read the preference system and it no longer
    writes anywhere to the filesystem during startup except the prefs (and if that
    fails, it survives in a less annoying manner)

  . DrRacket no longer locks the definitions text while evaluating the program
    (it makes a copy of the definitions text and uses that copy now)

  . cleaned up the Close/Close Window/Close Tab menu items to match
    the platform-specific conventions

------------------------------
        Version 5.1.2
------------------------------

   . The EoPL language is no longer available via the Language
     dialog in DrRacket; use 

       #lang eopl

     and the 'language declared in the source' language in DrRacket.

   . Minor bug fixes

------------------------------
        Version 5.1.1
------------------------------

   . Removed the "DrScheme" compatability program.

   . Improved the speed of the module browser drawing

   . Added search to the standalone module browser window

   . Minor bug fixes

------------------------------
        Version 5.1
------------------------------

   . same (the game) has a new scoring system and different graphics

   . Added image->color-list and color-list->bitmap to 
     2htdp/image

   . The "language in the source" language now automatically
     compiles more files (with the default options). Specifically,
     files that are in a collections directory are now compiled,
     unless they are the main system collection (as reported
     by (find-system-path 'collects-dir).

   . minor bug fixes

------------------------------
        Version 5.0.1
------------------------------

   . Check Syntax now reports obligation information 
     (via a new item in the "View" menu)
   . added file-horizontal and flip-vertical to 2htdp/image

------------------------------
        Version 5.0
------------------------------

   . Scheme => Racket in many places
   . minor bug fixes

------------------------------
        Version 4.2.5
------------------------------

  . a few more improvements to 2htdp/image
  . new language dialog, designed to encourage 
    people to use the module language
  . the module browser shows the phases in
    which each module is invoked (in a new
    "long name" mode)
  . added alt-1 thru alt-9 as shortcuts to swap
    around between tabs

------------------------------
        Version 4.2.4
------------------------------

  . the 2htdp/image library changed:
    - changed how equality works (it is now based on how the 
      images draw, instead of on an underlying algebra
      of images)
    - added cropping and curves
    - overlay, beside, and above now line things up on
      centers, rather than upper lefts
    - added scene-related funtions (place-image, scene+line, etc)
    - added support for drawing with various kinds of pens

------------------------------
        Version 4.2.3
------------------------------

  . minor bug fixes
  . added first draft of the 2htdp/image library

------------------------------
        Version 4.2.2
------------------------------

  . DrScheme now (by default) automatically compiles your source
    files, saving them in the compiled/drscheme/ subdirectory.

  . Syntax coloring now works for languages using the @-reader
    (ie, Scribble) 

  . The yellow message in the interactions window is now moved to be
    part of the DrScheme frame.

  . The module browser now shows the phases that each given module 
    is invoked in.

  . Check Syntax colors set!'d variables in dark red.

------------------------------
        Version 4.2.1
------------------------------

  . (Eli) The module browser used to treat any non-string require as
    "libraries", where they can all be hidden or not.  Now this does
    not include requires from the same "package", where a package is
    defined as a toplevel collection or a planet collection.  This
    means that requiring a file from your own collection is just as
    convenient to do (wrt the module browser) using the normal
    symbolic form.

------------------------------
        Version 4.2
------------------------------

  . Minor bug fixes

------------------------------
        Version 4.1.5
------------------------------

  . DrScheme now has a status line that shows what PLaneT is up to (in
    broad strokes)

  . Added logging support to DrScheme; it now monitors the logs via
    the "View | Show Log" menu item.

  . PLaneT now logs what it is doing at the 'info' level.


------------------------------
        Version 4.1.4
------------------------------

  . got rid of drscheme:debug:profiling-enabled
    in favor of errortrace/errortrace-lib's
    profiling-enabled

  . minor bug fixes

------------------------------
        Version 4.1.3
------------------------------

  . improved the way extensions are handled when saving files.

  . minor bug fixes

------------------------------
        Version 4.1.2
------------------------------

  . contract library's function contract 
    combinatiors now preserve tail recursion.

  . keybindings lang is now based on scheme, not mzscheme

------------------------------
        Version 4.1
------------------------------

  . get-text-to-search is now a public-final
    method. Searching now works by the to-be-searched
    text notifying the frame (instead of the frame asking
    which text should be searched) so probably you can 
    just remove the overridden method.

  . The optional arguments to highlight-range have changed.
    (If you did not supply any optional arguments you code
    works as before.)

  . removed edit-menu:find-again (& related) menu items
    changed edit-menu:replace-and-find-again to edit-menu:replace-and-find
    added a few edit-menu menu items as well.

  . removed from frame:searchable<%> interface:
    move-to-search-or-back, replace, toggle-search-focus
    move-to-search-or-reverse-search, and search-again

  . changed the is-hidden? method of frame:searchable to search-hidden?

------------------------------
        Version 4.0.2
------------------------------

  . fixed a bug in profj that triggered bad behavior when planet
    packages were installed via drscheme

------------------------------
        Version 4.0.1
------------------------------

  . fixed a bug so that user-defined teachpacks can now be
    added

  . fixed a bug in PLaneT

------------------------------
        Version 4.0
------------------------------

  . renamed "(module ...)" language to "Module"

  . dropped "MzScheme" and "MrEd" as separate languages;
    try `#lang scheme/load' with the "Module" language

  . changed the "Pretty Big" and "R5RS" to assume by default
    that pre-defined names will not be redefined

  . renamed the get-special-menu method to get-insert-menu

  . drscheme:debug:show-backtrace-window
    now accepts srcloc structures.

  . removed help-desk:help-desk from the tools interface.
    Use the help collection instead.

  . removed drscheme:debug:show-error-and-highlight from
    the tools interface. Use drscheme:debug:error-display-handler/stacktrace
    instead.

  . current-print's behavior is different in DrScheme. It
    now prints to a separate port (the same on the REPL
    printer uses, namely with blue output) and the style of
    printing that it uses is controlled by the language
    dialog (which means that the `current-print' option is
    now gone from the language dialog)

  . drscheme:language:language-dialog and
    drscheme:language:fill-language-dialog no longer accepts
    the manuals? argument

  . The order-manuals method is gone.

------------------------------
        Version 372
------------------------------

  . added auto-completion (only gets completions from 
    the documentation, not the lexical context).

  . minor bug fixes

------------------------------
        Version 371
------------------------------

  . bug fixes from 370p1 & 370p2, plus misc other small bugfixes

------------------------------
        Version 370
------------------------------

  . changed teachpack support so that it is now
    language-specific and languages no longer support
    teachpacks by default.

  . interface changes, related to teachpacks:

    . create-executable method in
      drscheme:language:language<%> no longer takes the
      teachpack argument

    . the get-init-code in
      drscheme:language:simple-module-based-language no
      longer accepts teachpacks as an argument.

    . got rid of all drscheme:teachpack names

    . front-end/complete-program and front-end/interaction
      no longer accept a teachpack argument

  . changed image.ss teachpack so that it accepts both exact
    an inexact numbers (not just exact integers) for a
    number of the primitives (it floors the numbers).

  . changed the save format for color preferences. Due to a
    bug in earlier versions, this means that color
    preferences saved in earlier versions of DrScheme will
    not be copied forward to this version. 

    These functions are renamed:

      color-prefs:marshall-style => color-prefs:marshall-style-delta
      color-prefs:unmarshall-style => color-prefs:unmarshall-style-delta
      color-prefs:register-color-pref => color-prefs:register-color-preference

    If you used those functions before, do not use the new
    ones with the same preference symbol as you used in old
    versions, or else the old version of your app (or
    drscheme) will fail to start up.

  . changed the frame:editor-mixin, frame:text-mixin and
    frame:pasteboard-mixin slightly so that one can supply
    the editor class as an initialization argument
    (overriding the get-editor% method still works, but now
    that method defaults to the initialization argument)

  . added an extra, mandatory argument to calc-button-sizes
    and draw-button-label in mrlib's name-message.ss. Use
    small-control-font to get the old behavior.

  . added a new, optional, argument to the initializer of
    name-message%. 

  . The teaching languages now add a #reader wrapper to
    saved files. Although the content of the file, when
    viewed in drscheme, does not change, this does mean that
    drscheme "remembers" which language was used for each
    file, even if you change languages when editing other
    files.

  . added get-reader-module, get-metadata,
    metadata->settings, and get-metadata-lines methods to
    the drscheme:language:language<%> interface

  . the framework preferences library now saves prefs each
    time any one of them is changed, and works better when
    multiple apps are both using the library. As a
    consequence of this, preferences:save is no longer in
    the library. Just remove any calls to it and your code
    should work fine.

  . split the preferences library out from the framework, so
    it does not have to depend on mred

  . removed (from the framework): exn:struct:exn,
    exn:make-exn, and exn:exn?

  . added preferences:restore-prefs-snapshot,
  preferences:get-prefs-snapshot, and preferences:snaphot?

------------------------------
        Version 353
------------------------------

  . right clicking on the line/column offset display in the
    bottom part of drscheme's window lets you toggle between
    character offsets (from the beginning of the buffer) and
    line/column counts.   

  . user-defined keybindings can now be loaded directly from
    PLaneT, via a new menu item in the Edit menu.

  . the keybindings now have access to the same stuff as the
    tools, via the require line:

      (require (lib "tool-lib.ss" "drscheme"))

  . in the non-debug languages, drscheme now trims its own
    stack frames from the top of the stack before showing
    them in the REPL.

  . the get-language-numbers method in
    drscheme:language:language<%> now requires its results
    to be completely unique, wrt to other languages (until
    now, the last number didn't have to be unique)

------------------------------
        Version 351
------------------------------

  . the or/c contract now accepts multiple higher-order
    contracts, as long as they can be distinguished by some
    first-order property (for example, the arity of the
    function).

  . failures of the first-order aspects of contracts are now
    checked in the module that provides, not just the
    requiring module. This means that this module:

    (module m mzscheme 
      (require (lib "contract.ss"))
      (provide/contact [f (-> integer? integer?)])
      (define (f x y) x))

    will signal an error as soon as it is required, rather
    than waiting for a variable reference to `f' (as it used
    to).

  . rewrote some of the internals of the contract library to
    get a factor of 2 speedup for tight loops that do a lot
    of contract checking (FWIW, I had introduced this
    slowdown a few months ago in an attempt to optimize ...)

------------------------------
        Version 350
------------------------------

  [ The top three in this list were in 350, but weren't
    listed in the release notes at the time of the
    release. oops. ]

  . contract-violation->string parameter: now takes one fewer
    argument. It is no longer passed the `other-party'. Similarly,
    raise-contract-error no longer accepts the other party argument.

  . added one-of/c to contract library

  . remap [ to be ``smart'' (ie often but not always change the square
    bracket to a paren)

  . Added two new keybindings to DrScheme (in Scheme mode):

    c-c; c-o move-sexp-out: the sexpression following the insertion
    point is put in place of its containing sexpression.

    c-c; c-l insert-let-binding: wraps a let around the sexpression
    following the insertion point and puts a printf in at that point
    (useful for debugging)

  . Case-insensitivity is now available in DrScheme's search box,
    courtesy of Jens Axel Sogaard. Thanks!

  . The image.ss teachpack now uses smoothed images.

  . drscheme-language-positions and
    drscheme-language-readers now allows relative paths for
    language module specifications.

  . Added `this', implicitly bound in ->r and ->pp contracts
    when used inside `object-contract'

  . union is now deprecated in favor of or/c. It's the same
    combinator, but it matches other names in the contract library.

  . Added `this', implicitly bound in ->r and ->pp contracts
    when used inside `object-contract'

  . Help Desk's font size is now independently configurable
    (from Drscheme's font size).

  . Help Desk no longer asks about non-http urls; it always
    just ships them off to the OS to handle.

  . Various url struct changes to fix bugs related to
    mailto: url handling and handling of multiple params in
    a path segment.

    . the scheme and host are now always lowercased by
      string->url

    . the library no longer adds an empty path to the end of
      urls like "http://www.drscheme.org", meaning that the
      url-path can sometimes now be an empty list (the
      contract always allowed this, but it didn't happen
      before).

    . added path-absolute? field to url struct, following
      rfc 3986's nomenclature -- when #t, it means the path
      portion of the url began with a slash and when #f it
      means that it didn't.

    . more care is taken when quoting path portions of the url
      and when turning urls into strings

    . path segments are now always path/param structs and
      the param part of a path/param struct is now a list of
      strings

    . add 'up and 'same as possible path segments (in the
      path field of a path/param struct), in addition to
      strings (as before).


------------------------------
        Version 300
------------------------------

 - Added support for user-definable keybindings. See the new
   menus at the bottom of the Edit menu (and their
   documentation) for details.

 - DrScheme's background color for the definitions and
   interactions window is now configurable.

 - The regular expression language for the lexer has changed.
   See doc.txt in the parser-tools collection.
   (This isn't a DrScheme change per se.)

 - Check syntax can (when using modules) go to the
   definition site of an imported variable.

 - the PLTDRDEBUG environment variable now works much
   better. Thanks to improvements in cm, setting it now
   builds .zos with errortrace and should make porting tools
   to v300 much easier.

 - set the PLTDRBREAK environment variable to get a window
   with two buttons that are useful for debugging deadlocks
   & infinite loops. The buttons break drscheme's
   eventspace's main thread and all threads started by
   drscheme (and tools) resp. Useful in combination with
   PLTDRDEBUG

 - tool & framework interface changes:

   . remove exn:locs; this functionality is now in
     mzscheme itself.

   . removed drscheme:unit:make-bitmap. Use
     (lib "bitmap-label.ss" "mrlib") instead.

   . contract name changes (overall, removed all of the /f,
     /p, and ? suffixes in favor of the /c suffix)

      not/f => not/c
      box/p => box/c
      cons/p => cons/c
      vector/p => vector/c
      list/p => list/c
      any? => any/c
      printable? => printable/c
      false? => false/c
      natural-number? => natural-number/c


   . The framework still probhits editing of files that are
     read-only, but rather than using the editor<%>'s lock
     method, it overrides can-insert? and can-delete? in
     text%. Accordingly, several and interfaces are now gone
     and the functionality has moved into existing
     mixins. These are now gone:

       frame:file<%>
       frame:file-mixin
       frame:text-info-file%

   . can-close? in editor:basic is now an augmentable method.

   . render-value and render-value/format no longer take the
     put-snip argument. Use write-special on the port
     instead.

   . order-manuals in
     drscheme:tool:language-configuration<%> now accepts
     (and returns) lists of bytes, not lists of strings.

   . front-end/complete-program and front-end/interaction
     methods now accept a port, instead of an `input'.

   . added an extra argument to create-executable in
     drscheme:language:language<%> and get-init-code in
     drscheme:language:module-based-language<%>

 - errortrace internal interface has changed (see docs for
   details)

 - added ->r contract combinator

------------------------------
        Version 209
------------------------------

* Several small errors in the ProfessorJ compiler have been corrected.
  Additionally, the native method interface has been updated to
  provide more access to class members by the native method.

* The interfaces and implementations for several HtDP and HtDCH
  teachpacks have changed:
  + the World class for HtDCH now supplies 'draw' and 'erase' methods
  + its event callbacks are guaranteed to call erase before and draw
    after handling a tick or keyboard event
  + the world.ss teachpack provides a nw:rectangle function for
    creating rectangles whose pinhole is in the northwest corner.

* Oleg Kiselyov's SSAX/SXML is included in the distribution.

  The SSAX/SXML libraries provides functions for reading, writing and
  manipulating XML data.  In addition, the package supports the
  definition of XML languages and exports machinery for transforming
  XML documents based on concise specifications.  SSAX/SXML is the
  foundation for a variety of other XML packages in Scheme.  For more
  information, see http://ssax.sourceforge.net/ and the documentation
  in the "ssax" collection.

* Swindle is now included and maintained with PLT Scheme.

  Swindle is an extension of PLT Scheme.  The main feature is a
  CLOS-like object system based on Tiny-CLOS from Xerox.  Additional
  syntactic extensions include: :keyword values and optional CL-style
  argument lists; syntactic sugar for `define's and `let's; generic
  `set!'; `defsubst' & `letsubst' for defining simple macros,
  `letsyntax', `letsubst' and `letmacro' than can bind identifier
  macros; a list-comprehension macro `list-of' with an extensive
  generic version `collect'; an `echo' mechanism for complex output
  formatting including list iterations; customizing printings via a
  `print-object' generic; `amb', adopted from Dorai's TYSiFD, and
  more.

  Like Scheme in DrScheme, Swindle has several language levels.  It is
  also possible to use its features on a selective basis.

  Those extensions that are not directly related to Tiny CLOS are
  likely to migrate into MzLib.

------------------------------
        Version 207
------------------------------

 - Wizards for ProfessorJ added 
   + union wizard
   + class wizard 

------------------------------
        Version 206p1
------------------------------

 - Check Syntax disabled in professorJ languages. 

------------------------------
        Version 206
------------------------------

 - Help Desk searching is now language-sensitive.

 - Check syntax is now integrated (better) with the syntax
   colorer.

 - Check Syntax now distinguishes between require'd
   and locally defined identifiers.

 - added the ability to specify a command-line to the module
   language.

 - Help Desk's status messages are now in the frame and
   its break button is also in the frame (no more modal
   dialog)

 - Check Syntax now does a better job of navigating amoung
   occurrences of a single variable. The popup menu lets you
   go from a bound occurrence to a binding occurrence and
   from a binding occurrence to the next binding occurrence.

   Also added two keystrokes: c-x;n to go to the next bound
   occurrence and c-x;b to to the binding occurrence.

 - show menu => view menu, added show/hide for the toolbar

 - multi file search works much better

------------------------------
        Version 205
------------------------------

  - the teaching languages color the portion of the program
    that has not been tested in dark red (using a simple
    syntactic coverage criterion -- dark red means untested,
    but not dark red doesn't mean fully tested, of course).

  - added a test coverage annotation for other languages in
    the "details" portion of the languages dialog; run the
    program and it colors the code that was executed in
    green and code that wasn't executed in red.

  - fixed up help desk fonts, so that the font size in help
    desk is now linked to the font size in drscheme proper.

  - added support for editor modes to drscheme.

  - drscheme shows the stack via arrows on the program text
    when an error occurs (and debugging is on)

  - added to special menu item: "insert delta" (to mean
    define) in parallel to the insert lambda menu item.

  - framework's scheme-mode font changed to be in an editor
    mixin.

  - macos: drscheme doesn't quit when all windows are closed
    anymore.

------------------------------
        Version 204
------------------------------

  - contract -> supports multiple values using this syntax:

   (-> integer? (values integer? integer?))

  - parenthesis highlight color is now configurable

  - integrated the module browser into the main drscheme
    window. Use the show menu to open a panel on the lhs of
    the drscheme window containing a DAG representing the
    modules that are required (only works for programs in
    modules).

  - integrated Bruce Hauman's rewrite of the match.ss
    library (ongoing).

  - added arrows to check syntax that show the (syntactic)
    tail structure of the program.

  - fixed many many problems with Help Desk. Some of the
    more interesting ones:
    - manual downloading now works.
    - bug report form is a mred window now.
    - doc.txt highlighting is in the right place now
    - doc.txt search restults now go to the right place
    - servlets are now modules (with no more free vars)
    - browser menus work properly
    - urls outside of our documentation use an external browser
    - eliminated many (now unecessary) redirections
    - various responsiveness improvements 

  - help desk as a standalone web server isn't supported
    anymore.

  - added a status line class to the framework, which is
    used for check syntax and the module browser. both show
    status as the check the program and show information on
    mouse-over. Also, the contour window shows you the line
    under the mouse in a status line on mouse over.

  - added an extra level of hierarchy to the language
    dialog, but without the turn-down triangles. this helps
    organize the language dialog somewhat.

  - the top level function declarations in algol60 are now
    available in the REPL and in the test suite tool

  - Removed `Windows' menu from windows and unix versions.

  - Windows installer generates Program menu shortcuts for
    all users

------------------------------
        Version 203
------------------------------

GENERAL
-------

- added test suite support for use with the How to Design
  Programs

- added support for recovering autosave files when DrScheme
  crashes

- the draw.ss teachpack now provides the function 

     get-key-event : -> Key 

   This function enables programmers who use the draw.ss
   teachpack to write interactive drawing games.
   Warning: The function fails intermittently on Mac OS X. We intend 
   to fix this problem in a future release.

- Help Desk users can choose whether they wish to use a
  frame-based version.  A toggle switch for this choice (in the
  form of a link) appears on the Help Desk home page.  It can
  also be changed in the Help Desk configuration.

- Help Desk users can once again use the PLT internal browser;
  look for the browser preference in DrScheme's preferences panel

- removed an error in MrEd for Windows that was a frequent source of 
  instability

------------------------------
        Version 202
------------------------------

GENERAL
-------

- improved the comment boxes

- interaction between Help Desk and the external browser
  should be much better

------------------------------
        Version 201
------------------------------

GENERAL
-------

- many misc bug fixes

- improved the create executable interface

- got rid of the "text box" and added in "comment"
  boxes. commenting out code now uses those comment boxes.

- Help Desk now uses an external browser

FRAMEWORK AND TOOLS
-------------------

- contracts have moved from

   (lib "specs.ss" "framework")

to

  (lib "contracts.ss")

- The create-executable method of
  drscheme:language:language<%> has changed. It no longer
  receives the filename for the executable; instead the
  method must prompt the user. See either
  `drscheme:language:put-executable-file' or
  `drscheme:language:create-executable-gui' for two methods
  of getting a filename from the user. 


------------------------------
        Version 200
------------------------------

THINGS MISSING (as compared to 103)

- project manager (use `module' instead)

GENERAL

- added profiling support. DrScheme colors your program text
  based on the time spent in each portion of the code.

- Added support for other natural languages for DrScheme's
  GUI. French and Spanish are most up to date; German and
  Danish are also included (but incomplete).

- added a module browser for seeing the entire program and
  dependencies among modules in a single window.

- added XML boxes (a quasi-quote/unquote feature for XML
  using embedded editors). See the DrScheme manual for
  details.

- added a code ``contour'' window that is
  visible along the rhs of the drscheme
  window. Use the `show' menu to make 
  it visible.

- drscheme's new version window is now a 
  modified version of the language dialog

- the language settings are now frame-specific.
  If you change the language in one
  window, it won't affect execute in another window;
  the most recently set language is what is
  used for newly created windows.

- added "Open recent" menu item

- added a preference called "Reuse existing DrScheme frame"
  that, when opening new files, causes DrScheme to replace
  the existing frame.

- bug reports now go to the new bugs.plt-scheme.org
  server (and to bugs@plt-scheme.org)

- error messages output improved

- added a mechanism for collapsing and expanding
  sexpressions to drscheme. right-click to collapse the
  enclosing sexpression to something like (...) and right
  click on that to expand it back to the previous text.

- added an emacs-like c-x c-b feature to drscheme.
  Type <menukey>-j to popup a window of the open frames
  and choose one without using the mouse by typing.

- added <menukey>-minus and <menukey>-plus as shortcuts to
  move to the next and previous menus

- The enter key now submits the interaction in the REPL,
  even if the cursor isn't at the end of a sexpression.

- It is possible to switch the interface language of
  DrSheme's GUI. The mechanism is in place, in any
  case. The translations aren't yet, so you probably
  don't want to try to switch. Also, you will see
  funny warnings when starting up DrScheme to that
  effect. Ignore them unless you are working on
  the translation.

- drscheme constructor and quasiquote printers
  now shows syntax's structure, and module-path-index
  structure.

- DrScheme's quasiquote printer now works a little bit
  better for expressions like '('a 'a).
  It used to show `((,'quote a) (,'quote a)), but
  now it shows `('a 'a).

- The portion of space between the definitions and
  interactions window is now interactively changeable.

- the bug report form now connects to bugs.drscheme.org
  instead of cs.rice.edu directly, so earthlink users
  should be able to submit PRs via Help Desk.

- adding splitting of the definitions and interactions
  canvases, to be able to see two different parts of the
  buffer simultaneously

- when saving or executing, 
  if the file has been overwritten in the filesystem, 
  drscheme prompts you to make sure you want to overwrite
  or execute the file.
   
- added Teach Youself Scheme in Fixnum Days to 
  DrScheme's documentation.

- implicit sequencing has been eliminated from the advanced language 
  level in order to give better error messages. Use an explicit `begin' 
  for sequencing. (this change was made between 102 and
  103, but we forgot to put it into the release notes)

- teachpacks finally support macro definitions.
 
- there is now a little eof icon next to the input box when
  input is expected. you can click it send an eof. It closes
  the input port until execute is next clicked.

- many minor improvements to the Help Desk html renderer.

- the filename button (in the top right of the drs frame)
  now pops up a menu of the directories
  that contain the saved file's directories. Choose one
  to open a `get-file' dialog in that directory.
 
- (without checking the syntax) the right click context-sensitive menu
  has an entry to search based either on the selection, or on the text
  that was clicked on.

- DrScheme now prints exact real numbers as graphical fractions
  (instead of the (+ 1 1/2) notation). These are also valid as
  input, but you have to copy and paste to get them into your
  program.

- Added an "insert fraction" menu item to the edit menu for
  inserting fractions directly into the program.

FRAMEWORK and TOOLS
-------------------

- added HO function contracts.

- it is now possible to add languages to DrScheme,
  as tools.

- changed many filenames to match the new -unit.ss, and -sig.ss
  convention instead of the old r.ss and s.ss convention.

- changed guiutils.ss to gui-utils.ss in framework collection.

- tools are now specified in info.ss files in top-level
  collections, rather than in a subcollection of the
  drscheme collection (see the tools manual for details).

- added gui-utils:alphabetic-list-box% to framework

- added `expand-program' to tools interface for
  tools that process program text.
  
- exit:exit and exit:can-exit? now accept optional 
  booleans that specify if the user should be asked
  about quitting.

- the splash screen now only allows a single
  splash screen (per namespace).

Version 103:

General
-------

 - typing characters in to the definitions and interactions window
   should be more responsive now (it was noticeably slow on slower
   machines)

 - files added to projects are now stored as relative files, 
   by default. (use project menu to change the default)

 - project files are saved using a platform-independent syntax for
   paths now.

 - Using file|open and choosing a project file (based on contents) will open
   the project file. (this only will work with project files saved in this
   version -- old project files won't be recognized until they are
   saved once.)

 - Opening or a .plt file will install the .plt file, after querying the user.

 - added break button to project windows 
   (does the same thing as the break menu item always did)

 - added save button and little "full name" thingy to project
   frames

 - DrScheme permits the use of "." (period) as an identifier in the
   student language levels.

 - implicit sequencing has been eliminated from the advanced language
   level in order to give better error messages. Use an explicit `begin'
   for sequencing.

Version 102:

General
-------

 - the help desk language level specific documentation has been
   integrated into drscheme.

 - errortrace-like facility is now available in drscheme debug
   language levels. Click on the bug next to an error message to see
   a trace of the continuation of the error.

 - drscheme-jr now supports teachpacks 
   (those that don't use GUIs, like htdp/dir.ss)

 - launchers can now be run from any directory.
   They do not need to be saved in a particular place (this has been
   true for some time, but it is officially true now.).

 - the debug full scheme languages now allow loading of files
   that contain graphics.

 - #! is treated like a comment when executing the defintions window,
   if it is the first two characters in the definitions window.

 - rarely used save menu items relegated to sub-menu.

 - added a "keymap" menu to the edit menu (shortcut: k)
   that opens a window where you can see all of the key
   bindings' names and short cuts, and you can choose one
   to invoke.

 - added a "Kill" menu item that kills all computation and reclaims
   all resources from the program that drscheme is executing.
   This is useful for multi-threaded apps that get out of hand.

 - meta-control-d, meta-control-u, meta-shift-control-d, meta-shift-control-u
   keybindings all restored.

 - drscheme now has a little button on the bar that lets you hop
   around between definitions in the program. It is approximate in
   that it doesn't really know every detail about the lexical
   structure of scheme, but it should still be quite useful. 

 - interactions window now shows the names of the teachpacks that
   were installed at last execute.

 - drscheme now allows multiple teachpacks.

 - teachpack names are not in the area with the execute button, instead
   they are now shown in the language menu.

 - repl errors that are in some loaded file have little clickable
   icons that open the file and show the error's source location in
   the file.
   
 - Only the platform-specific dialogs are used in drscheme now, on
   all platforms. The preference has been removed from the dialog.

 - project files are `load'able. That is, if you have the right
   language settings, you can do 
   
           mzscheme -qmvr myproj.proj

   and have the same effect as clicking execute on the project
   window. For mred, you will need to do something like this:

           mred -qmvr myproj.proj -e "(yield (make-semaphore 0))"

   so that mred doesn't quit automatically.

 - Help Desk now has a "feeling lucky" option ala google (menu
   shortcut: l). It goes directly to the first item that would have
   been found in a regular search.

 - Clicking on an error message link in drscheme now uses the "feeling
   lucky" style search in help desk.

 - clicking on the name in the topleft of the drscheme frame opens a
   little window with the full path.

 - check syntax now shows its syntax errors in a separate window.

 - the teaching languages now come with:

     make-posn, posn-x, posn-y, and posn?

   by default (no library required).

 - teaching levels print exact numbers whose denominators are evenly
   disivible by 2 and 5 as decimals.

 - teaching levels treat input decimals as exact numbers.

 - in the main help-desk window, space does pgdn and backspace does
   pgup, ala netscape. Also, typing return or enter while the cursor
   is on a link follows the link.

 - added class/d macro. It's syntax is like that for a unit, but it
   defines a class. Roughly:

   (class/d
    super-expresion
    init-args
    ((public var ...)
     (override var ...)
     (inherit var ...)
     (rename (var var) ...))
 
     definitions-and-expressions ...)

    This a new part of macro.ss in the mzlib library

Tools and Framework
-------------------

 - drscheme:rep:process-text/zodiac and
   drscheme:rep:process-text/no-zodiac
   are now called drscheme:load-handler:process-text/zodiac and
   drscheme:load-handler:process-text/no-zodiac.

 - added a slew of -on-demand methods to frame:standard-menus-mixin

 - the framework now imports a definition of the preferences
   file location. Use this to have a separate preferences file
   for each different application.

 - do not use 'drscheme:settings anymore to get the current
   language settings from drscheme. Now, use

      drscheme:language:settings-preferences-symbol

   (which is bound to the right symbol) instead.

 - setup plt's ``clean'' info.ss flag does not recur
   into subdirectories anymore.

 - the graphics library (sometimes known as sixlib) no longer 
   accepts any scaling arguments. 

 - the framework's preferences system now requires you to
   set the marshall/unmarshalling functions (if any) before
   setting the default preference.

 - drscheme now supports site-specific default preferences.
   To use, create a file prefs.ss in the defaults collection
   that is a copy of the preferences file that you want to 
   be the defaults. Then, if the user-specific preferences file
   doesn't exist (or the preferences in it are from an old version),
   the contents of the prefs.ss file in the defaults collection is
   used as the preferences.

 - drscheme now wraps uses with-handlers so that if a tool 
   signals an error when it is loaded or invoked, it just
   puts a window with the error message and continues, instead
   of keeping drscheme from starting up.

 - the .plt installer no longer automatically deletes compiled
   files when installing a .plt file. 

 - setup-plt now uses the 'clean flag in info.ss to determine
   the files to be deleted when --clean-ing a collection. It
   defaults to the files in the "compiled" sub-collection of a
   collection.

 - setup-plt no longer automatically runs --clean when installing
   a .plt file.

 - framework:
   - added canonicalize-keybinding-string
   - added aug-keymap%, aug-keymap<%>
   - editor:basic now sets its keymap to an
     aug-keymap<%> during initialization.

 - the framework's info frame mixins no longer require frame:editor<%> 
   as an input. Also, they are moved lower in the hierarchy of the
   instantiated mixin classes in the framework. This affects all of the
   frame:XX% classes.

 tools:
   - ensure-interactions-shown is now ensure-rep-shown
   - do-many-buffer-evals is now do-many-text-evals

 - clever-file-format now symmetrically changes the file's format to
   'standard. It used to rever the file format to 'text when there
   were no more images in it. Now, it also changes back to non-'text
   when images (and other non-string-snips) are added back.

 - the framework's gui-utils:get-snips/chars-from-buffer is now
   gui-utils:get-snips/chars-from-text

 - zodiac now supports graphical expressions. If a snip implements
   zodiac's expand<%> interface, zodiac calls a method of the snip to
   expand it. 
   
 - the drscheme:get/extend:extend-* functions no longer haver %s at
   the end of their names.


PRS
---

  1507: thread error freezes repl
  1506: Help Desk exits gracelessly when interrupted
  1503: Launcher prints debug info
  1502: (define's hard to find
  1499: text mode display auto-wraps
  1490: alt-tduring execution has different binding
  1484: cannot paste in search box on macos
  1480: default launcher name is "Save A Launcher"
  1478: parity reversed in Dr Jr command line flag
  1461: Kill menu problems
  1460: Help Desk has empty preferences
  1459: search menu items work on empty search text
  1456: teachpacks don't add
  1455: project windows never leave `Windows' menu
  1437:
  1428: setup -c deletes files for all platforms
  1424: long (list ...) displays don't display correctly
  1405: memory usage box should be read only
  1398: Downloading doc files requires restart
  1377: replacing by empty string loops
  1341:
  1334:
  1330: killing repl, then check-syntax hangs
  1306:
  1297:
  1235:
  1171:
  1144: match docs not setup right in Help Desk
   737: mred:preferences library too global
   599: mac: can't double click to open files while mred starts up
   406: bad error message for sixlib op

  1274, 1280, 1264, 1260, 1239, 1225, 1220, 1268, 1209, 1208,
  1196, 1180, 1096, 1088, 1043, 771, 752, 846

  1358, 1344, 1341, 1329, 1322, 1242 (docs not yet built), 1235 


Version 101:

General
-------

 - The teaching libraries are now called teachpacks. See the teachpack
   release notes for more information.

 - DrScheme's languages have changed (again). The languages are now:

   - Beginning Student
   - Intermediate Student
   - Advanced Student
   - Full Scheme, which contains:
     - Graphical Full Scheme (with and without debugging), and
     - Textual Full Scheme (with and without debugging)

 - Help Desk now supports bug report submissions. Please use it in
   favor of the web based form. To submit a bug, follow the "Sumbit a
   Bug" link near the bottom of Help Desk's front page

 - On European keyboards, the backslash character
   may not work properly in DrScheme.  If you 
   experience this problem, comment out this line:

        (map-meta "\\" "remove-space")

   in PLTHOME/collects/framework/keymap.ss.

 - For tools, invoke-library is now called invoke-teachpack.

 - Renamed two files in the graphics collection:
    graphic.ss is now graphics.ss
    graphics.ss is now graphicss.ss

 - DrScheme's print menu now inserts the time, date and filename in the
   header of the file to be printed.

 - comment/uncomment is improved. Now, it blindly adds a semicolon to the 
   front of each line (and doesn't add extra semicolons on following lines)
   and aways removes one semicolon (if present) from the front of each line.

 - Parenthesis highlighting now turns unmatched parens red
   in addition to turning matched parenthesis regions grey.
   Also (now that the caret flashes) if the caret is between two
   parens, both before and after parens will be highlighted,
   not just the ones before.
   
   Thus, every time the cursor is next to an uncommented
   paren, the programmer sees some feedback about the paren.

Version 100:

General
-------

 - 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 MzScheme and MrEd languages match exactly the languages
   provided by the MzScheme and MrEd executables.

 - 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.

 - DrScheme's Help Desk provides online help for DrScheme, its
   languages, and its libraries.

 - Graphics functions were removed from the teaching languages
   (Beginner, Intermediate, and Advanced), except Turtles in
   Advanced. To use graphics functions, you must select a library (and
   the teaching libraries are not yet updated).

 - The old viewport-based graphics library can be loaded into the MrEd
   Debug language via (require-library "graphic.ss" "graphics").

 - I/O within DrScheme is substantially improved.

 - The library and tool interfaces for extended DrScheme have
   changed.


Version 53:

General
-------

 - view menu items now have accelerators

 - (<= exp) isn't allowed in beginner. (same for <, >, and >=)

 - print primitive is now setup correctly to print based on the language level

 - paren-matching in semi-colon comments is disabled

 - info panel "running" message is now aligned correctly 
 
 - The check synatax and analyze buttons are now disabled during evaluation

 - library directory now starts in "MZLIB_COLLECTS_DIR/../../lib"
   which is our best approximation to "PLTHOME/lib"
 
 - elevator library can now select more than one floor at a time


Version 52:

General
-------

- The words "running" or "not running" at the bottom of the
  DrScheme frame indicate whether or not work is happening in the 
  user's program. 

- a "Windows" menu has been added which keeps track of the currently
  open drscheme windows.

- the source locations for "load"ed files now match the numbers 
  in the bottom of the drscheme window.

- the thread that evaluations (including execution) take place on is
  the same as the eventspace's main thread, unless the evaluation
  thread is killed. In that case, the eventspace's main thread is
  re-generated, but the execution thread does not.

- The REPL implementation has been cleaned up.

- the turtles window does not survive across executions anymore

- the Quasi-R4RS language level has been renamed to R4RS+

DrScheme Tools/Libraries
------------------------

- new methods on rep:edit%: report-exception-error accepts an exception and
  prints the error message in the console.

- send-scheme is outdated. Use run-in-evaluation-thread instead

- the drscheme:tool^ signature has changed. A new subunit, "basis" has
  been aded and the process-finish struct is now in that subunit. So,
  drscheme:language:process-finish? becomes
  drscheme:basis:process-finish?, etc.
  
  The process-finish structure no longer has a boolean indicating sucess. 
  Instead, an exception is raised.


- the settings for the language have been re-aranged
  - there are two new parameters, exported from the basis
    subunit of drscheme:export^, current-setting and current-vocabulary
    - current-vocabulary contains the vocabulary that zodiac uses to
      perform macro expansion
    - current-setting is bound to a setting struct, which encapsulates
      all of the information about the language level
  - the process-*/zodiac and process-*/no-zodiac proceudres
    are no longer methods and their arguments have changed


Version 51:

General 
-------
- fixed error message for "eq?" and "cons" at beginner level.

- check syntax does not work with an unitialized repl when:
  the source contains define-macro. (won't be fixed in the release)

- eval no longer loops forever in mred vocabulary 

- searching keybindings have changed. There are four distinct actions:
   action1: move keyboard focus to the searching window, opening it if necessary, 
            or if already there search forward
   action2: move keyboard focus to the searching window, opening it if necessary, 
            or if already there search backward.
   action3: search again, in the same direction
   action4: move the focus between the main window, searching window and replacment window
   action5: hide the searching window

The actions are mapped to different keys, based on the platform. 

On unix:
 action1 => control-s, meta-%
 action2 => control-r
 action3 => f3
 action4 => control-i
 action5 => control-g

On the macintosh:
  action1 => command-f
  action2 => command-r
  action3 => command-g
  action4 => command-o
  action5 => command-.

On windows:
 action1 => control-f
 action2 => control-r
 action3 => f3, control-g
 action4 => control-i
 action5 => escape

- turned off the file name printouts on splash screen

  evaluate: 
  (wx:write-resource "mred" "splashMessages" 1 (wx:find-path 'setup-file))
  to turn them back on.

- fixed a bug that caused error messages to be displayed in message
  boxes more often than neccessary. (as opposed to printing in the
  repl)

- parenthesis matching is improved

- The empty list is now called "empty" instead of "null" with the
  constructor style printer.

- The analyze button puts up a dialog saying "please wait, loading",
  now.

- the fonts dialog now shows previews of the selected fonts. You
  still need to restart to see the changes, unfortunately.

DrScheme Tools/Libraries
------------------------

- tools must now import wx names explicitly, as a new first import.

- the parameters interface has changed. Instead getting and setting
  the class, the tool programmer must register a function that
  accepts a class and returns a class. See the manual for more
  details.

- process/zodiac-finish has been renamed to process-finish
