175 |
175 |
176 /** cache **/ |
176 /** cache **/ |
177 |
177 |
178 object Cache { |
178 object Cache { |
179 def make( |
179 def make( |
180 xz: XZ.Cache = XZ.Cache.make(), |
180 compress: Compress.Cache = Compress.Cache.make(), |
181 max_string: Int = isabelle.Cache.default_max_string, |
181 max_string: Int = isabelle.Cache.default_max_string, |
182 initial_size: Int = isabelle.Cache.default_initial_size): Cache = |
182 initial_size: Int = isabelle.Cache.default_initial_size): Cache = |
183 new Cache(xz, initial_size, max_string) |
183 new Cache(compress, initial_size, max_string) |
184 |
184 |
185 val none: Cache = make(max_string = 0) |
185 val none: Cache = make(max_string = 0) |
186 } |
186 } |
187 |
187 |
188 class Cache(xz: XZ.Cache, max_string: Int, initial_size: Int) |
188 class Cache(compress: Compress.Cache, max_string: Int, initial_size: Int) |
189 extends XML.Cache(xz, max_string, initial_size) { |
189 extends XML.Cache(compress, max_string, initial_size) { |
190 protected def cache_indexname(x: Indexname): Indexname = |
190 protected def cache_indexname(x: Indexname): Indexname = |
191 lookup(x) getOrElse store(Indexname(cache_string(x.name), x.index)) |
191 lookup(x) getOrElse store(Indexname(cache_string(x.name), x.index)) |
192 |
192 |
193 protected def cache_sort(x: Sort): Sort = |
193 protected def cache_sort(x: Sort): Sort = |
194 if (x.isEmpty) Nil |
194 if (x.isEmpty) Nil |