caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] OCaml 3.12.1 compatibility report
@ 2011-06-16 15:01 Damien Doligez
  2011-06-16 15:11 ` [Caml-list] " Sylvain Le Gall
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Damien Doligez @ 2011-06-16 15:01 UTC (permalink / raw)
  To: caml users

[-- Attachment #1: Type: text/plain, Size: 3536 bytes --]


                  OCaml 3.12.1 Compatibility Report


I have compiled the following software with the latest release
candidate of OCaml (3.12.1+rc1).

See below for a list of what I had to patch to get these to compile.
The packages I had to patch are marked here with a *

* advi-1.9.0.tar.gz
  alt-ergo-0.93.tar.gz
  bin_prot-1.3.1.tar.gz
* boomerang-0.2-source.tar.gz
* cameleon-1.9.21.tar.gz
* camlimages-4.0.0.tar.bz2
  camomile-0.8.2.tar.bz2
  camlp5-6.02.2.tgz
* camlzip-1.04.tar.gz
  config-file-1.0.tar.gz
  coq-8.3pl2.tar.gz
  core-0.7.0.tar.gz
  core_extended-0.7.0.tar.gz
  cryptokit-1.4.tar.gz
  extlib-1.5.1.tar.gz
  fieldslib-0.1.2.tar.gz
  findlib-1.2.7.tar.gz
  frama-c-Carbon-20110201.tar.gz
* hevea-1.10.tar.gz
  lablgtk-2.14.2.tar.gz
* lablgtkextras-1.0.tar.gz
  lwt-2.3.0.tar.gz
  menhir-20110201.tar.gz
* oasis-0.2.0.tar.gz
* obrowser-1.1.tar.gz
* ocaml-data-notation-0.0.3.tar.gz
  ocaml-expect-0.0.2.tar.gz
* ocaml-fileutils-0.4.2.tar.gz
  ocaml-mysql-1.0.4.tar.gz
  ocaml-sqlite3-release-1.6.1.tar.gz
  ocaml-ssl-0.4.5.tar.gz
  ocaml-text-0.4.tar.gz
  ocamlgraph-1.7.tar.gz
  ocamlify-0.0.1.tar.gz
  ocamlnet-3.2.1.tar.gz
  ocgi-0.5.tar.gz
  ocsigen-1.3.4.tar.gz
* omake-0.9.8.6-0.rc1.tar.gz
  ounit-1.1.0.tar.gz
  pcre-ocaml-release-6.2.2.tar.gz
  react-0.9.2.tbz
  res-release-3.2.0.tar.gz
  sexplib-5.2.1.tar.gz
  sks-1.1.1.tgz
  type-conv-2.3.0.tar.gz
  unison-2.40.63.tar.gz
* vsyml-2010-04-06.tar.gz
* xml-light-2.2.zip
  zen_2.3.2.tar.gz

-----------------------------------------------------------

This is what I had to patch because of problems unrelated to 3.12.1:

advi: 2 lines
  Change Makefile to link with graphics and lablgtk

boomerang: 1 line
  Change Makefile to remove "doc" from subdirs

cameleon: 5 lines
  Change ed_main.ml to remove call to GtkThread.set_do_jobs_delay
  Change checkocaml.ml: detection of lablgtkextras depends on xml-light
    configuration

camlimages: 15 lines
  Add oPng.mli and oJpeg.mli
  Change META file to add archives camlimages.cma and .cmxa (neeed for advi)

camlzip: 10 lines
  Change Makefile to configure the location of libz.a
  Add a META file for findlib

hevea: 2 lines
  Change hevea.ml to remove target file in case of error
  Change Makefile to pass LIBDIR and LATEXLIBDIR to install script

lablgtkextras: 40 lines
  Change checkocaml.ml and Makefiles to detect where is xml-light installed
    (see xml-light below)

oasis: 8 lines
  Change setup.ml to handle OCaml version numbers with a + suffix

obrowser-1.1: 13 lines
  Change in Makefile to add .PHONY annotation to AXO (my filesystem is
    case-insensitive, so AXO interferes with axo).
  Update pervasives.ml and pervasives.mli to reflect OCaml changes since 3.11.1

ocaml-data-notation: 3 lines
  Change in Makefile to follow name change of "type-conv.syntax" to "type-conv"
  Changes in pa_odn.ml to remove extraneous occurrences "_loc"

ocaml-fileutils: 2 lines
  Changes in Makefile to remove use of non-portable "install -t"

omake: 1 line
  Change in OMakefiles to remove "-warn-error A"
  Note: DO NOT use "-warn-error A" in released code.

vsyml: 4 lines
  Changes in Makefile to remove non-portable "echo -n"

xml-light: 3 lines
  Changes in Makefile to install in a subdirectory of .../lib/ocaml
    This is needed because xml-light exports xml.cmi and ocsigen has a
    file xML.mli.  These conflict because my filesystem is case-insensitive.

-- Damien


[-- Attachment #2: REPORT-3.12.1.txt --]
[-- Type: text/plain, Size: 3519 bytes --]

                  OCaml 3.12.1 Compatibility Report


I have compiled the following software with the latest release
candidate of OCaml (3.12.1+rc1).

See below for a list of what I had to patch to get these to compile.
The packages I had to patch are marked here with a *

* advi-1.9.0.tar.gz
  alt-ergo-0.93.tar.gz
  bin_prot-1.3.1.tar.gz
* boomerang-0.2-source.tar.gz
* cameleon-1.9.21.tar.gz
* camlimages-4.0.0.tar.bz2
  camomile-0.8.2.tar.bz2
  camlp5-6.02.2.tgz
* camlzip-1.04.tar.gz
  config-file-1.0.tar.gz
  coq-8.3pl2.tar.gz
  core-0.7.0.tar.gz
  core_extended-0.7.0.tar.gz
  cryptokit-1.4.tar.gz
  extlib-1.5.1.tar.gz
  fieldslib-0.1.2.tar.gz
  findlib-1.2.7.tar.gz
  frama-c-Carbon-20110201.tar.gz
* hevea-1.10.tar.gz
  lablgtk-2.14.2.tar.gz
* lablgtkextras-1.0.tar.gz
  lwt-2.3.0.tar.gz
  menhir-20110201.tar.gz
* oasis-0.2.0.tar.gz
* obrowser-1.1.tar.gz
* ocaml-data-notation-0.0.3.tar.gz
  ocaml-expect-0.0.2.tar.gz
* ocaml-fileutils-0.4.2.tar.gz
  ocaml-mysql-1.0.4.tar.gz
  ocaml-sqlite3-release-1.6.1.tar.gz
  ocaml-ssl-0.4.5.tar.gz
  ocaml-text-0.4.tar.gz
  ocamlgraph-1.7.tar.gz
  ocamlify-0.0.1.tar.gz
  ocamlnet-3.2.1.tar.gz
  ocgi-0.5.tar.gz
  ocsigen-1.3.4.tar.gz
* omake-0.9.8.6-0.rc1.tar.gz
  ounit-1.1.0.tar.gz
  pcre-ocaml-release-6.2.2.tar.gz
  react-0.9.2.tbz
  res-release-3.2.0.tar.gz
  sexplib-5.2.1.tar.gz
  sks-1.1.1.tgz
  type-conv-2.3.0.tar.gz
  unison-2.40.63.tar.gz
* vsyml-2010-04-06.tar.gz
* xml-light-2.2.zip
  zen_2.3.2.tar.gz

-----------------------------------------------------------

This is what I had to patch because of problems unrelated to 3.12.1:

advi: 2 lines
  Change Makefile to link with graphics and lablgtk

boomerang: 1 line
  Change Makefile to remove "doc" from subdirs

cameleon: 5 lines
  Change ed_main.ml to remove call to GtkThread.set_do_jobs_delay
  Change checkocaml.ml: detection of lablgtkextras depends on xml-light
    configuration

camlimages: 15 lines
  Add oPng.mli and oJpeg.mli
  Change META file to add archives camlimages.cma and .cmxa (neeed for advi)

camlzip: 10 lines
  Change Makefile to configure the location of libz.a
  Add a META file for findlib

hevea: 2 lines
  Change hevea.ml to remove target file in case of error
  Change Makefile to pass LIBDIR and LATEXLIBDIR to install script

lablgtkextras: 40 lines
  Change checkocaml.ml and Makefiles to detect where is xml-light installed
    (see xml-light below)

oasis: 8 lines
  Change setup.ml to handle OCaml version numbers with a + suffix

obrowser-1.1: 13 lines
  Change in Makefile to add .PHONY annotation to AXO (my filesystem is
    case-insensitive, so AXO interferes with axo).
  Update pervasives.ml and pervasives.mli to reflect OCaml changes since 3.11.1

ocaml-data-notation: 3 lines
  Change in Makefile to follow name change of "type-conv.syntax" to "type-conv"
  Changes in pa_odn.ml to remove extraneous occurrences "_loc"

ocaml-fileutils: 2 lines
  Changes in Makefile to remove use of non-portable "install -t"

omake: 1 line
  Change in OMakefiles to remove "-warn-error A"
  Note: DO NOT use "-warn-error A" in released code.

vsyml: 4 lines
  Changes in Makefile to remove non-portable "echo -n"

xml-light: 3 lines
  Changes in Makefile to install in a subdirectory of .../lib/ocaml
    This is needed because xml-light exports xml.cmi and ocsigen has a
    file xML.mli.  These conflict because my filesystem is case-insensitive.

[-- Attachment #3: advi-1.9.0.patch --]
[-- Type: application/octet-stream, Size: 571 bytes --]

--- advi-1.9.0/src/Makefile.in.orig	2010-04-05 10:16:22.000000000 +0200
+++ advi-1.9.0/src/Makefile.in	2011-05-20 09:56:29.000000000 +0200
@@ -97,8 +97,8 @@
 AWK = @AWK@
 BUILD_DATE = @BUILD_DATE@
 CAMLIMAGES_INCLUDES = @CAMLIMAGES_INCLUDES@
-CAMLIMAGES_LIBS_BYTE = @CAMLIMAGES_LIBS_BYTE@
-CAMLIMAGES_LIBS_NATIVE = @CAMLIMAGES_LIBS_NATIVE@
+CAMLIMAGES_LIBS_BYTE = graphics.cma -I +lablgtk2 lablgtk.cma @CAMLIMAGES_LIBS_BYTE@
+CAMLIMAGES_LIBS_NATIVE = graphics.cmxa -I +lablgtk2 lablgtk.cmxa @CAMLIMAGES_LIBS_NATIVE@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@

[-- Attachment #4: boomerang-0.2.patch --]
[-- Type: application/octet-stream, Size: 373 bytes --]

--- boomerang-0.2/OMakefile.orig	2010-06-07 15:01:55.000000000 +0200
+++ boomerang-0.2/OMakefile	2010-06-07 15:02:08.000000000 +0200
@@ -126,7 +126,7 @@
 ##############################################################################
 # Include sub-directories
 
-SUBDIRS = common src lenses examples doc
+SUBDIRS = common src lenses examples #doc
 
 .SUBDIRS: $(SUBDIRS)
 

[-- Attachment #5: cameleon-1.9.21.patch --]
[-- Type: application/octet-stream, Size: 1456 bytes --]

--- cameleon-1.9.21.orig/src/editor/ed_main.ml	2011-01-13 10:57:39.000000000 +0100
+++ cameleon-1.9.21/src/editor/ed_main.ml	2011-05-03 21:32:06.000000000 +0200
@@ -75,7 +75,7 @@
      in
      Cam_hooks.warning_message (Ed_misc.to_utf8 m);
     );
-  GtkThread.set_do_jobs_delay 0.02;
+  (*GtkThread.set_do_jobs_delay 0.02;*)
   GtkThread.main ();
   Ed_view.iter_factories
     (fun f -> Ed_misc.catch_print_exceptions (fun () -> f#on_exit) ());
--- cameleon-1.9.21.orig/utils/checkocaml.ml	2011-01-13 10:57:39.000000000 +0100
+++ cameleon-1.9.21/utils/checkocaml.ml	2011-05-08 23:08:02.000000000 +0200
@@ -964,10 +964,10 @@
     prerr_endline msg; exit 1
 
 let _ = !print "\n### checking required tools and libraries ###\n"
-let _ =
+let xml_light_incs =
   match detect_xml_light ~modes conf with
-    [], [] -> !fatal_error "Could not link with Xml-light"
-  | l, _ -> add_subst "XMLLIGHT_INCLUDES" (string_of_includes l)
+    [], [] -> !fatal_error "Could not link with Xml-light"; assert false
+  | l, _ -> add_subst "XMLLIGHT_INCLUDES" (string_of_includes l); l
 
 let pcre_includes =
   match detect_pcre ~modes conf with
@@ -1025,7 +1025,7 @@
 
 let _ =
   let (incs,b) =
-    match detect_lablgtkextras ~modes lablgtk_incs conf with
+    match detect_lablgtkextras ~modes (lablgtk_incs @ xml_light_incs) conf with
       [], [] -> !fatal_error "Could not link with LablGtk-extras"; assert false
     | l, _ -> (string_of_includes l,true)
   in

[-- Attachment #6: camlimages-4.0.0.patch --]
[-- Type: application/octet-stream, Size: 1332 bytes --]

--- camlimages-4.0.0.orig/src/oPng.mli	1970-01-01 01:00:00.000000000 +0100
+++ camlimages-4.0.0/src/oPng.mli	2011-05-17 17:47:40.000000000 +0200
@@ -0,0 +1,4 @@
+val load_as_rgb24 : string -> Images.load_option list -> OImages.oimage
+val load : string -> Images.load_option list -> OImages.oimage
+val save :
+  string -> Images.save_option list -> < image : Images.t; .. > -> unit
--- camlimages-4.0.0.orig/src/oJpeg.mli	1970-01-01 01:00:00.000000000 +0100
+++ camlimages-4.0.0/src/oJpeg.mli	2011-05-17 17:48:33.000000000 +0200
@@ -0,0 +1,9 @@
+val load : string -> Images.load_option list -> OImages.oimage
+val load_thumbnail :
+  string ->
+  Images.load_option list -> Geometry.spec -> int * int * OImages.oimage
+val save : string -> Images.save_option list -> OImages.oimage -> unit
+val save_as_cmyk :
+  string ->
+  Images.save_option list ->
+  (Images.rgb -> int * int * int * int) -> OImages.oimage -> unit
--- camlimages-4.0.0/src/META.in.orig	2011-05-20 09:48:04.000000000 +0200
+++ camlimages-4.0.0/src/META.in	2011-05-20 09:48:30.000000000 +0200
@@ -2,7 +2,8 @@
 version = "@PACKAGE_VERSION@"
 description = "Objective Caml image processing library"
 
-requires = "camlimages.core"
+archive(byte) = "camlimages.cma"
+archive(native) = "camlimages.cmxa"
 
 package "core" (
   archive(byte) = "camlimages_core.cma"

[-- Attachment #7: camlzip-1.04.patch --]
[-- Type: application/octet-stream, Size: 793 bytes --]

--- camlzip-1.04/Makefile	2009-10-20 15:59:55.000000000 +0200
+++ camlzip-1.04/Makefile.new	2009-10-20 16:00:31.000000000 +0200
@@ -4,10 +4,10 @@
 ZLIB_LIB=-lz
 
 # The directory containing the Zlib library (libz.a or libz.so)
-ZLIB_LIBDIR=/usr/local/lib
+ZLIB_LIBDIR=/opt/local/lib
 
 # The directory containing the Zlib header file (zlib.h)
-ZLIB_INCLUDE=/usr/local/include
+ZLIB_INCLUDE=/opt/local/include
 
 # Where to install the library.  By default: sub-directory 'zip' of
 # OCaml's standard library directory.
--- /dev/null	2009-10-20 16:35:40.000000000 +0200
+++ camlzip-1.04/META	2009-10-20 16:37:31.000000000 +0200
@@ -0,0 +1,6 @@
+name = "camlzip"
+version = "1.04"
+description = "compression library"
+archive(byte) = "zip.cma"
+archive(native) = "zip.cmxa"
+directory = "+zip"

[-- Attachment #8: hevea-1.10.patch --]
[-- Type: application/octet-stream, Size: 657 bytes --]

diff -r -u hevea-1.10 2/hevea.ml hevea-1.10/hevea.ml
--- hevea-1.10 2/hevea.ml	2007-02-09 15:44:28.000000000 +0100
+++ hevea-1.10/hevea.ml	2009-08-27 17:51:55.000000000 +0200
@@ -237,6 +237,7 @@
 *)
   end ;
   let _ = finalize false in
+  begin try Sys.remove Parse_opts.name_out with _ -> () end;
   prerr_endline "Adios" ;
   exit 2
 ;;
--- hevea-1.10/Makefile.orig	2009-10-28 12:18:16.000000000 +0100
+++ hevea-1.10/Makefile	2009-10-28 12:18:00.000000000 +0100
@@ -48,7 +48,7 @@
 all-make: $(TARGET)-make
 
 install: config.sh
-	./install.sh $(TARGET)
+	LIBDIR=${LIBDIR} LATEXLIBDIR=${LATEXLIBDIR} ./install.sh $(TARGET)
 
 byte: ocb-byte
 opt: ocb-opt

[-- Attachment #9: lablgtkextras-1.0.patch --]
[-- Type: application/octet-stream, Size: 2887 bytes --]

--- lablgtkextras-1.0.orig/checkocaml.ml	2011-01-13 08:39:06.000000000 +0100
+++ lablgtkextras-1.0/checkocaml.ml	2011-05-06 13:58:36.000000000 +0200
@@ -836,6 +836,37 @@
   iter includes
 (*/c==v=[OCaml_conf.detect_lablgtk2]=0.1====*)
 
+(*c==v=[OCaml_conf.detect_xml_light]=0.3====*)
+let detect_xml_light ?(modes=[`Byte;`Opt]) conf =
+  let includes =
+     ["default install", [] ;
+      "+xml-light style", [Filename.concat (ocaml_libdir conf) "xml-light"] ;
+     ]
+  in
+  let includes =
+    match ocamlfind_query conf "xml-light" with
+      None -> includes
+    | Some s -> ("with ocamlfind", [s]) :: includes
+  in
+  let libs = ["xml-light.cma"] in
+  let f (mes, includes) mode =
+    let mes = Printf.sprintf "checking for Xml-light (%s) %s... "
+	(string_of_mode mode) mes
+    in
+    can_link ~mes mode conf ~includes ~libs []
+  in
+  let rec iter = function
+      [] -> ([], [])
+    | incs :: q ->
+	let f = f incs in
+	if List.for_all f modes then
+	  (snd incs, libs)
+	else
+	  iter q
+  in
+  iter includes
+(*/c==v=[OCaml_conf.detect_xml_light]=0.3====*)
+
 let detect_cairo ?(modes=[`Byte;`Opt]) conf =
   let includes = ["default install", ["+cairo"]] in
   let includes =
@@ -894,6 +925,11 @@
   | s, _ -> add_subst "LABLGTK2_INCLUDES" s
 ;;
 let _ =
+  match detect_xml_light ~modes conf with
+    [], [] -> !fatal_error "Could not link with Xml-light"
+  | l, _ -> add_subst "XMLLIGHT_INCLUDES" (string_of_includes l)
+;;
+let _ =
   let lablgladecc =
     try ocaml_prog "lablgladecc2"
     with Program_not_found _ ->
--- lablgtkextras-1.0.orig/master.Makefile.in	2011-01-13 08:39:06.000000000 +0100
+++ lablgtkextras-1.0/master.Makefile.in	2011-05-06 15:53:47.000000000 +0200
@@ -74,6 +74,7 @@
 ROOT=@ROOT@
 
 LABLGTK2_INCLUDES= @LABLGTK2_INCLUDES@
+XMLLIGHT_INCLUDES=@XMLLIGHT_INCLUDES@
 
 # some common targets :
 #######################
--- lablgtkextras-1.0.orig/src/Makefile	2011-01-13 08:39:06.000000000 +0100
+++ lablgtkextras-1.0/src/Makefile	2011-05-06 15:56:22.000000000 +0200
@@ -27,7 +27,7 @@
 include ../master.Makefile
 
 MY_INCLUDES=
-SYSTEM_INCLUDES= $(LABLGTK2_INCLUDES)
+SYSTEM_INCLUDES= $(LABLGTK2_INCLUDES) $(XMLLIGHT_INCLUDES)
 
 INCLUDES=$(MY_INCLUDES) $(SYSTEM_INCLUDES)
 
--- lablgtkextras-1.0.orig/configure	2011-01-13 08:39:06.000000000 +0100
+++ lablgtkextras-1.0/configure	2011-05-06 16:02:43.000000000 +0200
@@ -556,6 +556,7 @@
 ac_unique_file="master.Makefile.in"
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+XMLLIGHT_INCLUDES
 LABLGTK2_INCLUDES
 CWLIB_BYTE
 CWLIB
--- lablgtkextras-1.0.orig/configure.ac	2011-01-13 08:39:06.000000000 +0100
+++ lablgtkextras-1.0/configure.ac	2011-05-06 16:00:35.000000000 +0200
@@ -153,6 +153,7 @@
 AC_SUBST(CWLIB_BYTE)
 
 AC_SUBST(LABLGTK2_INCLUDES)
+AC_SUBST(XMLLIGHT_INCLUDES)
 
 # Finally create the master.Makefile.in and other files
 ACFILES="master.Makefile src/version.ml src/install.ml"

[-- Attachment #10: oasis-version.patch --]
[-- Type: application/octet-stream, Size: 852 bytes --]

--- setup.ml.orig	2011-03-22 17:00:48.000000000 +0100
+++ setup.ml	2011-05-02 14:32:29.000000000 +0200
@@ -2662,10 +2662,14 @@
         (ocamlc_config_map ())
         0
     in
-    let nm_config =
+    let chop_version_suffix s =
+      try String.sub s 0 (String.index s '+')
+      with _ -> s
+    in
+    let nm_config, value_config =
       match nm with 
-        | "ocaml_version" -> "version"
-        | _ -> nm
+        | "ocaml_version" -> "version", chop_version_suffix
+        | _ -> nm, (fun x -> x)
     in
       var_redefine
         nm 
@@ -2677,7 +2681,7 @@
               let value = 
                 SMap.find nm_config map
               in
-                value
+                value_config value
             with Not_found ->
               failwithf2
                 (f_ "Cannot find field '%s' in '%s -config' output")

[-- Attachment #11: obrowser-1.1.patch --]
[-- Type: application/octet-stream, Size: 14142 bytes --]

diff -u -r obrowser-1.1.orig/Makefile obrowser-1.1/Makefile
--- obrowser-1.1.orig/Makefile	2010-01-22 19:16:35.000000000 +0100
+++ obrowser-1.1/Makefile	2010-04-27 16:07:08.000000000 +0200
@@ -24,6 +24,7 @@
 	@echo "[EXAMPLE] $*"
 	@cd examples/$* && $(MAKE) --no-print-directory
 
+.PHONY: AXO
 AXO:
 	@echo "[AXO]"
 	@cd axo/ && $(MAKE) --no-print-directory
diff -u -r obrowser-1.1.orig/rt/caml/pervasives.ml obrowser-1.1/rt/caml/pervasives.ml
--- obrowser-1.1.orig/rt/caml/pervasives.ml	2010-01-22 19:16:35.000000000 +0100
+++ obrowser-1.1/rt/caml/pervasives.ml	2010-04-27 16:14:45.000000000 +0200
@@ -83,6 +83,8 @@
 external (/.) : float -> float -> float = "%divfloat"
 external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
 external exp : float -> float = "caml_exp_float" "exp" "float"
+external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
+external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
 external acos : float -> float = "caml_acos_float" "acos" "float"
 external asin : float -> float = "caml_asin_float" "asin" "float"
 external atan : float -> float = "caml_atan_float" "atan" "float"
diff -u -r obrowser-1.1.orig/rt/caml/pervasives.mli obrowser-1.1/rt/caml/pervasives.mli
--- obrowser-1.1.orig/rt/caml/pervasives.mli	2010-01-22 19:16:35.000000000 +0100
+++ obrowser-1.1/rt/caml/pervasives.mli	2010-04-27 16:18:35.000000000 +0200
@@ -264,6 +264,14 @@
 external log10 : float -> float = "caml_log10_float" "log10" "float"
 (** Base 10 logarithm. *)
 
+external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
+(** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results
+    even if [x] is close to [0.0]. *)
+
+external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
+(** [log1p x] computes [log(1.0 +. x)] (natural logarithm),
+    giving numerically-accurate results even if [x] is close to [0.0]. *)
+
 external cos : float -> float = "caml_cos_float" "cos" "float"
 (** See {!Pervasives.atan2}. *)
 
--- obrowser-1.1/rt/caml/pervasives.mli.orig	2010-07-23 16:15:49.000000000 +0200
+++ obrowser-1.1/rt/caml/pervasives.mli	2010-07-23 16:24:44.000000000 +0200
@@ -11,19 +11,20 @@
 (*                                                                     *)
 (***********************************************************************)
 
-(* $Id: pervasives.mli,v 1.113 2008/10/06 13:33:21 doligez Exp $ *)
+(* $Id: pervasives.mli 10548 2010-06-09 10:26:19Z weis $ *)
 
 (** The initially opened module.
 
    This module provides the basic operations over the built-in types
    (numbers, booleans, strings, exceptions, references, lists, arrays,
-   input-output channels, ...)
+   input-output channels, ...).
 
    This module is automatically opened at the beginning of each compilation.
    All components of this module can therefore be referred by their short
    name, without prefixing them by [Pervasives].
 *)
 
+
 (** {6 Exceptions} *)
 
 external raise : exn -> 'a = "%raise"
@@ -42,7 +43,6 @@
 
 (** {6 Comparisons} *)
 
-
 external ( = ) : 'a -> 'a -> bool = "%equal"
 (** [e1 = e2] tests for structural equality of [e1] and [e2].
    Mutable structures (e.g. references and arrays) are equal
@@ -71,7 +71,7 @@
    The ordering is compatible with [(=)]. As in the case
    of [(=)], mutable structures are compared by contents.
    Comparison between functional values raises [Invalid_argument].
-   Comparison between cyclic structures does not terminate. *)
+   Comparison between cyclic structures may not terminate. *)
 
 external compare : 'a -> 'a -> int = "%compare"
 (** [compare x y] returns [0] if [x] is equal to [y],
@@ -93,17 +93,22 @@
    the {!List.sort} and {!Array.sort} functions. *)
 
 val min : 'a -> 'a -> 'a
-(** Return the smaller of the two arguments. *)
+(** Return the smaller of the two arguments.
+    The result is unspecified if one of the arguments contains
+    the float value [nan]. *)
 
 val max : 'a -> 'a -> 'a
-(** Return the greater of the two arguments. *)
+(** Return the greater of the two arguments.
+    The result is unspecified if one of the arguments contains
+    the float value [nan]. *)
 
 external ( == ) : 'a -> 'a -> bool = "%eq"
 (** [e1 == e2] tests for physical equality of [e1] and [e2].
-   On integers and characters, physical equality is identical to structural
-   equality. On mutable structures, [e1 == e2] is true if and only if
-   physical modification of [e1] also affects [e2].
-   On non-mutable structures, the behavior of [(==)] is
+   On mutable types such as references, arrays, strings, records with
+   mutable fields and objects with mutable instance variables,
+   [e1 == e2] is true if and only if physical modification of [e1]
+   also affects [e2].
+   On non-mutable types, the behavior of [(==)] is
    implementation-dependent; however, it is guaranteed that
    [e1 == e2] implies [compare e1 e2 = 0]. *)
 
@@ -113,7 +118,6 @@
 
 (** {6 Boolean operations} *)
 
-
 external not : bool -> bool = "%boolnot"
 (** The boolean negation. *)
 
@@ -123,7 +127,7 @@
    [e2] is not evaluated at all. *)
 
 external ( & ) : bool -> bool -> bool = "%sequand"
-(** @deprecated {!Pervasives.(&&)} should be used instead. *)
+(** @deprecated {!Pervasives.( && )} should be used instead. *)
 
 external ( || ) : bool -> bool -> bool = "%sequor"
 (** The boolean ``or''. Evaluation is sequential, left-to-right:
@@ -131,7 +135,7 @@
    [e2] is not evaluated at all. *)
 
 external ( or ) : bool -> bool -> bool = "%sequor"
-(** @deprecated {!Pervasives.(||)} should be used instead.*)
+(** @deprecated {!Pervasives.( || )} should be used instead.*)
 
 
 (** {6 Integer arithmetic} *)
@@ -141,13 +145,18 @@
    They do not fail on overflow. *)
 
 external ( ~- ) : int -> int = "%negint"
-(** Unary negation. You can also write [-e] instead of [~-e]. *)
+(** Unary negation. You can also write [- e] instead of [~- e]. *)
+
+external ( ~+ ) : int -> int = "%identity"
+(** Unary addition. You can also write [+ e] instead of [~+ e].
+    @since 3.12.0
+*)
 
 external succ : int -> int = "%succint"
-(** [succ x] is [x+1]. *)
+(** [succ x] is [x + 1]. *)
 
 external pred : int -> int = "%predint"
-(** [pred x] is [x-1]. *)
+(** [pred x] is [x - 1]. *)
 
 external ( + ) : int -> int -> int = "%addint"
 (** Integer addition. *)
@@ -164,15 +173,15 @@
    Integer division rounds the real quotient of its arguments towards zero.
    More precisely, if [x >= 0] and [y > 0], [x / y] is the greatest integer
    less than or equal to the real quotient of [x] by [y].  Moreover,
-   [(-x) / y = x / (-y) = -(x / y)].  *)
+   [(- x) / y = x / (- y) = - (x / y)].  *)
 
 external ( mod ) : int -> int -> int = "%modint"
 (** Integer remainder.  If [y] is not zero, the result
    of [x mod y] satisfies the following properties:
    [x = (x / y) * y + x mod y] and
-   [abs(x mod y) <= abs(y)-1].
+   [abs(x mod y) <= abs(y) - 1].
    If [y = 0], [x mod y] raises [Division_by_zero].
-   Notice that [x mod y] is nonpositive if and only if [x < 0].
+   Note that [x mod y] is negative only if [x < 0].
    Raise [Division_by_zero] if [y] is zero. *)
 
 val abs : int -> int
@@ -186,10 +195,8 @@
 (** The smallest representable integer. *)
 
 
-
 (** {7 Bitwise operations} *)
 
-
 external ( land ) : int -> int -> int = "%andint"
 (** Bitwise logical and. *)
 
@@ -230,12 +237,17 @@
    [neg_infinity] for [-1.0 /. 0.0], and [nan] (``not a number'')
    for [0.0 /. 0.0].  These special numbers then propagate through
    floating-point computations as expected: for instance,
-   [1.0 /. infinity] is [0.0], and any operation with [nan] as
-   argument returns [nan] as result.
+   [1.0 /. infinity] is [0.0], and any arithmetic operation with [nan]
+   as argument returns [nan] as result.
 *)
 
 external ( ~-. ) : float -> float = "%negfloat"
-(** Unary negation. You can also write [-.e] instead of [~-.e]. *)
+(** Unary negation. You can also write [-. e] instead of [~-. e]. *)
+
+external ( ~+. ) : float -> float = "%identity"
+(** Unary addition. You can also write [+. e] instead of [~+. e].
+    @since 3.12.0
+*)
 
 external ( +. ) : float -> float -> float = "%addfloat"
 (** Floating-point addition *)
@@ -250,10 +262,10 @@
 (** Floating-point division. *)
 
 external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-(** Exponentiation *)
+(** Exponentiation. *)
 
 external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-(** Square root *)
+(** Square root. *)
 
 external exp : float -> float = "caml_exp_float" "exp" "float"
 (** Exponential. *)
@@ -266,54 +278,64 @@
 
 external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
 (** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results
-    even if [x] is close to [0.0]. *)
+    even if [x] is close to [0.0].
+    @since 3.12.0
+*)
 
 external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
 (** [log1p x] computes [log(1.0 +. x)] (natural logarithm),
-    giving numerically-accurate results even if [x] is close to [0.0]. *)
+    giving numerically-accurate results even if [x] is close to [0.0].
+    @since 3.12.0
+*)
 
 external cos : float -> float = "caml_cos_float" "cos" "float"
-(** See {!Pervasives.atan2}. *)
+(** Cosine.  Argument is in radians. *)
 
 external sin : float -> float = "caml_sin_float" "sin" "float"
-(** See {!Pervasives.atan2}. *)
+(** Sine.  Argument is in radians. *)
 
 external tan : float -> float = "caml_tan_float" "tan" "float"
-(** See {!Pervasives.atan2}. *)
+(** Tangent.  Argument is in radians. *)
 
 external acos : float -> float = "caml_acos_float" "acos" "float"
-(** See {!Pervasives.atan2}. *)
+(** Arc cosine.  The argument must fall within the range [[-1.0, 1.0]].
+    Result is in radians and is between [0.0] and [pi]. *)
 
 external asin : float -> float = "caml_asin_float" "asin" "float"
-(** See {!Pervasives.atan2}. *)
+(** Arc sine.  The argument must fall within the range [[-1.0, 1.0]].
+    Result is in radians and is between [-pi/2] and [pi/2]. *)
 
 external atan : float -> float = "caml_atan_float" "atan" "float"
-(** See {!Pervasives.atan2}. *)
+(** Arc tangent.
+    Result is in radians and is between [-pi/2] and [pi/2]. *)
 
 external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-(** The usual trigonometric functions. *)
+(** [atan x y] returns the arc tangent of [y /. x].  The signs of [x]
+    and [y] are used to determine the quadrant of the result.
+    Result is in radians and is between [-pi] and [pi]. *)
 
 external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-(** See {!Pervasives.tanh}. *)
+(** Hyperbolic cosine.  Argument is in radians. *)
 
 external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-(** See {!Pervasives.tanh}. *)
+(** Hyperbolic sine.  Argument is in radians. *)
 
 external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-(** The usual hyperbolic trigonometric functions. *)
+(** Hyperbolic tangent.  Argument is in radians. *)
 
 external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-(** See {!Pervasives.floor}. *)
+(** Round above to an integer value.
+    [ceil f] returns the least integer value greater than or equal to [f].
+    The result is returned as a float. *)
 
 external floor : float -> float = "caml_floor_float" "floor" "float"
-(** Round the given float to an integer value.
-   [floor f] returns the greatest integer value less than or
-   equal to [f].
-   [ceil f] returns the least integer value greater than or
-   equal to [f]. *)
+(** Round below to an integer value.
+    [floor f] returns the greatest integer value less than or
+    equal to [f].
+    The result is returned as a float. *)
 
 external abs_float : float -> float = "%absfloat"
-(** Return the absolute value of the argument. *)
+(** [abs_float f] returns the absolute value of [f]. *)
 
 external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float"
 (** [mod_float a b] returns the remainder of [a] with respect to
@@ -450,7 +472,6 @@
    if the given string is not a valid representation of a float. *)
 
 
-
 (** {6 Pair operations} *)
 
 external fst : 'a * 'b -> 'a = "%field0"
@@ -552,8 +573,8 @@
    The result is unspecified if the line read is not a valid
    representation of a floating-point number. *)
 
-(** {7 General output functions} *)
 
+(** {7 General output functions} *)
 
 type open_flag =
     Open_rdonly      (** open for reading. *)
@@ -779,6 +800,7 @@
    This function has no effect under operating systems that
    do not distinguish between text mode and binary mode. *)
 
+
 (** {7 Operations on large files} *)
 
 module LargeFile :
@@ -797,6 +819,7 @@
   regular integers (type [int]), these alternate functions allow
   operating on files whose sizes are greater than [max_int]. *)
 
+
 (** {6 References} *)
 
 type 'a ref = { mutable contents : 'a }
@@ -861,7 +884,6 @@
 
 (** {6 Program termination} *)
 
-
 val exit : int -> 'a
 (** Terminate the process, returning the given status code
    to the operating system: usually 0 to indicate no errors,
@@ -879,9 +901,9 @@
    The functions are called in ``last in, first out'' order:
    the function most recently added with [at_exit] is called first. *)
 
-
 (**/**)
 
+
 (** {6 For system use only, not for the casual user} *)
 
 val valid_float_lexem : string -> string
--- obrowser-1.1/rt/caml/pervasives.ml.orig	2010-07-23 16:25:56.000000000 +0200
+++ obrowser-1.1/rt/caml/pervasives.ml	2010-07-23 16:29:32.000000000 +0200
@@ -51,6 +51,7 @@
 (* Integer operations *)
 
 external (~-) : int -> int = "%negint"
+external (~+) : int -> int = "%identity"
 external succ : int -> int = "%succint"
 external pred : int -> int = "%predint"
 external (+) : int -> int -> int = "%addint"
@@ -77,6 +78,7 @@
 (* Floating-point operations *)
 
 external (~-.) : float -> float = "%negfloat"
+external (~+.) : float -> float = "%identity"
 external (+.) : float -> float -> float = "%addfloat"
 external (-.) : float -> float -> float = "%subfloat"
 external ( *. ) : float -> float -> float = "%mulfloat"

[-- Attachment #12: ocaml-data-notation-0.0.3.patch --]
[-- Type: application/octet-stream, Size: 1205 bytes --]

--- ocaml-data-notation-0.0.3.orig/src/pa_odn.ml	2010-10-19 23:35:58.000000000 +0200
+++ ocaml-data-notation-0.0.3/src/pa_odn.ml	2011-05-03 14:51:05.000000000 +0200
@@ -199,7 +199,7 @@
     function
       | TyDcl (_loc, type_name, tps, rhs, _cl) ->
           let body = 
-            Gen.switch_tp_def _loc
+            Gen.switch_tp_def
               ~alias:odn_of_alias
               ~sum:odn_of_sum
               ~record:odn_of_record
@@ -225,7 +225,7 @@
   let _loc, recursive = 
     match tp with
       | TyDcl (_loc, type_name, _, rhs, _) -> 
-          _loc, Gen.type_is_recursive _loc type_name rhs
+          _loc, Gen.type_is_recursive type_name rhs
       | TyAnd (_loc, _, _) -> 
           _loc, true
       | _ -> assert false
--- ocaml-data-notation-0.0.3.orig/src/META	2010-10-19 23:35:58.000000000 +0200
+++ ocaml-data-notation-0.0.3/src/META	2011-05-06 16:37:50.000000000 +0200
@@ -43,7 +43,7 @@
  package "syntax" (
   version = "0.0.3"
   description = "Syntax extension for odn"
-  requires = "type-conv.syntax camlp4 odn"
+  requires = "type-conv camlp4 odn"
   archive(syntax,preprocessor) = "pa_odn.cma"
   archive(syntax,toploop) = "pa_odn.cma"
   exists_if = "pa_odn.cma"

[-- Attachment #13: ocaml-fileutils-0.4.2.patch --]
[-- Type: application/octet-stream, Size: 487 bytes --]

--- ocaml-fileutils-0.4.2.orig/Makefile	2011-05-03 15:04:34.000000000 +0200
+++ ocaml-fileutils-0.4.2/Makefile	2011-05-03 15:05:28.000000000 +0200
@@ -72,8 +72,8 @@
 	  $(wildcard $(BUILDDIR)/fileutils-str.lib) \
 	  $(wildcard $(BUILDDIR)/*.cmx) 
 	$(INSTALL) -d $(htmldir)/api
-	$(INSTALL_DATA) -t $(htmldir)/api \
-	  $(wildcard $(BUILDDIR)/fileutils.docdir/*)
+	$(INSTALL_DATA) \
+	  $(wildcard $(BUILDDIR)/fileutils.docdir/*) $(htmldir)/api
 
 uninstall:
 	-$(RM) -r $(htmldir)/api

[-- Attachment #14: omake-0.9.8.6.patch --]
[-- Type: application/octet-stream, Size: 372 bytes --]

--- omake-0.9.8.6.orig/lib/build/OCaml.om	2008-03-05 02:07:25.000000000 +0100
+++ omake-0.9.8.6/lib/build/OCaml.om	2011-05-02 22:53:23.000000000 +0200
@@ -176,7 +176,7 @@
 #
 declare OCAMLDEPFLAGS
 public.OCAMLPPFLAGS  =
-public.OCAMLFLAGS    = -warn-error A
+public.OCAMLFLAGS    = -warn-error a
 public.OCAMLCFLAGS   = -g
 public.OCAMLOPTFLAGS =
 public.OCAMLCPPFLAGS =

[-- Attachment #15: sks-1.1.1.patch --]
[-- Type: application/octet-stream, Size: 410 bytes --]

diff -N -r -u sks-1.1.1.orig/Makefile.local sks-1.1.1/Makefile.local
--- sks-1.1.1.orig/Makefile.local	1970-01-01 01:00:00.000000000 +0100
+++ sks-1.1.1/Makefile.local	2010-05-17 14:49:16.000000000 +0200
@@ -0,0 +1,9 @@
+BDBLIB=-L/opt/local/lib/db46
+BDBINCLUDE=-I/opt/local/include/db46
+LIBDB=-ldb-4.6
+MANDIR=${PREFIX}/share/man
+export BDBLIB
+export BDBINCLUDE
+export PREFIX
+export LIBDB
+export MANDIR

[-- Attachment #16: vsyml-2010-04-06.patch --]
[-- Type: application/octet-stream, Size: 1019 bytes --]

--- vsyml-2010-04-06.orig/makefile	2010-04-06 19:28:25.000000000 +0200
+++ vsyml-2010-04-06/makefile	2010-08-23 15:16:22.000000000 +0200
@@ -525,13 +525,13 @@
 
 # dependencies for the symbolic simulator main file on cmo cma cmx and cmxa
 $(VSYML_CMO_LST): $(VSYML_MAIN)
-	echo -n "VSYML_CMO=" > $@
-	for i in `grep -o -e '[a-zA-Z0-9_]*\.cmo' $<` ; do echo -n $$i " " >> $@ ; done
+	echo "VSYML_CMO=" | tr -d '\012' > $@
+	for i in `grep -o -e '[a-zA-Z0-9_]*\.cmo' $<` ; do echo $$i " " | tr -d '\012' >> $@ ; done
 	echo $(patsubst $(SRC_PATH)$(PATH_SEPARATOR)%.ml,%.cmo,$<) >> $@
 
 $(VSYML_CMA_LST): $(VSYML_MAIN)
-	echo -n "VSYML_CMA=" > $@
-	for i in `grep -o -e '[a-zA-Z0-9_]*\.cma' $<` ; do echo -n $$i " " >> $@ ; done
+	echo "VSYML_CMA=" | tr -d '\012' > $@
+	for i in `grep -o -e '[a-zA-Z0-9_]*\.cma' $<` ; do echo $$i " " | tr -d '\012' >> $@ ; done
 
 $(VSYML_BYTE_CMO_LST): $(VSYML_CMO_LST)
 	sed -e 's@\([a-zA-Z0-9_]*\)\.cmo@$(BYTE_PATH)$(PATH_SEPARATOR)\1.cmo@g' -e 's/VSYML_CMO/VSYML_BYTE_CMO/' $< > $@

[-- Attachment #17: xml-light-2.2.patch --]
[-- Type: application/octet-stream, Size: 603 bytes --]

--- xml-light/Makefile	2003-10-12 11:16:12.000000000 +0200
+++ xml-light-2.2/Makefile	2010-01-23 20:57:57.000000000 +0100
@@ -2,7 +2,7 @@
 # http://tech.motion-twin.com
 .SUFFIXES : .ml .mli .cmo .cmx .cmi .mll .mly
 
-INSTALLDIR=`ocamlc -where`
+INSTALLDIR=`ocamlc -where`/xml-light
 CFLAGS=
 LFLAGS= -a
 LIBS=
@@ -12,6 +12,7 @@
 opt: xml-light.cmxa test_opt.exe
 
 install: all opt
+	mkdir -p "${INSTALLDIR}"
 	cp xml-light.cmxa xml-light.a xml-light.cma xml.mli xmlParser.mli dtd.mli xml.cmi xmlParser.cmi dtd.cmi xml.cmx dtd.cmx xmlParser.cmx $(INSTALLDIR)
 
 doc:

[-- Attachment #18: Type: text/plain, Size: 2 bytes --]




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-07-04 11:45 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-16 15:01 [Caml-list] OCaml 3.12.1 compatibility report Damien Doligez
2011-06-16 15:11 ` [Caml-list] " Sylvain Le Gall
2011-06-16 15:18 ` [Caml-list] " Stéphane Glondu
2011-06-16 15:33 ` Florent Ouchet
2011-06-16 17:46   ` Gerd Stolpmann
2011-06-27  9:31     ` Damien Doligez
2011-06-28  8:07       ` Florent Ouchet
2011-06-16 17:59 ` Serge Ziryukin
2011-06-27 10:29   ` Stéphane Glondu
2011-06-27 12:49     ` xclerc
2011-06-27 14:40       ` Till Varoquaux
2011-06-27 15:22       ` Xavier Leroy
2011-06-27 15:57         ` Markus Mottl
2011-06-28 16:52           ` Damien Doligez
2011-06-30 21:37             ` Markus Mottl
2011-07-04 11:45               ` xclerc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).