Annotate

util/mathcompat.lua @ 13186:affaf6d08d26

util.datamanager: Pad list writes to avoid crossing block boundaries By padding items so that they do not cross block boundaries, it becomes eaiser to delete whole blocks with fallocate() without cutting items in half, improving efficiency of such operations. Since list stores are used for message archives, where the most common deletion operation would be of the oldest entires, at the top of the file. With this, all blocks that contain items to be removed could be deleted without needing to read, delete and write out the whole file.
author Kim Alvefur <zash@zash.se>
date Wed, 07 Jun 2023 00:39:30 +0200
parent 12782:8815d3090928
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12782
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 if not math.type then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local function math_type(t)
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 if type(t) == "number" then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 if t % 1 == 0 and t ~= t + 1 and t ~= t - 1 then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 return "integer"
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 else
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 return "float"
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 _G.math.type = math_type
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 end