Question
· Apr 18, 2016

Is there a table somewhere of deprecated classes/added keywords/etc and _when_ these changes took place?

Hello,

For CachéQuality I'd love to be able to create issues when the programmer uses classes which are deprecated for this or that version of Caché... But short of reading all the changelogs of all versions, I can't really tell when a command appeared (for instance RETURN; I know now that it appeared in 2014.x, but it took me some time to realize that), or when a (set of) class(es) became deprecated (for instance %GlobalCharacterStream to be replaced with %Stream.GlobalCharacter -- I don't even know since which version this is true :/).

Is there an existing source which I am missing?

Discussion (2)0
Log in or sign up to continue

Good question. There, on docs.intersystems.com, is set of documentations acompanying each version of Caché released so far. And for each version yu could find "Release Notes" which contains teh list of changes introduced to the language, among the other changes (see Release Notes for 2015.2 as an example)

I would need to go and collect all changes for all releases... if documentation team would not do it for you already :)

The recentmost release notes has all the changes since Caché 5.1. The only you need to do now is to go thru the newest list (from 2016.2FT) and to find those relevant changes for ObjectScript compiler or depretaion warnings.

Sure. To see deprecated classes for some version execute this query against it:

SELECT ID, Description FROM %Dictionary.ClassDefinition WHERE LOWER(Description) [ 'deprecated'

To see deprecated methods execute this query:

SELECT parent AS "Class", Name AS "Method", Description 
FROM %Dictionary.MethodDefinition 
WHERE LOWER(Description) [ 'deprecated'

And to see deprecated properties execute this query:

SELECT parent AS "Class", Name AS "Method", Description
FROM %Dictionary.PropertyDefinition 
WHERE LOWER(Description) [ 'deprecated'

Note, that this queries only return classes/methods/properties which contain "deprecated" in their definition. To catch deprecated inherited classes/methods/properties query %Dictionary.CompiledClass/%Dictionary.CompiledMethod/%Dictionary.CompiledProperty instead.