Skip to content

Commit

Permalink
Make Lua.Lib.table.concat a built-in
Browse files Browse the repository at this point in the history
This enables more dead-code elimination.
  • Loading branch information
minoki committed Jul 7, 2024
1 parent e01609b commit 9aa69e0
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/lunarml/ml/basis/lua/lua.sml
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ val unpack = LunarML.assumeDiscardable field (string, "unpack")
val upper = LunarML.assumeDiscardable field (string, "upper")
end
structure table = struct
val concat = LunarML.assumeDiscardable field (table, "concat")
val concat = _Prim.Lua.Lib.table.concat
val insert = LunarML.assumeDiscardable field (table, "insert")
val move = LunarML.assumeDiscardable field (table, "move")
val pack = _Prim.Lua.Lib.table.pack
Expand Down
2 changes: 1 addition & 1 deletion lib/lunarml/ml/basis/luajit/lua.sml
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ val sub = LunarML.assumeDiscardable field (string, "sub")
val upper = LunarML.assumeDiscardable field (string, "upper")
end
structure table = struct
val concat = LunarML.assumeDiscardable field (table, "concat")
val concat = _Prim.Lua.Lib.table.concat
val insert = LunarML.assumeDiscardable field (table, "insert")
val maxn = LunarML.assumeDiscardable field (table, "maxn")
val pack = _Prim.Lua.Lib.table.pack
Expand Down
3 changes: 3 additions & 0 deletions lib/lunarml/mlinit-continuations.lua
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ local string_format = string.format
--BEGIN table
local table = table
--END
--BEGIN table_concat: table
local table_concat = table.concat
--END
--BEGIN table_pack: table
local table_pack = table.pack
--END
Expand Down
3 changes: 3 additions & 0 deletions lib/lunarml/mlinit-luajit.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ local table = table
--BEGIN select
local select = select
--END
--BEGIN table_concat: table
local table_concat = table.concat
--END
--BEGIN table_pack: select
local table_pack = table.pack or function(...) return { n = select("#", ...), ... } end
--END
Expand Down
3 changes: 3 additions & 0 deletions lib/lunarml/mlinit.lua
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ local string_format = string.format
--BEGIN table
local table = table
--END
--BEGIN table_concat: table
local table_concat = table.concat
--END
--BEGIN table_pack: table
local table_pack = table.pack
--END
Expand Down
2 changes: 2 additions & 0 deletions src/codegen-lua.sml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ val builtins
,(VId_Lua_Lib_string_char, "string_char")
,(VId_Lua_Lib_string_format, "string_format")
,(VId_Lua_Lib_table, "table")
,(VId_Lua_Lib_table_concat, "table_concat")
,(VId_Lua_Lib_table_pack, "table_pack")
,(VId_Lua_Lib_table_unpack, "table_unpack")
]
Expand Down Expand Up @@ -130,6 +131,7 @@ val builtinsLuaJIT
,(VId_Lua_Lib_string_char, "string_char")
,(VId_Lua_Lib_string_format, "string_format")
,(VId_Lua_Lib_table, "table")
,(VId_Lua_Lib_table_concat, "table_concat")
,(VId_Lua_Lib_table_pack, "table_pack")
,(VId_Lua_Lib_table_unpack, "table_unpack")
,(VId_Lua_Lib_bit, "bit")
Expand Down
3 changes: 3 additions & 0 deletions src/initialenv.sml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ structure InitialEnv :> sig
val VId_Lua_Lib_string_char : TypedSyntax.VId
val VId_Lua_Lib_string_format : TypedSyntax.VId
val VId_Lua_Lib_table : TypedSyntax.VId
val VId_Lua_Lib_table_concat : TypedSyntax.VId
val VId_Lua_Lib_table_pack : TypedSyntax.VId
val VId_Lua_Lib_table_unpack : TypedSyntax.VId
val VId_Lua_Lib_bit : TypedSyntax.VId
Expand Down Expand Up @@ -193,6 +194,7 @@ val VId_Lua_Lib_string = newVId "_Prim.Lua.Lib.string"
val VId_Lua_Lib_string_char = newVId "_Prim.Lua.Lib.string.char"
val VId_Lua_Lib_string_format = newVId "_Prim.Lua.Lib.string.format"
val VId_Lua_Lib_table = newVId "_Prim.Lua.Lib.table"
val VId_Lua_Lib_table_concat = newVId "_Prim.Lua.Lib.table.concat"
val VId_Lua_Lib_table_pack = newVId "_Prim.Lua.Lib.table.pack"
val VId_Lua_Lib_table_unpack = newVId "_Prim.Lua.Lib.table.unpack"
val VId_Lua_Lib_bit = newVId "_Prim.Lua.Lib.bit" (* LuaJIT *)
Expand Down Expand Up @@ -317,6 +319,7 @@ val initialEnv : Typing.Env
,("_Prim.Lua.Lib.math.ult", VId_Lua_Lib_math_ult, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.string.char", VId_Lua_Lib_string_char, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.string.format", VId_Lua_Lib_string_format, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.table.concat", VId_Lua_Lib_table_concat, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.table.pack", VId_Lua_Lib_table_pack, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.table.unpack", VId_Lua_Lib_table_unpack, TypeScheme ([], primTy_Lua_value))
,("_Prim.Lua.Lib.bit", VId_Lua_Lib_bit, TypeScheme ([], primTy_Lua_value))
Expand Down

0 comments on commit 9aa69e0

Please sign in to comment.