4D v18.2

Changes and updates

Home

 
4D v18.2
Changes and updates

Changes and updates    


 

 

During the R-release cycle, various libraries and components used by 4D are updated, existing behaviors are modified, known issues are recorded. This information, initially published via the "Release Notes" of each version, is summarized on this page.

  • 4DRequestsLog files format was modified as of 4D v17R5:
    • 3 additional fields have been added
    • durations are now in microseconds instead of milliseconds

If you use log analysis tools, you may need to update them. 

With respect to the evolution of settings file architecture, 4D will automatically rename and move some default configuration files:

  • "BuildApp.xml" is renamed "buildApp.4DSettings" and moved from the "Preferences" folder to the database "Settings" folder
  • "Backup.xml" is renamed "backup.4DSettings" and moved from the "Preferences" folder to the database "Settings" folder
  • If the resulting Preferences folder is empty, it is deleted.

  • Logs folder location has been modified:
    • In v18 and higher versions, the "current" Logs folder is created by default at the same level as the data file. A specific Logs folder is created in the user's current system folder (4D folder) for maintenance logs (compact, verify, repair)
    • Existing Logs folders are left untouched during database conversion. 

Because of the support for inline or multiline comments /*...*/, the picture vertical scaling operator is modified in 4D v18 and higher.

  • former operator: */
  • new operator: *|

The former operator is automatically replaced when the database is converted to 4D v18 or higher. 

As of 4D v17 R6, range checking is always enabled in 4D. Consequently, on the "Compiler" page of the Database Settings dialog box, the Range Checking checkbox is removed. 

Range checking special comments are still supported:

  // %R- to disable range checking
  // %R+ to enable range checking
  // %R* to reset to default value (as set in the Settings dialog box)

Note that the // %R* comment, which could restore a "disabled" state if the checkbox was unchecked in the Database Settings, is now always equivalent to a // %R+ (option enabled).

Because the On Resize event is now triggered when a subform is resized, the On Timer form event is no longer triggered in this case to prevent conflicts. Previously, this event could be triggered in but with a non-reliable frequency.

The previous Form event command has been renamed Form event code and a new FORM Event command, returning an object, has been implemented.

The compiler has been enhanced to better detect a mismatch when using Blob variables. The compiler will display an error when a command requires a Blob but receives a non-Blob parameter.

Depending on stored data and how it was created, an index of object fields could be incorrect. This is an extremely rare, unreproducible situation. One factor in this situation appears to have been objects with special characters (e.g.: .,'",[]) in the property names. If this occurs, the index may become corrupted and cause query by attribute in object fields to fail (ACI0098796). This concerns databases created with 4D v15 - v17.0 and with indexed object fields. Databases created or indexed with v16.4 HF1 / v17.1 / v17 R4 or later are not impacted. To correct this issue, it is recommended to reindex object fields.

With 4D v17 R5, it’s now possible to run several copies (macOS and Windows) or instances (Windows) of the same application connected to the same server. To allow this, the naming of the cache folder has been changed. The naming in previous versions was based on Server-IP and Server-Port number, now with an additional instance number. The old cache folder and its data, will no longer be used. If you want to delete it, it needs to be removed manually.

In order to implement the new Get call chain command, the code generated by the 4D compiler has been updated. As a consequence, databases compiled with 4D v17 R6 can only be opened by 4D v17 R6 or higher. Databases compiled with previous versions need to be recompiled if you want to take advantage of the new command.

The “New formula” and “New formula from string” commands have been renamed to Formula and Formula from string.

As of 4D v18, the former "On 4D Mobile Authentication" database method has been modified:

4D events in 4D View Pro have been refactored, and the event On Data Change is not triggered anymore. 

To better align with the SpreadJS date format, 4D has changed the way dates and times are stored. Since 4D v17 R2, when converting a 4D view to a 4D View Pro document, dates and times were cast as a C_TEXT. As of 4D v17 R4 dates and times are cast as a C_OBJECT which contains 2 fields: one for the date (C_DATE), the other for the time (C_TIME).

As of 4D v17 R5, the 4D View Pro default localization settings are the same as the current 4D host database. Thus in 4D v17 R5, your 4D View Pro interface could display date, time, and number differently than in previous 4D versions.

The $wp_pageNumber and $wp_pageCount expressions are always evaluated and cannot be frozen by the ST FREEZE EXPRESSIONS command (same behavior as with the 4D Write plug-in).

In previous versions, when a range was inside a row and a column, or when a page break was inserted, the break was inserted before the table. Now, the break will be inserted before the row, and the table will be splited into two parts.

The behavior of wk tab stop offsets has been upgraded. The last element of a tab parameter is no longer used to define the tab offset default value. It now defines the offset value of the last tab. Starting with 4D v17 R5, the default tab value is managed by the wk offset parameter of the wk tab default attribute, which has been created to manage default tab values.

When you open 4D Developer Edition v18 or higher on High Sierra, a warning message is displayed: "4D can't be opened because it is from an unidentified developer". 

We recommend you to use macOS Mojave or Catalina. However, if using macOS High Sierra for development is a requirement, there are two possible workarounds:

  • install Swift from Apple, so the 4D Developer application will be correctly identified.
  • or, go to the "System Preferences > Security” dialog box, and click on the "Open anyway" button (pay attention to the fact that this is to be done after each download of a new build).

Note: Only the 4D Developer application is concerned. Other editions (4D Server, merged applications) can be directly opened without any restriction.

Windows 7 support is stopped by Microsoft as of January 2020. Therefore, 4D is stopping its maintenance as of 4D v17 R5. In parallel we stop to support Windows 8, please upgrade to Windows 10.

Windows 7: It is strongly recommended to install all available Microsoft updates (use update dialog in system settings). The KB2999226 update (released 9/2015) is mandatory to avoid errors regarding api-ms-win-crt-rumtime-1-1-0.dll. Microsoft has already stopped Windows 7 support and the extended support (security fixes) will end soon (Jan/2020). We suggest updating to Windows 10.

When macOS Mojave uses a localization that doesn’t exist in 4D, the date and time might be displayed in US format. For example, if the Mac client uses the Italian localization, for which the “it.lproj” doesn’t exist, the date will be displayed in a US format. 

  • openSSL: updated to openSSL 1.1.1d in 4D v18
  • Xerces: updated to v3.2.1
  • CEF: updated to v3626
  • PHP: updated to v7.3.1 -  this is a major upgrade for PHP, with additional features but also possible compatibility issues. More information.
  • ICU: update to v63.1 - this major upgrade to newer Unicode version forces an automatically rebuild of alphanumeric, text and object indexes. 
  • Hunspell: updated to v1.7.0

 
 

 
PROPERTIES 

Product: 4D
Theme: Changes and updates

 
HISTORY 

 
ARTICLE USAGE

4D v18 Release Notes ( 4D v18)
4D v18.x Release Notes ( 4D v18.1)
4D v18.x Release Notes ( 4D v18.2)