derstad@CIM-VAX.HONEYWELL.COM ("DAVE ERSTAD") (08/23/89)
> Contrary to a previous, almost correct follup to this posting > the correct call to use is name_$get_path_lc, not name_$get_path_cc No, much as I hate to contradict a resident Apollo Wizard, the originally presented info is correct. At SR9.7 the _lc calls do not exist in the standard released insert files nor in the run-time libraries. Thus, one must use _cc for programs which execute under 9.7 or a mixed 9.7/10.0 environment.
derstad@CIM-VAX.HONEYWELL.COM ("DAVE ERSTAD") (08/23/89)
Larry Allen correctly pointed out that compatibility libraries were shipped with SR10. However, that only helps if your software is only to be run at a site over which you have complete control. In my situation, many of the sites using my software haven't even received SR10 yet (it's being reshipped by Mentor Graphics), and of those that have, few have loaded it, fewer yet know about the compatibility libraries, and fewer still will load them. Given a choice between using the _cc calls and trying to get each and every customer to load SR10 compabilitbility packages (meanwhile blaming me for all SR10 confusion and woes, since I'd be driving their loads), teh coi the choice for me is obvious. After the world is SR10 (probably early-to-mid 90) I can switch to the _lc calls at my leisure. BTW, on a related note, kudos to Apollo for providing calling stubs for routines affected by lengthening the identifier limit from 32 characters to whatever. This is sincerely appreciated. Mentor didnsincee 't do this, and its d*mned frustrating.
lnz@lucid.com (Leonard N. Zubkoff) (08/25/89)
It is quite possible to construct programs which run in both an SR9.7 and an SR10.1 environment using the optimal calls (_cc for SR9.7 and _lc for SR10.1) for each environment by building an OBJ rather than COFF object and having the program determine at run time which environment it is running in. Domain/CommonLISP uses precisely this technique so that the same program can run in either environment. Here is an example: if DomainSR10 then Name_$Get_Path_LC('/',1,sizeof(RootName), RootName,RootNameLength,Status) else Name_$Get_Path_CC('/',1,RootName,RootNameLength,Status); As long as the string arguments are declared with UNIV, passing in a variable of type Name_$Long_Pname_T to Name_$Get_Path_CC will work fine. Leonard