Information for contribution to the GPC SysUtils unit
-----------------------------------------------------

Introduction
------------
GPC's SysUtils unit is work in progress, and contributions are welcome
from GPCers who are willing and able to do any of the following;
  	[a] find bugs
  	[b] write a test suite
  	[c] contribute new routines
  	[d] optimise or improve any of the existing routines

If you are interested in any of the above, please write to me at 
the email address at the end of this file, after you satisfy yourself
about the matters below. 

Please write to me *before* starting to do anything.

Please be clear as to precisely what you want to do, and then I can 
tell you whether that is needed or whether something else would be 
more helpful.

NOTE: the Free Software Foundation (FSF) owns the copyright to everything 
that makes up the SysUtils unit. Anything that appears in it falls 
within the FSF's copyright on the unit.


Prerequisites
-------------
Enthusiasm is the primary prerequisite for contributing to the SysUtils 
unit. But that itself, necessary though it is, is not sufficient. Here
are some other things that would really help;

	[a] deep familiarity with GPC and its runtime system and libraries
	(this is absolutely essential; I should not have to explain 
	anything in GPC to you)

	[b] familiarity with Delphi (this is desirable but not absolutely 
	necessary - but I should not have to explain the SysUtils unit to 
	you)

	[c] familiarity with (and access to) an operating system other
	than Windows (this is very desirable but not absolutely necessary; 
	GPC is portable and the SysUtils unit has to be fully portable - 
	coders need to get away from the Windows mind set)

	[d] ability and willingness to code in a clear and readable style
	(I need to be able to understand your code)


Coding
------
Full portability is non-negotiable - so please bear all these in mind;

	[a] anything that is specific to a particular operating system 
	or hardware platform should be avoided at all costs, and so should
	anything that makes *any* assumption about the underlying hardware
	or operating system (for example an assumption that is valid under
	Linux may not be valid under Solaris)

	[b] no assumptions should be made as to the sizes of data 
	structures - if a data structure must be of a specific size 
	(this should hardly be necessary) then you will need to make sure
	that it is always this size on all platforms (e.g., "Integer (32)"
	instead of just "Integer").

	[c] as far as possible, coders should only use routines from the GPC
	runtime system and libraries - your code should not require anything
	additional units for which you have not supplied full source code 
	under a GPL-compatible licence	

	[d] avoid the use of assembly language at all costs - same goes for
	routines from the C library that have not been imported via the GPC
	runtime system

	[e] please code in a clear and readable style (avoid "clever" but 
	obscure coding - I am interested, not in how cleverly you can code,
	but in code that is clear, readable, and easy to maintain)

	[e] please provide a test suite for your own code, that shows that 
	it works as expected (i.e., as documented in the Delphi help files).
	Your test suite should be high level, should only use the SysUtils
	unit, and should compile under Delphi as well.


After coding
------------
After completing your coding and testing activities, please send the code
to me via email (in a zip archive). Please include a text file (LICENSE.TXT)
that assigns the copyright in the code that you have written to the Free
Software Foundation.

I do not promise that everything that I receive will make it into the 
SysUtils unit. If anything that you send is used, your contribution will be 
acknowledged as I deem appropriate in the circumstances.

If your code is not used, I will try to tell you why it has not been used.


----------------------------
Prof. Abimbola A Olowofoyeku (The African Chief)

Email: African_Chief@bigfoot.com
Web: http://www.bigfoot.com/~african_chief/

