Release Notes

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 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.
We fixed an issue that caused unexpected results for arithmetic operations such as subtraction with two i4 variables that had been cast to i8.
Synergy/DE -
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 that could cause a memory leak when connecting to SQL Server, resulting in excessive memory usage over time.

Synergy Language

Bug Fixes

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.
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..
(.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.
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.

UI Toolkit

Bug Fixes

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.
In 11.1.1c through, 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.
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.