Skip to content

Commit 5f78a7c

Browse files
committed
refactor: rename Compiler to BytecodeEmitter and update related function calls
1 parent d80e45c commit 5f78a7c

File tree

2 files changed

+27
-27
lines changed

2 files changed

+27
-27
lines changed

tests/perf.lua

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
The Tiny Lua Compiler Performance Test Suite
33
44
Lua 5.1 benchmark results (over 5000 iterations):
5-
Tokenizer: 175.9758 seconds (51.36%) - 28.41 iterations/second
6-
Parser: 43.9889 seconds (12.84%) - 113.66 iterations/second
7-
CodeGenerator: 48.5441 seconds (14.17%) - 103.00 iterations/second
8-
Compiler: 74.1044 seconds (21.63%) - 67.47 iterations/second
9-
Total: 342.6132 seconds
5+
Tokenizer: 175.9758 seconds (51.36%) - 28.41 iterations/second
6+
Parser: 43.9889 seconds (12.84%) - 113.66 iterations/second
7+
CodeGenerator: 48.5441 seconds (14.17%) - 103.00 iterations/second
8+
BytecodeEmitter: 74.1044 seconds (21.63%) - 67.47 iterations/second
9+
Total: 342.6132 seconds
1010
1111
LuaJIT benchmark results (over 5000 iterations):
12-
Tokenizer: 20.8723 seconds (9.91%) - 239.55 iterations/second
13-
Parser: 11.6405 seconds (5.53%) - 429.54 iterations/second
14-
CodeGenerator: 158.4915 seconds (75.24%) - 31.55 iterations/second
15-
Compiler: 19.6458 seconds (9.33%) - 254.51 iterations/second
16-
Total: 210.6501 seconds
12+
Tokenizer: 20.8723 seconds (9.91%) - 239.55 iterations/second
13+
Parser: 11.6405 seconds (5.53%) - 429.54 iterations/second
14+
CodeGenerator: 158.4915 seconds (75.24%) - 31.55 iterations/second
15+
BytecodeEmitter: 19.6458 seconds (9.33%) - 254.51 iterations/second
16+
Total: 210.6501 seconds
1717
--]]
1818

1919
--* Imports *--
@@ -48,10 +48,10 @@ local function benchmark_codegenerator(ast)
4848
return os.clock() - start
4949
end
5050

51-
local function benchmark_compiler(proto)
51+
local function benchmark_bytecodeemitter(proto)
5252
local start = os.clock()
5353
for _ = 1, ITERATIONS do
54-
tlc.Compiler.new(proto):compile()
54+
tlc.BytecodeEmitter.new(proto):emit()
5555
end
5656
return os.clock() - start
5757
end
@@ -64,17 +64,17 @@ local function benchmark()
6464
local tokenizer_elapsed = benchmark_tokenizer(TLC_CODE)
6565
local parser_elapsed = benchmark_parser(tokens)
6666
local codegenerator_elapsed = benchmark_codegenerator(ast)
67-
local compiler_elapsed = benchmark_compiler(proto)
67+
local bytecodeemitter_elapsed = benchmark_bytecodeemitter(proto)
6868

69-
local total_elapsed = tokenizer_elapsed + parser_elapsed + codegenerator_elapsed + compiler_elapsed
70-
local tokenizer_elapsed_perc = (tokenizer_elapsed / total_elapsed) * 100
71-
local parser_elapsed_perc = (parser_elapsed / total_elapsed) * 100
72-
local codegenerator_elapsed_perc = (codegenerator_elapsed / total_elapsed) * 100
73-
local compiler_elapsed_perc = (compiler_elapsed / total_elapsed) * 100
74-
local tokenizer_iters_per_sec = ITERATIONS / tokenizer_elapsed
75-
local parser_iters_per_sec = ITERATIONS / parser_elapsed
76-
local codegenerator_iters_per_sec = ITERATIONS / codegenerator_elapsed
77-
local compiler_iters_per_sec = ITERATIONS / compiler_elapsed
69+
local total_elapsed = tokenizer_elapsed + parser_elapsed + codegenerator_elapsed + bytecodeemitter_elapsed
70+
local tokenizer_elapsed_perc = (tokenizer_elapsed / total_elapsed) * 100
71+
local parser_elapsed_perc = (parser_elapsed / total_elapsed) * 100
72+
local codegenerator_elapsed_perc = (codegenerator_elapsed / total_elapsed) * 100
73+
local bytecodeemitter_elapsed_perc = (bytecodeemitter_elapsed / total_elapsed) * 100
74+
local tokenizer_iters_per_sec = ITERATIONS / tokenizer_elapsed
75+
local parser_iters_per_sec = ITERATIONS / parser_elapsed
76+
local codegenerator_iters_per_sec = ITERATIONS / codegenerator_elapsed
77+
local bytecodeemitter_iters_per_sec = ITERATIONS / bytecodeemitter_elapsed
7878

7979
print(string.format("Benchmark Results (over %d iterations):", ITERATIONS))
8080
print(string.format("Tokenizer: %.4f seconds (%.2f%%) - %.2f iterations/second", tokenizer_elapsed,
@@ -83,8 +83,8 @@ local function benchmark()
8383
parser_elapsed_perc, parser_iters_per_sec))
8484
print(string.format("CodeGenerator: %.4f seconds (%.2f%%) - %.2f iterations/second", codegenerator_elapsed,
8585
codegenerator_elapsed_perc, codegenerator_iters_per_sec))
86-
print(string.format("Compiler: %.4f seconds (%.2f%%) - %.2f iterations/second", compiler_elapsed,
87-
compiler_elapsed_perc, compiler_iters_per_sec))
86+
print(string.format("BytecodeEmitter: %.4f seconds (%.2f%%) - %.2f iterations/second", bytecodeemitter_elapsed,
87+
bytecodeemitter_elapsed_perc, bytecodeemitter_iters_per_sec))
8888
print(string.format("Total: %.4f seconds", total_elapsed))
8989
end
9090

tests/test.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,9 @@ function TLCTest:compileAndRun(code)
214214
local tokens = tlc.Tokenizer.new(code):tokenize()
215215
local ast = tlc.Parser.new(tokens):parse()
216216
local proto = tlc.CodeGenerator.new(ast):generate()
217-
local bytecode = tlc.Compiler.new(proto):compile()
217+
local bytecode = tlc.BytecodeEmitter.new(proto):emit()
218218

219-
return self:runSandboxed(bytecode)
219+
return loadstring(bytecode)()
220220
end
221221

222222
function TLCTest:assertCompileError(code)
@@ -772,7 +772,7 @@ suite:describe("Complex General Tests", function()
772772
local tokens = tlc.Tokenizer.new(code_to_run):tokenize()
773773
local ast = tlc.Parser.new(tokens):parse()
774774
local proto = tlc.CodeGenerator.new(ast):generate()
775-
local bytecode = tlc.Compiler.new(proto):compile()
775+
local bytecode = tlc.BytecodeEmitter.new(proto):emit()
776776
local func = loadstring(bytecode)
777777
778778
return func()

0 commit comments

Comments
 (0)