From ceb119ff5ce8294d7e87a07b3ceb13ac27aa6184 Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Sun, 17 Mar 2024 23:59:28 +0100 Subject: [PATCH 1/9] ci: Fix upload tool --- .github/workflows/deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c149698..d83a026 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -63,7 +63,7 @@ jobs: uses: actions/checkout@v3 with: submodules: recursive - + - name: Download windows module dll uses: actions/download-artifact@v3 with: @@ -132,7 +132,7 @@ jobs: asset_content_type: application/octet-stream - name: Install CDN upload tool - run: npm i @altmp/upload-tool@latest + run: npm i @altmp/upload-tool@latest fast-xml-parser@4.3.6 - name: Upload windows files to CDN run: npx alt-upload dist-windows js-bytecode-module/$BRANCH/x64_win32 $VERSION $SDK_VERSION @@ -181,7 +181,7 @@ jobs: ref: main repo: altmp/altv-docker token: ${{ steps.get_workflow_token.outputs.token }} - + delete-artifacts: name: Delete artifacts runs-on: ubuntu-20.04 From 1462cbaa8f401fd177302ad6500fafc318ce6fba Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Fri, 31 May 2024 21:52:01 +0200 Subject: [PATCH 2/9] chore: Update cpp-sdk --- deps/cpp-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/cpp-sdk b/deps/cpp-sdk index 95a2cfa..9933a67 160000 --- a/deps/cpp-sdk +++ b/deps/cpp-sdk @@ -1 +1 @@ -Subproject commit 95a2cfadc2ba1de018c8c55c72b21984067b6181 +Subproject commit 9933a6743140e4d05da8662f9b95393705bbceb3 From c5ada92c06fda54042f5915fb304ebf74ec36be1 Mon Sep 17 00:00:00 2001 From: Yiin Date: Wed, 5 Jun 2024 10:22:14 +0300 Subject: [PATCH 3/9] feat: add jsv2 imports to ignoredModules (#12) --- module/src/runtime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/src/runtime.cpp b/module/src/runtime.cpp index 8113453..f481a0e 100644 --- a/module/src/runtime.cpp +++ b/module/src/runtime.cpp @@ -29,7 +29,7 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag Config::Value::ValuePtr config = resource->GetConfig(); // Get ignored files - std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared" }; + std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared", "@altv/client", "@altv/server", "@altv/shared", "@altv/natives" }; Config::Value::ValuePtr ignoredFiles = config->Get("ignored-files"); if(ignoredFiles->IsList()) { From d9a4c5e968ea6332d02d85152a4ca886239d926b Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Wed, 5 Jun 2024 17:45:24 +0200 Subject: [PATCH 4/9] feat: Add `jsv2b` Script runtime. --- module/src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/module/src/main.cpp b/module/src/main.cpp index 9c9ddcb..07ef7a3 100644 --- a/module/src/main.cpp +++ b/module/src/main.cpp @@ -35,6 +35,7 @@ EXPORT bool altMain(alt::ICore* core) auto& runtime = JSBytecodeRuntime::Instance(); core->RegisterScriptRuntime("jsb", &runtime); + core->RegisterScriptRuntime("jsv2b", &runtime); core->SubscribeCommand("jsb-module", &CommandHandler); From e916b2de4ed0cd307a6ddc43b47500d315c2694d Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Thu, 6 Jun 2024 07:06:38 +0200 Subject: [PATCH 5/9] chore: rollback SDK version --- deps/cpp-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/cpp-sdk b/deps/cpp-sdk index 9933a67..95a2cfa 160000 --- a/deps/cpp-sdk +++ b/deps/cpp-sdk @@ -1 +1 @@ -Subproject commit 9933a6743140e4d05da8662f9b95393705bbceb3 +Subproject commit 95a2cfadc2ba1de018c8c55c72b21984067b6181 From 4042d99ca03353f6ee9dabd1e6b059027dccca93 Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:51:13 +0200 Subject: [PATCH 6/9] fix: Fix jsv2b runtime --- module/src/main.cpp | 5 ++- module/src/runtime.cpp | 2 +- module/src/runtimev2.cpp | 96 ++++++++++++++++++++++++++++++++++++++++ module/src/runtimev2.h | 36 +++++++++++++++ 4 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 module/src/runtimev2.cpp create mode 100644 module/src/runtimev2.h diff --git a/module/src/main.cpp b/module/src/main.cpp index 07ef7a3..13faa6e 100644 --- a/module/src/main.cpp +++ b/module/src/main.cpp @@ -2,6 +2,7 @@ #include "version/version.h" #include "Log.h" #include "runtime.h" +#include "runtimev2.h" static void CommandHandler(const std::vector& args) { @@ -35,7 +36,9 @@ EXPORT bool altMain(alt::ICore* core) auto& runtime = JSBytecodeRuntime::Instance(); core->RegisterScriptRuntime("jsb", &runtime); - core->RegisterScriptRuntime("jsv2b", &runtime); + + auto& runtimeV2 = JSBytecodeRuntimeV2::Instance(); + core->RegisterScriptRuntime("jsv2b", &runtimeV2); core->SubscribeCommand("jsb-module", &CommandHandler); diff --git a/module/src/runtime.cpp b/module/src/runtime.cpp index f481a0e..8113453 100644 --- a/module/src/runtime.cpp +++ b/module/src/runtime.cpp @@ -29,7 +29,7 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag Config::Value::ValuePtr config = resource->GetConfig(); // Get ignored files - std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared", "@altv/client", "@altv/server", "@altv/shared", "@altv/natives" }; + std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared" }; Config::Value::ValuePtr ignoredFiles = config->Get("ignored-files"); if(ignoredFiles->IsList()) { diff --git a/module/src/runtimev2.cpp b/module/src/runtimev2.cpp new file mode 100644 index 0000000..03874b7 --- /dev/null +++ b/module/src/runtimev2.cpp @@ -0,0 +1,96 @@ +#include "runtimev2.h" +#include "Log.h" +#include "compiler.h" +#include "package.h" +#include "logger.h" + +JSBytecodeRuntimeV2::JSBytecodeRuntimeV2() +{ + v8::V8::SetFlagsFromString("--harmony-import-assertions --short-builtin-calls --no-lazy --no-flush-bytecode --no-enable-lazy-source-positions"); + platform = v8::platform::NewDefaultPlatform(); + v8::V8::InitializePlatform(platform.get()); + v8::V8::Initialize(); + + create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); + + isolate = v8::Isolate::New(create_params); +} + +void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPackage* package) +{ + v8::Isolate::Scope isolateScope(isolate); + v8::HandleScope handleScope(isolate); + + // Set up compiler + alt::IPackage* resourcePackage = resource->GetPackage(); + Package compilerPackage(package, resourcePackage, resource); + Logger compilerLogger; + BytecodeCompiler::Compiler compiler(isolate, &compilerPackage, &compilerLogger); + + Config::Value::ValuePtr config = resource->GetConfig(); + // Get ignored files + std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared", "@altv/client", "@altv/server", "@altv/shared", "@altv/natives" }; + Config::Value::ValuePtr ignoredFiles = config->Get("ignored-files"); + if(ignoredFiles->IsList()) + { + Config::Value::List list = ignoredFiles->As(); + ignoredModules.reserve(ignoredModules.size() + list.size()); + for(auto& item : list) + { + if(item->IsString()) ignoredModules.push_back(item->As()); + } + } + compiler.SetIgnoredModules(ignoredModules); + + // Compile client main file + bool result = compiler.CompileModule(resource->GetClientMain()); + if(!result) return; + + // Compile the extra files + Config::Value::ValuePtr extraCompileFiles = config->Get("extra-compile-files"); + if(extraCompileFiles->IsList()) + { + Config::Value::List list = extraCompileFiles->As(); + std::vector extraFilePatterns; + extraFilePatterns.reserve(list.size()); + for(auto& item : list) + { + if(item->IsString()) extraFilePatterns.push_back(item->As()); + } + + std::set files = resource->GetMatchedFiles(extraFilePatterns); + for(const std::string& file : files) + { + bool result = compiler.CompileModule(file, false); + if(!result) return; + } + } + + // Write all other files normally + const std::vector& clientFiles = resource->GetClientFiles(); + const std::vector& compiledFiles = compiler.GetCompiledFiles(); + for(const std::string& clientFile : clientFiles) + { + // Check if the file is compiled, then we don't want to overwrite it + if(std::find(compiledFiles.begin(), compiledFiles.end(), clientFile) != compiledFiles.end()) continue; + + // Open the file from the resource package and read the content + alt::IPackage::File* file = resourcePackage->OpenFile(clientFile); + size_t fileSize = resourcePackage->GetFileSize(file); + std::string buffer; + buffer.resize(fileSize); + resourcePackage->ReadFile(file, buffer.data(), buffer.size()); + resourcePackage->CloseFile(file); + + // Write the file content into the client package + alt::IPackage::File* clientPkgFile = package->OpenFile(clientFile); + package->WriteFile(clientPkgFile, buffer.data(), buffer.size()); + package->CloseFile(clientPkgFile); + } +} + +bool JSBytecodeRuntimeV2::GetProcessClientType(std::string& clientType) +{ + clientType = "jsv2b"; + return true; +} diff --git a/module/src/runtimev2.h b/module/src/runtimev2.h new file mode 100644 index 0000000..0e4c4a0 --- /dev/null +++ b/module/src/runtimev2.h @@ -0,0 +1,36 @@ +#pragma once + +#include "SDK.h" +#include "v8.h" +#include "libplatform/libplatform.h" + +class JSBytecodeRuntimeV2 : public alt::IScriptRuntime +{ + v8::Isolate* isolate; + v8::Isolate::CreateParams create_params; + std::unique_ptr platform; + +public: + JSBytecodeRuntimeV2(); + + bool GetProcessClientType(std::string& clientType) override; + void ProcessClientFile(alt::IResource* resource, alt::IPackage* clientPackage) override; + + v8::Isolate* GetIsolate() + { + return isolate; + } + + alt::IResource::Impl* CreateImpl(alt::IResource* resource) override + { + return nullptr; + } + + void DestroyImpl(alt::IResource::Impl* impl) override {} + + static JSBytecodeRuntimeV2& Instance() + { + static JSBytecodeRuntimeV2 runtime; + return runtime; + } +}; From f08aafd484130f42220a909f8a6c79a284960791 Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:49:05 +0200 Subject: [PATCH 7/9] fix: Fix v8 initialization --- module/src/CScriptRuntimeInfo.h | 34 +++++++++++++++++++++++++++++++++ module/src/main.cpp | 8 ++++---- module/src/runtime.cpp | 14 ++------------ module/src/runtime.h | 12 ------------ module/src/runtimev2.cpp | 14 ++------------ module/src/runtimev2.h | 12 ------------ 6 files changed, 42 insertions(+), 52 deletions(-) create mode 100644 module/src/CScriptRuntimeInfo.h diff --git a/module/src/CScriptRuntimeInfo.h b/module/src/CScriptRuntimeInfo.h new file mode 100644 index 0000000..aa66042 --- /dev/null +++ b/module/src/CScriptRuntimeInfo.h @@ -0,0 +1,34 @@ +#pragma once + +#include "v8.h" +#include + +class CScriptRuntimeInfo +{ +private: + v8::Isolate* isolate; + std::unique_ptr platform; + +public: + v8::Isolate* GetIsolate() { return isolate; } + + void Instanciate() + { + v8::V8::SetFlagsFromString("--harmony-import-assertions --short-builtin-calls --no-lazy --no-flush-bytecode --no-enable-lazy-source-positions"); + platform = v8::platform::NewDefaultPlatform(); + v8::V8::InitializePlatform(platform.get()); + + v8::V8::Initialize(); + + auto createParams = v8::Isolate::CreateParams{}; + createParams.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); + + isolate = v8::Isolate::New(createParams); + } + + static CScriptRuntimeInfo& Instance() + { + static CScriptRuntimeInfo runtimeInfo; + return runtimeInfo; + } +}; diff --git a/module/src/main.cpp b/module/src/main.cpp index 13faa6e..2f9b293 100644 --- a/module/src/main.cpp +++ b/module/src/main.cpp @@ -1,3 +1,4 @@ +#include "CScriptRuntimeInfo.h" #include "SDK.h" #include "version/version.h" #include "Log.h" @@ -34,11 +35,10 @@ EXPORT bool altMain(alt::ICore* core) { alt::ICore::SetInstance(core); - auto& runtime = JSBytecodeRuntime::Instance(); - core->RegisterScriptRuntime("jsb", &runtime); + CScriptRuntimeInfo::Instance().Instanciate(); - auto& runtimeV2 = JSBytecodeRuntimeV2::Instance(); - core->RegisterScriptRuntime("jsv2b", &runtimeV2); + core->RegisterScriptRuntime("jsb", &JSBytecodeRuntime::Instance()); + core->RegisterScriptRuntime("jsv2b", &JSBytecodeRuntimeV2::Instance()); core->SubscribeCommand("jsb-module", &CommandHandler); diff --git a/module/src/runtime.cpp b/module/src/runtime.cpp index 8113453..189cc52 100644 --- a/module/src/runtime.cpp +++ b/module/src/runtime.cpp @@ -1,23 +1,13 @@ #include "runtime.h" #include "Log.h" #include "compiler.h" +#include "CScriptRuntimeInfo.h" #include "package.h" #include "logger.h" -JSBytecodeRuntime::JSBytecodeRuntime() -{ - v8::V8::SetFlagsFromString("--harmony-import-assertions --short-builtin-calls --no-lazy --no-flush-bytecode --no-enable-lazy-source-positions"); - platform = v8::platform::NewDefaultPlatform(); - v8::V8::InitializePlatform(platform.get()); - v8::V8::Initialize(); - - create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); - - isolate = v8::Isolate::New(create_params); -} - void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackage* package) { + v8::Isolate* isolate = CScriptRuntimeInfo::Instance().GetIsolate(); v8::Isolate::Scope isolateScope(isolate); v8::HandleScope handleScope(isolate); diff --git a/module/src/runtime.h b/module/src/runtime.h index 7e234a1..6de9329 100644 --- a/module/src/runtime.h +++ b/module/src/runtime.h @@ -2,25 +2,13 @@ #include "SDK.h" #include "v8.h" -#include "libplatform/libplatform.h" class JSBytecodeRuntime : public alt::IScriptRuntime { - v8::Isolate* isolate; - v8::Isolate::CreateParams create_params; - std::unique_ptr platform; - public: - JSBytecodeRuntime(); - bool GetProcessClientType(std::string& clientType) override; void ProcessClientFile(alt::IResource* resource, alt::IPackage* clientPackage) override; - v8::Isolate* GetIsolate() - { - return isolate; - } - alt::IResource::Impl* CreateImpl(alt::IResource* resource) override { return nullptr; diff --git a/module/src/runtimev2.cpp b/module/src/runtimev2.cpp index 03874b7..2742e94 100644 --- a/module/src/runtimev2.cpp +++ b/module/src/runtimev2.cpp @@ -1,23 +1,13 @@ #include "runtimev2.h" #include "Log.h" #include "compiler.h" +#include "CScriptRuntimeInfo.h" #include "package.h" #include "logger.h" -JSBytecodeRuntimeV2::JSBytecodeRuntimeV2() -{ - v8::V8::SetFlagsFromString("--harmony-import-assertions --short-builtin-calls --no-lazy --no-flush-bytecode --no-enable-lazy-source-positions"); - platform = v8::platform::NewDefaultPlatform(); - v8::V8::InitializePlatform(platform.get()); - v8::V8::Initialize(); - - create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); - - isolate = v8::Isolate::New(create_params); -} - void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPackage* package) { + v8::Isolate* isolate = CScriptRuntimeInfo::Instance().GetIsolate(); v8::Isolate::Scope isolateScope(isolate); v8::HandleScope handleScope(isolate); diff --git a/module/src/runtimev2.h b/module/src/runtimev2.h index 0e4c4a0..bccb0e2 100644 --- a/module/src/runtimev2.h +++ b/module/src/runtimev2.h @@ -2,25 +2,13 @@ #include "SDK.h" #include "v8.h" -#include "libplatform/libplatform.h" class JSBytecodeRuntimeV2 : public alt::IScriptRuntime { - v8::Isolate* isolate; - v8::Isolate::CreateParams create_params; - std::unique_ptr platform; - public: - JSBytecodeRuntimeV2(); - bool GetProcessClientType(std::string& clientType) override; void ProcessClientFile(alt::IResource* resource, alt::IPackage* clientPackage) override; - v8::Isolate* GetIsolate() - { - return isolate; - } - alt::IResource::Impl* CreateImpl(alt::IResource* resource) override { return nullptr; From 767d6aff5018e889324f2cc001307952a360d87f Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Thu, 6 Jun 2024 20:42:20 +0200 Subject: [PATCH 8/9] feat: Add verbose config option to prevent spam --- compiler/compiler.cpp | 8 ++++++-- compiler/compiler.h | 2 +- module/src/runtime.cpp | 8 ++++++-- module/src/runtimev2.cpp | 8 ++++++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/compiler/compiler.cpp b/compiler/compiler.cpp index 7a4c444..8efc2e7 100644 --- a/compiler/compiler.cpp +++ b/compiler/compiler.cpp @@ -5,7 +5,7 @@ using namespace BytecodeCompiler; -bool Compiler::CompileModule(const std::string& fileName, bool compileDependencies) +bool Compiler::CompileModule(const std::string& fileName, bool compileDependencies, bool verbose) { // Read the file if(!package->FileExists(fileName)) @@ -61,7 +61,11 @@ bool Compiler::CompileModule(const std::string& fileName, bool compileDependenci cache->buffer_policy = v8::ScriptCompiler::CachedData::BufferPolicy::BufferOwned; delete cache; - logger->Log("Converted file to bytecode: " + logger->GetHighlightColor() + fileName); + if (verbose) + { + logger->Log("Converted file to bytecode: " + logger->GetHighlightColor() + fileName); + } + compiledFiles.push_back(fileName); // Compile all dependencies diff --git a/compiler/compiler.h b/compiler/compiler.h index 69ddd90..6961ac1 100644 --- a/compiler/compiler.h +++ b/compiler/compiler.h @@ -68,7 +68,7 @@ namespace BytecodeCompiler return magicBytes; } - bool CompileModule(const std::string& fileName, bool compileDependencies = true); + bool CompileModule(const std::string& fileName, bool compileDependencies = true, bool verbose = false); bool IsBytecodeFile(void* buffer, size_t size); diff --git a/module/src/runtime.cpp b/module/src/runtime.cpp index 189cc52..4e9b24e 100644 --- a/module/src/runtime.cpp +++ b/module/src/runtime.cpp @@ -21,6 +21,8 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag // Get ignored files std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared" }; Config::Value::ValuePtr ignoredFiles = config->Get("ignored-files"); + Config::Value::Bool verboseLogging = config->Get("verbose")->AsBool(false); + if(ignoredFiles->IsList()) { Config::Value::List list = ignoredFiles->As(); @@ -33,7 +35,7 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag compiler.SetIgnoredModules(ignoredModules); // Compile client main file - bool result = compiler.CompileModule(resource->GetClientMain()); + bool result = compiler.CompileModule(resource->GetClientMain(), true, verboseLogging); if(!result) return; // Compile the extra files @@ -51,7 +53,7 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag std::set files = resource->GetMatchedFiles(extraFilePatterns); for(const std::string& file : files) { - bool result = compiler.CompileModule(file, false); + bool result = compiler.CompileModule(file, false, verboseLogging); if(!result) return; } } @@ -77,6 +79,8 @@ void JSBytecodeRuntime::ProcessClientFile(alt::IResource* resource, alt::IPackag package->WriteFile(clientPkgFile, buffer.data(), buffer.size()); package->CloseFile(clientPkgFile); } + + compilerLogger.Log("Converted " + std::to_string(compiledFiles.size()) + " script files to bytecode"); } bool JSBytecodeRuntime::GetProcessClientType(std::string& clientType) diff --git a/module/src/runtimev2.cpp b/module/src/runtimev2.cpp index 2742e94..66e1e80 100644 --- a/module/src/runtimev2.cpp +++ b/module/src/runtimev2.cpp @@ -21,6 +21,8 @@ void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPack // Get ignored files std::vector ignoredModules = { "alt", "alt-client", "natives", "alt-worker", "alt-shared", "@altv/client", "@altv/server", "@altv/shared", "@altv/natives" }; Config::Value::ValuePtr ignoredFiles = config->Get("ignored-files"); + Config::Value::Bool verboseLogging = config->Get("verbose")->AsBool(false); + if(ignoredFiles->IsList()) { Config::Value::List list = ignoredFiles->As(); @@ -33,7 +35,7 @@ void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPack compiler.SetIgnoredModules(ignoredModules); // Compile client main file - bool result = compiler.CompileModule(resource->GetClientMain()); + bool result = compiler.CompileModule(resource->GetClientMain(), true, verboseLogging); if(!result) return; // Compile the extra files @@ -51,7 +53,7 @@ void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPack std::set files = resource->GetMatchedFiles(extraFilePatterns); for(const std::string& file : files) { - bool result = compiler.CompileModule(file, false); + bool result = compiler.CompileModule(file, false, verboseLogging); if(!result) return; } } @@ -77,6 +79,8 @@ void JSBytecodeRuntimeV2::ProcessClientFile(alt::IResource* resource, alt::IPack package->WriteFile(clientPkgFile, buffer.data(), buffer.size()); package->CloseFile(clientPkgFile); } + + compilerLogger.Log("Converted " + std::to_string(compiledFiles.size()) + " script files to bytecode"); } bool JSBytecodeRuntimeV2::GetProcessClientType(std::string& clientType) From 18a2bb53cdb9c746f400ee3c66add7900d8337bc Mon Sep 17 00:00:00 2001 From: xLuxy <67131061+xLuxy@users.noreply.github.com> Date: Thu, 6 Jun 2024 21:34:44 +0200 Subject: [PATCH 9/9] chore: update cpp-sdk --- deps/cpp-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/cpp-sdk b/deps/cpp-sdk index 95a2cfa..22e1fdd 160000 --- a/deps/cpp-sdk +++ b/deps/cpp-sdk @@ -1 +1 @@ -Subproject commit 95a2cfadc2ba1de018c8c55c72b21984067b6181 +Subproject commit 22e1fdd37b8e379d04b279161571276cb7bb12da