reflecting differences between Linux and Cygwin in basis library

Stephen Weeks MLton@sourcelight.com
Sun, 24 Feb 2002 16:31:13 -0800


I seek input on what to do when faced with differences between the
underlying OSes.  For example, with MLton.Rlimit in Linux, there is
RLIMIT_RSS, but in Cygwin there is not.  The question is what should I
do with MLton.Rlimit.residentSetSize?  I see three options.

1. Choose a bogus value that will cause SysErr to be raised under
   Cygwin.
2. Eliminate it from the signature, so that only the intersection of
   Cygwin and Linux is available.
3. Have two signatures, and a different version of the basis library
   for each OS.

Any preferences?  I lean towards (2), it being the easiest to
implement, while having the types tell the truth and avoiding creating
portability problems for SML applications.