[GRASS5] Re: Contents of grass5 digest, Vol 1 #501, portability

Glynn Clements glynn.clements at virgin.net
Mon Oct 7 14:25:30 EDT 2002


Scott O'Donnell wrote:

> I'm relatively new to the developers list, although not new to using 
> and programing with GRASS.  I think I'm beginning to appreciate the 
> difficulty of supporting so much software on so many different OS's.  
> 
> While reading the discussions on 'portability', various writers
> advocate the need to support their favorite OS and the variants
> of C that the OS decision requires.  While reading these discussions 
> and opinions about what should or shouldn't be supported, a presistent 
> question was raised in my  mind.  
> 	What is the least level of portability that is required?   

I don't think that anything is really "required". If code doesn't
compile on the most common Linux distributions, someone will probably
notice fairly quickly. For other platforms, someone may notice
eventually (unfortunately, for MacOS X, this didn't happen until
shortly after 5.0.0 was released).

Basically, GRASS has a *lot* of historical cruft. So far, most of it
has been left alone except where it has caused actual problems, or
where the code has been substantially re-written for other reasons.

> Has the GRASS development team decided to support software to 
> BSD-4.3 standards?  ANSI standards?  POSIX (1 or 2) standards? or 
> simply K&R?  
> If this were better understood or described, perhaps the recent 
> discussions of what functionality MUST be supported would be moot.

The vast majority of the individual programs could be made to work
using nothing more than ANSI C and GRASS library functions. 
Consequently, I consider that code shouldn't use anthing which isn't
ANSI without good reason.

There are some exceptions; e.g. we have to handle directories
somewhere, and ANSI doesn't provide any way to do that. Similarly for
process creation, terminal I/O etc. Also, certain aspects of the
monitor architecture are specific to X11's client-server model.

> Is there a document that describes what level of portability must 
> be provided other than Marcus' list of guidelines to follow when 
> submitting software?

I don't think so.

-- 
Glynn Clements <glynn.clements at virgin.net>




More information about the grass-dev mailing list