Add initial size to interned
Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
parent
cbf2727209
commit
d3edc454ac
|
@ -1,7 +1,10 @@
|
||||||
open Stdune
|
open Stdune
|
||||||
|
|
||||||
module Name = struct
|
module Name = struct
|
||||||
include Interned.Make(struct let resize_policy = Interned.Conservative end)
|
include Interned.Make(struct
|
||||||
|
let initial_size = 16
|
||||||
|
let resize_policy = Interned.Conservative
|
||||||
|
end)
|
||||||
|
|
||||||
let of_string = make
|
let of_string = make
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,11 @@ let new_size ~next ~size = function
|
||||||
(next land (lnot (increment_size - 1))) + (increment_size * 2)
|
(next land (lnot (increment_size - 1))) + (increment_size * 2)
|
||||||
| Greedy -> size * 2
|
| Greedy -> size * 2
|
||||||
|
|
||||||
module Make(R : sig val resize_policy : resize_policy end) = struct
|
module Make(R : sig
|
||||||
|
val resize_policy : resize_policy
|
||||||
|
val initial_size : int
|
||||||
|
end)
|
||||||
|
= struct
|
||||||
type t = int
|
type t = int
|
||||||
|
|
||||||
let ids = Hashtbl.create 1024
|
let ids = Hashtbl.create 1024
|
||||||
|
@ -44,7 +48,7 @@ module Make(R : sig val resize_policy : resize_policy end) = struct
|
||||||
|
|
||||||
let create ~default_value =
|
let create ~default_value =
|
||||||
{ default_value
|
{ default_value
|
||||||
; data = [||]
|
; data = Array.make R.initial_size default_value
|
||||||
}
|
}
|
||||||
|
|
||||||
let resize t =
|
let resize t =
|
||||||
|
|
|
@ -36,4 +36,7 @@ end
|
||||||
|
|
||||||
type resize_policy = Conservative | Greedy
|
type resize_policy = Conservative | Greedy
|
||||||
|
|
||||||
module Make(R : sig val resize_policy : resize_policy end) : S
|
module Make(R : sig
|
||||||
|
val initial_size : int
|
||||||
|
val resize_policy : resize_policy
|
||||||
|
end) : S
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
open Stdune
|
open Stdune
|
||||||
|
|
||||||
include Interned.Make(struct let resize_policy = Interned.Conservative end)
|
include Interned.Make(struct
|
||||||
|
let initial_size = 16
|
||||||
|
let resize_policy = Interned.Conservative
|
||||||
|
end)
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
open Stdune
|
open Stdune
|
||||||
|
|
||||||
include Interned.Make(struct let resize_policy = Interned.Conservative end)
|
include Interned.Make(struct
|
||||||
|
let initial_size = 256
|
||||||
|
let resize_policy = Interned.Conservative
|
||||||
|
end)
|
||||||
|
|
||||||
let ppx_driver = make "ppx_driver"
|
let ppx_driver = make "ppx_driver"
|
||||||
let mt = make "mt"
|
let mt = make "mt"
|
||||||
|
|
Loading…
Reference in New Issue