Version History

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]