· Jun 3, 2020

Moving Code from IRIS to Caché

I'm sure it was mentioned in some thread. I just can't find it anymore.

There is some setting that allows exporting  .mac,.int,.cls from IRIS in a way
that it can be imported by Caché without fiddling in the generated XML files 

Discussion (6)4
Log in or sign up to continue

EDIT: Now that I have seen this qualifier, I'll be doing some tests to see the result.
EDIT #2: Looks like it works as I intended, so please ignore  the text below. 

Yes, this is really painful if you think about using IRIS to generate artifacts for relatively new Caché versions. They can't read some changes that IRIS made, like:

* IRIS also moves away from %Library.CacheStorage which is used by Caché as it instead now uses %Storage.SQL. It also unifies the storage strategy for both: %Persistent classes and custom storage, which Cache used two distinct storage classes, one being %CacheStorage.
* Some XML elements have been modified or wiped out.
* The XML header now prints generator=IRIS instead of generator=Cache.
* Methods that have [ Language = cache ]. are now converted to [ Language = objectscript ].

This is what lead us to create a custom docker image that hosts Caché instead of IRIS for using it to generate continuous delivery.

I like to export my project at certain times and later use winmerge to compare and see what has changed. I think to create a utility to automate the fiddle the xml files to compare like neutralizing creation time and compile time. Maybe remove storage from xml when possibly moving code from iris to cache. I just need to find the correct open to be able to read from the beginning of a file. I get error an end of stream error when I try to read from file.