[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 971209: Netcdf 3.3.1 and support for the 2.* interface



Dan,

> > In the ncvalues.hh in netcdf-3.3.1, the define is still there:
> > 
> > #define NC_UNSPECIFIED ((nc_type)0)
> > 
> > so nothing will break.  We intend to leave it defined for backward
> > compatibility.
> 
> Ummm, right it's still on the c++ side, but the 3.3.1
> stuff I just got doesn't have it in netcdf.h, on the c
> side (where I was using it.)
> 
> Granted it used to have a comment that said /* private */
> after it (in the enum), so you don't *have* to put it
> back in.  [I guess it's cool to automatically be assumed
> to be a c++ programer, but I still do c here and there.]

The NC_UNSPECIFIED macro never appeared in any documentation, and the
/* private */ comment was intended to indicate that if you happened to
run across this undocumented bit of implementation while reading the
netcdf.h file, you shouldn't use it because it was not intended to be
part of the public interface.  

The C++ stuff used it, but with netcdf-3 we assumed we were free to just
move it over into the netcdf C++ implementation, since we had never
documented its use for the C interface.

We worked hard to support all the published, documented netcdf-2
interfaces on top of the new netcdf-3 interfaces, but I hesitate to
revert to supporting undocumented implementation details.  Use of
NC_UNSPECIFIED strikes me an example of "unwarranted chumminess" with the
implementation :-).

We could have (and maybe should have) done a better job of keeping all
implementation details out of netcdf.h (that's what local_nc.h was
supposed to be for), but I think we've done better with the new version.

Nevertheless, I'm forwarding your request to Glenn Davis, who has the
ultimate decision for this sort of request.  He may relent, if it would
make life a lot easier for you ...

--Russ