Breaking Changes for SIL Tempo Connector

We try really hard to make sure every new version of SIL Tempo Connector will work with your existing scripts and configurations. However, sometimes in order to bring new features to life we need to break a few eggs.

Version 5.8.0.x

Introduction of null constant - Since the concept of a null constant has been introduced in version 5.8.0+, any variables that may have been named ‘null' or ‘nil’ will cause an error since those are now reserved keywords for the language.

Introduction of integer type - Due to the introduction of the integer type some values that were intended as numbers will be automatically interpreted as integers. This could cause the results of a calculation to loose all decimal values or cause the result of the calculation to change due to rounding differences.

return 3/2;

In older SIL, the result would have been 1.5. In the new SIL, the result is 1, because the literals 3 & 2 are now integers. In order to maintain the same results the code must be changed like in the examples below:

return 3.0/2.0; //or, explicity declare the type number x = 3; number y = 2; return x/y;

The introduction of the integer type has also the following consequence:

try { ..... if( ... ) { throw 1; //integer! } if( .... ) { throw 2; //these are integers literals now } } catch integer i { //you need to add this block in order to deal with the above throws } catch number n { //you need to move code from here in the above block! }

 

Packages - We added package and the “use“ keyword, please consider “use“ and “package“ keywords as inappropriate for variable names ('package' may be used in the future)