In porting the ion compiler to ion, I had conflicts with ion builtins, specifically the TYPE_... constants. I ended up renaming the TYPE_... constants in the compiler to CMPL_TYPE_..., though it's easy to mix things up, still.
Maybe this isn't likely to trip people up, but any ongoing additions to builtins can break existing code.
I'm not sure the right way to address this matter. Some possibilities:
Just ignore it. Maybe won't cause much trouble.
Promise never to add new builtins (including new constants on existing enums). Could freeze builtins and add a new std library or whatnot for anything new, and it needs explicitly imported.
Never auto-import anything. This would clearly be a breaking change and would make uses of the very basics more awkward.
In porting the ion compiler to ion, I had conflicts with ion builtins, specifically the
TYPE_...
constants. I ended up renaming theTYPE_...
constants in the compiler toCMPL_TYPE_...
, though it's easy to mix things up, still.Maybe this isn't likely to trip people up, but any ongoing additions to builtins can break existing code.
I'm not sure the right way to address this matter. Some possibilities:
std
library or whatnot for anything new, and it needs explicitly imported.Maybe other options, too.