---
title: "Breaking Changes"
canonical: "https://support.appfire.com/space/PSJ/15486352/Breaking%20Changes"
format: markdown
---
> Macro (excerpt)
> 
> One of our main goals is to ensure every new version of Power Custom Fields works with existing scripts and configurations. However, sometimes to implement new features, old features must be retired. Please review this page for details.

## Version 5.8.0.x

**Introduction of null constant - **Since the concept of a null constant was introduced in version 5.8.0+, any variables that may have been named ‘null' or ‘nil’ generate 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 lose all decimal values or cause the result 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 and 2 are now integers. To maintain the same results, change the code to match 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 also has the following consequences:

```
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 “use“ keywords. Please do not implement “use“ and “package“ as variable names.