Simon Marlow [Thu, 26 Jan 2006 16:46:03 +0000 (16:46 +0000)]
add foldr/build optimisation for take and replicate
This allows take to be deforested, and improves performance of
replicate and replicateM/replicateM_. We have a separate problem that
means expressions involving [n..m] aren't being completely optimised
because eftIntFB isn't being inlined but otherwise the results look
good.
Sadly this has invalidated a number of the nofib benchmarks which were
erroneously using take to duplicate work in a misguided attempt to
lengthen their runtimes (ToDo).
Simon Marlow [Tue, 24 Jan 2006 13:11:21 +0000 (13:11 +0000)]
Generate PrimopWrappers.hs with Haddock docs
Patch originally from Dinko Tenev <dinko.tenev@gmail.com>, modified
to add log message by me.
ross [Thu, 19 Jan 2006 14:47:15 +0000 (14:47 +0000)]
[project @ 2006-01-19 14:47:15 by ross]
backport warning avoidance from Haddock
malcolm [Wed, 18 Jan 2006 11:45:47 +0000 (11:45 +0000)]
[project @ 2006-01-18 11:45:47 by malcolm]
Fix import of Ix for nhc98.
ross [Tue, 17 Jan 2006 09:38:38 +0000 (09:38 +0000)]
[project @ 2006-01-17 09:38:38 by ross]
add Ix instance for GeneralCategory.
simonmar [Wed, 11 Jan 2006 11:29:49 +0000 (11:29 +0000)]
[project @ 2006-01-11 11:29:49 by simonmar]
add some more warnings about unsafeThaw
simonmar [Tue, 10 Jan 2006 10:23:16 +0000 (10:23 +0000)]
[project @ 2006-01-10 10:23:16 by simonmar]
improve documentation for takeMVar/putMVar
simonpj [Fri, 6 Jan 2006 15:52:36 +0000 (15:52 +0000)]
[project @ 2006-01-06 15:52:36 by simonpj]
Use a type sig rather than a pattern signature, to avoid
depending on GHC's precise impl of scoped type variables.
(Which I'm about to change.)
simonpj [Fri, 6 Jan 2006 15:51:23 +0000 (15:51 +0000)]
[project @ 2006-01-06 15:51:23 by simonpj]
Eta-expand some higher-rank functions. GHC is about to
move to *invariant* rather than *contra-variant* in function
arguments, so far as type subsumption is concerned. These
eta-expansions are simple, and allow type inference to
go through with invariance.
simonpj [Fri, 6 Jan 2006 15:46:09 +0000 (15:46 +0000)]
[project @ 2006-01-06 15:46:09 by simonpj]
Fix one-char typo in scanl1P
jpbernardy [Mon, 2 Jan 2006 19:38:01 +0000 (19:38 +0000)]
[project @ 2006-01-02 19:38:01 by jpbernardy]
* Left-bias restored
* Minor documentation improvements
ross [Fri, 30 Dec 2005 00:18:59 +0000 (00:18 +0000)]
[project @ 2005-12-30 00:18:59 by ross]
deriving Data
simonmar [Thu, 15 Dec 2005 11:17:31 +0000 (11:17 +0000)]
[project @ 2005-12-15 11:17:31 by simonmar]
Add dataCast1/dataCast2 methods to Data class, as per ticket #633.
simonmar [Tue, 13 Dec 2005 15:57:49 +0000 (15:57 +0000)]
[project @ 2005-12-13 15:57:49 by simonmar]
Raise the (new) exception NestedAtomically when atomically is nested
(using unsafePerformIO). This is a small improvement over crashing.
simonmar [Tue, 13 Dec 2005 13:28:53 +0000 (13:28 +0000)]
[project @ 2005-12-13 13:28:53 by simonmar]
Only Streams can be DuplexHandles, not RawDevices.
simonmar [Mon, 5 Dec 2005 11:42:47 +0000 (11:42 +0000)]
[project @ 2005-12-05 11:42:47 by simonmar]
Add IO versions of the STM primitives that allocate new transactional variables:
newTVarIO :: a -> IO (TVar a)
newTChanIO :: IO (TChan a)
newTMVarIO :: a -> IO (TMVar a)
These can be used inside unsafePerformIO, unlike the STM versions.
jpbernardy [Sat, 3 Dec 2005 17:32:01 +0000 (17:32 +0000)]
[project @ 2005-12-03 17:32:01 by jpbernardy]
Removed spurious constraint for Monoid (IntMap a) instance
simonmar [Fri, 2 Dec 2005 14:29:28 +0000 (14:29 +0000)]
[project @ 2005-12-02 14:29:28 by simonmar]
avoid recursive module trap with Haddock
simonmar [Fri, 2 Dec 2005 12:26:22 +0000 (12:26 +0000)]
[project @ 2005-12-02 12:26:22 by simonmar]
Apply rev 1.24 from FreeBSD's copy of this file. Commit message from
FreeBSD:
The algorithm that computes the tables used in the BM search
algorithm sometimes access an array beyond it's length. This only
happens in the last iteration of a loop, and the value fetched is
not used then, so the bug is a relatively innocent one. Fix this by
not fetching any value on the last iteration of said loop.
Submitted by: MKI <mki@mozone.net>
This is the cause of bug #1194393 (crash in darcs on Windows).
simonmar [Thu, 1 Dec 2005 12:37:23 +0000 (12:37 +0000)]
[project @ 2005-12-01 12:37:23 by simonmar]
oops, forgot to remove forkIO from here
simonmar [Thu, 1 Dec 2005 12:32:24 +0000 (12:32 +0000)]
[project @ 2005-12-01 12:32:24 by simonmar]
export childHandler
simonmar [Wed, 30 Nov 2005 16:56:24 +0000 (16:56 +0000)]
[project @ 2005-11-30 16:56:24 by simonmar]
- move forkIO into GHC.Conc, so that the I/O manager can use proper forkIO
with an exception handler. This required TopHandler.lhs-boot. It's the
right thing, though, since the forkIO implementation is GHC-specific.
- check for out-of-range file descriptors in the I/O manager, rather than
just exploding. The I/O manager will exit ungracefully, but at least
there will be an error message.
simonmar [Wed, 30 Nov 2005 12:24:18 +0000 (12:24 +0000)]
[project @ 2005-11-30 12:24:18 by simonmar]
Add
registerDelay :: Int -> IO (TVar Bool)
for implementing delays and timeouts in STM. The delay is implemented
in the same way as threadDelay. Currently doesn't work on Windows or
without -threaded (I do intend to make it work on Windows, though).
ross [Tue, 29 Nov 2005 14:31:59 +0000 (14:31 +0000)]
[project @ 2005-11-29 14:31:59 by ross]
As foreshadowed on the libraries list, introduce new classes:
Applicative (formerly known as Idiom): generalizes (but does not replace)
both Monad and Monoid.
Traversable: containers that can be traversed, executing actions and
re-assembling the results. This class generalizes and replaces FunctorM,
because it requires Applicative instead of Monad.
Foldable: containers that can be folded over a Monoid. Traversable
supplies a default definition, but some structures, e.g. Set, are Foldable
but not Traversable.
ross [Thu, 17 Nov 2005 15:54:17 +0000 (15:54 +0000)]
[project @ 2005-11-17 15:54:17 by ross]
add a couple of Boolean instances
simonmar [Thu, 17 Nov 2005 11:28:44 +0000 (11:28 +0000)]
[project @ 2005-11-17 11:28:43 by simonmar]
ProcessHandle is now an MVar, in which we cache the ExitCode of the
process when we know it.
Additionally, waitForProcess and getProcessExitCode now close the
handle eagerly on Windows, this avoids a problem with hsc2hs which
wants to remove the executable it just ran, and it can't if the handle
is still open.
jpbernardy [Sun, 13 Nov 2005 16:52:14 +0000 (16:52 +0000)]
[project @ 2005-11-13 16:52:14 by jpbernardy]
Correct handling of negative numbers in split and splitMember in IntMap and IntSet.
Better documentation for insert and insertWith in Maps.
simonmar [Fri, 11 Nov 2005 14:41:01 +0000 (14:41 +0000)]
[project @ 2005-11-11 14:41:01 by simonmar]
waitForProcess: if the process died with a signal, just return the
exit status rather than EINTR.
This means a segfault shows up as (ExitFailure 139) rather than
an exception complaining about system call interruption. If the
client wants a more unix-ish interpretation, they probably should be
using System.Posix.Process anyway.
simonmar [Fri, 11 Nov 2005 12:01:58 +0000 (12:01 +0000)]
[project @ 2005-11-11 12:01:58 by simonmar]
On Windows, attach a finalizer to the ProcessHandle so that we can
call CloseHandle() when the handle is no longer in use. Previously we
were calling CloseHandle() in waitForProcess and terminateProcess,
which prevented making multiple calls to these functions on the same
handle.
simonmar [Fri, 11 Nov 2005 10:37:35 +0000 (10:37 +0000)]
[project @ 2005-11-11 10:37:35 by simonmar]
Fix bugs in new signal handling machinery
simonmar [Thu, 10 Nov 2005 12:58:32 +0000 (12:58 +0000)]
[project @ 2005-11-10 12:58:32 by simonmar]
Some docs for System.Posix, from Bj?rn Bringert
simonmar [Mon, 7 Nov 2005 16:39:04 +0000 (16:39 +0000)]
[project @ 2005-11-07 16:39:04 by simonmar]
add GHC notes to mallocForeignPtr
sof [Thu, 27 Oct 2005 01:39:40 +0000 (01:39 +0000)]
[project @ 2005-10-27 01:39:40 by sof]
[mingw/msys only]
Undo long-standing workaround for buggy GNU ld's on mingw/msys; i.e.,
the linker wasn't correctly generating relocatable object files when
the number of relocs exceeded 2^16. Worked around the issue by
hackily splitting up the GHCi object file for the larger packages
('base', 'ObjectIO' and 'win32') into a handful of object files,
each with a manageable number of relocs. Tiresome and error-prone
(but the hack has served us well!)
This commit imposes a restriction on the 'ld' you use to compile
up GHC with; it now has to be ld-2.15.x or later (something GHC
binary dists have shipped with since 6.2.2)
ross [Wed, 26 Oct 2005 22:52:58 +0000 (22:52 +0000)]
[project @ 2005-10-26 22:52:58 by ross]
missing part of rev. 1.13: in unfoldForestM_BF, the output sequence is
now in the right order, so don't reverse it.
sof [Tue, 25 Oct 2005 17:31:38 +0000 (17:31 +0000)]
[project @ 2005-10-25 17:31:38 by sof]
FPTOOLS_CHECK_HTYPE: correctly scope the resetting of CPPFLAGS; as was,
it got blown away if the value was cached.
Merge to STABLE.
simonmar [Tue, 25 Oct 2005 12:01:11 +0000 (12:01 +0000)]
[project @ 2005-10-25 12:01:11 by simonmar]
fix findExecutable (I hope; don't have an up to date Windows build to
test on).
simonmar [Tue, 25 Oct 2005 11:13:53 +0000 (11:13 +0000)]
[project @ 2005-10-25 11:13:53 by simonmar]
forkIO the signal handlers directly from the IO manager thread, rather
than calling an RTS function to do the same thing.
ross [Tue, 25 Oct 2005 09:29:47 +0000 (09:29 +0000)]
[project @ 2005-10-25 09:29:47 by ross]
add Monoid instance
ross [Tue, 25 Oct 2005 09:29:16 +0000 (09:29 +0000)]
[project @ 2005-10-25 09:29:16 by ross]
Now that Data.Monoid is portable, move Monoid instances for sets and
maps back to where the data types are defined.
ross [Tue, 25 Oct 2005 09:11:25 +0000 (09:11 +0000)]
[project @ 2005-10-25 09:11:25 by ross]
Change the Monoid instance for functions (as proposed on the libraries
list, and interpreting silence as assent) from composition to pointwise
combination.
Rationale: The new instance is consistent with the instances for tuples,
it's compositional, in that it builds instances for complex types out
of instances for simpler ones, and it makes this module Haskell 98.
Downside: the old instance was easy to use with Writer monads, and ShowS
was a special case. You can get that effect using the new Endo type,
but you have to wrap and unwrap the newtype.
Also added a few other simple monoids: dual, sum and product.
simonmar [Tue, 25 Oct 2005 09:01:48 +0000 (09:01 +0000)]
[project @ 2005-10-25 09:01:48 by simonmar]
Note that throwTo blocks if the target thread is in a foreign call.
ross [Sat, 22 Oct 2005 00:37:01 +0000 (00:37 +0000)]
[project @ 2005-10-22 00:37:01 by ross]
docs (readListDefault seems pretty useless)
ross [Sat, 22 Oct 2005 00:28:21 +0000 (00:28 +0000)]
[project @ 2005-10-22 00:28:21 by ross]
define readListPrec too.
ross [Fri, 21 Oct 2005 16:31:23 +0000 (16:31 +0000)]
[project @ 2005-10-21 16:31:23 by ross]
oops
ross [Fri, 21 Oct 2005 16:25:45 +0000 (16:25 +0000)]
[project @ 2005-10-21 16:25:45 by ross]
Data and FunctorM instances for View[LR].
simonmar [Fri, 21 Oct 2005 13:10:48 +0000 (13:10 +0000)]
[project @ 2005-10-21 13:10:48 by simonmar]
cmp_thread returns CInt, not Int
ross [Fri, 21 Oct 2005 10:47:25 +0000 (10:47 +0000)]
[project @ 2005-10-21 10:47:25 by ross]
conformant Show and Read instances.
(sorry to jump in, JP, but I had these to hand)
ross [Fri, 21 Oct 2005 10:39:56 +0000 (10:39 +0000)]
[project @ 2005-10-21 10:39:56 by ross]
conformant Show and Read instances
ross [Fri, 21 Oct 2005 10:26:57 +0000 (10:26 +0000)]
[project @ 2005-10-21 10:26:57 by ross]
conformant Show and Read instances
ross [Fri, 21 Oct 2005 10:24:58 +0000 (10:24 +0000)]
[project @ 2005-10-21 10:24:58 by ross]
export parens, which is useful for writing Read instances.
ross [Fri, 21 Oct 2005 06:54:13 +0000 (06:54 +0000)]
[project @ 2005-10-21 06:54:13 by ross]
repair findExecutable
ross [Thu, 20 Oct 2005 23:28:42 +0000 (23:28 +0000)]
[project @ 2005-10-20 23:28:42 by ross]
revise Read instance to match < and > as chars rather than lexemes,
as suggested by Georg Martius.
krasimir [Thu, 20 Oct 2005 18:07:53 +0000 (18:07 +0000)]
[project @ 2005-10-20 18:07:53 by krasimir]
The original version of @findExecutable@ was looking only in the $PATH but under
Windows the executables are searched in the current directory, in $PATH and
in some other places too. The new version is based on @SearchPath@ function from
Win32 API. This is more consistent with @system@ and @rawSystem@
krasimir [Thu, 20 Oct 2005 17:12:28 +0000 (17:12 +0000)]
[project @ 2005-10-20 17:12:28 by krasimir]
from Neil Mitchell:
On Windows, the path can be path;"c:\ghc\ghc-6.4\bin";restofpath, and
thats still a valid path with GHC in it. Cabal doesn't find ghc with
the quotes in, removing them does find it though.
malcolm [Thu, 20 Oct 2005 15:14:22 +0000 (15:14 +0000)]
[project @ 2005-10-20 15:14:22 by malcolm]
Add spaces in Show instance, to avoid lexing problems e.g. Foo:=-0.9 in Read.
ross [Thu, 20 Oct 2005 15:08:35 +0000 (15:08 +0000)]
[project @ 2005-10-20 15:08:35 by ross]
Read instance
malcolm [Thu, 20 Oct 2005 10:58:44 +0000 (10:58 +0000)]
[project @ 2005-10-20 10:58:44 by malcolm]
Instance of Read for Map, from Georg Martius.
simonmar [Tue, 18 Oct 2005 11:36:25 +0000 (11:36 +0000)]
[project @ 2005-10-18 11:36:25 by simonmar]
Fixes to enable base to be compiled with -fasm on Windows:
- a few stdcall/ccall mismatches
- use GetTempPathA instead of GetTempPath (a couple of these)
ross [Thu, 13 Oct 2005 11:09:51 +0000 (11:09 +0000)]
[project @ 2005-10-13 11:09:50 by ross]
update non-portability reasons
ross [Thu, 13 Oct 2005 10:36:42 +0000 (10:36 +0000)]
[project @ 2005-10-13 10:36:42 by ross]
MArray instance for Lazy.ST
ross [Thu, 13 Oct 2005 10:35:49 +0000 (10:35 +0000)]
[project @ 2005-10-13 10:35:49 by ross]
comments re strict/lazy monads
simonpj [Wed, 12 Oct 2005 10:57:40 +0000 (10:57 +0000)]
[project @ 2005-10-12 10:57:40 by simonpj]
Comments
sof [Mon, 10 Oct 2005 23:32:51 +0000 (23:32 +0000)]
[project @ 2005-10-10 23:32:51 by sof]
CSsize fix: this Haskell type is defined iff HTYPE_SSIZE_T is. Merge to STABLE
simonmar [Wed, 5 Oct 2005 14:04:28 +0000 (14:04 +0000)]
[project @ 2005-10-05 14:04:28 by simonmar]
hPutChar should (probably) not be strict in its Char argument
simonmar [Wed, 5 Oct 2005 13:15:44 +0000 (13:15 +0000)]
[project @ 2005-10-05 13:15:44 by simonmar]
mention that -O turns assertions off
ross [Wed, 5 Oct 2005 08:43:26 +0000 (08:43 +0000)]
[project @ 2005-10-05 08:43:26 by ross]
add Monad and MonadPlus instances
ross [Thu, 29 Sep 2005 09:31:58 +0000 (09:31 +0000)]
[project @ 2005-09-29 09:31:58 by ross]
Tweak Read instance: allow optional parentheses around the outside
(for consistency), and don't propagate precedence to elements.
malcolm [Wed, 28 Sep 2005 13:18:28 +0000 (13:18 +0000)]
[project @ 2005-09-28 13:18:28 by malcolm]
Add an instance of Read to correspond to the existing Show instance.
(Implementation based on H'98 Report definition of 'readList'.)
panne [Sat, 24 Sep 2005 15:07:49 +0000 (15:07 +0000)]
[project @ 2005-09-24 15:07:49 by panne]
Synched all FPTOOLS_CHECK_HTYPE definitions with the latest changes in
libraries/OpenAL/aclocal.m4. Although it is not strictly necessary, keeping
things identical is good for consistency. At some point in time we should
really find a way to eliminate all this redundancy... *sigh*
ross [Thu, 22 Sep 2005 09:43:01 +0000 (09:43 +0000)]
[project @ 2005-09-22 09:43:01 by ross]
some docs
simonmar [Wed, 21 Sep 2005 11:54:59 +0000 (11:54 +0000)]
[project @ 2005-09-21 11:54:59 by simonmar]
improve documentation for getProcessExitCode
ross [Mon, 19 Sep 2005 23:24:31 +0000 (23:24 +0000)]
[project @ 2005-09-19 23:24:31 by ross]
For compilers other than MSVC and GCC, assume inline has the C99 semantics.
panne [Sun, 18 Sep 2005 10:01:57 +0000 (10:01 +0000)]
[project @ 2005-09-18 10:01:57 by panne]
Fixed a few underquoted definitions.
dons [Sun, 18 Sep 2005 02:22:33 +0000 (02:22 +0000)]
[project @ 2005-09-18 02:22:33 by dons]
Typo in comment only. Spotted by heatsink on #haskell.
simonmar [Fri, 2 Sep 2005 14:04:38 +0000 (14:04 +0000)]
[project @ 2005-09-02 14:04:38 by simonmar]
back out rev. 1.22; as pointed out by Krasimir Angelov, the
optimisation doesn't work (sadly).
ross [Thu, 1 Sep 2005 10:49:07 +0000 (10:49 +0000)]
[project @ 2005-09-01 10:49:07 by ross]
GHC only: define toList using build
ross [Wed, 31 Aug 2005 12:15:31 +0000 (12:15 +0000)]
[project @ 2005-08-31 12:15:31 by ross]
Hugs: use custom versioon of unsafeInterleaveIO
ross [Fri, 5 Aug 2005 09:48:16 +0000 (09:48 +0000)]
[project @ 2005-08-05 09:48:16 by ross]
haddock stuff
simonmar [Thu, 4 Aug 2005 11:40:26 +0000 (11:40 +0000)]
[project @ 2005-08-04 11:40:26 by simonmar]
fix typo in subRegex (fixes subRegex breakage on Windows)
simonmar [Mon, 1 Aug 2005 13:23:22 +0000 (13:23 +0000)]
[project @ 2005-08-01 13:23:22 by simonmar]
Fix
[ ghc-Bugs-1249226 ] runInteractiveProcess and closed stdin.
ross [Fri, 29 Jul 2005 17:17:22 +0000 (17:17 +0000)]
[project @ 2005-07-29 17:17:22 by ross]
document deprecation
ross [Fri, 29 Jul 2005 17:03:37 +0000 (17:03 +0000)]
[project @ 2005-07-29 17:03:37 by ross]
deprecate in favour of Data.Sequence
ross [Fri, 29 Jul 2005 17:02:07 +0000 (17:02 +0000)]
[project @ 2005-07-29 17:02:07 by ross]
use Data.Sequence instead of Data.Queue
ross [Thu, 28 Jul 2005 13:27:03 +0000 (13:27 +0000)]
[project @ 2005-07-28 13:27:03 by ross]
avoid warnings
simonmar [Wed, 27 Jul 2005 10:04:26 +0000 (10:04 +0000)]
[project @ 2005-07-27 10:04:26 by simonmar]
expand docs for touchForeignPtr and newConcForeignPtr
ross [Wed, 27 Jul 2005 00:52:33 +0000 (00:52 +0000)]
[project @ 2005-07-27 00:52:33 by ross]
Hugs only: no longer need backslash fiddle now that Hugs leaves them alone.
ross [Tue, 26 Jul 2005 11:00:42 +0000 (11:00 +0000)]
[project @ 2005-07-26 11:00:42 by ross]
this version of closeFd is used by GHC only
ross [Tue, 26 Jul 2005 09:37:28 +0000 (09:37 +0000)]
[project @ 2005-07-26 09:37:27 by ross]
PrelHandle functions are only needed by GHC
ross [Sat, 23 Jul 2005 17:08:03 +0000 (17:08 +0000)]
[project @ 2005-07-23 17:08:03 by ross]
non-GHC: implement rawSystem by translating the string for system.
ross [Sat, 23 Jul 2005 13:28:24 +0000 (13:28 +0000)]
[project @ 2005-07-23 13:28:24 by ross]
Hugs: omit commandToProcess
ross [Fri, 22 Jul 2005 16:25:16 +0000 (16:25 +0000)]
[project @ 2005-07-22 16:25:16 by ross]
revert 1.17
simonmar [Fri, 22 Jul 2005 10:18:51 +0000 (10:18 +0000)]
[project @ 2005-07-22 10:18:51 by simonmar]
check the return value of chdir()
[ 1242598 ] runProcess uses cwd for bad working directory argument
ross [Fri, 22 Jul 2005 08:15:06 +0000 (08:15 +0000)]
[project @ 2005-07-22 08:15:06 by ross]
unbreak for non-GHC
simonmar [Thu, 21 Jul 2005 12:54:33 +0000 (12:54 +0000)]
[project @ 2005-07-21 12:54:33 by simonmar]
Hack Makefiles so that 'make distclean' works even if the tree has not
been configured, or 'make distclean' has already been run.
This is to solve problems caused by 'make distclean' removing files
that it needs itself - previously we were arranging to remove certain
files right at the end of cleaning, but this is fragile. So now we
assume that e.g. the X11 library is always enabled when we're
cleaning.
ross [Thu, 21 Jul 2005 11:08:51 +0000 (11:08 +0000)]
[project @ 2005-07-21 11:08:51 by ross]
specialize instances too
ross [Thu, 21 Jul 2005 11:00:17 +0000 (11:00 +0000)]
[project @ 2005-07-21 11:00:17 by ross]
revise Data instance again, making it like lists
ross [Thu, 21 Jul 2005 10:59:27 +0000 (10:59 +0000)]
[project @ 2005-07-21 10:59:27 by ross]
more SPECIALIZE pragmas
simonmar [Thu, 21 Jul 2005 10:00:34 +0000 (10:00 +0000)]
[project @ 2005-07-21 10:00:34 by simonmar]
Further optimisations to ForeignPtr: now we don't allocate the IORef
for a ForeignPtr without a finalizer.
simonmar [Thu, 21 Jul 2005 09:26:30 +0000 (09:26 +0000)]
[project @ 2005-07-21 09:26:30 by simonmar]
copyFile: copy the permissions properly (don't use getPermissions >>=
setPermissions, which only copies the owner's permissions on Unix).
ross [Tue, 19 Jul 2005 23:22:39 +0000 (23:22 +0000)]
[project @ 2005-07-19 23:22:39 by ross]
use feature tests instead of $host to locate socket library