Add initial size to interned

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
Rudi Grinberg 2018-05-24 20:51:12 +07:00
parent cbf2727209
commit d3edc454ac
5 changed files with 22 additions and 6 deletions

View File

@ -1,7 +1,10 @@
open Stdune
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

View File

@ -28,7 +28,11 @@ let new_size ~next ~size = function
(next land (lnot (increment_size - 1))) + (increment_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
let ids = Hashtbl.create 1024
@ -44,7 +48,7 @@ module Make(R : sig val resize_policy : resize_policy end) = struct
let create ~default_value =
{ default_value
; data = [||]
; data = Array.make R.initial_size default_value
}
let resize t =

View File

@ -36,4 +36,7 @@ end
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

View File

@ -1,3 +1,6 @@
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)

View File

@ -1,6 +1,9 @@
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 mt = make "mt"