racket/doc/release-notes/drscheme/HISTORY.txt
2008-07-24 04:38:45 +00:00

1318 lines
43 KiB
Plaintext

------------------------------
Version 4.1
------------------------------
. get-text-to-search is not 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.
------------------------------
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
it's 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 changable.
- 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 noticably 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-independant 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 it's 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 symetrically 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 langauges 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