Select the links below to see the features and fixes included with each Synergy/DE version specified.
Download the latest Synergy/DE versions from the
Synergy/DE Resource Center (for customers with Developer Support and ALM;
contact
your account manager for more information.)
Version History
- Synergy/DE 9.3.1b (Windows) [Expand All | Collapse All]
- Synergy Language [Expand All Synergy Language | Collapse All Synergy Language]
- Analysis engine
- The analysis engine no longer generates a segmentation fault
when an error occurs on a line that has a macro expansion and
involves string concatenation. [tr#31057]
- A circular nested class previously caused the analysis engine
to loop until a segmentation fault occurred. Now a "Circular base
class not allowed" error (CIRCBASE) is correctly generated.
[tr#31133]
- Previously, if an I/O error occurred during the reading of a
source file, it caused a segmentation fault. A valid error is now
generated. [tr#31065]
- When a boxed integer is assigned to an array of boxed integers
(without giving the element index), a segmentation fault no longer
occurs. [tr#31127]
- Previously, a prototype file created with the -out option that
was in the second directory specified by SYNIMPDIR was not being
loaded. We discovered the include guard processing was preventing
the file from loading, so we added a flag to the prototype file
that indicates when the include guard should be ignored so that
it mimics the include guard processing of the old .dbh files. To
pick up this change, prototypes must be regenerated. [tr#31144]
- Providing an invalid modifier on a property returning type i
no longer causes a segmentation fault. [tr#31150]
- Compiler
- In previous versions, an inappropriate range error could occur
when compiling with -qcheck in the context of a ^M. This has been
fixed. [tr#30641]
- Passing ^NULL to an overloaded method previously picked the
first overload. Now it correctly gives an "Ambiguous symbol" error
(AMBSYM). You must cast ^NULL to the desired type to get the
correct overload. THIS MODIFICATION MAY BREAK YOUR CODE.
[tr#30969]
- The compiler no longer generates an "Incorrect number of
dimensions for {%s}" error (INVNUMDIM) when a parameter with (*)
syntax is used in an expression and the -qstrict compiler option
is specified. In some cases, this also previously caused a
segmentation fault, causing Workbench to crash. [tr#31055]
- When source files that contain routines without END,
ENDSUBROUTINE, ENDFUNCTION, or ENDMAIN keywords are compiled
together, a level 3 warning is now generated instead of a NOSPECL
error. [tr#31061]
- Trying to create an array of any nested type no longer causes
an invalid NOTSTAT error to be reported. [tr#31075]
- In versions 9.3.1 and 9.3.1a, four times the amount of memory
required was being allocated for the internal parse trees. This
has been fixed. [tr#30614]
- Using data areas that contain object handles is no longer
allowed in DISPLAY, STORE, WRITE, WRITES, PUT, and PUTS
statements. [tr#30965]
- Structures, objects, and strings are no longer allowed to be
specified as types for group declarations. [tr#30980]
- When writing to a path, the path cannot contain property get
methods that return intermediate structures. A "Cannot write to
this entity" error (NOWRITE) is reported if this occurs.
[tr#30996]
- Previously, when trying to include a structure in a namespace
and then including that namespace in another .dbl file that
referenced the included structure, if xfMethod was being used,
the compiler didn't recognize that the included structure was
there. This has been fixed. [tr#31053]
- The compiler no longer incorrectly resolves to a member of an
enclosing class when that member matches the name of a member of
the nested type (for example, an enumeration). [tr#31062]
- Casting type d to type @int now correctly generates an
"Invalid cast operation" error (INVCAST) instead of causing a
runtime segmentation fault. [tr#31066]
- A prototype of a structure included from a repository
previously failed the xfMethod attribute checks with a message
that it wasn't from the repository. This has been fixed.
[tr#31122]
- Previously, using a void type in a format statement did not
generate a compiler error, which caused a runtime segmentation
fault. This has been fixed so that an "Invalid use of type %s"
error (INVTYP) is now reported. [tr#31134]
- Previously, when a nested structure contained an object field,
attempting to write to the field directly caused a segmentation
fault. A "Cannot write to this entity" error (NOWRITE) is now
reported. [tr#31143]
- Assigning an object to a handle within the scope of another
object has been corrected in some situations where the resulting
scope was being set to the wrong object. [tr#31149]
- Previously, attempting to box/unbox a local structure within
the context of an IF statement caused a segmentation fault. The
compiler now correctly generates a BOXLCLSTR error. [tr#31189]
- A call outside of a TRY block was incorrectly allowed. This
has been fixed and a "Label %s out of scope" error (LBLSCOPE)
is now correctly reported. [tr#31206]
- Installation
- The web-distributable release of 64-bit Synergy/DE now
unpacks its files to a different default location than 32-bit
Synergy/DE so the installation files will not be overwritten.
[tr#31167]
- Linker
- We fixed dblink to verify that the read of the header in a
DBR file does not have an error. Previously a segmentation fault
could occur. [tr#31065]
- Windows, UNIX) The linker was modified to detect and report
when a referenced ELB was built with the wrong endian type or
the wrong bit size (32-bit vs. 64-bit). [tr#31141]
- Runtime
- (Windows) In versions 9.3.1 and 9.3.1a, a problem existed where
ONERROR code execution was being directed to the wrong label. If an I/O statement
containing an I/O error list generated an EOF, the next error that occurred while
an ONERROR was in effect would erroneously cause the previous I/O error list to be
processed, instead of the ONERROR label(s). [tr#31214]
- (Windows) Previously, the service runtime dbssvc destroyed
objects before calling the on-exit routine. This has been fixed
to destroy objects after the exit routine has been called.
[tr#31060]
- FOR statement processing now goes through the correct number
of iterations for integers where the start value is less than
-1073741824 and the end value is greater than 1073741824.
[tr#31123]
- Previously, the debugger display of static class fields when a
record or group was specified was shifted by several bytes. The
contents of the record or group are now displayed correctly.
[tr#31124]
- A THROW with an uninitialized or NULL object handle now
generates an "Invalid use of NULL object" error ($ERR_NULLREF)
and is mapped to System.SystemException.NullReferenceException
when caught. [tr#31125]
- A condition where an ISAM file cache was not being flushed
to disk, resulting in file corruption, has been resolved. The
condition occurred when a DELETE/READS/CLOSE operation occurred
on an ISAM file opened with exclusive access with system
option #36 (file flushing) set. Additionally, a process being
killed or a system crash with system option #36 set still
corrupted the index of the ISAM file. [tr#31131]
- (Windows) On a 64-bit operating system, an SQL Connection
program failed unless dblvars32 or dblvars64 was run. This has
been fixed. [tr#31137]
- Attempting to assign an object contained within another object
to the only existing handle referencing the containing object no
longer causes an "Invalid class handle" error (INVCLSHND) or
segmentation fault. Example: HND1 = HND1.HND2 [tr#31140]
- (Windows) We changed how LPQUE locates its printer when
printing via xfServer. This should allow more uses of LPQUE
without a user profile being loaded. [tr#31147]
- (Windows, UNIX) The runtime was modified to detect and report
when a referenced ELB was built with the wrong endian type or
the wrong bit size (32-bit vs. 64-bit). [tr#31141]
- The System.Array static methods IndexOf and LastIndexOf now
both allow a ^NULL target value object handle to return the index
of the first or last ^NULL entry in an array. [tr#31151]
- An ISAM index caching problem that occurred when 65535
operations occurred on another channel or process before the
current channel update operation was executed and that caused
random segmentation faults or index incongruity errors has
been resolved. [tr#31160]
- (Windows, UNIX) A READ/READS of a locked ISAM file record
using the WAIT qualifier no longer generates an "Unexpected
system locking error" ($ERR_INTLCK) instead of a "Record is
locked" error ($ERR_LOCKED) when the WAIT period expires before
the record becomes unlocked. On UNIX, successive polling attempts
to read a locked ISAM file record using READ/READS (without
using the WAIT qualifier or SLEEP statement between attempts)
no longer generates $ERR_INTLCK (303) instead of $ERR_LOCKED (40)
after 12 retries. [tr#31164]
- STOP <nnn> (where <nnn> is a number), called from within a
TRY-CATCH block whose scope includes a FINALLY block, no longer
generates a segmentation fault. Additionally, a STOP <prog>
(where <prog> is the name of a program to chain to), also called
from within a TRY-CATCH block whose scope includes a FINALLY
block, now executes the FINALLY block prior to chaining, as
expected. [tr#31172]
- (Windows 64-bit) A segmentation fault could previously occur
when an external DLL called back into the runtime and then
the callback routine issued a STOP statement. This has been
fixed. [tr#31180]
- (Windows) Windows 7 and all 64-bit Windows platforms now
prevent exceptions from being thrown across the kernel
(user32.dll) boundary. This means that a Windows callback--for
example, a .NET assembly API delegate called from a WinForm or
an ActiveX event called from a UI control--cannot perform a
STOP chain or throw an exception that could be caught in a
routine on the other side of the callback without causing
random hangs and crashes. We have updated the Synergy runtime to
generate an $ERR_NOCHAIN error if a Windows callback attempts to
perform a STOP chain. (We cannot, however, prevent the callback
from throwing an exception that could be caught in a routine on
the other side.) THIS ISSUE MAY BREAK YOUR CODE. [tr#31201]
- Synergy ActiveX API
- In versions 9.3.1 through 9.3.1a, returning a double parameter
via the ActiveX API after an integer parameter sometimes resulted
in a BIGNUM error. This has been fixed. [tr#31198]
- Synergy Configuration Program (SynConfig)
- In 9.3.1a, if you created an xfServer or xfServerPlus service
that had encryption enabled but you cleared the certificate file
field, an error occurred when registering the service. The default
certificate file is now used in this situation. [tr#3105
- Synergy HTTP document transport API
- Previously, the system error text was not appended when a
"Gethostbyname failed" error occurred. In addition, on UNIX, the
error code returned was SS_ENULL instead of the correct error
code. These have been fixed. [tr#31196]
- Synergy .NET assembly API
- We added a second version of gennet.exe, gennet40.exe (with
an accompanying gennet40.exe.config), which can load both 4.0
and 2.0 CLR assemblies. (Gennet.exe can only load 2.0 CLR
assemblies.) [tr#30778]
- We added an environment variable, SYNNET_CLR, to control the
CLR version. If SYNNET_CLR is not explicitly set to 2 or 4, the
Synergy .NET assembly API will default to the 2.0 CLR. (Note that
in version 9.5, the default value for SYNNET_CLR will change to
4.0.) [tr#31117]
- In 9.3.1a, a Windows Presentation Foundation (WPF) control
sometimes doubled some keyboard input. This has been fixed.
[tr#31145]
- Gennet cannot support classes outside a namespace. We have
modified gennet to detect this condition and output an appropriate
error. [tr#31161]
- Previously, specifying a path or logical that contained 8.3
syntax (such as c:\progra~1\...) on the gennet command line caused
errors when prototying a generated file or when using -s xmlfile.
8.3 file specification are no longer allowed in the .NET assembly
API. [tr#31153]
- Previously, passing a Boolean or integer literal to a .NET
assembly API method triggered a segmentation violation. This has
been fixed. [tr#31204]
- Synergy Windows printing API
- In previous versions, if a report was printed to the Microsoft
XPS Document Writer but the user canceled the subsequent "Save as"
dialog, a Windows error 1223 or 122 was signaled. A trappable
$ERR_IOFAIL error with the informational text "user aborted spool"
is now correctly generated instead. [tr#30188]
- In previous versions, a multi-monitor configuration could cause
the print preview window's contents to be sized improperly. This
has been fixed. [tr#30925]
- In 9.3.1 through 9.3.1a, setting a property for the default
printer (such as orientation) was not reflected in the printer
selection dialog box. This has been fixed. [tr#31195]
- Synergy XML API
- In 9.1.5 through 9.3.1a, %XML_ATTR_COPY truncated the length
of an attribute's name to be the length of the attribute. This
has been fixed. [tr#31132]
- Utilities
- We fixed listdbr to verify that the read of the header in an
ELB file does not have an error. [tr#31065]
- The dblproto utility now displays a warning message (for
example, "%DBLPROTO-W-SKIP: Error on Method: skipping
MyClassMethod") when it skips processing part of a file when
dblproto encounters an error. [tr#31087]
- (Windows, UNIX) The listelb and SMC/ELB Comparison utilities
were modified to detect and report when a referenced ELB was built
with the wrong endian type or the wrong bit size (32-bit vs. 64-bit).
[tr#31141]
- The dbl2xml utility no longer generates a segmentation fault
on a structure reference when a prototype file is imported with
a structure that was included from a repository. The repository
structure name is correctly retrieved. [tr#31156]
- Dbl2xml and dblnet2xml no longer cause a segmentation fault
in the C++ runtime. [tr#31174]
- UI Toolkit [Expand All UI Toolkit | Collapse All UI Toolkit]
- List Processing
- (Windows) In previous versions, Toolkit would sometimes fail
to process a D_LMOVEDN (L_PROCESS) request on the last visible
item of a resizable list with buttons when there were more items
below the last visible one. Instead, the last visible item
appeared to be deleted, and Toolkit marked the end of the list at
that point. This affected the "Reorder fields" function of
Synergy/DE Repository. This has been corrected. [tr#30991]
- (Windows) In previous versions of the ActiveX Toolkit list
control, if a user modified a field by entering a value with
fewer characters than the maximum allowed for the field, and if
the program subsequently displayed a longer value into the same
field, Toolkit would sometimes truncate the longer value to the
number of characters the user had entered. This has been
corrected. [tr#31183]
- (Windows) In 9.3.1 and 9.3.1a, loading a large ActiveX Toolkit
list would sometimes cause a resource error (either during list
processing or later during the creation of a window.) This has
been corrected. [tr#31076]
- Miscellaneous
- (Windows) Windows 7 and all 64-bit Windows platforms now
prevent exceptions from being thrown across the kernel
(user32.dll) boundary. This means that a Windows callback--for
example, a close method invoked by clicking the close box (x) for
a container--cannot perform a STOP chain or throw an exception
that could be caught in a routine on the other side of the
callback without causing random hangs and crashes. We have
updated the Synergy runtime to generate an $ERR_NOCHAIN error if
a Windows callback attempts to perform a STOP chain. (We cannot,
however, prevent the callback from throwing an exception that
could be caught in a routine on the other side.) NOTE THAT THIS
ISSUE MAY BREAK YOUR CODE. [tr#31201]
- Repository
- Loading fields from a definition file when the file contains
overlay fields within a group no longer causes an error.
Additionally, we fixed a bug where group overlays (,X) were not
loaded unless the comma immediately followed the type/size.
For example, this wouldn't work: ,A30 ,X
But this would: ,A30, X[tr#22867]
- Professional Series Workbench [Expand All Professional Series Workbench | Collapse All Professional Series Workbench]
- COM, Java, and .NET projects
- wWorkbench no longer provides a Target .NET Framework version
combo box on the .NET Environment configuration dialog. The target
version is controlled by the version of the C# Compiler that is
executed (csc.exe). When you select a vsvars32.bat or sdkvars.bat
file to be used, you are effectively determining the version of
the .NET Framework that you would like to target. The first
Framework referenced by the environment PATH variable is the
version that will be used. [tr#31163]
- Synergy/DE Options dialog
- When inserting a path (not a logical) into the object path
field of the Compile tab on the Synergy/DE Options dialog,
omitting a trailing slash previously caused undefined behavior.
This has been fixed. [tr#31036]
- The Synergy/DE Options dialog is no longer resizable. [tr#31039]
- The tab order on the Compile tab has been fixed. [tr#31084]
- Other options on the Compile tab are now refreshed correctly
when the state of the debug field changes. [tr#31092]
- In 9.3.1a, a problem in the save logic of the Synergy/DE
Options dialog was handling changes to an individual
configuration the same as a change to All Configurations. This
has been fixed. [tr#31126]
- Workbench now provides better support for paths containing
spaces when they are inserted into the -expdir field on the
Prototype tab. [tr#31130]
- Synergy/DE projects
- When using the %rn token in the Synergy/DE Options dialog,
Workbench will no longer replace it with a lowercase variant of
your project name. The actual case is now preserved. [tr#31042]
- When dealing with projects with large file counts that did not
use the "Compile sources into a single object named" feature,
Workbench took too long generating the build batch files. This
performance issue has been fixed. [tr#31056]
- Previously, When using the object path field on the Compile tab
of the Synergy/DE Options dialog with "Compile sources into single
object named" field unchecked, it was possible to get duplicate
items in the link command line based on the object path. This has
been fixed. [tr#31058]
- The generate batch file feature no longer halts the build
process when the file is read-only but the user opts to make it
writable. [tr#31083]
- Visual editor
- The *.* file selection in the Smart Open dialog now works
correctly. [tr#30979]
- In 9.3.1 and 9.3.1a, the Find dialog sometimes remained
open after a successful search. This has been fixed. [tr#31115]
- xfServer
- We fixed a boundary condition in xfServer that could cause
memory corruption when SCS_PREFETCH was used. In addition, we
fixed a problem in which an "out of memory" error caused
xfServer to crash in certain cases. [tr#31114]
- (Windows) Concurrent select operations to a Windows xfServer
could cause data corruption or a segmentation fault. This has
been fixed. [tr#31208]
- xfServerPlus [Expand All xfServerPlus | Collapse All xfServerPlus]
- xfServerPlus
- We fixed a problem in which xfServerPlus with a Synergy
client did not retry on an EINTR signal when performing a select
operation, causing a premature failure that would othewise result
in a successful operation. [tr#31129]
- Method Definition Utility
- Previously, you could import a single method when there
was a duplicate method name in the same interface already in
the SMC. This now correctly generates an error. This problem
was caused by the fix in tr#22066 in 9.3.1, which has now been
backed out and deemed a restriction. [tr#31040]
- We corrected a problem that caused the MDU to generated
errors when importing by method name, which didn't appear
when importing the same methods by interface. [tr#31077]
- A GUI import done by method name permitted the import of a
method without an interface name from an XML file generated by
dbl2xml. This has been fixed. [tr#31078]
- Import error messages now always include the name of the
interface being imported. [tr#31080]
- We fixed the error message that displays when an invalid
enumeration name is selected in the "Find Repository Enumeration"
dialog. [tr#31017]
- The menu entry "Select Enumeration" is now correctly disabled
when the "Description" drilldown is selected. [tr#31019]
- We fixed a problem that caused corrupt log messages in the
xfServerPlus log and the Windows event log when encryption was
enabled. [tr#31188]
- xfNetLink .NET Edition
- We now support Visual Studio 2010 and Framework version 4.0.
- The "Original" property (new in 9.3.1; see tr#30422 below) is
now generated only when you use the gencs -r option. [tr#31136]
- We corrected a problem introduced in 9.1.3 that prevented
"ClickOnce deployment" with xfnlnet.dll. Note that ClickOnce
deployment is not supported. [tr#31071]
- We corrected a problem in gencs that caused a C# compiler
error when a repository structure was used as a group within
multiple structures and as a parameter. [tr#31165]
- Previously, when a structure contained a group with a binary
field, and the SMC indicated that the parameter should be
created as an ArrayList of structures and a DataTable, gencs
was not correctly converting the binary field to a byte array
and would generate an error. We corrected this problem.
[tr#31094]
- Previously, when encryption was enabled, the client was not
sending the shutdown message over the encrypted socket, and
so an "OpenSSL error" was written to the Windows event log.
We corrected this problem. [tr#31194]
- Synergy/DE Data Provider for .NET
- The Synergy/DE Data Provider for .NET now supports Visual
Studio 2010. See the "Important Notes and Warnings" section of the
Synergy/DE Data Provider for .NET release notes for information on moving
from Visual Studio 2008 to Visual Studio 2010, and see "Documentation Corrections
and Additions" section for information on accessing help in Visual Studio 2010.
- In previous versions, with Visual Studio 2008 it was difficult
to clear the Modify Connection window's Password field if it had
a password when the window opened. This has been corrected.[tr#30123]
- Synergy/DE 9.3.1a [Expand All | Collapse All]
- Synergy Language [Expand All Synergy Language | Collapse All Synergy Language]
- Analysis engine
- We now prevent type resolution of a data type specified as NULL or @NULL. [tr#30246]
- If a local field had the same name as the namespace of a class being instantiated
with a new statement that had a fully qualified path, the analysis engine gave an
invalid NOTCALLABL error. This has been fixed.
- Compiler
- The prototype for L_SELECT has been fixed to allow the second argument to both pass and
receive a request flag. [tr#25685]
- In 9.3.1, PROTOMISMCH and BSTMTCH errors were sometimes generated incorrectly when compiling with
-qcheck (bounds checking) and using prototyping. Linker errors also occured. This has been fixed.
[tr#30955, 30944]
- In 9.3.1, record with user-defined fields that were .INCLUDEd from a repository no longer included
type and size. This has been fixed. [tr#30954]
- Comparing a non-object type to ^NULL in an IF statement now correctly generates a compilation error.
[tr#30929]
- (OpenVMS) Sometimes dblproto creates filenames whose length is greater than 39 characters when
the namespace and class names are added. OpenVMS disks with ODS-2 structure cannot rename the
temporary filename to a name greater than 39 characters in length. The blproto program informs the user
of the problem when it cannot create the file. [tr#30993]
- In 9.3.1, when prototypes with the same name existed in multiple directories specified by SYNIMPDIR,
a TOKUDF error was generated. We now prevent the second prototype from being imported. [tr#31003]
- The seventh argument to DD_ALIAS in the Repository subroutine library has been changed from type a to type n.
THIS MODIFICATION MAY BREAK YOUR CODE. [tr#31005]
- Debugger
- The debugger has been fixed to correctly break in a CATCH after an error occurs in an intrinsic function in a TRY block. [tr#30947]
- (Windows) In 9.3.1, if you ran an application in debug mode, when it was waiting for normal application input, hovering the mouse cursor over the debug window caused the debug window to
flicker, and you could not bring the debug window in front of the application window. This has been fixed. [tr#31048]
- Installation
- (OpenVMS) The OpenVMS installation script now asks about encryption when installing xfServer/xfServerPlus and appropriately modifies the synergy_server command line in the
SYS$MANAGER:synergy_startup.com file. [tr#30325]
- Runtime
- We improved the performance of the QSORT routine. [tr#30987]
- We added a new ^VAL function called %GETCRC to retrieve the internal CRC value from a GRFA. See "Documentation Corrections and Additions" below for syntax. [tr#31020]
- Data encryption using overlapping buffers that exceed 4K and don't start at the same offset now decrypts properly. [tr#30985]
- (OpenVMS) In 9.3.1, a WRITE to a non-ISAM/non-relative file no longer generates an $ERR_RECNUM error ("Illegal record number specified") when the record number argument is not present. This
behavior is specific to OpenVMS and equivalent to the behavior in prior versions of Synergy/DE on OpenVMS, but it is illegal on all non-VMS platforms. [tr#30983]
- The XCALL GETFA keywords SLE and SLC no longer fail with an $ERR_OUTRNG error ("Value out of range"). [tr#30982]
- Previously, when the %SYN_UNESCAPE_HANDLE function was used either directly or via the XML API, memory was sometimes accessed incorrectly, causing a segmentation fault. This has been fixed. [tr#30978]
- A SELECT statement to an OpenVMS server when a record is locked now returns the locked record's contents (read regardless of lock) instead of giving an $ERR_LOCKED error ("Record is locked"). [tr#30972]
- A SELECT statement between big- and little-endian machines that used integer keys and/or fields previously sent the integer value for comparison in the wrong endian order. This has been fixed. [tr#30968]
- In 9.3.1, passing an implied temporary variable (for example, the result of a numeric expression of %IMPLIED) to FP_FROM_NUM previously resulted in a segmentation fault. This has been fixed. [tr#30957]
- (UNIX) Using LPNUM with system option #22 failed in 9.3.1. This has been fixed. [tr#30956]
- (OpenVMS) In 9.3.1, when system option #22 was not set, the LPQUE statement processed the COPIES, DELETE, and FORM options incorrectly. This has been fixed. [tr#30998]
- The runtime now traps segmentation faults on Windows Vista and subsequent platforms, instead of using Windows Error Reporting. This enables you to see the Synergy stack trace. [tr#31007]
- (SCO OpenServer) An "Unexpected system locking error" ($ERR_INTLCK) is no longer generated on a read that occurs at the same time that a child process terminates. [tr#31016]
- (Windows, UNIX) When sorting a file using the SORT statement, a file with 8-bit character keys now sorts correctly when the sort key is type /a (alpha). [tr#31018]
- (Windows, UNIX) Previously, when an RTNNF error was generated, the called from name and the routine name were reversed. In addition, the name of the routine in error was not unmangled.
This has been fixed. [tr#31022]
- (Linux) Using gcc to link with xclapi, httpslib, or synssl objects no longer generates a _fast_intel_memset or _fast_intel_memcpy not defined error. [tr#30964]
- (Windows 64-bit) In 9.3.1, due to a build issue, performance was reduced because of internal memory debug tracking being enabled. This has been fixed.
- Synergy Configuration Program (SynConfig)
- SynConfig now allows DBLDIR to be changed when creating an xfServer or xfServerPlus service. Due to a regression made in version 9.3.1, DBLDIR was always being reset, and this was not apparent until you attempted to start the service or restart SynConfig. [tr#30975]
- In previous versions of SynConfig, the value used for DBLDIR in newly created services was based on the value of the SYNERGDE environment variable. However, this variable is not set on 64-bit systems. We have corrected SynConfig so that it now uses SYNERGYDE64 if the 64-bit version of SynConfig is being executed. On 32-bit systems, SynConfig will use SYNERGYDE32 if it is set; otherwise, it will use SYNERGYDE. [tr#30967]
- SynConfig no longer generates an error "rsynd.pem, {No such file or directory}" when creating an xfServer or xfServerPlus service with encryption and using the default location "DBLDIR:rsynd.pem" for the PEM file. [tr#30934]
- (Windows) When Enable encryption is checked for the Default service, a new xfServerPlus service no longer inherits this setting if its Enable encryption setting is unset. [tr#30933]
- In previous versions of SynConfig, if you created an xfServer or xfServerPlus service or made changes to one, and before clicking Apply, you clicked Modify Service but then made no changes and OK'd the dialog, clicking OK or Apply on SynConfig's main panel did not apply the previous changes or create the service. This has been fixed. [tr#30935]
- SynConfig now correctly uses SYNERGYDE/SYNERGYDE32 or SYNERGYDE64 (for 64-bit) to locate rsynd.exe. [tr#30999]
- Synergy HTTP document transport API
- We have enabled support for the parameter for HTTPS requests in %HTTP_CLIENT_GET and %HTTP_SERVER_RECEIVE. [tr#30977]
- A small memory leak for every HTTPS operation has been fixed. Over time, this could have caused a process to run out of memory. [tr#30976]
- (Linux) Using gcc to link with xclapi, httpslib, or synssl objects no longer generates a _fast_intel_memset or _fast_intel_memcpy not defined error. [tr#30964]
- Synergy Language C interface
- (Linux) Using gcc to link with xclapi, httpslib, or synssl objects no longer generates a _fast_intel_memset or _fast_intel_memcpy not defined error. [tr#30964]
- Synergy .NET assembly API
- We now call Form.Dispose on a .NET form if the version of .NET being used provides it. [tr#30994]
- Utilities
- In 9.3.1, when prototyping and compiling files individually, a comment on something that would appear in the prototype could cause a PROTOMISMCH error. This has been fixed. [tr#30988]
- The error displayed when an old format SMC file is specified has been updated and consolidated to not mention a version. [tr#30931]
- The dbl2xml utility now handles group arguments correctly. They are processed as a single field of the type and size specified in either the parameter definition or with the xfParameter attribute. [tr#30910]
- UI Toolkit [Expand All UI Toolkit | Collapse All UI Toolkit]
- Environment Processing
- We updated %E_INFO so that it returns 0 whenever it is called with D_ENV_LEVEL while Toolkit is inactive. In previous versions, if you called %E_INFO with D_ENV_LEVEL, it would return 0 if Toolkit had never been initialized (with U_START) in the current session, and it would return 1 if it had been initialized and subsequently terminated (with U_FINISH). Now it returns 0 in both cases. [tr#30959]
- (Windows) In version 9.3.1, if a call to E_SECT or E_EXIT resulted in the elimination of a centered or right-justified portion of text in an information or footer line, that text would not be erased until something else was displayed in its place. This has been corrected. [tr#30963]
- Input Processing
- (Windows) We added the and arguments (previously implemented for B_BUTTON) to IB_BUTTON. [tr#30958]
- (Windows) In previous versions, if a field was right-justified or center-justified and used a fixed-pitch font, the position of the caret would sometimes be off by a character. This has been corrected. [tr#30973]
- In previous versions, if you entered a value in an i8 field that was less than the lowest negative value that can be represented in an i8 field, Toolkit would bit-truncate the value without an error message. This has been corrected. Toolkit now reports a "Value too large for field" error in this case. [tr#30986]
- (Windows) In previous versions, signaling the I_CANCEL menu entry would not cause Toolkit to reset the contents of a multi-line field to its previous contents. This has been corrected. [tr#30950]
- List Processing
- (Windows) We now distribute version 8.0.0.9 of the FarPoint Spread ActiveX control, which is the control we use for ActiveX Toolkit lists. [tr#31025]
- The prototype for L_SELECT has been fixed to allow the second argument to both pass and receive a request flag. [tr#30961]
- In previous versions, double-clicking on an ActiveX list would in rare cases cause a segmentation fault. This has been corrected. [tr#30997, tr#31023]
- .NET Processing
- (Windows) In previous versions, some .NET controls would fail to see some keyboard input. For example, in one case, a DevExpress text box did not recognize lowercase characters. This has been corrected. [tr#30932]
- Tab Set Processing
- (Windows) We added the and arguments (previously implemented for B_BUTTON) to the DTS_BUTTON subfunction of %TS_TABSET. [tr#30958]
- Utility Routines
- In previous versions, if a window failed to load from a window library and an error argument (e.g., the argument for U_LDWND) was passed to prevent an abort, a subsequent call to %U_GETWNDERR would not return the text of the trapped error. This has been corrected. %U_GETWNDERR now returns the error text that would have been reported by U_ABORT had the error not been trapped. [tr#30951]
- Miscellaneous
- In previous versions, if a method could not be loaded because it was in an ELB that was opened at runtime and it referenced a global data section that was uninitialized, the resulting error message indicated only that the routine (or a routine that it calls) could not be found. This has been corrected. The error message now says " (or a routine it calls) missing, or GDS uninitialized," where is the name of the method. [tr#30970]
- Connectivity Series [Expand All Connectivity Series | Collapse All Connectivity Series]
- xfODBC
- We added a field, Signed, to the Column window of the xfODBC Database Administrator (the DBA program). This field indicates whether a numeric column in the system catalog is signed or unsigned (which is determined by whether "Negative allowed" or a positive range of values is selected for the corresponding field in the repository). [tr#31041]
- If a SQL statement has a FROM clause and a WHERE clause, and
the FROM clause has an inline view with a join, xfODBC now
correctly applies the criteria for the outer WHERE clause to the
legs of the inline view, improving performance. [tr#31032]
- In previous versions, if you used dbcreate with a conversion setup file (-i) in which a table had been marked as OUT, dbcreate would sometimes attempt to create a table twice. This resulted in a "is already defined" caution and prevented remaining tables from being generated. This has been corrected. [tr#31047]
- In previous versions, SQLColumns would sometimes report incorrect lengths for decimal fields. This has been corrected. [tr#31031]
- Repository
- The data type of the seventh argument to DD_ALIAS has been changed from alpha to numeric. THIS CHANGE MAY BREAK YOUR CODE. [tr#31005]
- Pressing F7 to select a format for a date or time field, and then switching back to the Field Definition tab, no longer causes a "no field set defined for window" fatal error. [tr#30966]
- Professional Series Workbench [Expand All Professional Series Workbench | Collapse All Professional Series Workbench]
- COM, Java, and .NET projects
- The .NET Environment Configuration dialog was meant to be modal but was non-modal in the 9.3.1 release. This allowed for incorrect interaction with the Component Information Dialog or editor buffers while the .NET Environment Configuration dialog was open. This has been fixed. [tr#30930]
- We improved the error message that is displayed when creating a Java, .NET or COM Component project with a project name that is an invalid component name. [tr#25314]
- Component Information dialog
- Several text boxes in the Component Information Dialog had right-arrow key press behavior that was not uniform to most text boxes throughout the editor. Namely, a right key press at the end of the text box would not continue one space past the end of the line. This behavior has been changed to match other text boxes. [tr#25252]
- Synergy/DE projects
- By request, Debug32 is now the default configuration in new Synergy/DE, Synergy/DE Application, Synergy/DE Executable Library (ELB) and Synergy/DE Object Library (OLB) projects. [tr#30942]
- When certain tools in Workbench (for example, Generate C# Classes) encounter an error, the error output will now be slightly more verbose to hasten discovery of the problem (for example, licensing errors). [tr#24092]
- We fixed an issue that caused compile error markers not to display on the first compile after opening Workbench. [tr#30992]
- The generated batch file feature now supports SlickEdit variables in the Open commands of the project. The following variables are supported: %w, %wp, %wn, %r, %rp, %rw, %rn, %b and %bn. [tr#31010]
- Workbench no longer performs bad token replacement for the link command on Build when the output file contains an %n token. [tr#31011]
- When appending libraries to the lists on the Synergy/DE Options dialog, if a library extension is not provided, Workbench now fills one in for you. [tr#31013]
- Workbench now handles non-logical object paths correctly. [tr#31024]
- Switching between two projects in the same workspace that both have 64-bit configurations active previously resulted in the 64-bit environment settings being lost. This has been fixed. A side effect is that a user without a valid 64-bit installation may encounter additional error messages when opening a project currently in a 64-bit configuration. [tr#31028]
- The Workbench build system now includes default extensions for the compile, link, and librarian output files. [tr#31030]
- When working with large projects and the generate batch file feature in Workbench's build system, Workbench creates redirected input files to accommodate command lines that exceed Windows' limits. However, it incorrectly used DOS-style environment variables instead of Synergy logical syntax within file paths, causing the build to fail when run from the batch file. This has been fixed. [tr#31043]
- Synergy/DE Options dialog
- We now offer a switch for the command that opens the Synergy/DE Options dialog. By adding "-ac" as a parameter, the command will open the Synergy/DE Options dialog to the active configuration, rather than to "All Configurations." [tr#31029]
- The Synergy/DE Options dialog now defaults to the "All Configurations" configuration. [tr#31001]
- The Command line preview field on the Compile tab now refreshes correctly when the "Compile sources into a single object named" field is changed. [tr#31009]
- Under certain circumstances, a bug in Workbench caused the Synergy/DE Options dialog to render data that did not belong to the selected configuration. This has been fixed. [tr#31035]
- Tagging
- The default language settings for Workbench did not contain the "$" character in the string of valid identifier characters for Synergy Language. This has been fixed. [tr#31004]
- Under certain circumstances, Workbench could not provide tag information for the contents of an implicit main routine. This has been fixed. [tr#31034]
- User interface
- The Launch Composer dialog now has a slightly larger viewable area. The list box on the dialog offers a horizontal scrollbar for viewing of long filenames. [tr#23080]
- Visual editor
- SlickEdit had an issue in which a toolbar customization could freeze the editor. This has been fixed. [tr#30949]
- Workbench 9.3 introduced a regression of tracker #25333 where launching an external application from a custom build tool would show a build window. This has been fixed. [tr#30941]
- xfServer
- (OpenVMS) Attempting to do a keyed read using an integer key no longer generates an "End of File" error when the client is a Big-Endian machine and the xfServer is a VMS machine. [tr#30920]
- xfServerPlus
- Enumeration member names now have an initial cap (e.g., Green) instead of being all caps (e.g., GREEN) in the generated code. THIS CHANGE MAY BREAK YOUR CODE. [tr#31014]
- A cached read of the CMPDT record for a method no longer aborts the XFPL process unexpectedly causing a network connection lost error on the client. [tr#30974]
- Attribute support (dbl2xml) now correctly handles group arguments. They are processed as a single field of the type and size specified in either the parameter definition or with the xfParameter attribute. Note that if you wish to preserve fields in group arguments on the client side, you should use a structure defined in the Repository. [tr#30910]
- We fixed a boundary case where debug logging could cause a segmentation fault. [tr#31006]
- We fixed a data packet parsing error that occurred when passing a method with two in-only parameters that were both ArrayLists of structures, and the first ArrayList was not initialized but the second contained members. [tr#31045]
- xfNetLink .NET Edition
- Enumeration member names now have an initial cap (e.g., Green) instead of being all caps (e.g., GREEN) in the generated code. THIS CHANGE MAY BREAK YOUR CODE. [tr#31014]
- We fixed a problem that was causing the initial connection to be very slow when it was made by calling the connect() method with a host and port. [tr#30984]
- An integer parsing connection exception no longer occurs when a connection is made on a machine that only returns an IPv6 address and not an IPv4 address. [tr#30981]
- When using COM+ pooling, component settings from the dllhost.exe.config file are now used, if set. Previously, the default settings were being used. [tr#30952]