Helix RADE, Server, Engine, & Utility are available for Intel-based Macs only. (macOS 10.5–10.9.x)
Helix Client is available for PowerPC and Intel-based Macs. (macOS 10.4–10.9.x)
New and Improved Features
Click each section header to show or hide that section.
- R8774: Performance enhancements
A number of improvements were made to the overall speed of Helix. Although the main focus was on sequences running in Client/Server, the changes reach across all Helix products. Specific tests show performance twice as fast or better as compared to version 6.2.3, and dramatically faster than version 6.2.2.
One of the ways this performance improvement was accomplished can be seen while a sequence is running, where now only the frontmost window is updated; those in the background are not updated until the sequence is done.
- R8762: Structure Check (SC) Log enhancements
Originally reported as ‘Server reports structure damage on manual save’ with a note that closing and reopening the collection would ‘fix’ the damage. The speculation was that a manual save would somehow bypass the normal rules and trigger maintenance that would subsequently appear as a false report of collection damage. But after studying the code thoroughly, we have concluded that a manual save can not trigger maintenance when maintenance is prohibited. However, these misleading reports of damage are disconcerting, and must stem from some source.
In order to gather more information about this issue, additional information — which is useful in and of itself — is now recorded in the SC Log:
- How the check was invoked (Open, Close, Autosave, Manual save, Apple event, other)
- Which Helix application (and version) was used
- Whether the needed maintenance was actually done
To accumulate SC Log data over time, the HxSCAppendLog preference must be set to true. (By default, the SC Log records just the most recent structure check.) See Editing Helix Preferences for more details on changing this preference.
- Structure Check Failure Dialog enhancement
The dialog that appears when a structure check detects errors contains a critical piece of information that is vital to any attempt to correct the problem. In Helix 6.2.4, the wording of that dialog has been revised in hopes of correcting misinterpretations of this information.
The dialog identifies the object that failed the structure check and informs you that QSA provides an AppleScript that you can download for free and run that will identify the actual icon that is causing the problem.
Note: You do not need to know anything about AppleScript to run or execute an AppleScript. Having this information will enable you to correct the problem.
Bug Fixes and Improvements
Click each section header to show or hide that section.
- R8762: Structure Check (SC) Log no longer appends when HxSCAppendLog is not set
A bug in prior versions of Helix caused the default value of the HxSCAppendLog preference to return as true on some systems, although the default was supposed to be false. Helix now always returns false unless the preference has been explicitly set to true. See Editing Helix Preferences for more details on changing this preference.
- R8769: Deleting a power query constant, then its line, no longer crashes
In prior versions, deleting the constant from a line in a power query, then clicking the (-) button next to it (to remove the line) would trigger a crash. This is now handled properly.
- R8776: Advanced query optimizer no longer optimizes an abacus out of existence
When a dynamic popup or subform is query restricted, the advanced query optimizer is used to determine which records to display in the popup. With a specifically constructed query and specific sets of data, the optimizer could neglect to mark an abacus icon as ‘being used by the optimizer’ but then ‘unmark’ it when the optimization was completed. (Technically, a ‘usage counter’ is incremented/decremented.)
This resulted in a very rare situation in which an icon could be deleted during normal Server operations, resulting in collection damage. This bug has been fixed.
- R8777: Extract tile with negative offset no longer wrongly returns ‘undefined’ in certain conditions
When the length of the text being tested is exactly one character less than the negative offset specified (in either socket) of an extract ◊ through ◊ from ◊ tile, the results were incorrectly returned as undefined. This case is now handled properly.
- R8781: Apple event data suite no longer returns the record delimiter when it should not
With the exception of get view data as Helix data (the original spec) the specification for get view data as… legacy actions is to trim the trailing record delimiter from the reply. When R8657 (Reply of subform data truncated when record delimiter is in a field) was fixed, Helix began returning the trailing record delimiter. This has been fixed.
- R8783: Garbage data is no longer returned when ‘include outer data’ is set, but there is no outer data
When an Apple event retrieves data from a view that has the ‘include outer data’ property checked, garbage data was being returned in the place of the outer data. Helix now ignores the ‘include outer data’ property, as Apple events use a specific parameter to retrieve the outer data.
- R8778: Fixes to support for extended file sizes
Helix 6.0 increased the maximum collection size from 2GB to 4GB, and introduced support for collections as large as 64GB. Although tools to modify existing collections to support extended file sizes are not available in Helix 6.2.4, bugs in the underlying code have been fixed. Users who wish to experiment with extended file size collections may do so only with new collections by modifying the HxAppFRTL2Val preference before creating one.
- Text of an Apple event error message now refers to a parameter by its proper name
When a collection is in User Mode (or open with Helix Server) the script must ‘login’ as a user with Design Mode access to the collection structure. To make changes to that structure, the ‘modifying allowed’ parameter must also be passed. The error — when attempting to modify structure without having first supplied this parameter — referred to it as the ‘modify’ parameter.
- Autosave no longer hangs just before midnight
It was possible to configure Autosave in a way that would cause Helix to hang at the end of the day, if left running all night. This has been resolved.
- A crash that could occur when closing a window during printing has been fixed
- A grammatical horror in the ‘save record before…’ dialog has been vanquished
- R8756: Client no longer crashes if macOS requests a retry
Network communications occur at the OS level and in certain situations occur during what is called ‘interrupt mode.’ Interrupt mode is a state where all processes on the system are stopped (interrupted) so that something which must happen immediately can occur. macOS sets aside a small amount of memory just for interrupt routines, and if this memory is already filled with requests when a new memory request is received, macOS responds with error 35. This is a transient error, and the implication is that these errors can be resolved simply by waiting for the network to catch up.
When an error 35 occurs, Helix now retries for a full second — on machines that can process billions of instructions every second, this constitutes thousands of retries — before giving up and disconnecting the Client.
- R8770: Situations that trigger a 7603 error on Client have been fixed
When a data change comes to a Client, lists (including subforms and dynamic popup menus) that reference that data must be rebuilt. In some instances, the new data can be inserted in the list, but in others, the list must be deleted and rebuilt from scratch. The 7603 errors were triggered when changes arrived so quickly that a request to insert data into the list would be processed while the list was still being deleted and rebuilt by a prior request.
The solution is to suspend the processing of change records while the list deleting functions are running. Once the list is rebuilt, the updates are then applied, and the 7603 error is avoided.
- R8748: Multiple reports of crashes when editing an abacus have been resolved
Various situations were reported wherein deleting tiles or disconnecting arrows from tiles would lead to eventual crashes. In addition, attempts to revert the abacus were not being handled correctly, which could also lead to a crash.
All known instances of abacus editing leading to a crash have been resolved in Helix RADE 6.2.4.
- R8771: Import and export now handle the “Commit/Revert” status better
After importing or exporting data in Design Mode, the ‘Commit/Revert All’ buttons were being enabled. Oddly, although changing an import or export path is, technically, a change to the view properties, the ‘Commit/Revert’ were not enabled for the view.
Aside from that curiosity, the need to commit the ‘change’ could interrupt a large import or export operation, should an autosave occur and trigger the “commit changes before saving” dialog. To avoid this, path changes are now committed immediately when they occur in an import/export dialog.
- R8775: Deleting a command rectangle designated as the ‘default button’ no longer leaves the “has default button” property set for the template
If a command rectangle with the ‘default button’ property was deleted from a template, the template‘s ‘has default button’ property was not being updated, making it impossible to designate another command rectangle as the default button. This is now handled properly.
Existing templates with an improperly set ‘has default button’ property must be recreated from scratch to create a new template with the correct setting. Collections containing this error can also be sent to QSA ToolWorks for a no charge repair.
- R8784: Setting the “include outer data” property via Inspector or AppleScript now works correctly
Although the ‘include outer data’ property checkbox is functional in the Inspector, checking it had no effect on the view property. Setting the property via AppleScript was also failing. (Only the Import/Export ‘Options’ dialog was able to change this property correctly.) Helix now handles it properly in all cases.
In addition, it was noted that the labels for the import/export options dialog were using the old names for these properties. The dialog has been updated and is now consistent with the Inspector/AppleScript property labels.