mirror of
https://github.com/luau-lang/luau.git
synced 2025-03-04 11:11:41 +00:00

## What's Changed General performance improvements and bug fixes. `lua_clonetable` was added too. ### General ## Runtime - Improvements were made to Luau's performance, including a `lua_clonetable` function and optimizations to string caching. Buffer read/write operations were optimized for big-endian machines. ## New Solver - Crashes related to duplicate keys in table literals, fragment AC crashes, and potential hash collisions in the StringCache. - We now handle user-defined type functions as opaque and track interior free table types. ## Require By String - Require-by-string path resolution was simplified. **Full Changelog**: https://github.com/luau-lang/luau/compare/0.658...0.659 --- Co-authored-by: Ariel Weiss <aaronweiss@roblox.com> Co-authored-by: Andy Friesen <afriesen@roblox.com> Co-authored-by: Hunter Goldstein <hgoldstein@roblox.com> Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com> Co-authored-by: Varun Saini <vsaini@roblox.com> Co-authored-by: Vighnesh Vijay <vvijay@roblox.com> Co-authored-by: Yohoo Lin <yohoo@roblox.com> --------- Co-authored-by: Hunter Goldstein <hgoldstein@roblox.com> Co-authored-by: Varun Saini <61795485+vrn-sn@users.noreply.github.com> Co-authored-by: Alexander Youngblood <ayoungblood@roblox.com>
29 lines
1.1 KiB
C++
29 lines
1.1 KiB
C++
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
|
|
#pragma once
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <string_view>
|
|
#include <functional>
|
|
#include <vector>
|
|
|
|
std::optional<std::string> getCurrentWorkingDirectory();
|
|
|
|
std::string normalizePath(std::string_view path);
|
|
std::optional<std::string> resolvePath(std::string_view relativePath, std::string_view baseFilePath);
|
|
|
|
std::optional<std::string> readFile(const std::string& name);
|
|
std::optional<std::string> readStdin();
|
|
|
|
bool hasFileExtension(std::string_view name, const std::vector<std::string>& extensions);
|
|
|
|
bool isAbsolutePath(std::string_view path);
|
|
bool isFile(const std::string& path);
|
|
bool isDirectory(const std::string& path);
|
|
bool traverseDirectory(const std::string& path, const std::function<void(const std::string& name)>& callback);
|
|
|
|
std::vector<std::string_view> splitPath(std::string_view path);
|
|
std::string joinPaths(std::string_view lhs, std::string_view rhs);
|
|
std::optional<std::string> getParentPath(std::string_view path);
|
|
|
|
std::vector<std::string> getSourceFiles(int argc, char** argv);
|