[Pkg-ocaml-maint-commits] [ocaml-sqlite3] 10/19: Imported Upstream version 4.0.4
Stéphane Glondu
glondu at moszumanska.debian.org
Wed Aug 3 13:55:24 UTC 2016
This is an automated email from the git hooks/post-receive script.
glondu pushed a commit to branch master
in repository ocaml-sqlite3.
commit a8f5df0f8336c3b375014ed328083affe38e43cb
Author: Stephane Glondu <steph at glondu.net>
Date: Wed Aug 3 15:37:23 2016 +0200
Imported Upstream version 4.0.4
---
CHANGES.txt | 4 ++
_oasis | 2 +-
lib/META | 4 +-
lib/sqlite3.mli | 4 ++
lib/sqlite3_stubs.c | 5 +-
myocamlbuild.ml | 174 +++++++++++++++++++++++++++++++++++++++++++++++++---
setup.ml | 73 ++++++++++++++--------
7 files changed, 229 insertions(+), 37 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 4fb5b79..5c5f754 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,7 @@
+2016-05-24: Fixed a bug finalizing user-defined functions for a database.
+
+ Thanks to Mark Bradley <barkmadley at gmail.com> for this patch!
+
2015-11-18: More build process improvements for Homebrew users.
Thanks to Leonid Rozenberg <leonidr at gmail.com> for this patch!
diff --git a/_oasis b/_oasis
index e7d0607..67c5100 100644
--- a/_oasis
+++ b/_oasis
@@ -1,6 +1,6 @@
OASISFormat: 0.4
Name: sqlite3
-Version: 4.0.3
+Version: 4.0.4
Synopsis: sqlite3-ocaml - SQLite3 bindings
Description: sqlite3-ocaml is an OCaml library with bindings to the
SQLite3 client API. Sqlite3 is a self-contained, serverless,
diff --git a/lib/META b/lib/META
index 25c98ad..52ce354 100644
--- a/lib/META
+++ b/lib/META
@@ -1,6 +1,6 @@
# OASIS_START
-# DO NOT EDIT (digest: fa8ee36501416c86cd1e145c553d9aae)
-version = "4.0.3"
+# DO NOT EDIT (digest: 56d9dac34e0e883dec973a08d6bbc316)
+version = "4.0.4"
description = "sqlite3-ocaml - SQLite3 bindings"
archive(byte) = "sqlite3.cma"
archive(byte, plugin) = "sqlite3.cma"
diff --git a/lib/sqlite3.mli b/lib/sqlite3.mli
index aa0749a..58e9585 100644
--- a/lib/sqlite3.mli
+++ b/lib/sqlite3.mli
@@ -165,6 +165,10 @@ val db_open :
db
(** [db_open ?mode ?mutex ?cache ?vfs filename] opens the database file
[filename], and returns a database handle.
+
+ Special filenames: ":memory:" and "" open an in-memory or temporary
+ database respectively.
+ Behaviour explained here: https://www.sqlite.org/inmemorydb.html
The optional arguments [mode] and [mutex] are only meaningful with SQlite
versions >= 3.5, [cache] only for versions >= 3.6.18. For older versions an
diff --git a/lib/sqlite3_stubs.c b/lib/sqlite3_stubs.c
index 91d112d..10986e0 100644
--- a/lib/sqlite3_stubs.c
+++ b/lib/sqlite3_stubs.c
@@ -340,9 +340,10 @@ static inline value safe_copy_header_strings(const char** strs, int len)
static inline void ref_count_finalize_dbw(db_wrap *dbw)
{
if (--dbw->ref_count == 0) {
- user_function *link;
- for (link = dbw->user_functions; link != NULL; link = link->next) {
+ user_function *link, *next;
+ for (link = dbw->user_functions; link != NULL; link = next) {
caml_remove_generational_global_root(&link->v_fun);
+ next = link->next;
caml_stat_free(link);
}
dbw->user_functions = NULL;
diff --git a/myocamlbuild.ml b/myocamlbuild.ml
index 4934ba0..13bca13 100644
--- a/myocamlbuild.ml
+++ b/myocamlbuild.ml
@@ -1,5 +1,5 @@
(* OASIS_START *)
-(* DO NOT EDIT (digest: ef3f6bb7de5d2441c8248057cdf28ea3) *)
+(* DO NOT EDIT (digest: 0c8d8e3d3d3f32d2cf322309bc1cc8f0) *)
module OASISGettext = struct
(* # 22 "src/oasis/OASISGettext.ml" *)
@@ -29,6 +29,166 @@ module OASISGettext = struct
end
+module OASISString = struct
+(* # 22 "src/oasis/OASISString.ml" *)
+
+
+ (** Various string utilities.
+
+ Mostly inspired by extlib and batteries ExtString and BatString libraries.
+
+ @author Sylvain Le Gall
+ *)
+
+
+ let nsplitf str f =
+ if str = "" then
+ []
+ else
+ let buf = Buffer.create 13 in
+ let lst = ref [] in
+ let push () =
+ lst := Buffer.contents buf :: !lst;
+ Buffer.clear buf
+ in
+ let str_len = String.length str in
+ for i = 0 to str_len - 1 do
+ if f str.[i] then
+ push ()
+ else
+ Buffer.add_char buf str.[i]
+ done;
+ push ();
+ List.rev !lst
+
+
+ (** [nsplit c s] Split the string [s] at char [c]. It doesn't include the
+ separator.
+ *)
+ let nsplit str c =
+ nsplitf str ((=) c)
+
+
+ let find ~what ?(offset=0) str =
+ let what_idx = ref 0 in
+ let str_idx = ref offset in
+ while !str_idx < String.length str &&
+ !what_idx < String.length what do
+ if str.[!str_idx] = what.[!what_idx] then
+ incr what_idx
+ else
+ what_idx := 0;
+ incr str_idx
+ done;
+ if !what_idx <> String.length what then
+ raise Not_found
+ else
+ !str_idx - !what_idx
+
+
+ let sub_start str len =
+ let str_len = String.length str in
+ if len >= str_len then
+ ""
+ else
+ String.sub str len (str_len - len)
+
+
+ let sub_end ?(offset=0) str len =
+ let str_len = String.length str in
+ if len >= str_len then
+ ""
+ else
+ String.sub str 0 (str_len - len)
+
+
+ let starts_with ~what ?(offset=0) str =
+ let what_idx = ref 0 in
+ let str_idx = ref offset in
+ let ok = ref true in
+ while !ok &&
+ !str_idx < String.length str &&
+ !what_idx < String.length what do
+ if str.[!str_idx] = what.[!what_idx] then
+ incr what_idx
+ else
+ ok := false;
+ incr str_idx
+ done;
+ if !what_idx = String.length what then
+ true
+ else
+ false
+
+
+ let strip_starts_with ~what str =
+ if starts_with ~what str then
+ sub_start str (String.length what)
+ else
+ raise Not_found
+
+
+ let ends_with ~what ?(offset=0) str =
+ let what_idx = ref ((String.length what) - 1) in
+ let str_idx = ref ((String.length str) - 1) in
+ let ok = ref true in
+ while !ok &&
+ offset <= !str_idx &&
+ 0 <= !what_idx do
+ if str.[!str_idx] = what.[!what_idx] then
+ decr what_idx
+ else
+ ok := false;
+ decr str_idx
+ done;
+ if !what_idx = -1 then
+ true
+ else
+ false
+
+
+ let strip_ends_with ~what str =
+ if ends_with ~what str then
+ sub_end str (String.length what)
+ else
+ raise Not_found
+
+
+ let replace_chars f s =
+ let buf = Buffer.create (String.length s) in
+ String.iter (fun c -> Buffer.add_char buf (f c)) s;
+ Buffer.contents buf
+
+ let lowercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'A' && c <= 'Z') then
+ Char.chr (Char.code c + 32)
+ else
+ c)
+
+ let uncapitalize_ascii s =
+ if s <> "" then
+ (lowercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+ let uppercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'a' && c <= 'z') then
+ Char.chr (Char.code c - 32)
+ else
+ c)
+
+ let capitalize_ascii s =
+ if s <> "" then
+ (uppercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+end
+
module OASISExpr = struct
(* # 22 "src/oasis/OASISExpr.ml" *)
@@ -129,7 +289,7 @@ module OASISExpr = struct
end
-# 132 "myocamlbuild.ml"
+# 292 "myocamlbuild.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)
@@ -234,7 +394,7 @@ module BaseEnvLight = struct
end
-# 237 "myocamlbuild.ml"
+# 397 "myocamlbuild.ml"
module MyOCamlbuildFindlib = struct
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
@@ -516,7 +676,7 @@ module MyOCamlbuildBase = struct
| nm, [], intf_modules ->
ocaml_lib nm;
let cmis =
- List.map (fun m -> (String.uncapitalize m) ^ ".cmi")
+ List.map (fun m -> (OASISString.uncapitalize_ascii m) ^ ".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^nm^".cma"] cmis
| nm, dir :: tl, intf_modules ->
@@ -529,7 +689,7 @@ module MyOCamlbuildBase = struct
["compile"; "infer_interface"; "doc"])
tl;
let cmis =
- List.map (fun m -> dir^"/"^(String.uncapitalize m)^".cmi")
+ List.map (fun m -> dir^"/"^(OASISString.uncapitalize_ascii m)^".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^dir^"/"^nm^".cma"]
cmis)
@@ -603,7 +763,7 @@ module MyOCamlbuildBase = struct
end
-# 606 "myocamlbuild.ml"
+# 766 "myocamlbuild.ml"
open Ocamlbuild_plugin;;
let package_default =
{
@@ -712,7 +872,7 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
-# 716 "myocamlbuild.ml"
+# 876 "myocamlbuild.ml"
(* OASIS_STOP *)
let read_lines_from_cmd ~max_lines cmd =
diff --git a/setup.ml b/setup.ml
index 104d674..4335c1d 100644
--- a/setup.ml
+++ b/setup.ml
@@ -1,9 +1,9 @@
(* setup.ml generated for the first time by OASIS v0.3.0 *)
(* OASIS_START *)
-(* DO NOT EDIT (digest: 34b827fa7f40294929d50e745345a17a) *)
+(* DO NOT EDIT (digest: adb1168acc22486a161b56bf620f5f4c) *)
(*
- Regenerated by OASIS v0.4.5
+ Regenerated by OASIS v0.4.6
Visit http://oasis.forge.ocamlcore.org for more information and
documentation about functions used in this file.
*)
@@ -246,6 +246,33 @@ module OASISString = struct
String.iter (fun c -> Buffer.add_char buf (f c)) s;
Buffer.contents buf
+ let lowercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'A' && c <= 'Z') then
+ Char.chr (Char.code c + 32)
+ else
+ c)
+
+ let uncapitalize_ascii s =
+ if s <> "" then
+ (lowercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
+
+ let uppercase_ascii =
+ replace_chars
+ (fun c ->
+ if (c >= 'a' && c <= 'z') then
+ Char.chr (Char.code c - 32)
+ else
+ c)
+
+ let capitalize_ascii s =
+ if s <> "" then
+ (uppercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
+ else
+ s
end
@@ -315,19 +342,15 @@ module OASISUtils = struct
let compare_csl s1 s2 =
- String.compare (String.lowercase s1) (String.lowercase s2)
+ String.compare (OASISString.lowercase_ascii s1) (OASISString.lowercase_ascii s2)
module HashStringCsl =
Hashtbl.Make
(struct
type t = string
-
- let equal s1 s2 =
- (String.lowercase s1) = (String.lowercase s2)
-
- let hash s =
- Hashtbl.hash (String.lowercase s)
+ let equal s1 s2 = (compare_csl s1 s2) = 0
+ let hash s = Hashtbl.hash (OASISString.lowercase_ascii s)
end)
module SetStringCsl =
@@ -365,7 +388,7 @@ module OASISUtils = struct
else
buf
in
- String.lowercase buf
+ OASISString.lowercase_ascii buf
end
@@ -471,7 +494,7 @@ module PropList = struct
order = Queue.create ();
name_norm =
(if case_insensitive then
- String.lowercase
+ OASISString.lowercase_ascii
else
fun s -> s);
}
@@ -1822,13 +1845,13 @@ module OASISUnixPath = struct
let capitalize_file f =
let dir = dirname f in
let base = basename f in
- concat dir (String.capitalize base)
+ concat dir (OASISString.capitalize_ascii base)
let uncapitalize_file f =
let dir = dirname f in
let base = basename f in
- concat dir (String.uncapitalize base)
+ concat dir (OASISString.uncapitalize_ascii base)
end
@@ -2890,7 +2913,7 @@ module OASISFileUtil = struct
end
-# 2893 "setup.ml"
+# 2916 "setup.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)
@@ -2995,7 +3018,7 @@ module BaseEnvLight = struct
end
-# 2998 "setup.ml"
+# 3021 "setup.ml"
module BaseContext = struct
(* # 22 "src/base/BaseContext.ml" *)
@@ -5406,7 +5429,7 @@ module BaseSetup = struct
end
-# 5409 "setup.ml"
+# 5432 "setup.ml"
module InternalConfigurePlugin = struct
(* # 22 "src/plugins/internal/InternalConfigurePlugin.ml" *)
@@ -5845,8 +5868,8 @@ module InternalInstallPlugin = struct
let make_fnames modul sufx =
List.fold_right
begin fun sufx accu ->
- (String.capitalize modul ^ sufx) ::
- (String.uncapitalize modul ^ sufx) ::
+ (OASISString.capitalize_ascii modul ^ sufx) ::
+ (OASISString.uncapitalize_ascii modul ^ sufx) ::
accu
end
sufx
@@ -6270,7 +6293,7 @@ module InternalInstallPlugin = struct
end
-# 6273 "setup.ml"
+# 6296 "setup.ml"
module OCamlbuildCommon = struct
(* # 22 "src/plugins/ocamlbuild/OCamlbuildCommon.ml" *)
@@ -6648,7 +6671,7 @@ module OCamlbuildDocPlugin = struct
end
-# 6651 "setup.ml"
+# 6674 "setup.ml"
module CustomPlugin = struct
(* # 22 "src/plugins/custom/CustomPlugin.ml" *)
@@ -6796,7 +6819,7 @@ module CustomPlugin = struct
end
-# 6799 "setup.ml"
+# 6822 "setup.ml"
open OASISTypes;;
let setup_t =
@@ -6981,7 +7004,7 @@ let setup_t =
alpha_features = [];
beta_features = [];
name = "sqlite3";
- version = "4.0.3";
+ version = "4.0.4";
license =
OASISLicense.DEP5License
(OASISLicense.DEP5Unit
@@ -7561,8 +7584,8 @@ let setup_t =
plugin_data = []
};
oasis_fn = Some "_oasis";
- oasis_version = "0.4.5";
- oasis_digest = Some "\026�2=��-\007\130B�\026�\151٠";
+ oasis_version = "0.4.6";
+ oasis_digest = Some "\005\003����X\142R.\156ur���";
oasis_exec = None;
oasis_setup_args = [];
setup_update = false
@@ -7570,6 +7593,6 @@ let setup_t =
let setup () = BaseSetup.setup setup_t;;
-# 7574 "setup.ml"
+# 7597 "setup.ml"
(* OASIS_STOP *)
let () = setup ();;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/ocaml-sqlite3.git
More information about the Pkg-ocaml-maint-commits
mailing list