Fix whitespace in maybe.m

library/maybe.m:
    A tab was used where four spaces should have been used.  This was
    causing strange formatting in the documentation.
Structured errors for getopt and getopt_io.

The getopt and getopt_io modules use strings to describe errors that occur
during option processing.  There are a couple of problems with doing this:

(1) it makes some assumptions about how client programs want to word, and to a
large extent, format these error messages.

(2) it assumes that the error messages are in English.

This diff changes the getopt and getopt_io modules to use structured
representations of errors instead of strings.  This structured representation
is defined by the new option_error/1 type.  We introduce new versions of the
various process_options predicates that are suffixed with "_se" (standing for
"structured error") that return values of type option_error/1 when an error occurs.
A new function, option_error_to_string/1, converts option_error/1 values into
the strings that the getopt and getopt_io modules previously generated.  The
existing process_options predicates are just wrappers around all of this for
the purposes of backwards compatibility.

The new option_error/1 type returns more information than existing error
messages require, for example, where possible we return both the element of the
option enumeration involved and a string giving the option as it actually
appeared on the command line.

library/getopt.m:
library/getopt_io.m:
	Add predicates and types for structured errors as described above.

	Group function clauses together with the corresponding predicate
	ones.

	Avoid unnecessary differences between these two modules in a few
	spots.

NEWS:
	Announce the above changes.
Drop support for Mercury on IRIX.

IRIX itself is more or less dead and the Mercury support for it has not been
tested for many years.

configure.ac:
compiler/notes/overall_design.m:
doc/user_guide.texi:
scripts/mgnuc.in:
	As above.

NEWS:
	Announce the above.
Delete files resurrected by the conversion to git.

scripts/ml.sh:
scripts/mmake.sh:
	As above.
Minor rewording of README.{AIX,HPUX}.

README.AIX:
	As above.

README.HPUX:
	As above, plus fix a cut-and-paste error.
Drop support for OSF/1.

configure.ac:
	Drop support for OSF/1.

	Delete more IRIX stuff.

configure.ac:
runtime/mercury_conf.h.in:
runtime/mercury_thread.h:
	Delete workarounds required when using the Digital Unix pthreads
	library.

Mmake.common.in:
runtime/mercury_wrapper.c:
	Delete stuff for IRIX.

README.OSF1:
	Delete this file.

.README.in:
	Delete the pointers to the readme files for IRIX and OSF/1.

NEWS:
	Announce the dropping of support for OSF/1.
Fix wrong symbol names which broke MR_LOWLEVEL_DEBUG.

MR_OZONE_* was renamed to MR_OVERFLOW_ZONE_* during review
but a few instances remained.

runtime/mercury_overflow.c:
	As above.
Removing + prefix from 3.4.4 Field access examples

In the section 3.4.4 of the reference manual, the code examples
have a leading + in front of the code lines, this patch removes them.

doc/reference_manual.texi:
    see above.
Update URLs in bindist/bindist.README

bindist/bindist.README:
    Update old URLs and mailing list information.
Merge branch 'version-14_01-branch'

Pull recent changes vrom version-14_01-branch into master.

  + Fix whitespace in maybe.m
  + Removing + prefix from some examples in the reference manual
  + Update URLs in bindist/bindist.README
Fix bug #342.

The Mercury implementation of string formatting (used by the non-C grades) was
incorrectly formatting some numbers when using the 'g' conversion specifier,
for example:

    string.format("%6.3g\n", [f(16.0)]) = "10"

The cause was an off-by-one error introduced when calls to string.substring
were changed to calls string.between (in commit
b1af59cb29ac31db9fc5b3422fced505facabad1).

library/string.m:
	Fix the off-by-one error above.

NEWS:
	Announce the fix.
Define sinh, cosh and tanh as foreign_procs in Java grade.

Use foreign_procs to define the hyperbolic operations in the Java grade.
Java has provided these since version 1.5 and since that is the minimum
version required by Mercury we can rely on them being present.

library/math.m:
	As above.
Separate processor counting from thread pinning.

In low-level C parallel grades we need the number MR_num_processors to
prime MR_num_threads when it is not explicitly set by the user, even if
thread pinning support is not available.

This fixes bug #338: programs in low-level C parallel grades crashed at
startup on platforms where thread pinning is unimplemented because
MR_num_threads is set to zero.

runtime/mercury_context.c:
	Refactor code to this effect.

	Add assertions that MR_num_processors > 0 and MR_num_threads > 0.

NEWS:
	Announce fix.
Get processor count with GetSystemInfo on Windows.

runtime/mercury_context.c:
	As above.
Thread-safe alternative to strerror.

Add MR_strerror as a thread-safe alternative to strerror.
The current implementation wraps strerror_r(), strerror_s()
or sys_errlist as appropriate for the platform.  Bug #340.

configure.ac:
runtime/mercury_conf.h.in:
	Check for strerror_r, strerror_s.

	Delete irrelevant code in the sockets test for the external debugger.

runtime/mercury_runtime_util.c:
runtime/mercury_runtime_util.h:
	Add MR_strerror and use it.

library/io.m:
	Use MR_strerror.  In particular, mercury_output_error was not
	thread-safe.

	Pass errno to mercury_output_error explicitly for clarity.

	Delete req_lock parameter in ML_maybe_make_err_msg macro which is not
	needed any more.

compiler/prog_event.m:
runtime/mercury_deep_profiling.c:
runtime/mercury_misc.c:
runtime/mercury_term_size.c:
runtime/mercury_trace_base.c:
trace/mercury_trace_cmd_developer.c:
trace/mercury_trace_cmd_exp.c:
trace/mercury_trace_cmd_misc.c:
trace/mercury_trace_declarative.c:
trace/mercury_trace_external.c:
trace/mercury_trace_internal.c:
	Use MR_strerror.

compiler/notes/coding_standards.html:
	Update coding standard.

extras/net/sockets.m:
extras/net/tcp.m:
	Use MR_strerror.

NEWS:
	Announce change.
Adjust news entries for 14.01.1.

NEWS:
	Add bug numbers where available.
Fix a segmentation fault in the runtime on Mac OS X.

runtime/mercury_runtime_util.c:
	On Mac OS X, strerror_r also does not populate its buffer
	if it fails.
Merge branch 'version-14_01-branch'
Assume standard strerror_r unless using glibc.

We followed the feature test macros from the Linux man page for
strerror_r to figure out which function we have actually got, but that
only applies when using the GNU C library.  When using any other C
library, we should assume that strerror_r is the POSIX-standard
strerror_r.

Commit 533f5f874f66802040ad5f05bfca2483a6c90297 worked around
this bug for Mac OS X only.

runtime/mercury_runtime_util.c:
	Explicitly include string.h for strerror_r, just in case.

	If __GNU_LIBRARY__ is not defined then assume we have the
	POSIX-standard strerror_r.  Only follow the feature test
	macros otherwise.

	Assign the return values of strerror_r to variables of the
	expected types.  The compiler should warn about conversions
	between integer and pointer types if the detection was wrong.

	Fix argument order in a call to generic_strerror.
Merge branch 'version-14_01-branch'