Release Notes

Filter
SDI - 2024.07.1696
July 3, 2024

Visual Studio Integration

New Features

We added templates for the "Multiple Mainline (.NET)" and "Multiple Mainline (.NET Framework)" project types to the Synergex.Projects.Templates NuGet package.
The "dotnet add" and "dotnet add reference" commands are now supported for all project templates in Synergex.Projects.Templates.

Bug Fixes

We fixed an issue that caused Visual Studio to crash intermittently when editing DBL files in traditional Synergy projects. This issue was caused by a threading-related access violation in DBL’s IntelliSense processing.
We fixed an issue with IntelliSense-related processing for SDI that caused unintended errors and red squiggles to appear intermittently (though these did not affect builds).
We fixed an issue that prevented conditional breakpoints from working with Synergy .NET projects. 
We fixed a problem with the SynNETUnitTest project template (in the Synergex.Projects.Templates NuGet package) that caused projects created from this template to have an incorrect import statement.
We fixed an issue that caused a "missing method" exception at runtime when using JsonElement's indexer. This fix also prevents NOPRPMTH errors from occurring when property method names differ in case from "get" and "set" (e.g., "Get" or "Set") and the property is from another assembly.
We fixed a mismatch between the name of the .dbl file that's added to a newly created traditional Synergy unit test project created using the syTradUnitTestProj template (in the Synergex.Projects.Templates NuGet package) and the .dbl file specified in the .synproj file for the project.
We fixed an issue that sometimes caused an error when a build was stareted in Visual Studio while project property pages were open. 
New and unexpected %DBL-E-REFTYPMSMC errors no longer occur after updating SDI when there have been no source changes.
We improved SDI's problem manager logging by implementing a log rotation mechanism that prevents memory leaks.
We fixed an issue that prevented Start Debugging from working in Visual Studio 2022 version 17.10.x.
We fixed a Synergy .NET compiler issue that resulted in an access violation for an overloaded method with a parameter that was an array of boxed bytes.
An access violation no longer occurs when returning a literal string for a method whose return type is a boxed alpha array.
Synergy/DE - 12.3.1.1018
LTS
June 28, 2024

License Manager

Bug Fixes

Using lmk -nc <server> no longer erroneously updates a local machine's registry when <server> has a backup server. This fix avoids subsequent licensing issues for version 10.1 or older clients.
We now prevent a bad registration string starting with "AAAAAAA" from putting a system into a forced expiration due to a registration string mismatch. Instead, we just log the fact that it was encountered.

Synergy Language

Bug Fixes

Using %INTEGER with magnitude 8 on a 32-bit system now returns the full i8 value.
In the traditional compiler, using the Json.JsonElement.ValueKind property of system enumeration across many sources in the same compilation unit no longer causes an access violation.
 We fixed an access violation in dblproto that occurred when prototyping multi-mainline projects.

xfODBC

Bug Fixes

Timeouts set with "SET OPTION TIMEOUT" will now correctly apply to all queries that haven't fetched any rows within the specified time. Note that this timeout applies to each fetch operation but not to the total length of time for a query. (In other words, massive result sets will still take a long time to return, regardless of timeout value.)
If a query generates a sort file and the query fails due to a timeout or sort buffer overflow error, the vtx4 driver now deletes the sort file as expected instead of leaving it after the connection is closed.
SDI - 2024.05.1447
May 3, 2024

Visual Studio Integration

New Features

SDI now supports Synergy .NET projects with multiple Synergy mainline programs. As part of this support, SDI includes two new project templates, “Multiple Mainline (.NET)” and “Multiple Mainline (.NET Framework)”, that enable you to create .NET 6+ or .NET Framework projects with multiple Synergy mainline programs that share project settings and references. A project created with one of these templates results in an application that is distributed as multiple EXEs. Each mainline source file results in a separate executable that can be run and debugged separately.
We added an experimental option to reduce load times for Synergy projects. To invoke this feature, set the SDI_FAST_MODE environment variable to any value before starting Visual Studio. Note that this functionality may cause project references to load in an incorrect order, which could put a project in an invalid state.

Bug Fixes

We now prevent a NullReferenceException error at runtime when declaring a sized descriptor parameter on an ASYNC method.
The compiler for Synergy .NET now reports an IVBAD error if an initial value is provided for a boxed enum or an array of boxed enums.
We resolved problems with IntelliSense showing unexpected errors/red squiggles on the wrong line when opening a file in the Visual Studio editor.
We fixed an issue that prevented colorization from being refreshed for code in an .IFDEF statement when the .IFDEF condition was modified.
When the final parameter for a routine call is "end", and this is on a separate line that begins with an ampersand (&), IntelliSense no longer mistakenly interprets "end" as the conclusion of a BEGIN-END block. Previously, this was misinterpreted, resulting in incorrect indentation for subsequent lines of code.
Casting an enumeration property to an integer no longer causes an error to occur when the compiled program is checked with PEVerify or ILVerify.
We reinstituted a warning message the displays when prototype files (.dbp files that are used internally for IntelliSense symbols) are locked for I/O for extended periods. 
With Synergy .NET, the "Working Directory" setting, which is set on the Application page of project properties, is now stored as a relative path (relative to the solution directory).
We fixed the parser to properly report a lambda syntax error when the return type is incorrectly declared on a lambda.
We fixed an issue that caused unexpected results for arithmetic operations such as subtraction with two i4 variables that had been cast to i8.
We fixed an issue that caused a NOTSUPT error ("due to incorrect size...") when there is a structure is within a record, group, or structure. Additionally, the workaround for this issue (DBLDIR:\bin\dblnet.hcs) is no longer supported.
The Synergy .NET compiler no longer mistakenly reports an E_NTTREF error for a parameter that is a structure from an assemble and that structure is defined in a namespace that has a class with the same name as the namespace.
Synergy .NET Framework projects now support the PackageReferences NuGet package management format. 
The compiler for Synergy .NET now reports an E_NOSPECL error when the braces for an inline lambda expression are missing.
We improved logging that occurs when a catastrophic failure occurs while a background compile is running to generate IntelliSense symbols for a .NET or .NET Framework project. This logging now writes the error text to the background.log file to make it easier to diagnose background compile failures with these platforms.
We fixed an issue that prevented the debugger from breaking on breakpoints that precede a lambda in an ASYNC method.
A FOREACH loop with an implicit element type sometimes caused an internal compiler error if the element type was a user-defined nested class declared after the loop in the same file. FOREACH loops now infer the type properly regardless of where the element class is placed in the file.
We fixed an issue that occurred when casting multiple function arguments to a Synergy integer type. Previously, a value cast in the last argument replaced values for the previous arguments in the same statement.
We fixed an issue that sometimes caused the error "SynergyTasks.DBLinkT task failed unexpectedly" when building a solution.
We fixed an issue where the Synergy DBL text editor formatting options did not get applied until the Tools > Options dialog page had been opened.
We fixed an issue that sometimes prevented IntelliSense from loading for Synergy .NET projects.
Synergy/DE - 12.3.1.1014
LTS
March 8, 2024

License Manager

Bug Fixes

The Synergy License Manager will no longer freeze (blocking license clients such as dbl, dbr, dbs, etc.) when running certain Linux programs (like tmux).

SQL Connection

Bug Fixes

We fixed a regression with SQL Connection (introduced in Synergy/DE 12.1.1.3292) that could cause a memory leak when connecting to SQL Server, resulting in excessive memory usage over time.

Synergy Language

Bug Fixes

When SYN_RESIZE_SCALE was used, window elements often had incorrect dimensions when windows were restored from maximized. The dimensions of the window and its components should now be consistent after restoration.
(.NET) We fixed a Stack Overflow exception in the HTTP document transport API that occurred when sending large documents in post, put, patch, and delete requests by updating the way we allocate memory for documents in the request.
We resolved an issue with the traditional debugger that occurred during an attempt to run the same OPENELB command multiple times. After saving debugger settings by running the SAVE command, the output file contains only the unique ELBs that were opened during the debugging session.
We fixed a problem in the Synergy HTTP document transport API that could cause a socket timeout when making an HTTPS request using a proxy..
We fixed an issue with the traditional debugger that caused a segmentation fault when debugging a program in Visual Studio. A check for the length of a data chunk was updated to mitigate the issue that occurred during processing of debug information and resulted in invalid memory access.

UI Toolkit

Bug Fixes

When using the new BUTTON= in the fonts section of synergy.ini, a size other than 9 or 10 did not result in correct button sizing. This has been fixed.
In 11.1.1c through 12.1.1.3292, the default font for the status bar was incorrectly changed from Arial to Consolas. (Consolas is a monotype font, while Arial is a proportional font.) Arial is now used by default.
In versions 11.1.1c through 12.1.1-3292, the default button size was 10, which caused size and scaling problems for existing applications that expected it to be 9 as in prior versions. This default button size is now 9 again. As most customers default to Consolas;10 from the default app size, they can add BUTTON=SYSTEM;10;A in the font section of synergy.ini to restore the post-11.1.1c behavior. If SYN_RESIZE_SCALE is used, ARIAL;10;A is preferred to SYSTEM:10:A.