Recent Changes of Tcl/Tk/DMH
This document was last changed on $Date: 2003/08/25 13:58:31 $ when the
current release of the DMH Application Development Package was based on
Tcl 8.3.3 and Tk 8.3.3. As new changes are added to this document, the
older changes are deleted so that the document size remains manageable.
Recent Hume Changes and Improvements
- New Tcl commands dmh_import,
dmh_var, and vset
have been added to
the Tcl 8.3 DMH83 library and to the GEM application library to support deploying
applications that are compatible with Tcl 8.4 and Tcl 8.3. (10/1/2002).
- Use of the flag TCL_PARSE_PART1 was eliminated in the Hume library code to
enhance compatibility with package loading of this version into future versions of
Tcl. In particular, a minor bug with using this version of the dmh package
with Tcl 8.4.3 and 8.4.4 was fixed. (8/25/03).
- GEM Host handling of data items in S6F3 reports was made the same as user-defined
event reports so oversize data can be handled. (6/13/2003).
- The hub83 script was updated so that the acknowledgement dialog shown after
updating a table row is limited in size. (3/4/03).
- The handling of trailing space characters in selection results with
the POSIX Oracle odbc software was revised. Trailing space characters in
varchar and char data are no longer removed by default. The SET command option,
strip_rhs_white, can be set true to restore the old behavior. (1/28/03).
- Receiving logic for the Tcl udp command was updated to
fix an issue with receiving before a user callback is registered. (1/21/03).
- The POSIX C DMH client library, and similar DMH client libraries for
Visual C++, Java, and Visual Basic were updated to have cleanup logic
execute at the DMH server to close temporary mailboxes that are used when a
reply message is sent after the client DoXact() method returns a TIMEOUT result.
The Java DMH server logic was also revised for this feature. (1/15/03)
- A change was made for Win32 in the DMH server logic to improve performance
for processing mailbox commands by the server. (11/25/02).
- The GEM equipment application was updated to guard against corrupted
spool file data which could occur if multiple program instances write to the
same file. (11/20/02).
-
The secsport and hsms logic was updated to send S9F7 in response to invalid
SECS-II data structures. It is still up to the application logic to send
S9F7 when a message data structure is valid but not appropriate for a
particular stream and function. (11/19/02)
- The GEM host rcmd argument processing was updated to be more forgiving of
using string arguments without surrounding braces. (11/18/02)
- The SECS-I multi-block logic was updated so that T4 timeouts occur without
waiting when the last data block of a message is received and there have been
block sequence errors. (11/18/02)
-
The GEM Supervisor application was updated to include checkbox disabling
for the use of S1F17 (online request) and S2F31 (clock synchronization)
during initialization. Also, new logic was added to the GEM host
software to automatically correct itself when an incorrect Device ID is
being used. The initialization logic in procedure ei_init was revised
so that the trace window is optionally created before any communication
is attempted. The alarm discovery logic was also made faster and
more adaptive in situations where S5F7 is not supported. The creation
of variable names for VFEI event reports was revised to create unique names
when confronted with equipment using the same variable names repeatedly.
The secsport/hsms HTML document was
enhanced with links to the command synopsis entries, and with more material
on handling abort and Stream 9 error replies. (8/27/02).
-
A new procedure, secs_DMH_reply, was added to the GEM software to make
it easier to control SECS conversions from a DMH message system client.
(6/12/02).
-
A new command itcl_mkindex has been
added to the package in order to build tclIndex files that include [incr
Tcl] classes and methods. (4/2/02)
-
The Tcl mbx command has been updated to
include the clientID method. The method returns the identifier that
the DMH server uses for the client connection. (4/2/02)
-
A new Tcl/Tk Package Installer has been developed, and integrated with
the DMH product installation script. The Package Installer is able to install
3rd party Tcl/Tk extensions and the new Hume component series with the
help of description files and a standard subdirectory layout for .zip archives.
(3/17/02)
-
The Hume Component Series now
consists of 4 high-level components and 2 library packages. The components
are a powerful start for a reseller to build sophisticated, feature-rich
product offerings, or for an enduser company that wants to create custom
solutions that are superior to commercial products. (3/1/02)
-
A new equipment constant, UseMultiBlockInquire, has been added to
the GEM equipment software, so that multiblock inquire/grant behavior is
configurable at runtime. The default for HSMS has been set to disabled
which is a substantial performance enhancement for event reports exceeding
244 bytes. For both the GEM equipment and the GEM host applications, a
new element, MULTIBLOCK, exists in the connection array and may be set
by custom code to control multiblock inquire/grant. (1/19/02).
-
References to Hume Integration Services were changed to Hume Integration
Software. (11/13/01)
-
The Data Collection Component (DCC) has the
ability to notify individuals or recipient lists by e-mail or telephone
when SPC alarms occur. The ability to configure, manage, and collect
SECS Trace Report data is also new. There is also support for automatically
collecting data from SECS Event Reports. Charting, tabular data reports,
and manual data entry, are other available features of the Hume provided
User Interface. The first product shipment of the DCC occurred in
October 2001 to an OEM who is using the SPC capabilities for online process
tool control. (8/28/02)
-
A POSIX DMH client library for multithreaded
C applications is available for Unix platforms, and also for Win32 platforms.
The demonstration application for the library can also be used as a standalone
utility to send and receive DMH messages. (6/14/02).
-
Enhancements have been made to the DMH Java package
for integrating web-based applications with the DMH. Recently the
class TclListModel was added to simplify displaying a Tcl list in a Swing
listbox or combobox widget. Last revised (8/13/02).
-
The Visual C++ DLL for integrating NT C++
applications was last updated on 6/14/02. The ability to configure
the description of the client seen from the DMH status window was added.
-
A new Visual Basic GEM Equipment application
is provided as an example to equipment manufacturers of deploying the Hume
GEM software as a background process. Changes and new procedures were added
to the GEM equipment software to make this an easier task.
-
Datahub menu items were added for CSV table output and a new procedure
hub_table_csv was added.
Output mapping of imbedded newlines was revised 12/3/01. The hub_select_to_csv
procedure was added 4/7/02.
-
The datahub script was changed to use an alias for the file command in
order to be compatible with TclPro and the stat subcommand. (8/1/01) This
change was revised 9/18/01 to fix an issue with remote hubclient usage.
-
[incr Tcl], [incr Tk], and IWidgets were added to the Hume distribution.
Minor changes were made to integrate the packages documentation, demonstration
scripts, and their build files. (8/13/01)
-
A fix was made to the ODBC support for tablenames that contain the $ character,
and to the Unix Oracle SQL process subcommand. The Unix Oracle support
was updated and newly ported to Linux. There is support for longer error
messages, and a disconnect command. The Oracle binaries are now built with
dynamic linking so $ORACLE_HOME/lib may be needed in the environment dynamic
loading path. (9/5/01)
-
Static buffers used by the SQL command were expanded to allow 2500 tokens
in an SQL statement, and up to 70,000 characters per input SQL statement.
A table create statement with 1200 columns is possible. (9/13/01)
-
New Datahub Tcl commands
were created for HTML or XML output of table data, table schema, or subscription
information. A dialog was added to the Datahub user interface for HTML
document output. (10/20/01)
-
The SECS software was enhanced to support SEMI code "22" data often referred
to as Variant or as Localized Character Strings. The Hume package supports
all of the specified E5-0301 encodings including UTF-8, Unicode, iso8559-1,
shiftjis, euc-jp, euc-kr, gb1988, euc-cn, and big5. (10/25/01)
-
Fixed a problem with the SQL command in providing simple error messages
when == is improperly used as a comparison operator. Also, fixed certain
situations when select statement error replies were not formatted in the
expected Tcl Reply Format. (1/16/02)
-
The error code for the SQL open command in the case of a duplicate subscription
name was changed from 4 to 11 to be unique and the datahub document was
updated. (1/16/02)
-
The GEM equipment application use of ECMIN, ECMAX Equipment constant limits
was updated to allow for vector numeric values, and to add comparison logic
for U8 and I8 values. A bug when using type U4 with ECMAX values
greater than 2^31 was fixed. String value checking can be bypassed by configuring
empty strings for ECMIN and ECMAX. (5/28/02).
-
Added the get_info subcommand to the odbc
command. (3/8/02).
-
The dmh package index, pkgIndex.tcl, was updated. Now, the dmh library
is added to the auto_path as soon as package require dmh is executed.
(3/21/02).
-
The HSMS host software was updated to retry when attempting to reconnect
to equipment, when the equipment accepts the socket connection but rejects
the HSMS session initiation. Also, a new configuration option, hsms_reentrant,
was added to the hsms command to provide
additional control over the nested execution of callbacks. The HSMS
T7 timeout logic has been revised so that in the situation of rapidly opening
and closing connections, there is no possibility of a T7 timer from an
earlier connection affecting a later connection. (5/10/02).
-
Several new status variables have been added to the GEM equipment simulator.
These variables provide interesting floating point values which are useful
to demonstrate and test Trace Report and Event Report features. The
Hume Data Collection Component can be used to configure, manage, and collect
Trace Reports from SECS equipment. (5/15/02)
-
The Windows program item, "DMH Shell", was updated so that the interpreter
exits when the console window is closed. (5/28/02).
-
Both the GEM host and equipment software were fixed for minor bugs when
using recipe names that have embedded white space. The host ei_rcmd
procedure was modified to not process backslash sequences as found in DOS
pathnames. The host RCMD_PP-SELECT default configuration entry was
updated so that backslashes in DOS filenames are not processed. (8/14/02).
- The GEM host event report setup logic was revised to better handle
ordering of items for report configurations not created by the default
GUI, in combination with non-annotated event reports. (9/24/02).
New with Tcl/Tk 8.3
-
new HTML pages Additional HTML documents describe Tk's color
names,
keysyms and numerous C language
functions.
-
updated http extension Numerous improvements have been made to the
http package which is now at version 2.3.
The latest msgcat package is at version
1.1 (6/6/01).
-
Various 8.3.3 fixes The 8.3.3 release includes many small fixes
and improvements including revision of the Tcl IO channel code to better
handle stacked channel drivers such as the Trf compression and encryption
package. Also the tk_dialog code was fixed so that modal dialogs are not
hidden if the parent window is not visible. Hume had provided a version
of this fix in the 8.3.0 release. (8.3.3 changes added 6/7/01)
-
8.3.2 exec memory leak fixed Hume has patched the 8.3.2 Tcl release
to include newer changes that fix a memory leak in the revised Tcl IO channel
code. This patch fixes a memory leak problem when using exec repeatedly.
(2/6/01)
-
octal error messages Improved the error messages generated when
an invalid octal number (e.g., 0899) is used in a math expression.
-
lsort -unique This new option to lsort
removes duplications from lists as it sorts.
-
glob Added the -type, -path, -directory,
and -join switches to give more control
over how files are matched.
-
file date stamps. The file atime
and
mtime commands were extended to
allow setting the file modify and access time.
-
file channels. This new command lists the open channels.
-
scan This can now return a list of values instead of assigning to
variables.
-
array unset This command can clear an array without complaining
if the array doesn't exist.
-
Img Patch. Adopted the "Img" patch from Jan Nijtmans that makes
the image command Tcl_Obj-based, adds support for binary -data args, adds
alpha channel to images, adds GIF write capability (non patent-infringing
run-length-encoding).
-
Dash Patch. This patch adds a variety of features, including:
-
Dashed line support on the canvas.
-
Pointer warping via the event -warp option,
-
Support for <Quadruple> clicks
-
Entry widget validation routines.
-
New -state hidden in text widgets. TkMan users no longer have to patch
Tk!
-
New -state -active* -disabled* -offset options to canvas items.
-
Postscript printing of images and windows from the canvas.
-
Canvas. Advanced tag searching has been added to operations like
'find' and 'addtag'. You can search for canvas items using boolean functions
of their tags:
$canvas find withtag {linetag && redtag}
Listboxes Added the -listvariable
option to link a listbox to a variable, and added itemconfigure
to allow coloring individual items.
Standard Dialogs. updated dialogs to use color icons on Unix. Improved
behavior of -initialfile to tk_get*File.
Hume Changes to the Tcl/Tk Core Distribution
-
Hume has fixed a problem in the Tk library tkEntryAutoScan procedure which
affected ordering keystroke entry on Windows, when using entry widgets
with modal windows, and having done a mouse drag selection of text in the
entry widget, and releasing the mouse button to the left of the entry widget.
(12/11/01)
-
The Tk library console.tcl is updated so that memory usage by console
output is made finite at a user configurable number of lines.
-
The command memory_stats is added,
and compiled by default for Windows NT.
-
The NT console is given a larger font. The console Edit menu has
a Clear action. The console Help menu has a new item to display errorInfo,
and a new item to display the HTML documentation. Bindings are added for
Motif style cut-and-paste and NT style right button paste. These changes
are actually done at runtime without changing the core code.
-
The Tk C code is patched for Windows NT so that winfo interps works
using DDE.
-
The Tcl library is patched so that index files of the name tclindex.txt
are used if tclIndex is not found. This enables Tcl to execute from
an ISO CDROM image where tclIndex is not a valid filename.
-
The Tk C code is patched to create an option to the winfo command, timelastevent.
Executing
winfo timelastevent returns a value that changes with
each new window event. This value will be unchanged over time when there
has been no user interaction with the window interface. An application
can poll this value using after, and determine if the user has been inactive.
-
Hume compiles the Tcl DLL on windows NT so that 256 socket connections
are possible. The default compilation results in a limit of 64.
-
The NT tkWinX.x is patched so that it can be compiled without the
user having the recently added Microsoft header file zmouse.h.
-
The NT tclWinPipe.c is patched so that built in commands like "type"
work without the user specifying cmd.exe /c. Also, NT batch files with
the extension .cmd are made executable. Similar logic in the 8.3.3 init.tcl
file has been patched to allow mixed case shell commands. (6/6/01)
-
The NT tcl8.3/library/reg1.0/pkgIndex.tcl was patched to eliminate
errors that occurred when executing package require.
-
Hume fixes the Tk build and configure logic for SunOS 4.1, AIX 3.2.5,
and AIX 4.3. The Hume provided Makefile documents that +DAportable should
be used on HP-UX and that -Dshl_load=cxxshl_load should be used on HP-UX
if dynamic loading of C++ extensions is needed.
-
Hume converts the Tcl/Tk man pages to HTML, adds new pages, and provides
custom indexes. Hume removes multiple, strange occurrences of "the the"
from the man pages. Hume has revised the encoding
man page which had erroneous information regarding Tcl's internal string
representation. Hume has revised the colors
man page which had erroneous RGB color values.
-
Hume is maintaining a workable NT Makefile for the Microsoft VC compilers.
The public build is using gcc for NT, and the VC makefile is not being
maintained.