<literal>–all_load</literal> on MacOS X)</para>
</listitem>
<listitem>
- <para>When building the package as shared object, GHC wraps
- out the underlying linker so that the user gets a common
+ <para>When building the package as shared library, GHC can be used to
+ perform the link step. This hides some of the details
+ out the underlying linker and provides a common
interface to all shared object variants that are supported
by GHC (DLLs, ELF DSOs, and Mac OS dylibs). The shared
object must be named in specific way for two reasons: (1)
<literal>InstalledPackageInfo</literal>, the same as the input file
format for <literal>ghc-pkg register</literal>. See <xref
linkend="installed-pkg-info" /> for details.</para>
+
+ <para>If the pattern matches multiple packages, the
+ description for each package is emitted, separated by the
+ string <literal>---</literal> on a line by itself.</para>
</listitem>
</varlistentry>
them with commas</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><literal>ghc-pkg dump</literal></term>
+ <listitem>
+ <para>Emit the full description of every package, in the
+ form of an <literal>InstalledPackageInfo</literal>.
+ Multiple package descriptions are separated by the
+ string <literal>---</literal> on a line by itself.</para>
+
+ <para>This is almost the same as <literal>ghc-pkg describe '*'</literal>, except that <literal>ghc-pkg dump</literal>
+ is intended for use by tools that parse the results, so
+ for example where <literal>ghc-pkg describe '*'</literal>
+ will emit an error if it can't find any packages that
+ match the pattern, <literal>ghc-pkg dump</literal> will
+ simply emit nothing.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
<para>