Release Notifications Archives | Synergex
Phone800.366.3472 SupportGet Support DocumentationDocumentation Resource CenterResource Center
search
close
Open Menu

Synergex Blog


Announcing Synergy/DE 11.1.1f

By Steve Ives, Posted on September 22, 2020 at 2:11 pm

Steve Ives

We are pleased to announce the release of Synergy/DE 11.1.1f. This is a quality improvement release available immediately on all Synergy-supported platforms. Please refer to the release notes f0r important information on issues addressed by this release.

Amongst other things, this release addresses several issues relating to running xfServer with encryption enabled. This is a configuration that we highly recommend for all xfServer deployments. If you are doing so and are running an earlier version of Synergy 11, we encourage you to upgrade your server and client systems to 11.1.1f.


Announcing Synergy/DE 11.1.1e

By Steve Ives, Posted on July 14, 2020 at 2:04 pm

Steve Ives

Due to the discovery of a potentially serious issue in the 11.1.1d release of Synergy/DE, we have decided to withdraw that release on Windows and UNIX platforms and replace it with 11.1.1e, which is now available.

To understand the issue, it is first necessary to understand that enabling compression on a data file can, in rare cases, result in a small increase in the size of some records! This can only occur if the data in a record is not compressible, yet the compression itself adds a small overhead.

It was found that when reading records from a compressed file, by RFA, any records exhibiting this “negative compression” would have one byte of bad data returned at the end of the record.

11.1.1e includes new versions of Synergy/DE 32-bit and 64-bit for Windows and Unix platforms, and Synergy DBL Integration for Visual Studio (build #2769).

We strongly recommend that anyone who has updated to Synergy/DE 11.1.1d on the affected platforms should immediately upgrade to 11.1.1e.

As we needed to release a new version to address the READ by RFA issue, we decided to also include several other quality improvements that had already been completed.

Synergy/DE Runtime

(Windows) In 11.1.1d, when using SYN_RESIZE_SCALE or having a monitor DPI change, some .NET controls would fail to repaint if the application moved between monitors of different DPI or scaling.

Traditional Synergy Compiler

A global structure with the same name as a subroutine no longer causes a segmentation fault when loading prototype files when there are different prototype files for the global structure and the subroutine.

Synergy Configuration Program

We addressed an issue in rsynd that was causing the SynConfig utility to fail with a “Could not complete services import” error when specifying a user account during service import.

Synergy DBMS

We enhanced the isutl utility when recovering change tracking files with bad change tracking links, and the utility no longer crashes if certain wildcard file operations are attempted.

Visual Studio Build System

We fixed an issue in the incremental build feature in SDI 11.1.1d-2749 through 11.1.1d-2763 that caused full project builds to occur when only partial builds were necessary for projects using common.props and with non-Synergy references.

We fixed an issue that prevented low-level libraries in Synergy .NET Core solutions from automatically rebuilding when an output file was missing.

Visual Studio Property Pages

We fixed an issue that prevented Visual Studio settings imported from a file from working until a Synergy DBL option page (Tools > Options > Text Editor > Synergy DBL > …) was opened.

We fixed an issue with Synergy .NET Core and .NET Standard projects that prevented SDI from resolving known MSBuild properties used for pre-build and post-build events.

For additional information and tracker numbers associated with each of these items, please refer to the release notes.


Announcing SDI 11.1.1d-2763

By Steve Ives, Posted on July 2, 2020 at 1:01 pm

Steve Ives

Shortly after the recent release of SDI build 2755 we discovered an issue that we wanted to address as soon as possible, so today we are announcing the release of build 2763, which we recommend for everyone using Visual Studio for Synergy development.

We are not aware of any customers being affected by the issue, and we have removed the download link for the previous build.

For additional information please refer to the release notes.


Announcing Synergy/DE 11.1.1d

By Steve Ives, Posted on June 9, 2020 at 6:49 pm

Steve Ives

More resilient ISAM files, exciting new developer tools, and much more.

A new Synergy/DE patch release is now available to download for all platforms. All customers are encouraged to update to 11.1.1d for access to new features and quality improvements.

Highlighted New Features

The 11.1.1d release introduces many new features across the product set. These are some of the more significant enhancements:

Global I/O hooks

A new “global I/O hooks” mechanism enables you to add I/O hooks to channels within an application without making any changes to existing code. Add an external subroutine named SYN_GLOBALHOOKS_OPEN to your environment, and it gets called during every successful OPEN statement. Add code to the routine to add I/O hooks to the channel as required.

Among many other use cases, this allows you to add data replication to an application with absolutely no changes to the existing code. The feature is available on Windows (in both traditional Synergy and Synergy .NET) and Unix systems. Unfortunately, it was not possible to add support on OpenVMS.

FULLRESILIENT ISAM Files

We have extended the “Resilient ISAM” capabilities introduced in earlier 11.1.1 releases by adding a new ISAM feature called FULLRESILIENT. This new option provides similar capabilities to the existing RESILIENT option, except that for all writes (STORE, WRITE, or DELETE), data is written directly to disk using the OPEN mode FILE_FLAG_WRITE_THROUGH on Windows or O_DSYNC on Unix.

The FULLRESILIENT option can be enabled when using the ISAMC subroutine, the bldism and isutl -p utilities, and when using the ISAM definition language in XDL files.

Support for MYSQL 8

We added support for MySQL 8 in the SQL Connection API on Windows and Linux 64-bit systems. There are some platform restrictions because MySQL 8 requires OpenSSL 1.1.1, which may not be available on some Linux systems. Refer to the release notes for additional information.

Unit Testing for Traditional Synergy

We added a unit testing framework for traditional Synergy, based on the capabilities of the MSTest framework that we already support in Synergy .NET. It is shipped as part of our Synergy DBL Integration for Visual Studio product, although you can also execute tests outside of Visual Studio.

It is easy to get started because we provide a new Visual Studio project template to add a unit tests project to your existing solutions. You can execute tests both from inside Visual Studio, with full Test Explorer UI support, as well as outside of Visual Studio via the VSTest.Console.exe application and .runsettings files.

If you have ever written unit tests for MSTest, this will feel like a familiar environment. You write test classes containing test methods; you decorate those classes and methods with various unit testing attributes. Test classes are decorated with a {TestClass} attribute and test methods with a {TestMethod} attribute. Other attributes facilitate grouping tests by trait, and just like in MSTest, there are a range of options for both preparing a test environment (via {ClassInitialize} and {TestInitialize} methods) as well as cleaning up the environment after tests have run (via {TestCleanup} and {ClassCleanup} methods).

The framework also provides a new Assert class containing a large number of static methods that are used to indicate test method completion status to the test framework.

We know that this does not represent complete MSTest compatibility; in particular, we still need to implement an equivalent of {AssemblyInitialize} and {AssemblyCleanup} methods, which we’ll be working on next.

For now, simply because this new capability has not had much exposure to customers, we are considering this to be a pre-release of the feature, and the release of the 11.1.1d version of Synergy DBL Integration for Visual Studio may trail the main release by a few days. We very much look forward to receiving your feedback on this significant new feature.

Traditional Synergy Debugger Rewritten

We have rewritten the traditional Synergy debugger to improve performance and add many new capabilities, primarily in the area of OO, examining objects, etc. The new implementation yields significant improvements when debugging traditional Synergy code using the Visual Studio IDE’s integrated debugging tools.

As part of the debugger rewrite, we were able to incorporate several new features, all of which improve the debugging experience generally, but in particular, improve the experience when debugging traditional Synergy code in the Visual Studio IDE.

We improved the TRAP ON environment, which now causes a break at the actual line where the error or exception occurred. Previously, the break occurred at the line following any ONERROR or CATCH processing. We also introduced support for evaluating multiple levels of casts, such as “((c2)((c1)a.b).c).d”. And we made it possible to evaluate objects that can vary at runtime (e.g., @* and collection elements) by making it possible to dereference based on their runtime contents. Individually, these improvements are small, but together they result in a marked improvement in the overall experience when debugging in Visual Studio in terms of better hover-over support and improved information in the Locals window.

Other Enhancements

In addition to the highlighted new features mentioned above, this release also includes many more minor enhancements, some of which are listed here:

Add RESILIENT Features to Exiting ISAM Files

We enhanced the isutl utility so that the -p option can now add the RESILIENT option to an existing REV6 or higher file, or to a lower revision file that is being patched to REV6. To enable this option, use the new -qfile=resilient option. Refer to the release notes for additional information.

Enhanced .NET Assembly API Exception Handling

On Windows, we have improved exception handling behavior within the .NET assembly API, used to execute .NET code within a traditional Synergy application. Previously, a .NET exception caught in traditional Synergy exposed the .NET portion of the stack trace in the Message property and the Synergy portion of the stack trace in the StackTrace property. In the new release, the Message property now exposes the exception message, and the StackTrace property reveals the complete stack trace.

UI Toolkit High DPI Improvements

We have made further UI Toolkit enhancements related to improving the overall look and feel on Windows high-DPI displays. Specifically, we improved scaling for buttons and in windows non-client areas (title and menu bar), and we improved the sizing of buttons when the SYN_RESIZE_SCALE option is enabled. In the fonts section of synergy.ini, we added the ability to specify a font specifically for buttons. We also switched to using the Consolas font for the status bar unless a “status” font is specified. We also made some improvements when the monitors’ DPI settings are changed.

REV11 Licensing Upgrade Package Installer Improvements

We made a minor change to the REV11 Licensing Upgrade Package to support installations that are in a non-default location.

Performance Improvements

In addition to new features, we continually search out places that we can enhance performance, in both our tools and your running applications. Here are some of the performance enhancements in the 11.1.1d release:

Mitigation for Intel JCC Erratum Slowdown

We have changed how we build the compilers and runtime by enabling an MSVC compiler option to mitigate the performance impact caused by the Intel “Jump Conditional Code” (JCC) erratum microcode update.

Briefly, Intel released a microcode update for all Intel Gen6 and later processors, correcting an issue that caused “unpredictable behavior” in some circumstances. A side effect of the update is a 2% to 30% performance degradation of affected processors.

Microsoft recently added a new MSVC compiler option, which alters the code to mitigate the JCC Erratum performance degradation. It is essential to be aware of this change because Gen 6 processors have been shipping since 2015 and are likely in a large number of the systems we run today. While 2% of degradation isn’t that important, 30% of degradation could be devastating.

If you are affected by this situation and want a resolution, your solution is to upgrade to Synergy 11.1.1d. For additional information, read Mitigations for JCC Erratum (Intel) and JCC Erratum Mitigation in MSVC (Microsoft).

Select Class Speed Improvement

We have improved the Select class performance when using “sorted” OrderBy (and READ by RFA) over large ISAM files.

Unload to Unsorted File

We have added a new input file option to the fconvert utility on Windows and Unix systems, making it possible to perform file unload operations more quickly.

The new -k  option causes fconvert to use the /nonkey_sequential OPEN option to unload directly from the data file, without the use of any index, resulting in faster unload times but at the cost of the data in the output file being completely unordered.

Also, we have automatically enabled this option if both the input and output files are ISAM files, exclusive access is available, and the key being unloaded does not allow duplicates.

Improved Isutl Performance with Very Large Files

On Windows and Unix, we have improved the isutl utility’s performance when processing extremely large ISAM files (~800 million records or more).

Speed Boost for .NET I/O Code

In .NET, and when targeting the V11 runtime, we have improved the performance of all routines that use I/O statements by reducing object creation for every I/O statement executed to just one object for all I/O statements executed for the routine.

UI Toolkit Window Creation Speed

In Windows UI Toolkit, we have improved window creation performance to help mitigate slowdowns in Microsoft code in later Windows 10 releases.

Highlighted Quality Improvements

Of course, every release also includes quality improvements, many of which are directly related to customer issues. Generally, you would go to the release notes for detailed information about quality improvements, but here we call out a few of the more important ones that we feel customers need to know about:

Fixed “Class Handle Released” Runtime Failure

We fixed an issue that could occur in versions 11.1.1 through 11.1.1c, in which an internal runtime failure “Class handle released” occurred randomly, mostly in .NET interop code.

Corrected FCONVERT Random Freeze

We fixed an issue that occurred from 11.1.1 to 11.1.1c, in which fconvert randomly froze up in some instances where the ISAM file had multiple keys and the system had multiple CPU cores.

Addressed Debugger Hangs

We fixed an issue in the traditional Synergy compiler that could occur in versions 10.1.1 to 11.1.1c, where examining an unused variable in a module compiled -debug (rather than debug=full) caused the debugger to hang.

We also fixed an issue in the traditional Synergy compiler that could occur in versions 10.3.3 to 11.1.1c, where a step into a line accessing the get() routine of a simple one-line property caused the debugger to hang.

Visual Studio Builds Blocked

We corrected a situation that could occur when building solutions in the 11.1.1c SDI builds, where a thread-locking performance problem could cause Visual Studio build operations to be blocked, behind background IntelliSense load operations. As a side benefit, this fix should noticeably improve load performance for large solutions, especially those with Synergy Repository projects and C# projects.

SQL Connection Licensing Error

On Windows, we addressed an issue that could occur in versions 11.1.1 through 11.1.1c when using a network connection to a remote SQL OpenNet Server:  an “Exceeded Maximum User” licensing error could happen in some cases.

Erroneous xfServer Key Not Same Errors

On Windows and Unix, we corrected an error in 11.1.1 through 11.1.1c that occurred when using xfServer to access a file on a remote system: in some cases, a READ by numeric key could incorrectly report a “Key not same” error.

New Downloads Site

We have also introduced a new downloads site, which is currently live for all Synergy/DE 11 products. For more information on this please refer to Announcing our New Product Downloads Site.

 

As always, for a complete list of changes, please refer to the release notes, and Synergy/DE documentation for complete information.


CodeGen 5.5.5 Is Released

By Steve Ives, Posted on June 5, 2020 at 6:07 pm

Steve Ives

We are pleased to announce the release of a new version of CodeGen.

The primary reason for this release is that we realized that the installations for the last several releases were incorrectly signed, resulting in Windows SmartScreen reporting the installation as risky, and doing its level best to discourage you from proceeding.

The affected versions of the installer were versions V5.5.1 to V5.5.4. But apparently people don’t pay too much attention to Windows SmartScreen warnings, because I know there have been lots of CodeGen installations of the affected versions, and not a single person reported the issue! That’s pretty scary, and as software developers, we really should know better! With one exception (Jeff Greene), I don’t know who you are, but YOU know who you are!

The issue turned out to be related to the fact that we have been working from home for the last three months, thanks to COVID-19, and the code-signing process on my home development system was silently selecting the wrong signing certificate! Sorry about that! But rest assured, we restored normality with the 5.5.5 installer, which is, once again, signed with the correct code-signing certificate.

Oh, and if you are looking for new features, we also made all method loop expansion tokens available in parameter loops.

This version of CodeGen is built with Synergy/DE 11.1.1c, needs a minimum of version 10.1.1 to operate, and can be downloaded here.


Improved Visual Studio Developer Tools – Available Now!

By Steve Ives, Posted on April 29, 2020 at 5:29 pm

Steve Ives

We are delighted to announce the immediate availability of a new Synergy DBL Integration for Visual Studio Developer Build and to recommend it for use by all Synergy developers. This new release is versioned 11.1.1c-2714, and it can be downloaded from the Synergy Resource Center now.

For the last few development sprints, we decided to focus on addressing quality issues, some reported by customers, and this new release represents the culmination of a lot of hard work on the part of our dedicated developers, testers, and many others.

There are many improvements and enhancements included in this release, but for now, I’ll highlight just two that are of particular importance to customers, and will significantly enhance developer experience and satisfaction overall:

  • We resolved an issue with deep dependency checking that would cause files from built dependencies to not get correctly copied to referencing projects. This mostly impacted .NET.
  • We resolved an issue that was causing debugger “DataTips” for class fields and properties to not show up.

The release includes many more improvements and enhancements, both in the Visual Studio Integration product, as well as both the Traditional Synergy and Synergy .NET compilers that ship with SDI. For complete information I will refer you to the release notes, you will find a link right next to the download link in the resource center.

If you are already using Visual Studio for your Synergy development then upgrade today, and if not, it’s time to give it a try. The developer experience and productivity in the Visual Studio environment really is second-to-none, and remember, you can always use the runtime version targeting features if you need to produce software that will run with older versions of the Synergy runtime on your customer sites.


CodeGen 5.5.2 Released

By Steve Ives, Posted on March 19, 2020 at 12:47 am

Steve Ives

Apologies for being only a few days after the last CodeGen release, but we’ve been hard at work and have added some really cool new features, and we wanted to share them with you as soon as possible. We have added support for complex expressions, which allow you to use AND, OR and NOT within expression tokens, and also allows you to use parentheses to explicitly define precedence. Here are some examples:

<IF expression_1 AND expression_2>
[code]
</IF>

<IF expression_1 OR expression_2>
[code]
</IF>

<IF NOT expression_1>
[code]
</IF>

<IF NOT expression_1 AND expression_2>
[code]
</IF>

<IF expression_1 AND(expression_2 OR expression_3)>
[code]
</IF>

<IF expression_1 OR expression_2>
[code]
<ELSE expression_3 AND expression_4>
[code]
<ELSE>
[code]
</IF>

We hope you’re as excited as we are about these significant new capabilities.


CodeGen 5.5.1 Released

By Steve Ives, Posted on March 16, 2020 at 10:04 pm

Steve Ives

We are pleased to announce a new CodeGen release that includes a significant new feature named Complex ELSE Clauses. We have some big plans to further enhance IF/ELSE expressions, but for now this initial new feature can be used to simplify complex template file expressions. Here are the full release notes for the new version, which can be downloaded from https://github.com/Synergex/CodeGen/releases.

  • We added support for Complex ELSE Clauses within expressions, which allow multiple expressions of the same type to be evaluated within a single template file construct. We have future plans to extend the capabilities of expressions even further, but for now this new capability can be used to simplify template file code.
  • We improved the error checking that occurs when a processing a Harmony Core Customization File.
  • When using the CodeGen API we have added the ability to specify lists of file overrides at the TaskSet level.
  • We corrected an error that was causing the <HARMONYCORE_BRIDGE_PARAMETER_TYPE> custom expansion token to return incorrect values for structure parameters.
  • This version of CodeGen was built with Synergy/DE 11.1.1c and requires a minimum of version 10.1.1 to operate.

SDI Developer Build 2704 Now Available

By Steve Ives, Posted on February 21, 2020 at 2:04 pm

Steve Ives

We are continually working on improvements to our Synergy DBL Integration for Visual Studio (SDI) product, and we are pleased to announce the release of a new developer build #2704, which is available for immediate download.

This release contains some important improvements in the debugging environment, and also contains some enhancements to IntelliSense related to indexed groups and indexer properties. We also made some improvements in the category options in the new project dialog in  Visual Studio 2019.

If you are running an earlier version 11 release of SDI then we recommend you upgrade immediately to take advantage of these improvements, and if not then you should consider doing so, at least for your development tools. Remember that you can use runtime version targeting to produce binary software for older runtime versions if you’re not ready to upgrade your customer or production systems yet.



Synergy/DE 11.1.1c Released

By Steve Ives, Posted on January 29, 2020 at 6:23 pm

Steve Ives

Important quality improvements for REV11 licensing

A new patch release for Windows and Unix is now available to download on the Synergex website. All customers are encouraged to update to 11.1.1c for important quality improvements.

This update includes new versions of the following products:

  • Synergy/DE (32- and 64-bit)
  • REV11 licensing upgrade package (32- and 64-bit, delivered in one installer on Windows)
  • Synergy DBL Integration for Visual Studio
11.1.1c includes quality improvements for the following issues:
  • IMPORTANT: Previously, in REV11 licensing environments, an expired license error could occur if a license allocated by a program expired while the program was running. Even if new keys had been delivered and installed, if the license server had not been restarted since the new keys were installed, the error could occur.

    It is important that all customers using subscription licensing in a REV11 environment install the 11.1.1c patch (for version 11 systems) or apply the 11.1.1c version of the licensing upgrade package (for version 9 or 10 systems).

    If for any reason you are not able to do so, you should ensure that your license server is restarted as soon as possible after your new subscription keys are delivered. Long-running processes are resilient to a license server restart.

  • In versions 11.1.1a and 11.1.1b, if an attempt to rename a remote file (via xfServer) resulted in an error being generated, in some cases xfServer could fail with a segmentation fault.
  • In versions 11.1.1 through 11.1.1b, using the isutl utility to re-index a large multi-key ISAM file with an index exceeding 4,294,967,295 bytes caused a corrupted index to be created.
  • In versions 11.1.1 through 11.1.1b, when running xfServer in Secure or Trusted mode, a client using the RUSER mechanism to provide login credentials to the server experienced a “Bad username, login rejected” error.
  • In versions 11.1.1 through 11.1.1b, in some circumstances when opening a remote file via xfServer when that server did not already have other files open, the xfServer process could fail.
The patch also includes the following enhancements to Synergy DBL Integration for Visual Studio:
  • We significantly enhanced the Visual Studio build system for Synergy .NET projects by improving the dependency-checking algorithms. Previously, any change in the code of, for example, a class library caused all projects that reference that library to be rebuilt. With these changes in place, dependent projects will only be rebuilt if changes in the dependency library result in the signatures of externally visible items being added, changed, or removed. This will result in a significant reduction in elapsed build times in many cases.

  • We improved the hover-over information (QuickInfo) displayed for type declarations for variables, fields, properties, etc. We added simple colorization and documentation comments (when available), and in some cases, type names are now fully qualified.

See the release notes for a complete list of 11.1.1c changes. See the Synergy/DE 11 page for information about the latest Synergy/DE features.

CodeGen 5.1.6 Released

By Steve Ives, Posted on November 7, 2016 at 4:31 pm

Steve Ives

I am pleased to announce that we have just released a new version of CodeGen with the following enhancements:

  • We modified the way that key loops are processed so that if a repository structure has a mixture of access keys and foreign keys defined, the foreign keys are ignored when processing key loops.
  • We added a new key loop expression <IF FIRST_SEG_NOCASE>.
  • We added four new field loop expressions <IF AUTO_SEQUENCE>, <IF AUTO_TIMESTAMP>, <IF AUTO_TIMESTAMP_CREATED> and <IF AUTO_TIMESTAMP_UPDATED> which can be used to determine if fields are defined as auto sequence or auto time-stamp fields.
  • We added two new key loop expressions <IF AUTO_TIMESTAMP_CREATED> and <IF AUTO_TIMESTAMP_UPDATED>.
  • We added two new key segment loop expressions <IF SEG_AUTO_TIMESTAMP_CREATED> and <IF SEG_AUTO_TIMESTAMP_UPDATED>.
  • We changed the behavior of the field loop expansion token <FIELD_TYPE_NAME> when used in conjunction with auto-sequence and auto-time-stamp fields.

This version of CodeGen is built with Synergy/DE 10.3.3a, requires a minimum Synergy runtime version of 10.1.1, and can be downloaded from here.


Don't miss a post!

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Posts Categories Tag Cloud Archives