Use of IBM Unicode Services

Since version 5.1.27, FLAM supports the use of IBM Unicode Services on system Z. The Unicode Services are used only for simple conversions: when no user table, transliteration, case mapping, subsets, whitespace handling, reporting, normalization or other complex feature is active. For such simple conversions, FLAM uses the IBM Unicode Services by default to reduce CPU and memory utilization. In edge cases where the native FLAM implementation is measurably faster, FLAM will use it instead.

It is important to note the differences in behavior between the IBM Unicode Services and the native FLAM character conversion module:

Behavior differences (AUTO and ON mode)

To prevent these changes in behavior you must set the system symbol &FLIBMUS or the environment variable FL_IBM_UNICODE_SERVICE to OFF, but this will result in more CPU and memory utilization for simple character conversions (see chapter Used Environment variables). The environment variable's default is AUTO which ensures that only the minimal behavior changes above are in place. Setting it to ON also enables the use of Unicode Services for character conversion mode STOP via the round-trip conversion technique, which causes the additional behavior changes described below.

Additional behavior differences (ON mode only)

We recommend setting FL_IBM_UNICODE_SERVICE=ON to maximize performance if the limitations described above are acceptable because checking each character if it is valid or not has a significant performance impact.