Commit Graph
100 Commits
Author SHA1 Message Date
Rerumu ca57cf915a Add shortcut translation API 2022-05-21 21:57:21 -04:00
Rerumu f02070a1b3 Add support for anonymous translation 2022-05-21 19:52:25 -04:00
Rerumu 830727d8d4 Add copysign and nearest to runtimes 2022-05-21 15:51:31 -04:00
Rerumu 8d671b99e4 Expand runtimes a bit more 2022-05-21 04:18:29 -04:00
Rerumu ce54d834a5 Add shortcuts for native operations 2022-05-21 04:11:04 -04:00
Rerumu c3a3a09107 Adjust some runtime emits 2022-05-21 03:51:27 -04:00
Rerumu 1e8f131eff Unify fuzzing and testing code 2022-05-21 03:31:02 -04:00
Rerumu 6c57a0dd11 Remove unsupported fast paths 2022-05-21 02:52:04 -04:00
Rerumu 8792a123f4 Fix and optimize conditionals 2022-05-21 02:52:02 -04:00
Rerumu 121774082e Fix typo in export 2022-05-21 02:51:18 -04:00
Rerumu bd49fd55a4 Fix unsigned literal emit 2022-05-21 02:51:15 -04:00
Rerumu a3d43ebe16 Fix bad runtime name 2022-05-21 02:50:14 -04:00
Rerumu 3fa4fa5d83 Link integer emit and runtime 2022-05-21 02:50:11 -04:00
Rerumu aea1df4e90 Add integer comparisons 2022-05-21 02:48:14 -04:00
Rerumu f7978ec402 Optimize memory instance caching 2022-05-21 02:48:11 -04:00
Rerumu 642711e67d Fix infix generation 2022-05-21 02:47:27 -04:00
Rerumu d5c9028be4 Start adding integer support for Luau 2022-05-21 02:47:27 -04:00
Rerumu 0366a74d0a Freeze integer types 2022-05-21 02:47:27 -04:00
Rerumu 30358c8205 Remove signedness test for unsigned constructor 2022-05-21 02:47:27 -04:00
Rerumu 2a6033c6f4 Improve numeric from_u64 and shifting 2022-05-21 02:47:27 -04:00
Rerumu 81fbbd455f Refactor some numeric operations 2022-05-21 02:47:27 -04:00
Rerumu c7d640b17e Make Luau integers use free functions 2022-05-21 02:47:27 -04:00
Rerumu d94be2d832 Remove unneeded pubs 2022-05-21 00:18:12 -04:00
Rerumu 3327d28ebd Ignore test with too many locals 2022-05-20 23:18:59 -04:00
Rerumu 25050a0c5a Wrap import names too 2022-05-20 23:01:42 -04:00
Rerumu 8464d70a93 Fix if statement label 2022-05-20 23:01:05 -04:00
Rerumu 280979d00f Remove local modules in tests 2022-05-20 22:51:45 -04:00
Rerumu 29e7c972ed Fix empty BrTable generation 2022-05-20 22:38:03 -04:00
Rerumu 935fc86607 Wrap export names to prevent weird characters 2022-05-20 20:27:19 -04:00
Rerumu d7d3f60754 Fix test module names 2022-05-20 20:27:19 -04:00
Rerumu 50cfa0f5ef Add basic test code 2022-05-20 20:04:50 -04:00
Rerumu b751e4fc78 Add official tests 2022-05-20 01:55:36 -04:00
Rerumu 7321595126 Rename fuzzing for clarity 2022-05-19 17:21:55 -04:00
Rerumu 0e92163cb3 Fix constant generation 2022-05-19 17:09:44 -04:00
Rerumu f9cf75c98a Delete odd new line 2022-05-19 04:20:58 -04:00
Rerumu acc21fc9a6 Simplify set creation code 2022-05-19 03:02:04 -04:00
Rerumu f528df9b9e Optimize memory instance caching 2022-05-19 02:47:39 -04:00
Rerumu 00d8dc4124 Remove old comment 2022-05-19 00:12:01 -04:00
Rerumu ceed957b12 Remove unneeded truncation 2022-05-18 20:57:29 -04:00
Rerumu 0278458c15 Remove load/store offset when 0 2022-04-30 00:13:44 -04:00
Rerumu a40335ee69 Remove unused runtime functions 2022-04-29 23:33:04 -04:00
Rerumu 7913dd507a Factor out operator analysis and simplify output 2022-04-29 23:30:55 -04:00
Rerumu 2e5890f466 Fix naming 2022-04-29 22:54:58 -04:00
Rerumu 313d8cbbc2 Fix up Luau numeric library 2022-04-29 20:15:31 -04:00
Rerumu aa293ed7e1 Unify tool error handling 2022-04-27 13:22:05 -04:00
Rerumu e4dc725ec0 Fix empty function list fail 2022-04-27 05:41:55 -04:00
Rerumu 7b5cde0f08 Simplify helper argument 2022-04-27 05:27:52 -04:00
Rerumu 66e3eafad6 Add binary to release 2022-04-27 05:14:35 -04:00
Rerumu 85e0e2276a Add automatic releasing 2022-04-27 04:49:14 -04:00
Rerumu b356609ca4 Fix main program in stable 2022-04-27 04:41:35 -04:00
Rerumu bfb900f044 Fix main program 2022-04-27 04:36:06 -04:00
Rerumu c5a1afb228 Fix fuzzer code 2022-04-27 04:36:02 -04:00
Rerumu 6b0a704ebb Refactor Luau codegen 2022-04-27 04:35:57 -04:00
Rerumu 6ffd462d99 Refactor LuaJIT codegen 2022-04-27 04:35:51 -04:00
Rerumu d1ad9ddb7a Start aesthetic refactoring 2022-04-27 01:33:45 -04:00
Rerumu 1fda67d6d3 Rename some AST parts to be less odd 2022-04-26 05:03:54 -04:00
Rerumu 12e2799914 Use new Rust write behavior 2022-04-26 02:05:44 -04:00
Rerumu 36e9ff3c86 Add import formatting default 2022-04-25 21:26:11 -04:00
Rerumu b6664aacfd Fix bad local variable generation 2022-04-25 18:29:06 -04:00
Rerumu 5e955efcbd Refactor some messy code 2022-04-25 18:07:40 -04:00
Rerumu e7b36a7d94 Unify integer types and simplify some code 2022-04-22 21:57:43 -04:00
Rerumu 233aee2c5e Simplify type and local handling 2022-04-22 04:01:10 -04:00
Rerumu a97bd899da Simplify name extraction 2022-04-21 04:37:40 -04:00
Rerumu 891851bcb8 Add pop_many to reduce redundancy 2022-02-09 18:47:25 -05:00
Rerumu 5ad07b930c Remove leftover 2022-02-09 06:13:26 -05:00
Rerumu 80a9230767 Rename fallible operations 2022-02-09 05:32:51 -05:00
Rerumu bc24765ba9 Fix gen_call_indirect ordering 2022-02-09 05:27:38 -05:00
Rerumu d6b77b287e Simplify new_stored_body 2022-02-09 04:55:22 -05:00
Rerumu fbd23e05b6 Simplify value instantiation 2022-02-09 04:48:51 -05:00
Rerumu 460f363c91 Refactor Builder behavior and stack emulation 2022-02-09 04:45:28 -05:00
Rerumu 22ea8910ad Re-structure and decouple AST from generator 2022-02-08 17:39:14 -05:00
Rerumu 9d2d8aa69b Refactor local flattening 2022-02-07 21:32:32 -05:00
Rerumu 66818a8566 Add small Luau optimizations 2022-01-20 04:44:18 -05:00
Rerumu d3fc1fc891 Add experimental i64 2022-01-20 04:41:28 -05:00
Rerumu 02232b46ca Disambiguate allocator and memory 2022-01-17 01:59:02 -05:00
Rerumu 5fb7899c7e Reformat using StyLua 2022-01-17 01:49:17 -05:00
Rerumu b3a68742a9 Make clippy happy 2022-01-05 19:59:32 -05:00
Rerumu d5b327cf64 Rename visit.rs to base.rs 2021-12-31 15:30:34 -05:00
Rerumu 822465cd70 Add runtime to Transpiler 2021-12-31 15:28:59 -05:00
Rerumu 25e2730a0c Add typed locals 2021-12-22 00:23:02 -05:00
Rerumu 76b8810712 Reorder LuaJIT temp 2021-12-20 15:44:40 -05:00
Rerumu 4e4cffeb8f Simplify return emit 2021-12-20 15:36:15 -05:00
Rerumu 8e474ab17c Fix Luau jump table 2021-12-19 22:10:33 -05:00
Rerumu cea3cca7c7 Simplify more LuaJIT functions 2021-12-19 22:09:41 -05:00
Rerumu d6461d574a Localize some reuse 2021-12-18 22:59:23 -05:00
Rerumu d55441e5fb Refactor front end 2021-12-14 18:49:30 -05:00
Rerumu 84e688877b Remove unused require 2021-12-14 18:49:30 -05:00
Rerumu 3a9617fd5f Add arcane JIT incantation 2021-12-14 04:31:53 -05:00
Rerumu 27f503ee1f Draft out part of Luau runtime 2021-12-14 04:08:33 -05:00
Rerumu d7df9fb5b4 Refactored and decoupled BinOp and CmpOp 2021-12-14 04:03:03 -05:00
Rerumu e568baee1d Remove dead code for LuaJIT 2021-12-13 19:24:03 -05:00
Rerumu 3832402b68 Clippify it all 2021-12-13 17:52:13 -05:00
Rerumu 7654de7497 Refactor LuaJIT conditional generation 2021-12-13 17:51:25 -05:00
Rerumu dc1116c3e5 Remove implicit recursive cloning of AST 2021-12-13 16:25:33 -05:00
Rerumu 59d0abeb41 Add some separators in LuaJIT runtime 2021-12-13 14:12:54 -05:00
Rerumu 194f489209 Refactor LuaJIT table allocation 2021-12-12 22:31:20 -05:00
Rerumu c5543cfc2e Fix out of bounds initialization 2021-12-12 22:12:27 -05:00
Rerumu d483b9a669 Simplify some code 2021-12-12 04:06:33 -05:00
Rerumu 19350d1aef Some JIT tuning 2021-12-12 02:28:53 -05:00
Rerumu 78d4f12bde Fix #4
This fixes the long standing bug with strict aliasing that caused heavily JITed code to miscompile. It stemmed first from pointer reinterpretation which is simply undefined behavior. After fixing that with an `union` and `ffi.copy`, the issue manifested in a different way. Further debugging showed that it was likely that `ffi.copy` (and `ffi.C.memcpy`) would still alias pointers through coercion, more undefined behavior. Now, memory is handled with an `Any` type instead, so aliasing does not occur although unaligned reads and writes may be a problem in the future. I hope this doesn't break. It was very painful to debug.
2021-12-12 01:56:54 -05:00