[Pkg-ocaml-maint-commits] r2858 - in /trunk/packages/ocaml/trunk/debian/policy: authors.xml chapter-generalities.xml legal.xml

treinen at users.alioth.debian.org treinen at users.alioth.debian.org
Thu Jun 22 20:28:22 UTC 2006


Author: treinen
Date: Thu Jun 22 20:28:22 2006
New Revision: 2858

URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/?sc=1&rev=2858
Log:
put explanation on bytecode vs. native code first, and expand on this
language improvements
include myself as author

Modified:
    trunk/packages/ocaml/trunk/debian/policy/authors.xml
    trunk/packages/ocaml/trunk/debian/policy/chapter-generalities.xml
    trunk/packages/ocaml/trunk/debian/policy/legal.xml

Modified: trunk/packages/ocaml/trunk/debian/policy/authors.xml
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocaml/trunk/debian/policy/authors.xml?rev=2858&op=diff
==============================================================================
--- trunk/packages/ocaml/trunk/debian/policy/authors.xml (original)
+++ trunk/packages/ocaml/trunk/debian/policy/authors.xml Thu Jun 22 20:28:22 2006
@@ -21,6 +21,14 @@
     <orgname>The NM Debian Project</orgname>
     <address><email>sylvain.le-gall at polytechnique.org</email></address>
    </affiliation>
+  </author>
+  <author>
+   <firstname>Ralf</firstname>
+   <surname>Treinen</surname>
+   <affiliation>
+    <orgname>The NM Debian Project</orgname>
+    <address><email>treinen at debian.org</email></address>
+   </affiliation>
   </author-->
 <author>
     <affiliation>

Modified: trunk/packages/ocaml/trunk/debian/policy/chapter-generalities.xml
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocaml/trunk/debian/policy/chapter-generalities.xml?rev=2858&op=diff
==============================================================================
--- trunk/packages/ocaml/trunk/debian/policy/chapter-generalities.xml (original)
+++ trunk/packages/ocaml/trunk/debian/policy/chapter-generalities.xml Thu Jun 22 20:28:22 2006
@@ -1,12 +1,131 @@
+<section id="bytecode-native">
+    <title>Bytecode and Native Code</title>
+
+    <section>
+    <title>Bytecode and Native Code Executables</title>
+
+    <para>
+    The OCaml compiler can produce two kinds of executables: bytecode
+    and native. Native executables (produced by the compiler
+    <filename>ocamlopt</filename>) are generally faster than bytecode
+    executables since they are compiled specifically for an
+    architecture. Bytecode executables (produced by the compiler
+    <filename>ocamlc</filename>) have the advantage of being portable,
+    which means that a bytecode executable can be run on any
+    architecture without having to be recompiled. Bytecode executables
+    are smaller than native code executables. If considering only one
+    process the advantage in size is annihilated by the need for the
+    OCaml run time system for executing bytecode, however there is an
+    advantage when running several bytecode processes in parallel
+    since the runtime system can then be shared.  It should be noted
+    that OCaml compilers to native code are not provided for every
+    architecture. Only the following ones are supported:
+    &supported-archs;.  </para>
+
+    <para>
+    Packages providing both native and bytecode versions of a program
+    <filename>prog</filename> usually name them respectively
+    <filename>prog.opt</filename> and <filename>prog.byte</filename>
+    and provide a symbolic link <filename>prog</filename> to the best
+    available version (generally <filename>prog.opt</filename>).
+    </para>
+    </section>
+
+    <section>
+    <title>Bytecode and Native Code Compilers</title>
+    
+    <para>
+    The <filename>ocaml-native-compilers</filename> package contains
+    the OCaml compiler executables built in native mode:
+    <filename>ocamlc.opt</filename>, which produces bytecode, and
+    <filename>ocamlopt.opt</filename>, which produces native
+    code. Since the OCaml compilers are themselves written in OCaml
+    this package exists only on architectures where compilation to
+    native code is supported.
+    </para>
+
+    <para>
+    The <filename>ocaml-nox</filename> package contains the OCaml
+    compiler executables built in bytecode mode:
+    <filename>ocamlc</filename>, which produces bytecode, and on
+    architectures where compilation to native code is supported the
+    compiler <filename>ocamlopt</filename>, which produces native
+    code. It is important to understand that on architectures where
+    compilation to native code is supported <emphasis>both</emphasis>
+    packages contain compilers from OCaml to both bytecode and native
+    code, the difference lies in the nature (installation size and
+    execution speed) of the compiler executables.
+    </para>
+
+    <table>
+      <title>OCaml Compilers</title>
+      <tgroup cols="3">
+        <thead>
+         <row>
+            <entry></entry>
+            <entry>Compiles to bytecode</entry>
+            <entry>Compiles to  native code</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>Compiler executable in bytecode</entry>
+	    <entry>ocamlc</entry>
+	    <entry>ocamlopt</entry>
+          </row>
+          <row>
+            <entry>Compiler executable in native code</entry>
+	    <entry>ocamlc.opt</entry>
+	    <entry>ocamlopt.opt</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table> 
+
+
+    <para>
+    Compiling with native code versions of the compilers is generally
+    faster than with compilers in bytecode. Unfortunately, the
+    <filename>ocaml-native-compilers</filename> package is not
+    available on every architecture. <emphasis>Packages should
+    therefore never depend directly on this package.</emphasis> In
+    order to build big programs and benefit from this natively built
+    compiler, packages should depend on
+    <filename>ocaml-best-compilers</filename> which itself depends on
+    <filename>ocaml-native-compilers</filename> where available and on
+    <filename>ocaml</filename> elsewhere. Since it is a virtual
+    package, it cannot (yet) be a versioned dependency. The version
+    dependency should thus be carried by the
+    <filename>ocaml</filename> dependency. Note that dependency on
+    <filename>ocaml-best-compilers</filename> is only necessary for
+    real big programs for which compilation takes a lot of
+    resources. For most small programs the compilers from the 
+    <filename>ocaml-nox</filename> package are perfectly sufficient,
+    and faster to install in a build environment than compiler executables
+    in native code.
+    </para>
+    </section>
+</section>
+
 <section>
   <title>OCaml in Debian</title>
+
   <para>
-      At the time of this writing, the latest version of OCaml in Debian is &ocaml-version;.
-  </para>
-
-    <para>
-        The <filename>ocaml</filename> package depends on all the basic packages needed to develop programs with OCaml. More specifically, the packaging of OCaml is split into smaller packages. The packages with suffix <filename>-nox</filename> contain libraries which don't need X (i.e., for the programs which don't use the <code>Graphics</code> or <code>LablTk</code> modules) in order to avoid dependencies on big packages for users who do not need to run graphical applications. Here is the list of binary packages in which OCaml is split:
-        <orderedlist>
+      At the time of this writing, the latest version of OCaml in
+  Debian is &ocaml-version;.  </para>
+
+    <para>
+    The <filename>ocaml</filename> package depends on all the basic
+    packages needed to develop programs with OCaml. More specifically,
+    the packaging of OCaml is split into smaller packages. The
+    packages with suffix <filename>-nox</filename> contain libraries
+    that don't need X (i.e., for programs that don't use the
+    <code>Graphics</code> or <code>LablTk</code> modules) in order to
+    avoid dependencies on big packages for users who do not need to
+    run graphical applications. Here is the list of binary packages into
+    which OCaml is split:
+  
+      <orderedlist>
             <listitem>
                 <para>
                     The <filename>ocaml</filename> and <filename>ocaml-nox</filename> packages contain the compiler and its libraries.
@@ -27,7 +146,7 @@
             </listitem>
             <listitem>
                 <para>
-                    The <filename>ocaml-interp</filename> package contains the toplevel system for OCaml (<filename>ocaml</filename>), that enables interactive use of the language.
+                    The <filename>ocaml-interp</filename> package contains the toplevel system for OCaml (<filename>ocaml</filename>) which provides for an interactive interpreter of the language.
                 </para>
             </listitem>
             <listitem>
@@ -49,46 +168,38 @@
     </para>
 
     <para>
-        Since libraries produced by OCaml are binary incompatible when compiled with different releases of OCaml, versioned virtual packages are also provided by packages at items (1) and (2): <filename>ocaml-&ocaml-version;</filename>, <filename>ocaml-nox-&ocaml-version;</filename>, <filename>ocaml-base-&ocaml-version;</filename>, <filename>ocaml-base-nox-&ocaml-version;</filename>.
+    Since libraries produced by OCaml are binary incompatible when
+    compiled with different releases of OCaml, versioned virtual
+    packages are also provided by packages at items (1) and (2):
+    <filename>ocaml-&ocaml-version;</filename>,
+    <filename>ocaml-nox-&ocaml-version;</filename>,
+    <filename>ocaml-base-&ocaml-version;</filename>,
+    <filename>ocaml-base-nox-&ocaml-version;</filename>.
     </para>
 
     <section>
-      <title>OCaml location</title>
+      <title>OCaml Location</title>
       <para>
 	The root of all installed OCaml libraries is the <emphasis>OCaml
 	  standard library directory</emphasis>, which is
 	<filename>/usr/lib/ocaml/VERSION/</filename>, at the time of writing
-	<filename>&ocaml-sys-dir;</filename>. It can be output
-	by the OCaml compiler invoking it as <code>ocamlc -where</code>.
+	<filename>&ocaml-sys-dir;</filename>. This location can be obtained
+	from the OCaml compiler by invoking it as <code>ocamlc -where</code>.
       </para>
 
   </section>
 
 </section>
 
-<section id="bytecode-native">
-    <title>Bytecode and native programs</title>
-
-    <para>
-        The OCaml compiler can produce two kinds of executables: bytecode and native. The native executables (compiled with <filename>ocamlopt</filename>) are generally faster since they are compiled specifically for an achitecture. The bytecode executables (compiled with <filename>ocamlc</filename>) have the advantage of being portable, which means that a bytecode program can be run on any achitecture without needing to be rebuilt. It should be noted that native OCaml compilers are not provided for every achitecture. Only the following are suported: &supported-archs;.
-    </para>
-
-    <para>
-        Packages providing both native and bytecode versions of a program <filename>prog</filename> usually name them respectively <filename>prog.opt</filename> and <filename>prog.byte</filename> and provide a symbolic link <filename>prog</filename> to the best available version (generally <filename>prog.opt</filename>).
-    </para>
-
-    <para>
-        The <filename>ocaml-native-compilers</filename> package contains the OCaml compiler built in native mode (<filename>ocamlc.opt</filename>, which outputs bytecode, and <filename>ocamlopt.opt</filename>, which output native code). Compiling with those versions of the compilers is generally faster. Unfortunately the <filename>ocaml-native-compilers</filename> package is not available on every architecture. <emphasis>Packages should therefore never depend directly on this package.</emphasis> In order to build big programs and benefit from this natively built compiler, packages should depend on <filename>ocaml-best-compilers</filename> which itself depends on <filename>ocaml-native-compilers</filename> where available and on <filename>ocaml</filename> elsewhere. Since it is a virtual package, it cannot (yet) be a versioned dependency. The version dependency should thus be carried by the <filename>ocaml</filename> dependency.
-    </para>
-</section>
+
 
 <section id="files">
-    <title>Files used by the OCaml compiler</title>
+    <title>Files Used and Produced by the OCaml Compiler</title>
 
     <para>
         The &ocaml-name; compiler can produce or use the following kind of files:
         <itemizedlist>
-            <listitem><para>bytecode executables (they can be recognised since they start with the shebang line <code>#!/usr/bin/ocamlrun</code>)</para></listitem>
+            <listitem><para>bytecode executables (they can be recognized since they start with the shebang line <code>#!/usr/bin/ocamlrun</code>)</para></listitem>
 	    <listitem>
 	      <para>bytecode executables linked in <emphasis>custom mode</emphasis>. They are generated by <filename>ocamlc</filename> (or <filename>ocamlc.opt</filename>), when the <code>-custom</code> flag is given at link time. Those executables are in ELF format and include both the final bytecode and the bytecode interpreter. <filename>strip</filename> should never be invoked on them, since it will remove the bytecode part.
 	      </para>
@@ -109,7 +220,7 @@
 </section>
 
 <section id="liblocal-path">
-    <title>Locally installing OCaml programs and libraries</title>
+    <title>Locally Installing OCaml Programs and Libraries</title>
 
     <para>
         Installation and use of locally installed OCaml related programs is out of the scope of this document. However, in order to have it work with a standard Debian installation, you should follow some guidelines.

Modified: trunk/packages/ocaml/trunk/debian/policy/legal.xml
URL: http://svn.debian.org/wsvn/pkg-ocaml-maint/trunk/packages/ocaml/trunk/debian/policy/legal.xml?rev=2858&op=diff
==============================================================================
--- trunk/packages/ocaml/trunk/debian/policy/legal.xml (original)
+++ trunk/packages/ocaml/trunk/debian/policy/legal.xml Thu Jun 22 20:28:22 2006
@@ -1,6 +1,7 @@
 <copyright>
     <year>2002</year><year>2003</year><year>2004</year><year>2005</year><year>2006</year>
-    <holder>Sylvain LE GALL, Sven LUTHER, Samuel MIMRAM and Stefano ZACCHIROLI</holder>
+    <holder>Sylvain LE GALL, Sven LUTHER, Samuel MIMRAM, Ralf TREINEN,
+            and Stefano ZACCHIROLI</holder>
 </copyright>
 <legalnotice>
     <para>




More information about the Pkg-ocaml-maint-commits mailing list