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