diff --git a/core/src/main/java/org/luaj/vm2/LoadState$GlobalsUndumper.class b/core/src/main/java/org/luaj/vm2/LoadState$GlobalsUndumper.class new file mode 100644 index 00000000..6d898b56 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/LoadState$GlobalsUndumper.class differ diff --git a/core/src/main/java/org/luaj/vm2/LoadState.class b/core/src/main/java/org/luaj/vm2/LoadState.class new file mode 100644 index 00000000..1a8a97fe Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/LoadState.class differ diff --git a/core/src/main/java/org/luaj/vm2/compiler/DumpState.class b/core/src/main/java/org/luaj/vm2/compiler/DumpState.class new file mode 100644 index 00000000..eacaa5f6 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/compiler/DumpState.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32Lib2.class b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32Lib2.class new file mode 100644 index 00000000..8eaccc8f Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32Lib2.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32LibV.class b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32LibV.class new file mode 100644 index 00000000..b2f26475 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib$Bit32LibV.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Bit32Lib.class b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib.class new file mode 100644 index 00000000..476373d1 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Bit32Lib.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Create.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Create.class new file mode 100644 index 00000000..3a1f2b50 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Create.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$IsYieldable.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$IsYieldable.class new file mode 100644 index 00000000..86c0f53e Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$IsYieldable.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Resume.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Resume.class new file mode 100644 index 00000000..a095605f Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Resume.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Running.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Running.class new file mode 100644 index 00000000..867358dd Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Running.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Status.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Status.class new file mode 100644 index 00000000..97528b8c Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Status.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Wrap.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Wrap.class new file mode 100644 index 00000000..56ec11e2 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Wrap.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Yield.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Yield.class new file mode 100644 index 00000000..b8960e11 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$Yield.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$wrapper.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$wrapper.class new file mode 100644 index 00000000..78de1c15 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib$wrapper.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/CoroutineLib.class b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib.class new file mode 100644 index 00000000..374ac8e5 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/CoroutineLib.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/OsLib$OsLibFunc.class b/core/src/main/java/org/luaj/vm2/libs/OsLib$OsLibFunc.class new file mode 100644 index 00000000..44a90f0e Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/OsLib$OsLibFunc.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/OsLib.class b/core/src/main/java/org/luaj/vm2/libs/OsLib.class new file mode 100644 index 00000000..473be4fc Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/OsLib.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$ByteArrayOutput.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$ByteArrayOutput.class new file mode 100644 index 00000000..0a2a89f1 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$ByteArrayOutput.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatDesc.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatDesc.class new file mode 100644 index 00000000..543d2f52 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatDesc.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatOption.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatOption.class new file mode 100644 index 00000000..8048ff16 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatOption.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatState.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatState.class new file mode 100644 index 00000000..213deb5d Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$FormatState.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$GMatchAux.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$GMatchAux.class new file mode 100644 index 00000000..9a7751c3 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$GMatchAux.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$MatchState.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$MatchState.class new file mode 100644 index 00000000..ee76925b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$MatchState.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$OptionKind.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$OptionKind.class new file mode 100644 index 00000000..2fbf1223 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$OptionKind.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$_byte.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$_byte.class new file mode 100644 index 00000000..62bca75b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$_byte.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$_char.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$_char.class new file mode 100644 index 00000000..db4bb12f Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$_char.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$dump.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$dump.class new file mode 100644 index 00000000..bb3f5b56 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$dump.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$find.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$find.class new file mode 100644 index 00000000..29c27807 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$find.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$format.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$format.class new file mode 100644 index 00000000..ddb1b99d Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$format.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$gmatch.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$gmatch.class new file mode 100644 index 00000000..64ab194e Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$gmatch.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$gsub.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$gsub.class new file mode 100644 index 00000000..7d3a4c0b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$gsub.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$len.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$len.class new file mode 100644 index 00000000..a00888fe Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$len.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$lower.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$lower.class new file mode 100644 index 00000000..e364fb7e Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$lower.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$match.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$match.class new file mode 100644 index 00000000..ea52371b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$match.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$pack.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$pack.class new file mode 100644 index 00000000..7bab6bae Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$pack.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$packsize.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$packsize.class new file mode 100644 index 00000000..37cdf81f Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$packsize.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$rep.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$rep.class new file mode 100644 index 00000000..df10d9de Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$rep.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$reverse.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$reverse.class new file mode 100644 index 00000000..0d59c35b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$reverse.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$sub.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$sub.class new file mode 100644 index 00000000..51342ef5 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$sub.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$unpack.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$unpack.class new file mode 100644 index 00000000..55d94f61 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$unpack.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib$upper.class b/core/src/main/java/org/luaj/vm2/libs/StringLib$upper.class new file mode 100644 index 00000000..28a382f6 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib$upper.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/StringLib.class b/core/src/main/java/org/luaj/vm2/libs/StringLib.class new file mode 100644 index 00000000..9beb840a Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/StringLib.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$concat.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$concat.class new file mode 100644 index 00000000..a400a536 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$concat.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$insert.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$insert.class new file mode 100644 index 00000000..c959766d Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$insert.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$move.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$move.class new file mode 100644 index 00000000..2fef909f Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$move.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$pack.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$pack.class new file mode 100644 index 00000000..fd95d290 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$pack.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$remove.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$remove.class new file mode 100644 index 00000000..76a2439b Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$remove.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$sort.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$sort.class new file mode 100644 index 00000000..142cd8d6 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$sort.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib$unpack.class b/core/src/main/java/org/luaj/vm2/libs/TableLib$unpack.class new file mode 100644 index 00000000..5e0e3453 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib$unpack.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/TableLib.class b/core/src/main/java/org/luaj/vm2/libs/TableLib.class new file mode 100644 index 00000000..d2b348a5 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/TableLib.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$Decoded.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$Decoded.class new file mode 100644 index 00000000..dd62788d Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$Decoded.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codepoint.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codepoint.class new file mode 100644 index 00000000..eb02d6f4 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codepoint.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes.class new file mode 100644 index 00000000..3213da07 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes_iter.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes_iter.class new file mode 100644 index 00000000..bd910578 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$codes_iter.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$len.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$len.class new file mode 100644 index 00000000..98c54888 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$len.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$offset.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$offset.class new file mode 100644 index 00000000..c84d1705 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$offset.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$utf8_char.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$utf8_char.class new file mode 100644 index 00000000..78c7cfd8 Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib$utf8_char.class differ diff --git a/core/src/main/java/org/luaj/vm2/libs/Utf8Lib.class b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib.class new file mode 100644 index 00000000..b73d4b4d Binary files /dev/null and b/core/src/main/java/org/luaj/vm2/libs/Utf8Lib.class differ diff --git a/examples/jse/SampleLuaScheduler.class b/examples/jse/SampleLuaScheduler.class new file mode 100644 index 00000000..97af85ca Binary files /dev/null and b/examples/jse/SampleLuaScheduler.class differ diff --git a/examples/jse/SampleLuaScheduler.java b/examples/jse/SampleLuaScheduler.java new file mode 100644 index 00000000..d162ece0 --- /dev/null +++ b/examples/jse/SampleLuaScheduler.java @@ -0,0 +1,31 @@ +import org.luaj.vm2.Globals; +import org.luaj.vm2.libs.jse.JsePlatform; +import org.luaj.vm2.libs.jse.LuaScheduler; + +public class SampleLuaScheduler { + + public static void main(String[] args) throws Exception { + Globals globals = JsePlatform.standardGlobals(); + LuaScheduler scheduler = new LuaScheduler(globals); + + globals.load( + "spawn(function()\n" + + " print('task1 start')\n" + + " wait(250)\n" + + " print('task1 after wait')\n" + + "end)\n" + + "spawn(function()\n" + + " print('task2 start')\n" + + " yield()\n" + + " print('task2 next tick')\n" + + "end)\n", + "sample_scheduler.lua" + ).call(); + + while (scheduler.hasPendingTasks()) { + if (scheduler.runReadyTasks() == 0) { + Thread.sleep(scheduler.millisUntilNextTask()); + } + } + } +} diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseBaseLib.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseBaseLib.class new file mode 100644 index 00000000..5a785693 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseBaseLib.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$FileImpl.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$FileImpl.class new file mode 100644 index 00000000..736d070c Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$FileImpl.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdinFile.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdinFile.class new file mode 100644 index 00000000..de1b21f6 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdinFile.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdoutFile.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdoutFile.class new file mode 100644 index 00000000..70ecf29d Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib$StdoutFile.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib.class new file mode 100644 index 00000000..a0999627 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseIoLib.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$acos.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$acos.class new file mode 100644 index 00000000..b88cf9fb Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$acos.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$asin.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$asin.class new file mode 100644 index 00000000..f0a822f5 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$asin.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$atan2.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$atan2.class new file mode 100644 index 00000000..f7d89229 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$atan2.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$cosh.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$cosh.class new file mode 100644 index 00000000..5da423ce Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$cosh.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$exp.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$exp.class new file mode 100644 index 00000000..2fbb85e1 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$exp.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$log.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$log.class new file mode 100644 index 00000000..c4e24f73 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$log.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$pow.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$pow.class new file mode 100644 index 00000000..acc88fc1 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$pow.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$sinh.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$sinh.class new file mode 100644 index 00000000..e2523de3 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$sinh.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$tanh.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$tanh.class new file mode 100644 index 00000000..fdbbd62b Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib$tanh.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib.class new file mode 100644 index 00000000..d757f641 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseMathLib.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseOsLib.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseOsLib.class new file mode 100644 index 00000000..9d5813c8 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseOsLib.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JsePlatform.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JsePlatform.class new file mode 100644 index 00000000..1ca36e41 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JsePlatform.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess$CopyThread.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess$CopyThread.class new file mode 100644 index 00000000..22352fcd Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess$CopyThread.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess.class new file mode 100644 index 00000000..542a67ad Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseProcess.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/JseStringLib.class b/jse/src/main/java/org/luaj/vm2/libs/jse/JseStringLib.class new file mode 100644 index 00000000..aa566417 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/JseStringLib.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$1.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$1.class new file mode 100644 index 00000000..b0c833b4 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$1.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$2.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$2.class new file mode 100644 index 00000000..8190cfb7 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$2.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$Clock.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$Clock.class new file mode 100644 index 00000000..a7bfdebe Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$Clock.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$ScheduledTask.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$ScheduledTask.class new file mode 100644 index 00000000..99820fca Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$ScheduledTask.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$SpawnFunction.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$SpawnFunction.class new file mode 100644 index 00000000..840d54da Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$SpawnFunction.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$WaitFunction.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$WaitFunction.class new file mode 100644 index 00000000..727bf3ec Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$WaitFunction.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$YieldFunction.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$YieldFunction.class new file mode 100644 index 00000000..abf3597e Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler$YieldFunction.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.class b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.class new file mode 100644 index 00000000..ddbe0ff8 Binary files /dev/null and b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.class differ diff --git a/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.java b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.java new file mode 100644 index 00000000..5172afe2 --- /dev/null +++ b/jse/src/main/java/org/luaj/vm2/libs/jse/LuaScheduler.java @@ -0,0 +1,224 @@ +package org.luaj.vm2.libs.jse; + +import java.util.Comparator; +import java.util.PriorityQueue; + +import org.luaj.vm2.Globals; +import org.luaj.vm2.LuaError; +import org.luaj.vm2.LuaString; +import org.luaj.vm2.LuaThread; +import org.luaj.vm2.LuaValue; +import org.luaj.vm2.Varargs; +import org.luaj.vm2.libs.VarArgFunction; + +/** + * Cooperative host-side scheduler for Lua tasks that use explicit wait/yield calls. + *
+ * This does not change luaj's coroutine implementation. It provides a small host
+ * API for scheduling resumptions and timer-driven waits.
+ */
+public class LuaScheduler {
+
+ public interface Clock {
+ long nowMillis();
+ }
+
+ private static final Clock SYSTEM_CLOCK = new Clock() {
+ public long nowMillis() {
+ return System.currentTimeMillis();
+ }
+ };
+
+ private static final LuaString WAIT_SIGNAL = LuaValue.valueOf("__luaj_scheduler_wait");
+ private static final LuaString YIELD_SIGNAL = LuaValue.valueOf("__luaj_scheduler_yield");
+
+ private final Globals globals;
+ private final Clock clock;
+ private final PriorityQueue