Tcl 8'4 Overview - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Tcl 8'4 Overview

Description:

tk caret window ?-x x? ?- y y? ?- height h? For controlling global caret. Also directs placement of IME/XIM window. tk windowingsystem ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 30
Provided by: jeffh80
Category:
Tags: caret | overview | tcl

less

Transcript and Presenter's Notes

Title: Tcl 8'4 Overview


1
Tcl 8.4 Overview
  • 9th Annual Tcl/Tk Conference
  • Jeff Hobbs
  • ActiveState Corporation

2
Agenda
  • Introduction
  • Development timeline
  • New features
  • Steps to 8.4.0

3
About ActiveState
  • ActiveState provides multi-language,
    cross-platform software services
  • Tcl, Perl, PHP, Python, XSLT
  • Linux, Solaris, Windows, HP-UX, AIX,
  • We make it easy to use new technologies
  • Web Services and .NET
  • Mission Make Programming Easier
  • Our IDEs
  • Active distributions
  • ASPN

4
History of Tcl
7. ActiveState introduces Tcl support and services
1. Tcl created as general-purpose
command/scripting language by John Ousterhout
  • 4. Scriptics formed
  • Evolve and extend Tcl platform
  • Create development tools

8.0 Aug
6.0 Sept
7.0 Sept
7.4 July
7.6 Oct
8.1 Apr
8.3 Feb

1988
1989
1990
1991
1992
1993
1995
1997
1998
1994
1999
1996
2000
2001
8.2 Aug
5. Tcl Core Team formed (August)
  • 2. Open source distributions
  • from U.C. Berkeley
  • Easy GUIs under Unix
  • Extensible applications

6. Scriptics/Ajuba Acquired by Interwoven (Nov.)
  • 3. Tcl enhanced at Sun Microsystems
  • Windows, Macintosh ports
  • Web/Internet support
  • Java support

1M ?
100
1000
10,000
100,000
500,000
5
Recent History of Tcl
6. ActiveState introduces Tcl support and
services (Feb)
1. Tcl2K in Austin (Feb)
2. Scriptics becomes Ajuba (May)
9. 8th Tcl Conference (July)
8.4.0 Sept
8.3.1 Apr
8.3.2 Aug
8.3.3 May
8.4a3 Mar
2000
2001
2002
8.4a3 July
8.4b2
8.3.0 Feb
8.4a1 June
8.4a2 Nov
8.3.4 Oct
8.4b1
7. TclEurope 2001 (June)
3. TclEurope 2000 (June)
10. ActiveState TclPro (Dec)
11. ActiveTcl 8.3.4.3 (July)
5. Scriptics/Ajuba acquired by Interwoven Tcl/Tk
core moves to SourceForge TclPro open sourced
(Nov.)
4. Tcl Core Team formed (August)
12. ActiveState Tcl Dev Kit 2.0 (Aug)
6
Tcl 8.4 Development TIPs
  • Over 2 years in the making
  • First time the TIP process has defined a Tcl
    release http//www.tcl.tk/cgi-bin/tct/tip/
  • TIPs are intended to guide and document
    development on the core
  • Initially rough, but process has improved
  • Of the 100 TIPs, most targeted 8.4
  • Many thanks to the maintainers and contributors

7
Tcl Changes
  • 25 improved performance over 8.3
  • http//wiki.tcl.tk/1611.html
  • Completely new Virtual File System (VFS)
  • http//wiki.tcl.tk/vfs
  • Improvements to numerous commands
  • 64-bit integer and file system support
  • CONSTification of the C API
  • Source incompatible with a compatability define

8
Minor command enhancements
  • array statistics
  • array names arrayName ?mode? ?pattern?
  • interp recursionlimit
  • regsub ?switches? exp string subSpec ?varName?
  • unset ?-nocomplain? ?..? ?name ...?
  • expr eq and ne for true string comparisons
  • glob -tails pattern ...
  • namespace exists
  • info script ?filename?

9
Updated list commands
  • New lset command
  • Efficient way to replace elements
  • lindex list ?index ...?
  • Index into nested lists easily
  • lsearch -all -ascii -decreasing -dictionary
    -increasing -inline -integer -not -real -sorted
    -start

10
file enhancements
  • Virtual File Sytem
  • Allows hooks into all FS functionality
  • Full support for 64-bit file sizes on 32-bit
    operating systems
  • file normalize
  • file separator
  • file system
  • file link

11
Tcltest 2.0
  • Greatly enhanced test command
  • Supports multiple error match types
  • Runs multi-process for robustness
  • 100 backwards compatible with v1.0

12
Serial Port Control
  • fconfigure serial -mode baud,parity,data,stop
    -handshake type -queue -timeout msec
    -ttycontrol signalMap -ttystatus -xchar
    charPair -pollinterval msec -sysbuffer sizeList
  • fconfigure -lasterror

13
64-bit wide integers
  • Uses int64 or long long
  • Not completely transparent 32/64-bit barrier
  • expr wide()
  • tcl_platform(wordSize)
  • binary command support
  • binary format wW ...
  • binary scan string wW ...

14
Changed behavior
  • fcopy now respects encodings of its channels
  • format ld and likewise treat argument as wide
    integer
  • scan ld and likewise no longer ignore the field
    width specifier
  • source treats the byte 0x1a (Z) as an EOF char
    on all platforms
  • subst treats break and continue during command
    substitution differently
  • tcl_traceExec and tcl_traceCompile only available
    with TCL_COMPILE_DEBUG build.

15
Updated trace command
  • trace add
  • command rename delete
  • execution enter leave enterstep leavestep
  • variable array read write unset
  • trace remove
  • trace info
  • Command tracing now possible
  • Old style trace command deprecated

16
Formalized memory command
  • Useful for debugging memory problems
  • Requires compilation with TCL_MEM_DEBUG
  • memory active
  • memory init
  • memory onexit
  • memory tag
  • Removed memory display

17
Tk Changes
  • Widget styling support (TIP 48)
  • New widgets
  • Significant widget enhancements
  • Improved I18N and L10N
  • Improved XIM and IME support
  • bell ?-nice?
  • First new feature of 8.4

18
New Widgets
  • spinbox
  • Builds on the entry widget
  • Fast, feature rich and efficient
  • panedwindow
  • Part widget, part geometry manager
  • labelframe
  • Separate from frame to not bloat it

19
New Tk subcommands
  • clipboard get
  • image inuse
  • photo transparency
  • Now we can properly animate GIFs
  • tk caret window ?-x x? ?-y y? ?-height h?
  • For controlling global caret
  • Also directs placement of IME/XIM window
  • tk windowingsystem
  • To distinguish between Xlib and native Aqua

20
text Changes
  • New undo/redo support with edit
  • -undo, -autoseparators and -maxundo option
  • get takes multiple range pairs
  • delete takes multiple range pairs
  • Atomic deletes
  • New virtual events
  • ltltSelectiongtgt
  • ltltModifiedgtgt

21
wm Changes
  • wm stackorder
  • View/Control the stacking order of toplevels
  • wm attributes
  • For controlling the platform specific aspects of
    toplevels
  • Implementations for Mac and Windows
  • May get Unix features in the future
  • Finally topmost functionality on Windows

22
Compound widgets
  • Allow both image and text to be displayed
    simultaneously
  • Orientation can be controlled with -compound
    option
  • Support for all button types and label widget, as
    well as in menus

23
Updated widgets
  • button -disabledbackground disabledforeground
    -compound
  • entry -state readonly -readonlybackground
  • checkbutton -compound -overrelief
  • listbox -disabledforeground -state -activestyle
  • menu add -compound
  • menubutton -compound
  • radiobutton -overrelief

24
Asymmetric padding
  • Allows left/right or top/bottom asymmetry in
    padding (-padx -pady)
  • Applies to widgets
  • frame
  • toplevel
  • labelframe
  • And geometry managers
  • pack
  • grid
  • grid columnconfigure master index -uniform
  • grid rowconfigure master index -uniform

25
Tk dialog changes
  • tk_getOpenFile -multiple -message
  • tk_getSaveFile -message
  • tk_getOpenFile and tk_getSaveFile are different
    in whether the returned file name includes the
    extension.

26
Removed Tk Privates
  • tkPriv
  • tkA-Z
  • Replace with tkPriv and tk
  • Support for exporting the private commands
  • but dont use them anyways

27
8.4 Change Details
  • Wiki Changes in Tcl/Tk 8.4 page
  • http//wiki.tcl.tk/3099.html
  • Local mode wiki on the conference CD
  • Source ChangeLogs
  • Documentation
  • http//www.tcl.tk/man/tcl8.4/
  • Details in BoF later
  • Books

28
8.4 Books
  • Coming soon to a store near you
  • Welch 4th ed.
  • Flynt 2nd ed.

29
Where to get it
  • Tcl Developer Xchange
  • Points to everything
  • http//www.tcl.tk/
  • ActiveState ActiveTcl
  • Binary distributions with extensions
  • http//www.activestate.com/Products/ActiveTcl/
  • SourceForge
  • Core source distributions
  • http//tcl.sourceforge.net/
  • Conference CD
  • ActiveTcl and Tclkit binaries
Write a Comment
User Comments (0)
About PowerShow.com