diff --git a/Analysis/src/TypedAllocator.cpp b/Analysis/src/TypedAllocator.cpp index 4dc26219..a2f49afb 100644 --- a/Analysis/src/TypedAllocator.cpp +++ b/Analysis/src/TypedAllocator.cpp @@ -10,7 +10,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include const size_t kPageSize = 4096; #else diff --git a/Ast/src/TimeTrace.cpp b/Ast/src/TimeTrace.cpp index 9373fa95..bc3f3538 100644 --- a/Ast/src/TimeTrace.cpp +++ b/Ast/src/TimeTrace.cpp @@ -15,7 +15,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include #endif #ifdef __APPLE__ diff --git a/CLI/FileUtils.cpp b/CLI/FileUtils.cpp index 39a14ec7..71e536c7 100644 --- a/CLI/FileUtils.cpp +++ b/CLI/FileUtils.cpp @@ -10,7 +10,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include #else #include #include diff --git a/CodeGen/src/CodeAllocator.cpp b/CodeGen/src/CodeAllocator.cpp index 84e48a1b..50c60fac 100644 --- a/CodeGen/src/CodeAllocator.cpp +++ b/CodeGen/src/CodeAllocator.cpp @@ -13,7 +13,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include const size_t kPageSize = 4096; #else diff --git a/CodeGen/src/CodeBlockUnwind.cpp b/CodeGen/src/CodeBlockUnwind.cpp index 5c711b4a..f883d6e3 100644 --- a/CodeGen/src/CodeBlockUnwind.cpp +++ b/CodeGen/src/CodeBlockUnwind.cpp @@ -15,7 +15,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include #elif defined(__linux__) || defined(__APPLE__) diff --git a/VM/src/lperf.cpp b/VM/src/lperf.cpp index 5df22bb0..67befee4 100644 --- a/VM/src/lperf.cpp +++ b/VM/src/lperf.cpp @@ -9,7 +9,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include +#include #endif #ifdef __APPLE__ diff --git a/docs/_pages/compatibility.md b/docs/_pages/compatibility.md index 94f8809b..1b2c83ef 100644 --- a/docs/_pages/compatibility.md +++ b/docs/_pages/compatibility.md @@ -57,7 +57,7 @@ Sandboxing challenges are [covered in the dedicated section](sandbox). | tables honor the `__len` metamethod | ✔️ | | | hex and `\z` escapes in strings | ✔️ | | | support for hexadecimal floats | 🤷‍♀️ | no strong use cases | -| order metamethods work for different types | ❌ | no strong use cases and more complicated semantics, compatibility and performance implications | +| order metamethods (`__lt`/`__le`) are called for unrelated metatables | ❌ | no strong use cases and more complicated semantics, compatibility and performance implications | | empty statement | 🤷‍♀️ | less useful in Lua than in JS/C#/C/C++ | | `break` statement may appear in the middle of a block | 🤷‍♀️ | we'd like to do it consistently for `break`/`return`/`continue` but there be dragons | | arguments for function called through `xpcall` | ✔️ | | @@ -92,7 +92,8 @@ Ephemeron tables may be implemented at some point since they do have valid uses | new function `table.move` | ✔️ | | | `collectgarbage("count")` now returns only one result | ✔️ | | | `coroutine.isyieldable` | ✔️ | | -| stricter error checking for `table.insert`/`table.remove` | 😞 | we love this, but it breaks compatibility +| stricter error checking for `table.insert`/`table.remove` | 😞 | we love this, but it breaks compatibility | +| `__eq` metamethod is called for unrelated metatables | ❌ | backwards compatibility and typechecking implications | It's important to highlight integer support and bitwise operators. For Luau, it's rare that a full 64-bit integer type is necessary - double-precision types support integers up to 2^53 (in Lua which is used in embedded space, integers may be more appealing in environments without a native 64-bit FPU). However, there's a *lot* of value in having a single number type, both from performance perspective and for consistency. Notably, Lua doesn't handle integer overflow properly, so using integers also carries compatibility implications. diff --git a/tests/main.cpp b/tests/main.cpp index 26981926..72695fb5 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -15,7 +15,7 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include // IsDebuggerPresent +#include // IsDebuggerPresent #endif #ifdef __APPLE__