Tcl 7.4b1 announcement

Date: 6 Jan 1995 19:41:52 GMT Sender: ouster@tcl (John Ousterhout) Note: This is the original Beta1 Release Announcement htmlised with links added - Errors are probably mine (hops)

I have just released Tcl version 7.4b1, the first beta release of Tcl version 7.4. It is available now via FTP from ftp.cs.berkeley.edu . Latest Beta Archive is Tcl 7.4 .

This is a minor release with just a few small changes needed by Tk4.0Beta Most of the changes consist of bug fixes, and there is only one small (?) incompatibility with Tcl 7.3, which is that Tcl no longer provides a "main" procedure by default. What used to be main is now called Tcl_Main, and each application needs to provide a main that calls Tcl_Main. Typically this is done in the tclAppInit.c file; see the tclAppInit.c file in the distribution for an example.

Here is a summary of the new features:

  1. Added new subst command for making $ and [] substitutions on an strings.
  2. The array command has several new features:
  3. lindex, linsert, lrange, and lreplace all accept end as an index.
  4. Expressions support unary +.
  5. The string command has new wordstart and wordend options.
  6. Tcl now exports the procedures Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange for C-level access to pattern matching.
  7. When an error occurs while creating a pipeline with open, it is returned immediately as the result of the open rather than being delayed until the close command.
  8. regsub now returns a count of the number of matches and replacements, rather than 0/1.

Tk 4.0b1 announcement

I have just released Tk version 4.0b1, the first beta release of Tk version 4.0. It is available now via FTP from ftp.cs.berkeley.edu . Latest Beta Archive is Tk4.0 Beta

This is a truly major release. There are many new features, many bug fixes, and many other changes. There are about 30 incompatible changes that affect Tcl scripts and a few more that affect C code. Even so, not all of the things that were "on the list" made it into the final release. The most important things that didn't make it were application embedding and most of the changes planned for canvases. Apologies to those of you that were waiting specially for these features. Application embedding will appear soon in a follow-on release, but I'm not sure when the canvas changes will happen.

The rest of this message is a summary of what has changed in this release. For more complete information, refer to the "changes" file that comes with the release.

List of the most important new features

  1. All of the widgets have been overhauled. The most important change is better Motif compliance, including a completely new set of bindings to match Motif. Text and entry widgets also have a set of Emacs-like bindings. Some additional changes to widgets:
  2. Changes to the binding mechanism:
  3. Tk now contains a general-purpose image mechanism, including the following:
  4. Text widgets have undergone a major overhaul, including the following:
  5. Event handling has been improved in several ways:
  6. Changes in the focus mechanism:
  7. Changes in the send command:
  8. Selection support has been improved to handle multiple displays and different kinds of selection (primary, secondary, etc.). There is special support for the clipboard in the form of a new clipboard command and procedure Tk_ClipboardClear and Tk_ClipboardAppend.
  9. Changes to canvases:
  10. The interface between generic canvas code and the various canvas item types has been cleaned up, documented, and officially exported so that you can define new item types. See the manual entry for Tk_CreateItemType.
  11. Bitmap items are now transparent if the -background option is specified as empty.
  12. Several bugs relating to Postscript generation and arrowheads have been fixed.
  13. Changes to the Wish application:
  14. There is now explicit support in Tk for colormaps and visuals, including -colormap and -visual options for toplevels and frames, new commands winfo visualsavailable and wm colormapwindows, and procedures Tk_GetVisual, Tk_GetColormap, and Tk_FreeColormap.
  15. Toplevel windows are now resizable by default, and wm iconwindow should work now (it never really worked before).
  16. I've patched around the Xlib bug whereby long-lived applications used to crash because resource ids wrapped around.
  17. Geometry management has been improved in several ways:
  18. There is a new bell command that does what you would expect.

List of incompatibilities

  1. Conflict resolution in bindings is different: if you have bindings that augment or override class bindings, you'll probably have to rework them.
  2. The -geometry option has been removed from toplevels, frames, and listboxes; use -width and -height instead.
  3. When new text is added to a text widget, it only receives tags present on *both* sides of the insertion point (it used to receive any tags present to the left of the character).
  4. The class of Tk applications is no longer Tk; it is the name of the script or program that embodies the application.
  5. The default padding for buttons and menubuttons has been changed to match normal Motif behavior.
  6. Listboxes now return the selection as a string with one line per entry, instead of a list.
  7. The transport format used for send has changed, so Tk 4.0 applications cannot communicate with Tk 3.6 applications.
  8. In entries, sel.last refers to the character just *after* the last selected one, and the second index to the delete widget command also refers to the character just after the last one to delete.
  9. The Any modifier is now implicit in all bindings.
  10. In scrollbars, the -background option has been renamed to -troughcolor, -foreground has been renamed to -background, and -activeforeground has been renamed to -foreground.
  11. In scales, the -sliderforeground option has been renamed to -background, -background has been renamed to -troughcolor, and -activeforeground has been renamed to -activebackground.
  12. For checkbuttons, radiobuttons, and the corresdponding menu entries, the -selector option has been renamed to -selectcolor, and it can no longer be specified as empty; instead, use the -indicatoron option to specify whether or not to draw the indicator.
  13. In binding scripts, % sequences that print window identifiers, such as %a and %S, produce hexadecimal results instead of decimal.
  14. The enable and disable widget commands have been eliminated for menus: use the -state configuration option instead.
  15. The activate and deactivate widget commands have been eliminated for buttons, checkbuttons, radiobuttons, and menubuttons; use the -state configuration option instead.
  16. The obsolete variable tkVersion is no longer supported; use tk_version instead.
  17. The syntax of the scan widget command for texts has changed.
  18. Wish no longer recognizes the -help option.
  19. Tk always prints real numbers, such as canvas coordinates, with a decimal point, so that they cannot get confused with integers.
  20. The command pack newinfo has been renamed to pack info, and the old pack info command (which was obsolete) no longer exists.
  21. The -scrollcommand option for entries has been changed to -xscrollcommand, and the view widget command has been changed to xview.
  22. Winfo exists no longer reports a window as existing if it is in the process of being destroyed.
  23. The -padx and -pady options for the button family of widgets are ignored if the button is displaying an image or bitmap; padding is zero in these cases.
  24. In radiobuttons the -value option no longer defaults to the name of the widget: an empty string is a valid value for it.
  25. The -menu option for menubuttons and cascade menu entries must refer to a child of the menubutton or menu.
  26. The interpretation of @y in menus has changed: it no longer returns none.
  27. The selection targets APPLICATION and WINDOW_NAME have been replaced with TK_APPLICATION and TK_WINDOW.
  28. There is no longer a default focus, and focus none is no longer supported. The focus command now returns an empty string instead of none to signal that the application doesn't have the input focus.
  29. FocusIn and FocusOut events now use the standard X mechanism, so the number and types of these events is different now.
  30. wm maxsize and wm minsize no longer accept empty arguments.
  31. The -scrollincrement option for canvases has been eliminated.

C Code Incompatibilities

  1. The arguments to Tk_ManageGeometry have changed.
  2. The main procedure is no longer provided by Tk; it should now be in the same file as Tcl_AppInit (see tkAppInit.c for an example).
  3. fill justify mode is no longer supported by Tk_GetJustify, and the TK_CONFIG_JUSTIFY flat no longer exists (no widgets actually supported this mode anyway).
  4. The procedures Tk_GetSelection, Tk_CreateSeleHandler, and Tk_ClearSelection now take an additional selection argument.
  5. The obsolete procedure Tk_CreateFocusHandler has been removed.
  6. The procedure Tk_RegisterInterp no longer exists; Tk_SetAppName now provides similar functionality.
  7. The interp argument to Tk_GetcolorByValue has been eliminated.