From 1c8c5cff67b20d86c442b0917d6c1fc6407140df Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 30 Jul 2025 08:50:15 +0100 Subject: feat! Breaking API changes of NeCTI's LibCompiler and LibDebugger. what: - They've now become CompilerKit and DebuggerKit. - Expanding XCoff for NeBoot PowerPC backend. Signed-off-by: Amlal El Mahrouss --- dev/DebuggerKit/src/NeKernelContractCLI.cc | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 dev/DebuggerKit/src/NeKernelContractCLI.cc (limited to 'dev/DebuggerKit/src/NeKernelContractCLI.cc') diff --git a/dev/DebuggerKit/src/NeKernelContractCLI.cc b/dev/DebuggerKit/src/NeKernelContractCLI.cc new file mode 100644 index 0000000..9d078c8 --- /dev/null +++ b/dev/DebuggerKit/src/NeKernelContractCLI.cc @@ -0,0 +1,101 @@ +/*** + DebuggerKit + (C) 2025 Amlal El Mahrouss + File: NeKernelContract.cc + Purpose: NeKernel Debugger CLI. +*/ + +#ifdef LD_NEKERNEL_DEBUGGER + +#include +#include +#include +#include + +#include + +using namespace DebuggerKit::NeKernel; + +static void dbgi_ctrlc_handler(std::int32_t _) { + if (!kPID || kPath.empty()) { + return; + } + + kKernelDebugger.Break(); + + pfd::notify("Debugger Event", "Breakpoint hit!"); + + kKeepRunning = false; +} + +LIBCOMPILER_MODULE(DebuggerNeKernel) { + pfd::notify("Debugger Event", + "NeKernel Debugger\n(C) 2025 Amlal El Mahrouss and NeKernel.org contributors, all rights reserved."); + + if (argc >= 5 && std::string(argv[1]) == "-k" && argv[2] != nullptr && + std::string(argv[3]) == "-ip" && argv[4] != nullptr) { + kPath = argv[2]; + kPath += ":"; + kPath += argv[4]; + + kStdOut << "[+] KIP (Kernel:IP) set to: " << kPath << "\n"; + + CompilerKit::install_signal(SIGINT, dbgi_ctrlc_handler); + + kKernelDebugger.Attach(kPath, "", kPID); + kKernelDebugger.BreakAt("$HANDOVER_START"); + + while (YES) { + if (kKeepRunning) { + continue; + } + + std::string cmd; + if (!std::getline(std::cin, cmd)) break; + + if (cmd == "c" || cmd == "cont" || cmd == "continue") { + if (kKernelDebugger.Continue()) { + kKeepRunning = true; + + kStdOut << "[+] Continuing...\n"; + + pfd::notify("Debugger Event", "Continuing..."); + } + } + + if (cmd == "d" || cmd == "detach") kKernelDebugger.Detach(); + + if (cmd == "start") { + kStdOut << "[?] Enter a argument to use: "; + std::getline(std::cin, cmd); + + kKernelDebugger.Attach(kPath, cmd, kPID); + } + + if (cmd == "exit") { + if (kPID > 0) kKernelDebugger.Detach(); + + break; + } + + if (cmd == "break" || cmd == "b") { + kStdOut << "[?] Enter a symbol to break on: "; + + std::getline(std::cin, cmd); + + if (kKernelDebugger.BreakAt(cmd)) { + pfd::notify("Debugger Event", "Add BreakAt at: " + cmd); + } + } + } + + return EXIT_SUCCESS; + } + + kStdOut << "usage: " << argv[0] << " -k -ip \n"; + kStdOut << "example: " << argv[0] << " -k /path/to/ne_kernel -ip 127.0.0.1\n"; + + return EXIT_FAILURE; +} + +#endif // LD_NEKERNEL_DEBUGGER \ No newline at end of file -- cgit v1.2.3 From b0c5f2a2683657182f5ce3dc3bcbf252164b0077 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 5 Aug 2025 09:47:53 +0100 Subject: feat! compiler_kit & debugger_kit: breaking changes, big name refactors on the source code have been done. Signed-off-by: Amlal El Mahrouss --- dev/CompilerKit/AE.h | 2 +- dev/CompilerKit/BasicString.h | 2 +- dev/CompilerKit/CodeGen.h | 16 ++++++------- dev/CompilerKit/Defines.h | 16 ++++++------- dev/CompilerKit/ErrorID.h | 20 ++++++++-------- dev/CompilerKit/ErrorOr.h | 2 +- dev/CompilerKit/Frontend.h | 2 +- dev/CompilerKit/Macros.h | 14 +++++------ dev/CompilerKit/Ref.h | 2 +- dev/CompilerKit/lc-osx-san.json | 2 +- dev/CompilerKit/lc-osx.json | 2 +- dev/CompilerKit/lc-posix.json | 2 +- dev/CompilerKit/src/Backend/Assembler32x0.cc | 2 +- dev/CompilerKit/src/Backend/Assembler64x0.cc | 2 +- dev/CompilerKit/src/Backend/AssemblerAMD64.cc | 2 +- dev/CompilerKit/src/Backend/AssemblerARM64.cc | 4 ++-- dev/CompilerKit/src/Backend/AssemblerPowerPC.cc | 4 ++-- dev/CompilerKit/src/CodeGen.cc | 8 +++---- dev/CompilerKit/src/Frontend/CCompiler64x0.cc | 8 +++---- dev/CompilerKit/src/Frontend/CCompilerARM64.cc | 8 +++---- dev/CompilerKit/src/Frontend/CCompilerPower64.cc | 8 +++---- .../src/Frontend/CPlusPlusCompilerAMD64.cc | 28 +++++++++++----------- dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc | 28 +++++++++++----------- .../src/Macro/CPlusPlusCompilerPreProcessor.cc | 14 +++++------ dev/CompilerKit/utils/CompilerUtils.h | 4 ++-- dev/DebuggerKit/ld-nekernel.json | 2 +- dev/DebuggerKit/ld-osx.json | 2 +- dev/DebuggerKit/src/NeKernelContractCLI.cc | 2 +- dev/DebuggerKit/src/POSIXMachContractCLI.cc | 2 +- dev/LibC++/__power64.inc | 2 +- dev/LibC++/defines.h | 8 +++---- dev/LibC++/filesystem.h | 6 ++--- tools/cppdrv.cc | 4 ++-- tools/pef-amd64-cxxdrv.cc | 2 +- tools/pef-arm64-cdrv.cc | 2 +- 35 files changed, 117 insertions(+), 117 deletions(-) (limited to 'dev/DebuggerKit/src/NeKernelContractCLI.cc') diff --git a/dev/CompilerKit/AE.h b/dev/CompilerKit/AE.h index 1115e0a..6561baf 100644 --- a/dev/CompilerKit/AE.h +++ b/dev/CompilerKit/AE.h @@ -97,7 +97,7 @@ class AEReadableProtocol final { explicit AEReadableProtocol() = default; ~AEReadableProtocol() = default; - LIBCOMPILER_COPY_DELETE(AEReadableProtocol); + NECTI_COPY_DELETE(AEReadableProtocol); /** * @brief Read AE Record headers. diff --git a/dev/CompilerKit/BasicString.h b/dev/CompilerKit/BasicString.h index a1ada68..c4cb55a 100644 --- a/dev/CompilerKit/BasicString.h +++ b/dev/CompilerKit/BasicString.h @@ -39,7 +39,7 @@ class BasicString final { } } - LIBCOMPILER_COPY_DEFAULT(BasicString); + NECTI_COPY_DEFAULT(BasicString); Char* Data(); const Char* CData() const; diff --git a/dev/CompilerKit/CodeGen.h b/dev/CompilerKit/CodeGen.h index 9a3077b..1439c27 100644 --- a/dev/CompilerKit/CodeGen.h +++ b/dev/CompilerKit/CodeGen.h @@ -23,7 +23,7 @@ class AssemblyFactory final { explicit AssemblyFactory() = default; ~AssemblyFactory() = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyFactory); + NECTI_COPY_DEFAULT(AssemblyFactory); public: enum { @@ -54,7 +54,7 @@ class AssemblyInterface { explicit AssemblyInterface() = default; virtual ~AssemblyInterface() = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyInterface); + NECTI_COPY_DEFAULT(AssemblyInterface); virtual UInt32 Arch() noexcept { return AssemblyFactory::kArchAMD64; } @@ -113,7 +113,7 @@ class EncoderInterface { explicit EncoderInterface() = default; virtual ~EncoderInterface() = default; - LIBCOMPILER_COPY_DEFAULT(EncoderInterface); + NECTI_COPY_DEFAULT(EncoderInterface); virtual std::string CheckLine(std::string line, std::string file) = 0; virtual bool WriteLine(std::string line, std::string file) = 0; @@ -127,7 +127,7 @@ class EncoderAMD64 final : public EncoderInterface { explicit EncoderAMD64() = default; ~EncoderAMD64() override = default; - LIBCOMPILER_COPY_DEFAULT(EncoderAMD64); + NECTI_COPY_DEFAULT(EncoderAMD64); virtual std::string CheckLine(std::string line, std::string file) override; virtual bool WriteLine(std::string line, std::string file) override; @@ -147,7 +147,7 @@ class EncoderARM64 final : public EncoderInterface { explicit EncoderARM64() = default; ~EncoderARM64() override = default; - LIBCOMPILER_COPY_DEFAULT(EncoderARM64); + NECTI_COPY_DEFAULT(EncoderARM64); virtual std::string CheckLine(std::string line, std::string file) override; virtual bool WriteLine(std::string line, std::string file) override; @@ -163,7 +163,7 @@ class Encoder64x0 final : public EncoderInterface { explicit Encoder64x0() = default; ~Encoder64x0() override = default; - LIBCOMPILER_COPY_DEFAULT(Encoder64x0); + NECTI_COPY_DEFAULT(Encoder64x0); virtual std::string CheckLine(std::string line, std::string file) override; virtual bool WriteLine(std::string line, std::string file) override; @@ -179,7 +179,7 @@ class Encoder32x0 final : public EncoderInterface { explicit Encoder32x0() = default; ~Encoder32x0() override = default; - LIBCOMPILER_COPY_DEFAULT(Encoder32x0); + NECTI_COPY_DEFAULT(Encoder32x0); virtual std::string CheckLine(std::string line, std::string file) override; virtual bool WriteLine(std::string line, std::string file) override; @@ -195,7 +195,7 @@ class EncoderPowerPC final : public EncoderInterface { explicit EncoderPowerPC() = default; ~EncoderPowerPC() override = default; - LIBCOMPILER_COPY_DEFAULT(EncoderPowerPC); + NECTI_COPY_DEFAULT(EncoderPowerPC); virtual std::string CheckLine(std::string line, std::string file) override; virtual bool WriteLine(std::string line, std::string file) override; diff --git a/dev/CompilerKit/Defines.h b/dev/CompilerKit/Defines.h index c3d40ac..e3203ba 100644 --- a/dev/CompilerKit/Defines.h +++ b/dev/CompilerKit/Defines.h @@ -4,8 +4,8 @@ ------------------------------------------- */ -#ifndef __LIBCOMPILER_DEFINES_H__ -#define __LIBCOMPILER_DEFINES_H__ +#ifndef __NECTI_DEFINES_H__ +#define __NECTI_DEFINES_H__ #ifndef Yes #define Yes true @@ -81,19 +81,19 @@ #define rt_copy_memory(dst, src, len) memcpy(dst, src, len) #endif -#define LIBCOMPILER_COPY_DELETE(KLASS) \ +#define NECTI_COPY_DELETE(KLASS) \ KLASS& operator=(const KLASS&) = delete; \ KLASS(const KLASS&) = delete; -#define LIBCOMPILER_COPY_DEFAULT(KLASS) \ +#define NECTI_COPY_DEFAULT(KLASS) \ KLASS& operator=(const KLASS&) = default; \ KLASS(const KLASS&) = default; -#define LIBCOMPILER_MOVE_DELETE(KLASS) \ +#define NECTI_MOVE_DELETE(KLASS) \ KLASS& operator=(KLASS&&) = delete; \ KLASS(KLASS&&) = delete; -#define LIBCOMPILER_MOVE_DEFAULT(KLASS) \ +#define NECTI_MOVE_DEFAULT(KLASS) \ KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; @@ -162,10 +162,10 @@ typedef char char_type; #define kAsmFileExtsMax (7U) -#define LIBCOMPILER_MODULE(name) extern "C" int name(int argc, char** argv) +#define NECTI_MODULE(name) extern "C" int name(int argc, char** argv) #ifdef MSVC #pragma scalar_storage_order big - endian #endif // ifdef MSVC -#endif /* ifndef __LIBCOMPILER_DEFINES_H__ */ +#endif /* ifndef __NECTI_DEFINES_H__ */ diff --git a/dev/CompilerKit/ErrorID.h b/dev/CompilerKit/ErrorID.h index 22ca242..5b8d1e8 100644 --- a/dev/CompilerKit/ErrorID.h +++ b/dev/CompilerKit/ErrorID.h @@ -11,13 +11,13 @@ #include -#define LIBCOMPILER_SUCCESS 0 -#define LIBCOMPILER_EXEC_ERROR -30 -#define LIBCOMPILER_FILE_NOT_FOUND -31 -#define LIBCOMPILER_DIR_NOT_FOUND -32 -#define LIBCOMPILER_FILE_EXISTS -33 -#define LIBCOMPILER_TOO_LONG -34 -#define LIBCOMPILER_INVALID_DATA -35 -#define LIBCOMPILER_UNIMPLEMENTED -36 -#define LIBCOMPILER_FAT_ERROR -37 -#define LIBCOMPILER_INVALID_ARCH -38 +#define NECTI_SUCCESS 0 +#define NECTI_EXEC_ERROR -30 +#define NECTI_FILE_NOT_FOUND -31 +#define NECTI_DIR_NOT_FOUND -32 +#define NECTI_FILE_EXISTS -33 +#define NECTI_TOO_LONG -34 +#define NECTI_INVALID_DATA -35 +#define NECTI_UNIMPLEMENTED -36 +#define NECTI_FAT_ERROR -37 +#define NECTI_INVALID_ARCH -38 diff --git a/dev/CompilerKit/ErrorOr.h b/dev/CompilerKit/ErrorOr.h index 700da23..218bec5 100644 --- a/dev/CompilerKit/ErrorOr.h +++ b/dev/CompilerKit/ErrorOr.h @@ -36,7 +36,7 @@ class ErrorOr final { Int32 Error() { return mId; } - BOOL HasError() { return mId != LIBCOMPILER_SUCCESS; } + BOOL HasError() { return mId != NECTI_SUCCESS; } operator bool() { return mRef; } diff --git a/dev/CompilerKit/Frontend.h b/dev/CompilerKit/Frontend.h index 8af3066..168aa63 100644 --- a/dev/CompilerKit/Frontend.h +++ b/dev/CompilerKit/Frontend.h @@ -103,7 +103,7 @@ class CompilerFrontendInterface { explicit CompilerFrontendInterface() = default; virtual ~CompilerFrontendInterface() = default; - LIBCOMPILER_COPY_DEFAULT(CompilerFrontendInterface); + NECTI_COPY_DEFAULT(CompilerFrontendInterface); // NOTE: cast this to your user defined ast. typedef void* AstType; diff --git a/dev/CompilerKit/Macros.h b/dev/CompilerKit/Macros.h index 844bc23..ee42be5 100644 --- a/dev/CompilerKit/Macros.h +++ b/dev/CompilerKit/Macros.h @@ -9,25 +9,25 @@ #ifndef _MACROS_H_ #define _MACROS_H_ -#define LIBCOMPILER_COPY_DELETE(KLASS) \ +#define NECTI_COPY_DELETE(KLASS) \ KLASS& operator=(const KLASS&) = delete; \ KLASS(const KLASS&) = delete; -#define LIBCOMPILER_COPY_DEFAULT(KLASS) \ +#define NECTI_COPY_DEFAULT(KLASS) \ KLASS& operator=(const KLASS&) = default; \ KLASS(const KLASS&) = default; -#define LIBCOMPILER_MOVE_DELETE(KLASS) \ +#define NECTI_MOVE_DELETE(KLASS) \ KLASS& operator=(KLASS&&) = delete; \ KLASS(KLASS&&) = delete; -#define LIBCOMPILER_MOVE_DEFAULT(KLASS) \ +#define NECTI_MOVE_DEFAULT(KLASS) \ KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; /// @note xxxx is the error placeholder, in hexadecimal. -#define LIBCOMPILER_ERROR_PREFIX_CXX "CXXxxxx" -#define LIBCOMPILER_ERROR_PREFIX_CL "CLxxxx" -#define LIBCOMPILER_ERROR_PREFIX_ASM "ASMxxxx" +#define NECTI_ERROR_PREFIX_CXX "CXXxxxx" +#define NECTI_ERROR_PREFIX_CL "CLxxxx" +#define NECTI_ERROR_PREFIX_ASM "ASMxxxx" #endif /* ifndef _MACROS_H_ */ diff --git a/dev/CompilerKit/Ref.h b/dev/CompilerKit/Ref.h index a3640ac..bd432e0 100644 --- a/dev/CompilerKit/Ref.h +++ b/dev/CompilerKit/Ref.h @@ -27,7 +27,7 @@ class Ref final { } } - LIBCOMPILER_COPY_DEFAULT(Ref); + NECTI_COPY_DEFAULT(Ref); public: explicit Ref(T* cls, const Bool& strong = false) : m_Class(cls), m_Strong(strong) {} diff --git a/dev/CompilerKit/lc-osx-san.json b/dev/CompilerKit/lc-osx-san.json index 244936d..5ec4209 100644 --- a/dev/CompilerKit/lc-osx-san.json +++ b/dev/CompilerKit/lc-osx-san.json @@ -22,7 +22,7 @@ "-fsanitize=undefined" ], "cpp_macros": [ - "__LIBCOMPILER__=202505", + "__NECTI__=202505", "LC_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] diff --git a/dev/CompilerKit/lc-osx.json b/dev/CompilerKit/lc-osx.json index 3116045..e434ee8 100644 --- a/dev/CompilerKit/lc-osx.json +++ b/dev/CompilerKit/lc-osx.json @@ -17,7 +17,7 @@ "-shared" ], "cpp_macros": [ - "__LIBCOMPILER__=202505", + "__NECTI__=202505", "LC_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] diff --git a/dev/CompilerKit/lc-posix.json b/dev/CompilerKit/lc-posix.json index 6e824d4..e8668b9 100644 --- a/dev/CompilerKit/lc-posix.json +++ b/dev/CompilerKit/lc-posix.json @@ -17,7 +17,7 @@ "-shared" ], "cpp_macros": [ - "__LIBCOMPILER__=202505", + "__NECTI__=202505", "LC_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] diff --git a/dev/CompilerKit/src/Backend/Assembler32x0.cc b/dev/CompilerKit/src/Backend/Assembler32x0.cc index e298d2d..bc52d25 100644 --- a/dev/CompilerKit/src/Backend/Assembler32x0.cc +++ b/dev/CompilerKit/src/Backend/Assembler32x0.cc @@ -33,7 +33,7 @@ ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(NEAssemblerMain32000) { +NECTI_MODULE(NEAssemblerMain32000) { CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); return EXIT_SUCCESS; } diff --git a/dev/CompilerKit/src/Backend/Assembler64x0.cc b/dev/CompilerKit/src/Backend/Assembler64x0.cc index 32b199d..511c64d 100644 --- a/dev/CompilerKit/src/Backend/Assembler64x0.cc +++ b/dev/CompilerKit/src/Backend/Assembler64x0.cc @@ -67,7 +67,7 @@ static bool asm_read_attributes(std::string line); ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(AssemblerMain64x0) { +NECTI_MODULE(AssemblerMain64x0) { CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); for (size_t i = 1; i < argc; ++i) { diff --git a/dev/CompilerKit/src/Backend/AssemblerAMD64.cc b/dev/CompilerKit/src/Backend/AssemblerAMD64.cc index 6542d6e..b085773 100644 --- a/dev/CompilerKit/src/Backend/AssemblerAMD64.cc +++ b/dev/CompilerKit/src/Backend/AssemblerAMD64.cc @@ -84,7 +84,7 @@ static bool asm_read_attributes(std::string line); ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(AssemblerMainAMD64) { +NECTI_MODULE(AssemblerMainAMD64) { //////////////// CPU OPCODES BEGIN //////////////// CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); diff --git a/dev/CompilerKit/src/Backend/AssemblerARM64.cc b/dev/CompilerKit/src/Backend/AssemblerARM64.cc index d290e24..6890b2c 100644 --- a/dev/CompilerKit/src/Backend/AssemblerARM64.cc +++ b/dev/CompilerKit/src/Backend/AssemblerARM64.cc @@ -72,7 +72,7 @@ static bool asm_read_attributes(std::string line); ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(AssemblerMainARM64) { +NECTI_MODULE(AssemblerMainARM64) { CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); for (size_t i = 1; i < argc; ++i) { @@ -258,7 +258,7 @@ asm_fail_exit: if (kVerbose) kStdOut << "AssemblerARM64: Exit failed.\n"; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc b/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc index a04a52b..b02a112 100644 --- a/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc +++ b/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc @@ -72,7 +72,7 @@ static bool asm_read_attributes(std::string line); ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(AssemblerMainPower64) { +NECTI_MODULE(AssemblerMainPower64) { CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); for (size_t i = 1; i < argc; ++i) { @@ -258,7 +258,7 @@ asm_fail_exit: if (kVerbose) kStdOut << "AssemblerPower: Exit failed.\n"; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/dev/CompilerKit/src/CodeGen.cc b/dev/CompilerKit/src/CodeGen.cc index e59001d..693d7a5 100644 --- a/dev/CompilerKit/src/CodeGen.cc +++ b/dev/CompilerKit/src/CodeGen.cc @@ -20,15 +20,15 @@ namespace CompilerKit { ///! @brief Compile for specific format (ELF, PEF, ZBIN) Int32 AssemblyFactory::Compile(STLString sourceFile, const Int32& arch) noexcept { - if (sourceFile.length() < 1) return LIBCOMPILER_UNIMPLEMENTED; + if (sourceFile.length() < 1) return NECTI_UNIMPLEMENTED; - if (!fMounted) return LIBCOMPILER_UNIMPLEMENTED; - if (arch != fMounted->Arch()) return LIBCOMPILER_INVALID_ARCH; + if (!fMounted) return NECTI_UNIMPLEMENTED; + if (arch != fMounted->Arch()) return NECTI_INVALID_ARCH; try { return this->fMounted->CompileToFormat(sourceFile, arch); } catch (std::exception& e) { - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } } diff --git a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc index ae2939b..c7ac387 100644 --- a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc +++ b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc @@ -139,7 +139,7 @@ class CompilerFrontend64x0 final : public CompilerKit::CompilerFrontendInterface explicit CompilerFrontend64x0() = default; ~CompilerFrontend64x0() override = default; - LIBCOMPILER_COPY_DEFAULT(CompilerFrontend64x0); + NECTI_COPY_DEFAULT(CompilerFrontend64x0); std::string Check(const char* text, const char* file); CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; @@ -324,7 +324,7 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontend64x0::Compile(std::strin if (expr.find(")") != std::string::npos) expr.erase(expr.find(")")); - kIfFunction = "__LIBCOMPILER_IF_PROC_"; + kIfFunction = "__NECTI_IF_PROC_"; kIfFunction += std::to_string(time_off._Raw); syntaxLeaf.fUserValue = "\tlda r12, extern_segment "; @@ -1049,7 +1049,7 @@ class AssemblyCCInterface final LC_ASSEMBLY_INTERFACE { explicit AssemblyCCInterface() = default; ~AssemblyCCInterface() override = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyCCInterface); + NECTI_COPY_DEFAULT(AssemblyCCInterface); UInt32 Arch() noexcept override { return CompilerKit::AssemblyFactory::kArch64x0; } @@ -1197,7 +1197,7 @@ static void cc_print_help() { #define kExt ".c" -LIBCOMPILER_MODULE(CompilerCLang64x0) { +NECTI_MODULE(CompilerCLang64x0) { ::signal(SIGSEGV, Detail::drvi_crash_handler); kCompilerTypes.push_back({.fName = "void", .fValue = "void"}); diff --git a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc index 0cd08d0..dd230c5 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc @@ -140,7 +140,7 @@ class CompilerFrontendARM64 final : public CompilerKit::CompilerFrontendInterfac explicit CompilerFrontendARM64() = default; ~CompilerFrontendARM64() override = default; - LIBCOMPILER_COPY_DEFAULT(CompilerFrontendARM64); + NECTI_COPY_DEFAULT(CompilerFrontendARM64); std::string Check(const char* text, const char* file); CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; @@ -323,7 +323,7 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendARM64::Compile(std::stri if (expr.find(")") != std::string::npos) expr.erase(expr.find(")")); - kIfFunction = "__LIBCOMPILER_IF_PROC_"; + kIfFunction = "__NECTI_IF_PROC_"; kIfFunction += std::to_string(time_off._Raw); syntaxLeaf.fUserValue = "\tlda r12, extern_segment "; @@ -1048,7 +1048,7 @@ class AssemblyCCInterface final LC_ASSEMBLY_INTERFACE { explicit AssemblyCCInterface() = default; ~AssemblyCCInterface() override = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyCCInterface); + NECTI_COPY_DEFAULT(AssemblyCCInterface); UInt32 Arch() noexcept override { return CompilerKit::AssemblyFactory::kArchAARCH64; } @@ -1196,7 +1196,7 @@ static void cc_print_help() { #define kCExtension ".c" -LIBCOMPILER_MODULE(CompilerCLangARM64) { +NECTI_MODULE(CompilerCLangARM64) { ::signal(SIGSEGV, Detail::drvi_crash_handler); kCompilerTypes.push_back({.fName = "void", .fValue = "void"}); diff --git a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc index aaa2308..0ffbef0 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc @@ -130,7 +130,7 @@ class CompilerFrontendPower64 final : public CompilerKit::CompilerFrontendInterf explicit CompilerFrontendPower64() = default; ~CompilerFrontendPower64() override = default; - LIBCOMPILER_COPY_DEFAULT(CompilerFrontendPower64); + NECTI_COPY_DEFAULT(CompilerFrontendPower64); std::string Check(const char* text, const char* file); CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; @@ -330,7 +330,7 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendPower64::Compile(std::st if (expr.find(")") != std::string::npos) expr.erase(expr.find(")")); - kIfFunction = "__LIBCOMPILER_IF_PROC_"; + kIfFunction = "__NECTI_IF_PROC_"; kIfFunction += std::to_string(time_off._Raw); syntax_leaf.fUserValue = @@ -1067,7 +1067,7 @@ class AssemblyMountpointCLang final LC_ASSEMBLY_INTERFACE { explicit AssemblyMountpointCLang() = default; ~AssemblyMountpointCLang() override = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyMountpointCLang); + NECTI_COPY_DEFAULT(AssemblyMountpointCLang); UInt32 Arch() noexcept override { return CompilerKit::AssemblyFactory::kArchPowerPC; } @@ -1214,7 +1214,7 @@ static void cc_print_help() { #define kExt ".c" -LIBCOMPILER_MODULE(CompilerCLangPowerPC) { +NECTI_MODULE(CompilerCLangPowerPC) { ::signal(SIGSEGV, Detail::drvi_crash_handler); kCompilerTypes.push_back({.fName = "void", .fValue = "void"}); diff --git a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc index c38378a..5a0fc02 100644 --- a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc +++ b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc @@ -122,7 +122,7 @@ class CompilerFrontendCPlusPlusAMD64 final LC_COMPILER_FRONTEND { explicit CompilerFrontendCPlusPlusAMD64() = default; ~CompilerFrontendCPlusPlusAMD64() override = default; - LIBCOMPILER_COPY_DEFAULT(CompilerFrontendCPlusPlusAMD64); + NECTI_COPY_DEFAULT(CompilerFrontendCPlusPlusAMD64); CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(const CompilerKit::STLString text, CompilerKit::STLString file) override; @@ -362,10 +362,10 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( symbol_name_fn.erase(symbol_name_fn.find("(")); } - syntax_tree.fUserValue = "public_segment .code64 __LIBCOMPILER_" + symbol_name_fn + "\n"; + syntax_tree.fUserValue = "public_segment .code64 __NECTI_" + symbol_name_fn + "\n"; ++kFunctionEmbedLevel; - kOriginMap.push_back({"__LIBCOMPILER_" + symbol_name_fn, kOrigin}); + kOriginMap.push_back({"__NECTI_" + symbol_name_fn, kOrigin}); break; @@ -492,10 +492,10 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( if (pairRight != valueOfVar) { if (valueOfVar[0] == '\"') { - syntax_tree.fUserValue = "segment .data64 __LIBCOMPILER_LOCAL_VAR_" + varName + + syntax_tree.fUserValue = "segment .data64 __NECTI_LOCAL_VAR_" + varName + ": db " + valueOfVar + ", 0\n\n"; syntax_tree.fUserValue += instr + kRegisterList[kRegisterMap.size() - 1] + ", " + - "__LIBCOMPILER_LOCAL_VAR_" + varName + "\n"; + "__NECTI_LOCAL_VAR_" + varName + "\n"; kOrigin += 1UL; } else { syntax_tree.fUserValue = @@ -509,10 +509,10 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( if (((int) indexRight - 1) < 0) { if (valueOfVar[0] == '\"') { - syntax_tree.fUserValue = "segment .data64 __LIBCOMPILER_LOCAL_VAR_" + varName + + syntax_tree.fUserValue = "segment .data64 __NECTI_LOCAL_VAR_" + varName + ": db " + valueOfVar + ", 0\n"; syntax_tree.fUserValue += instr + kRegisterList[kRegisterMap.size()] + ", " + - "__LIBCOMPILER_LOCAL_VAR_" + varName + "\n"; + "__NECTI_LOCAL_VAR_" + varName + "\n"; kOrigin += 1UL; } else { syntax_tree.fUserValue = @@ -665,8 +665,8 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( break; } } else { - syntax_tree.fUserValue = "__LIBCOMPILER_LOCAL_RETURN_STRING: db " + subText + - ", 0\nmov rcx, __LIBCOMPILER_LOCAL_RETURN_STRING\n"; + syntax_tree.fUserValue = "__NECTI_LOCAL_RETURN_STRING: db " + subText + + ", 0\nmov rcx, __NECTI_LOCAL_RETURN_STRING\n"; syntax_tree.fUserValue += "mov rax, rcx\nret\n"; kOrigin += 1UL; @@ -723,7 +723,7 @@ class AssemblyCPlusPlusInterfaceAMD64 final LC_ASSEMBLY_INTERFACE { explicit AssemblyCPlusPlusInterfaceAMD64() = default; ~AssemblyCPlusPlusInterfaceAMD64() override = default; - LIBCOMPILER_COPY_DEFAULT(AssemblyCPlusPlusInterfaceAMD64); + NECTI_COPY_DEFAULT(AssemblyCPlusPlusInterfaceAMD64); UInt32 Arch() noexcept override { return CompilerKit::AssemblyFactory::kArchAMD64; } @@ -756,7 +756,7 @@ class AssemblyCPlusPlusInterfaceAMD64 final LC_ASSEMBLY_INTERFACE { #define kExtListCxx \ { ".cpp", ".cxx", ".cc", ".c++", ".cp" } -LIBCOMPILER_MODULE(CompilerCPlusPlusAMD64) { +NECTI_MODULE(CompilerCPlusPlusAMD64) { Boolean skip = false; kKeywords.emplace_back("if", CompilerKit::kKeywordKindIf); @@ -842,7 +842,7 @@ LIBCOMPILER_MODULE(CompilerCPlusPlusAMD64) { if (strcmp(argv[index], "-cxx-dialect") == 0) { if (kCompilerFrontend) std::cout << kCompilerFrontend->Language() << "\n"; - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } if (strcmp(argv[index], "-cxx-max-err") == 0) { @@ -874,7 +874,7 @@ LIBCOMPILER_MODULE(CompilerCPlusPlusAMD64) { for (CompilerKit::STLString ext : exts) { if (argv_i.ends_with(ext)) { if (kFactory.Compile(argv_i, kMachine) != kExitOK) { - return LIBCOMPILER_INVALID_DATA; + return NECTI_INVALID_DATA; } break; @@ -884,7 +884,7 @@ LIBCOMPILER_MODULE(CompilerCPlusPlusAMD64) { kFactory.Unmount(); - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } // diff --git a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc index b2906a6..0aa2b78 100644 --- a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc +++ b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc @@ -74,7 +74,7 @@ static std::vector kObjectBytes; /// @brief NE 64-bit Linker. /// @note This linker is made for PEF executable, thus NE based OSes. -LIBCOMPILER_MODULE(DynamicLinker64PEF) { +NECTI_MODULE(DynamicLinker64PEF) { bool is_executable = true; ::signal(SIGSEGV, Detail::drvi_crash_handler); @@ -99,11 +99,11 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "-arm64: Output as a ARM64 PEF.\n"; kConsoleOut << "-output: Select the output file name.\n"; - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } else if (StringCompare(argv[linker_arg], "-version") == 0) { kLinkerSplash(); - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } else if (StringCompare(argv[linker_arg], "-fat") == 0) { kFatBinaryEnable = true; @@ -170,10 +170,10 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { if (kOutput.empty()) { kConsoleOut << "no output filename set." << std::endl; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } else if (kObjectList.empty()) { kConsoleOut << "no input files." << std::endl; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } else { namespace FS = std::filesystem; @@ -183,7 +183,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { // if filesystem doesn't find file // -> throw error. kConsoleOut << "no such file: " << obj << std::endl; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } } } @@ -191,7 +191,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { // PEF expects a valid target architecture when outputing a binary. if (kArch == CompilerKit::kPefArchInvalid) { kConsoleOut << "no target architecture set, can't continue." << std::endl; - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } CompilerKit::PEFContainer pef_container{}; @@ -221,7 +221,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "error: " << strerror(errno) << "\n"; } - return LIBCOMPILER_FILE_NOT_FOUND; + return NECTI_FILE_NOT_FOUND; } //! Read AE to convert as PEF. @@ -250,7 +250,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { "treated as a FAT binary." << std::endl; - return LIBCOMPILER_FAT_ERROR; + return NECTI_FAT_ERROR; } else { if (kVerbose) { kConsoleOut << "Architecture matches what we expect.\n"; @@ -345,7 +345,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "not an object container: " << objectFile << std::endl; // don't continue, it is a fatal error. - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } pef_container.Cpu = archs; @@ -624,7 +624,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "Multiple symbols of: " << symbol << " detected, cannot continue.\n"; } - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } // step 2.5: write program bytes. @@ -654,7 +654,7 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "Undefined symbol " << unreferenced_symbol << "\n"; } - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } if ((!kStartFound || kDuplicateSymbols) && @@ -663,10 +663,10 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kConsoleOut << "File: " << kOutput << ", is corrupt, removing file...\n"; } - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } // Last rev 13-1-24 diff --git a/dev/CompilerKit/src/Macro/CPlusPlusCompilerPreProcessor.cc b/dev/CompilerKit/src/Macro/CPlusPlusCompilerPreProcessor.cc index 12a69c8..9845967 100644 --- a/dev/CompilerKit/src/Macro/CPlusPlusCompilerPreProcessor.cc +++ b/dev/CompilerKit/src/Macro/CPlusPlusCompilerPreProcessor.cc @@ -725,7 +725,7 @@ void bpp_parse_file(std::ifstream& hdr_file, std::ofstream& pp_out) { ///////////////////////////////////////////////////////////////////////////////////////// -LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { +NECTI_MODULE(CPlusPlusPreprocessorMain) { try { bool skip = false; bool double_skip = false; @@ -760,7 +760,7 @@ LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { Detail::bpp_macro macro_zka; - macro_zka.fName = "__LIBCOMPILER__"; + macro_zka.fName = "__NECTI__"; macro_zka.fValue = "1"; kMacros.push_back(macro_zka); @@ -806,7 +806,7 @@ LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { "NeKernel Preprocessor Driver v1.11, (c) Amlal El Mahrouss 2024-2025 all rights " "reserved."); - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } if (strcmp(argv[index], "-cpp-help") == 0) { @@ -819,7 +819,7 @@ LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { printf("%s\n", "-cpp-ver: print the version."); printf("%s\n", "-cpp-help: show help (this current command)."); - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } if (strcmp(argv[index], "-cpp-include-dir") == 0) { @@ -871,7 +871,7 @@ LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { kFiles.emplace_back(argv[index]); } - if (kFiles.empty()) return LIBCOMPILER_EXEC_ERROR; + if (kFiles.empty()) return NECTI_EXEC_ERROR; for (auto& file : kFiles) { if (!std::filesystem::exists(file)) continue; @@ -882,12 +882,12 @@ LIBCOMPILER_MODULE(CPlusPlusPreprocessorMain) { bpp_parse_file(file_descriptor, file_descriptor_pp); } - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } catch (const std::runtime_error& e) { std::cout << e.what() << '\n'; } - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } // Last rev 8-1-24 diff --git a/dev/CompilerKit/utils/CompilerUtils.h b/dev/CompilerKit/utils/CompilerUtils.h index da35b2b..bf48b79 100644 --- a/dev/CompilerKit/utils/CompilerUtils.h +++ b/dev/CompilerKit/utils/CompilerUtils.h @@ -46,7 +46,7 @@ inline void print_error(std::string reason, std::string file) noexcept { kStdErr << reason << kBlank << std::endl; - if (kAcceptableErrors > kErrorLimit) std::exit(LIBCOMPILER_EXEC_ERROR); + if (kAcceptableErrors > kErrorLimit) std::exit(NECTI_EXEC_ERROR); ++kAcceptableErrors; } @@ -111,6 +111,6 @@ inline void drvi_crash_handler(std::int32_t id) { std::cout << std::endl; - std::exit(LIBCOMPILER_EXEC_ERROR); + std::exit(NECTI_EXEC_ERROR); } } // namespace Detail diff --git a/dev/DebuggerKit/ld-nekernel.json b/dev/DebuggerKit/ld-nekernel.json index d2aeb24..be55d51 100644 --- a/dev/DebuggerKit/ld-nekernel.json +++ b/dev/DebuggerKit/ld-nekernel.json @@ -9,7 +9,7 @@ "output_name": "/usr/local/lib/libDebuggerKit.dylib", "compiler_flags": ["-fPIC", "-shared"], "cpp_macros": [ - "__LIBCOMPILER__=202505", + "__NECTI__=202505", "LC_USE_STRUCTS=1", "LD_NEKERNEL_DEBUGGER", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" diff --git a/dev/DebuggerKit/ld-osx.json b/dev/DebuggerKit/ld-osx.json index 26922f4..a7c5fac 100644 --- a/dev/DebuggerKit/ld-osx.json +++ b/dev/DebuggerKit/ld-osx.json @@ -9,7 +9,7 @@ "output_name": "/usr/local/lib/libDebuggerKit.dylib", "compiler_flags": ["-fPIC", "-shared"], "cpp_macros": [ - "__LIBCOMPILER__=202505", + "__NECTI__=202505", "LC_USE_STRUCTS=1", "DEBUGGERKIT_POSIX", "LD_MACH_DEBUGGER", diff --git a/dev/DebuggerKit/src/NeKernelContractCLI.cc b/dev/DebuggerKit/src/NeKernelContractCLI.cc index 9d078c8..49cf6c8 100644 --- a/dev/DebuggerKit/src/NeKernelContractCLI.cc +++ b/dev/DebuggerKit/src/NeKernelContractCLI.cc @@ -28,7 +28,7 @@ static void dbgi_ctrlc_handler(std::int32_t _) { kKeepRunning = false; } -LIBCOMPILER_MODULE(DebuggerNeKernel) { +NECTI_MODULE(DebuggerNeKernel) { pfd::notify("Debugger Event", "NeKernel Debugger\n(C) 2025 Amlal El Mahrouss and NeKernel.org contributors, all rights reserved."); diff --git a/dev/DebuggerKit/src/POSIXMachContractCLI.cc b/dev/DebuggerKit/src/POSIXMachContractCLI.cc index 11c05f8..80825c3 100644 --- a/dev/DebuggerKit/src/POSIXMachContractCLI.cc +++ b/dev/DebuggerKit/src/POSIXMachContractCLI.cc @@ -26,7 +26,7 @@ static void dbgi_ctrlc_handler(std::int32_t _) { kKeepRunning = false; } -LIBCOMPILER_MODULE(DebuggerMachPOSIX) { +NECTI_MODULE(DebuggerMachPOSIX) { pfd::notify("Debugger Event", "Userland Debugger\n(C) 2025 Amlal El Mahrouss, all rights reserved."); diff --git a/dev/LibC++/__power64.inc b/dev/LibC++/__power64.inc index b09bdcc..c06863a 100644 --- a/dev/LibC++/__power64.inc +++ b/dev/LibC++/__power64.inc @@ -2,7 +2,7 @@ # Language: CompilerKit POWER Assembly support for GNU. # Build Date: 2024-6-4 -#ifdef __LIBCOMPILER__ +#ifdef __NECTI__ #ifdef __ASSEMBLER__ diff --git a/dev/LibC++/defines.h b/dev/LibC++/defines.h index 493ed0c..2fedac5 100644 --- a/dev/LibC++/defines.h +++ b/dev/LibC++/defines.h @@ -4,8 +4,8 @@ ------------------------------------------- */ -#ifndef __LIBCOMPILER_DEFINES_H__ -#define __LIBCOMPILER_DEFINES_H__ +#ifndef __NECTI_DEFINES_H__ +#define __NECTI_DEFINES_H__ extern "C" { #include @@ -34,7 +34,7 @@ typedef char* caddr_t; #ifdef __GNUC__ #include -#elif defined(__LIBCOMPILER__) +#elif defined(__NECTI__) #define __alloca(sz) __lc_alloca(sz) #endif @@ -85,4 +85,4 @@ typedef union double_cast { #endif // ifndef __GNUC__ -#endif /* __LIBCOMPILER_DEFINES_H__ */ +#endif /* __NECTI_DEFINES_H__ */ diff --git a/dev/LibC++/filesystem.h b/dev/LibC++/filesystem.h index 254bfab..1095da1 100644 --- a/dev/LibC++/filesystem.h +++ b/dev/LibC++/filesystem.h @@ -4,8 +4,8 @@ ------------------------------------------- */ -#ifndef __LIBCOMPILER_FS_H__ -#define __LIBCOMPILER_FS_H__ +#ifndef __NECTI_FS_H__ +#define __NECTI_FS_H__ namespace std { class path; @@ -14,4 +14,4 @@ class directory_entry; class directory_iterator; } // namespace std -#endif // __LIBCOMPILER_FS_H__ \ No newline at end of file +#endif // __NECTI_FS_H__ \ No newline at end of file diff --git a/tools/cppdrv.cc b/tools/cppdrv.cc index 91b27b3..e46c8ee 100644 --- a/tools/cppdrv.cc +++ b/tools/cppdrv.cc @@ -20,8 +20,8 @@ int main(int argc, char const* argv[]) { if (auto code = CPlusPlusPreprocessorMain(2, argv); code > 0) { std::printf("cppdrv: preprocessor exited with code %i.\n", code); - return LIBCOMPILER_EXEC_ERROR; + return NECTI_EXEC_ERROR; } - return LIBCOMPILER_SUCCESS; + return NECTI_SUCCESS; } \ No newline at end of file diff --git a/tools/pef-amd64-cxxdrv.cc b/tools/pef-amd64-cxxdrv.cc index 5ddeb16..c7ca39e 100644 --- a/tools/pef-amd64-cxxdrv.cc +++ b/tools/pef-amd64-cxxdrv.cc @@ -37,7 +37,7 @@ Int32 main(Int32 argc, Char const* argv[]) { return EXIT_FAILURE; } - auto ret = (entrypoint_cxx(argc, argv) == LIBCOMPILER_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE; + auto ret = (entrypoint_cxx(argc, argv) == NECTI_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE; dlclose(handler); diff --git a/tools/pef-arm64-cdrv.cc b/tools/pef-arm64-cdrv.cc index f8b9e5c..1e4b149 100644 --- a/tools/pef-arm64-cdrv.cc +++ b/tools/pef-arm64-cdrv.cc @@ -37,7 +37,7 @@ Int32 main(Int32 argc, Char const* argv[]) { return EXIT_FAILURE; } - auto ret = (entrypoint_cxx(argc, argv) == LIBCOMPILER_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE; + auto ret = (entrypoint_cxx(argc, argv) == NECTI_SUCCESS) ? EXIT_SUCCESS : EXIT_FAILURE; dlclose(handler); -- cgit v1.2.3 From 5f8ee9584a7a5c911d46f73e24ec7a1201058c50 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 5 Aug 2025 09:57:44 +0100 Subject: feat! compiler_kit: API breaking changes. feat: debugger_kit: Debugger work in progress implementation. Signed-off-by: Amlal El Mahrouss --- compile_flags.txt | 6 ++-- dev/CompilerKit/CodeGen.h | 4 +-- dev/CompilerKit/Defines.h | 4 +-- dev/CompilerKit/Frontend.h | 2 +- dev/CompilerKit/detail/32x0.h | 22 ++++++------- dev/CompilerKit/detail/64x0.h | 38 +++++++++++----------- dev/CompilerKit/detail/X64.h | 14 ++++---- dev/CompilerKit/lc-osx-san.json | 2 +- dev/CompilerKit/lc-osx.json | 2 +- dev/CompilerKit/lc-posix.json | 2 +- dev/CompilerKit/src/Frontend/CCompiler64x0.cc | 2 +- dev/CompilerKit/src/Frontend/CCompilerARM64.cc | 2 +- dev/CompilerKit/src/Frontend/CCompilerPower64.cc | 2 +- .../src/Frontend/CPlusPlusCompilerAMD64.cc | 4 +-- dev/DebuggerKit/CommonCLI.inl | 2 +- dev/DebuggerKit/NeKernelContract.h | 17 ++++++---- dev/DebuggerKit/POSIXMachContract.h | 8 ++--- dev/DebuggerKit/ld-nekernel.json | 4 +-- dev/DebuggerKit/ld-osx.json | 4 +-- dev/DebuggerKit/src/NeKernelContract.cc | 7 ++-- dev/DebuggerKit/src/NeKernelContractCLI.cc | 4 +-- dev/DebuggerKit/src/POSIXMachContractCLI.cc | 2 +- tools/asm.cc | 8 ++--- tools/cppdrv.cc | 2 +- tools/dbg.cc | 2 +- tools/kdbg.cc | 2 +- tools/ld64.cc | 2 +- tools/pef-amd64-cxxdrv.cc | 2 +- tools/pef-arm64-cdrv.cc | 2 +- 29 files changed, 88 insertions(+), 86 deletions(-) (limited to 'dev/DebuggerKit/src/NeKernelContractCLI.cc') diff --git a/compile_flags.txt b/compile_flags.txt index fb0007b..2583106 100644 --- a/compile_flags.txt +++ b/compile_flags.txt @@ -4,8 +4,8 @@ -Idev/CompilerKit/Detail -Isdk/ -I./ --DLC_USE_STRUCTS +-DCK_USE_STRUCTS -xc++ --DLD_NEKERNEL_DEBUGGER --DLD_MACH_DEBUGGER +-DDK_NEKERNEL_DEBUGGER +-DDK_MACH_DEBUGGER -DDEBUGGERKIT_POSIX \ No newline at end of file diff --git a/dev/CompilerKit/CodeGen.h b/dev/CompilerKit/CodeGen.h index 1439c27..99c968b 100644 --- a/dev/CompilerKit/CodeGen.h +++ b/dev/CompilerKit/CodeGen.h @@ -10,8 +10,8 @@ #include #include -#define LC_ASSEMBLY_INTERFACE : public ::CompilerKit::AssemblyInterface -#define LC_ENCODER : public ::CompilerKit::EncoderInterface +#define CK_ASSEMBLY_INTERFACE : public ::CompilerKit::AssemblyInterface +#define CK_ENCODER : public ::CompilerKit::EncoderInterface namespace CompilerKit { class AssemblyFactory; diff --git a/dev/CompilerKit/Defines.h b/dev/CompilerKit/Defines.h index e3203ba..e9d2560 100644 --- a/dev/CompilerKit/Defines.h +++ b/dev/CompilerKit/Defines.h @@ -97,8 +97,8 @@ KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; -#define LC_IMPORT_C extern "C" -#define LC_IMPORT extern +#define CK_IMPORT_C extern "C" +#define CK_IMPORT extern namespace CompilerKit { inline constexpr int kBaseYear = 1900; diff --git a/dev/CompilerKit/Frontend.h b/dev/CompilerKit/Frontend.h index 168aa63..baf00d9 100644 --- a/dev/CompilerKit/Frontend.h +++ b/dev/CompilerKit/Frontend.h @@ -8,7 +8,7 @@ #include -#define LC_COMPILER_FRONTEND : public ::CompilerKit::CompilerFrontendInterface +#define CK_COMPILER_FRONTEND : public ::CompilerKit::CompilerFrontendInterface namespace CompilerKit { inline static auto kInvalidFrontend = "?"; diff --git a/dev/CompilerKit/detail/32x0.h b/dev/CompilerKit/detail/32x0.h index 124d9f4..f2d30e4 100644 --- a/dev/CompilerKit/detail/32x0.h +++ b/dev/CompilerKit/detail/32x0.h @@ -11,7 +11,7 @@ // @brief Open32x0 support. // @file detail/32x0.h -#define LC_ASM_OPCODE(__NAME, __OPCODE, __FUNCT3, __FUNCT7) \ +#define CK_ASM_OPCODE(__NAME, __OPCODE, __FUNCT3, __FUNCT7) \ {.fName = __NAME, .fOpcode = __OPCODE, .fFunct3 = __FUNCT3, .fFunct7 = __FUNCT7}, #define kAsmImmediate 0x01 @@ -37,18 +37,18 @@ struct CpuCode32x0 { #define kAsmByteStr ".byte" /* 8-bit */ inline std::vector kOpcodes32x0 = { - LC_ASM_OPCODE("nop", 0b0100011, 0b000, kAsmNoArgs) // nothing to do. (1C) - LC_ASM_OPCODE("jmp", 0b1110011, 0b001, kAsmJump) // jump to branch (2C) - LC_ASM_OPCODE("mov", 0b0100011, 0b101, kAsmImmediate) // move registers (3C) - LC_ASM_OPCODE("psh", 0b0111011, 0b000, kAsmImmediate) // push to sp (2C) - LC_ASM_OPCODE("pop", 0b0111011, 0b001, kAsmImmediate) // pop from sp. (1C) - LC_ASM_OPCODE("lea", 0b0111011, 0b010, + CK_ASM_OPCODE("nop", 0b0100011, 0b000, kAsmNoArgs) // nothing to do. (1C) + CK_ASM_OPCODE("jmp", 0b1110011, 0b001, kAsmJump) // jump to branch (2C) + CK_ASM_OPCODE("mov", 0b0100011, 0b101, kAsmImmediate) // move registers (3C) + CK_ASM_OPCODE("psh", 0b0111011, 0b000, kAsmImmediate) // push to sp (2C) + CK_ASM_OPCODE("pop", 0b0111011, 0b001, kAsmImmediate) // pop from sp. (1C) + CK_ASM_OPCODE("lea", 0b0111011, 0b010, kAsmImmediate) // setup stack and call, store address to CR (1C). - LC_ASM_OPCODE("ret", 0b0111011, 0b110, + CK_ASM_OPCODE("ret", 0b0111011, 0b110, kAsmImmediate) // return from procedure (2C). - LC_ASM_OPCODE("uc", 0b0111111, 0b000, kAsmSyscall) // user call (1C) - LC_ASM_OPCODE("kc", 0b0111111, 0b001, kAsmSyscall) // kernel call (1C) - LC_ASM_OPCODE("int", 0b0111111, 0b010, kAsmSyscall) // raise interrupt (1C) + CK_ASM_OPCODE("uc", 0b0111111, 0b000, kAsmSyscall) // user call (1C) + CK_ASM_OPCODE("kc", 0b0111111, 0b001, kAsmSyscall) // kernel call (1C) + CK_ASM_OPCODE("int", 0b0111111, 0b010, kAsmSyscall) // raise interrupt (1C) }; // \brief 64x0 register prefix diff --git a/dev/CompilerKit/detail/64x0.h b/dev/CompilerKit/detail/64x0.h index af01c07..9c12ca5 100644 --- a/dev/CompilerKit/detail/64x0.h +++ b/dev/CompilerKit/detail/64x0.h @@ -12,7 +12,7 @@ // @brief Open64x0 support. // @file detail/64x0.h -#define LC_ASM_OPCODE(__NAME, __OPCODE, __FUNCT3, __FUNCT7) \ +#define CK_ASM_OPCODE(__NAME, __OPCODE, __FUNCT3, __FUNCT7) \ {.fName = __NAME, .fOpcode = __OPCODE, .fFunct3 = __FUNCT3, .fFunct7 = __FUNCT7}, #define kAsmImmediate 0x01 @@ -32,28 +32,28 @@ struct CpuOpcode64x0 { }; inline std::vector kOpcodes64x0 = { - LC_ASM_OPCODE("nop", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation. - LC_ASM_OPCODE("np", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation. - LC_ASM_OPCODE("jlr", 0b1110011, 0b0000111, + CK_ASM_OPCODE("nop", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation. + CK_ASM_OPCODE("np", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation. + CK_ASM_OPCODE("jlr", 0b1110011, 0b0000111, kAsmJump) // jump to linked return register - LC_ASM_OPCODE("jrl", 0b1110011, 0b0001111, + CK_ASM_OPCODE("jrl", 0b1110011, 0b0001111, kAsmJump) // jump from return register. - LC_ASM_OPCODE("mv", 0b0100011, 0b101, kAsmRegToReg) LC_ASM_OPCODE( - "bg", 0b1100111, 0b111, kAsmRegToReg) LC_ASM_OPCODE("bl", 0b1100111, 0b011, kAsmRegToReg) - LC_ASM_OPCODE("beq", 0b1100111, 0b000, kAsmRegToReg) - LC_ASM_OPCODE("bne", 0b1100111, 0b001, kAsmRegToReg) - LC_ASM_OPCODE("bge", 0b1100111, 0b101, kAsmRegToReg) - LC_ASM_OPCODE("ble", 0b1100111, 0b100, kAsmRegToReg) - LC_ASM_OPCODE("stw", 0b0001111, 0b100, kAsmImmediate) - LC_ASM_OPCODE("ldw", 0b0001111, 0b100, kAsmImmediate) - LC_ASM_OPCODE("lda", 0b0001111, 0b101, kAsmImmediate) - LC_ASM_OPCODE("sta", 0b0001111, 0b001, kAsmImmediate) + CK_ASM_OPCODE("mv", 0b0100011, 0b101, kAsmRegToReg) CK_ASM_OPCODE( + "bg", 0b1100111, 0b111, kAsmRegToReg) CK_ASM_OPCODE("bl", 0b1100111, 0b011, kAsmRegToReg) + CK_ASM_OPCODE("beq", 0b1100111, 0b000, kAsmRegToReg) + CK_ASM_OPCODE("bne", 0b1100111, 0b001, kAsmRegToReg) + CK_ASM_OPCODE("bge", 0b1100111, 0b101, kAsmRegToReg) + CK_ASM_OPCODE("ble", 0b1100111, 0b100, kAsmRegToReg) + CK_ASM_OPCODE("stw", 0b0001111, 0b100, kAsmImmediate) + CK_ASM_OPCODE("ldw", 0b0001111, 0b100, kAsmImmediate) + CK_ASM_OPCODE("lda", 0b0001111, 0b101, kAsmImmediate) + CK_ASM_OPCODE("sta", 0b0001111, 0b001, kAsmImmediate) // add/sub without carry flag - LC_ASM_OPCODE("add", 0b0101011, 0b100, kAsmImmediate) - LC_ASM_OPCODE("sub", 0b0101011, 0b101, kAsmImmediate) + CK_ASM_OPCODE("add", 0b0101011, 0b100, kAsmImmediate) + CK_ASM_OPCODE("sub", 0b0101011, 0b101, kAsmImmediate) // add/sub with carry flag - LC_ASM_OPCODE("addc", 0b0101011, 0b110, kAsmImmediate) LC_ASM_OPCODE( - "subc", 0b0101011, 0b111, kAsmImmediate) LC_ASM_OPCODE("sc", 0b1110011, 0b00, kAsmSyscall)}; + CK_ASM_OPCODE("addc", 0b0101011, 0b110, kAsmImmediate) CK_ASM_OPCODE( + "subc", 0b0101011, 0b111, kAsmImmediate) CK_ASM_OPCODE("sc", 0b1110011, 0b00, kAsmSyscall)}; // \brief 64x0 register prefix // example: r32, r0 diff --git a/dev/CompilerKit/detail/X64.h b/dev/CompilerKit/detail/X64.h index 3f7420a..ed995be 100644 --- a/dev/CompilerKit/detail/X64.h +++ b/dev/CompilerKit/detail/X64.h @@ -11,7 +11,7 @@ // @brief AMD64 support. // @file detail/X64.h -#define LC_ASM_OPCODE(__NAME, __OPCODE) {.fName = __NAME, .fOpcode = __OPCODE}, +#define CK_ASM_OPCODE(__NAME, __OPCODE) {.fName = __NAME, .fOpcode = __OPCODE}, typedef char i64_character_t; typedef uint8_t i64_byte_t; @@ -39,11 +39,11 @@ struct CpuOpcodeAMD64 { #define kJumpLimitStandardLimit 0xEB inline std::vector kOpcodesAMD64 = { - LC_ASM_OPCODE("int", 0xCD) LC_ASM_OPCODE("into", 0xCE) LC_ASM_OPCODE("intd", 0xF1) - LC_ASM_OPCODE("int3", 0xC3) LC_ASM_OPCODE("iret", 0xCF) LC_ASM_OPCODE("retf", 0xCB) - LC_ASM_OPCODE("retn", 0xC3) LC_ASM_OPCODE("ret", 0xC3) LC_ASM_OPCODE("sti", 0xfb) - LC_ASM_OPCODE("cli", 0xfa) LC_ASM_OPCODE("hlt", 0xf4) LC_ASM_OPCODE("nop", 0x90) - LC_ASM_OPCODE("mov", 0x48) LC_ASM_OPCODE("call", 0xFF) - LC_ASM_OPCODE("syscall", 0x0F) LC_ASM_OPCODE("xor", 0x48)}; + CK_ASM_OPCODE("int", 0xCD) CK_ASM_OPCODE("into", 0xCE) CK_ASM_OPCODE("intd", 0xF1) + CK_ASM_OPCODE("int3", 0xC3) CK_ASM_OPCODE("iret", 0xCF) CK_ASM_OPCODE("retf", 0xCB) + CK_ASM_OPCODE("retn", 0xC3) CK_ASM_OPCODE("ret", 0xC3) CK_ASM_OPCODE("sti", 0xfb) + CK_ASM_OPCODE("cli", 0xfa) CK_ASM_OPCODE("hlt", 0xf4) CK_ASM_OPCODE("nop", 0x90) + CK_ASM_OPCODE("mov", 0x48) CK_ASM_OPCODE("call", 0xFF) + CK_ASM_OPCODE("syscall", 0x0F) CK_ASM_OPCODE("xor", 0x48)}; #define kAsmRegisterLimit 16 diff --git a/dev/CompilerKit/lc-osx-san.json b/dev/CompilerKit/lc-osx-san.json index 5ec4209..f190db2 100644 --- a/dev/CompilerKit/lc-osx-san.json +++ b/dev/CompilerKit/lc-osx-san.json @@ -23,7 +23,7 @@ ], "cpp_macros": [ "__NECTI__=202505", - "LC_USE_STRUCTS=1", + "CK_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] } \ No newline at end of file diff --git a/dev/CompilerKit/lc-osx.json b/dev/CompilerKit/lc-osx.json index e434ee8..4880763 100644 --- a/dev/CompilerKit/lc-osx.json +++ b/dev/CompilerKit/lc-osx.json @@ -18,7 +18,7 @@ ], "cpp_macros": [ "__NECTI__=202505", - "LC_USE_STRUCTS=1", + "CK_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] } \ No newline at end of file diff --git a/dev/CompilerKit/lc-posix.json b/dev/CompilerKit/lc-posix.json index e8668b9..e80ce65 100644 --- a/dev/CompilerKit/lc-posix.json +++ b/dev/CompilerKit/lc-posix.json @@ -18,7 +18,7 @@ ], "cpp_macros": [ "__NECTI__=202505", - "LC_USE_STRUCTS=1", + "CK_USE_STRUCTS=1", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] } \ No newline at end of file diff --git a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc index c7ac387..6ee7e32 100644 --- a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc +++ b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc @@ -1044,7 +1044,7 @@ skip_braces_check: ///////////////////////////////////////////////////////////////////////////////////////// -class AssemblyCCInterface final LC_ASSEMBLY_INTERFACE { +class AssemblyCCInterface final CK_ASSEMBLY_INTERFACE { public: explicit AssemblyCCInterface() = default; ~AssemblyCCInterface() override = default; diff --git a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc index dd230c5..1c1582f 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc @@ -1043,7 +1043,7 @@ skip_braces_check: ///////////////////////////////////////////////////////////////////////////////////////// -class AssemblyCCInterface final LC_ASSEMBLY_INTERFACE { +class AssemblyCCInterface final CK_ASSEMBLY_INTERFACE { public: explicit AssemblyCCInterface() = default; ~AssemblyCCInterface() override = default; diff --git a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc index 0ffbef0..40598c9 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc @@ -1062,7 +1062,7 @@ skip_braces_check: ///////////////////////////////////////////////////////////////////////////////////////// -class AssemblyMountpointCLang final LC_ASSEMBLY_INTERFACE { +class AssemblyMountpointCLang final CK_ASSEMBLY_INTERFACE { public: explicit AssemblyMountpointCLang() = default; ~AssemblyMountpointCLang() override = default; diff --git a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc index 5a0fc02..98a8018 100644 --- a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc +++ b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc @@ -117,7 +117,7 @@ static Boolean kInBraces = false; static size_t kBracesCount = 0UL; /* @brief C++ compiler backend for the NeKernel C++ driver */ -class CompilerFrontendCPlusPlusAMD64 final LC_COMPILER_FRONTEND { +class CompilerFrontendCPlusPlusAMD64 final CK_COMPILER_FRONTEND { public: explicit CompilerFrontendCPlusPlusAMD64() = default; ~CompilerFrontendCPlusPlusAMD64() override = default; @@ -718,7 +718,7 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( ///////////////////////////////////////////////////////////////////////////////////////// -class AssemblyCPlusPlusInterfaceAMD64 final LC_ASSEMBLY_INTERFACE { +class AssemblyCPlusPlusInterfaceAMD64 final CK_ASSEMBLY_INTERFACE { public: explicit AssemblyCPlusPlusInterfaceAMD64() = default; ~AssemblyCPlusPlusInterfaceAMD64() override = default; diff --git a/dev/DebuggerKit/CommonCLI.inl b/dev/DebuggerKit/CommonCLI.inl index 325be23..cf006f5 100644 --- a/dev/DebuggerKit/CommonCLI.inl +++ b/dev/DebuggerKit/CommonCLI.inl @@ -17,7 +17,7 @@ static BOOL kKeepRunning = false; -#ifdef LD_NEKERNEL_DEBUGGER +#ifdef DK_NEKERNEL_DEBUGGER static DebuggerKit::NeKernel::NeKernelContract kKernelDebugger; #else static DebuggerKit::POSIX::POSIXMachContract kDebugger; diff --git a/dev/DebuggerKit/NeKernelContract.h b/dev/DebuggerKit/NeKernelContract.h index 9797639..20d86cd 100644 --- a/dev/DebuggerKit/NeKernelContract.h +++ b/dev/DebuggerKit/NeKernelContract.h @@ -3,10 +3,10 @@ (C) 2025 Amlal El Mahrouss */ -#ifndef LD_NEKERNEL_CONTRACT_H -#define LD_NEKERNEL_CONTRACT_H +#ifndef DK_NEKERNEL_CONTRACT_H +#define DK_NEKERNEL_CONTRACT_H -#ifdef LD_NEKERNEL_DEBUGGER +#ifdef DK_NEKERNEL_DEBUGGER #include @@ -14,8 +14,11 @@ namespace DebuggerKit::NeKernel { class NeKernelContract; namespace Detail { - inline constexpr size_t kDebugCmdLen = 256U; - typedef char rt_debug_cmd[kDebugCmdLen]; + inline constexpr auto kDebugCmdLen = 256U; + inline constexpr auto kDebugPort = 51820; + inline constexpr auto kDebugMagic = "VMK1.0.0;"; + inline constexpr auto kDebugVersion = 0x0100; + typedef char rt_debug_cmd[kDebugCmdLen]; } // namespace Detail class NeKernelContract : public DebuggerContract { @@ -42,6 +45,6 @@ class NeKernelContract : public DebuggerContract { }; } // namespace DebuggerKit::NeKernel -#endif // ifdef LD_NEKERNEL_DEBUGGER +#endif // ifdef DK_NEKERNEL_DEBUGGER -#endif // LD_NEKERNEL_CONTRACT_H \ No newline at end of file +#endif // DK_NEKERNEL_CONTRACT_H \ No newline at end of file diff --git a/dev/DebuggerKit/POSIXMachContract.h b/dev/DebuggerKit/POSIXMachContract.h index a2c49ce..b04a13a 100644 --- a/dev/DebuggerKit/POSIXMachContract.h +++ b/dev/DebuggerKit/POSIXMachContract.h @@ -4,7 +4,7 @@ #pragma once -#ifdef LD_MACH_DEBUGGER +#ifdef DK_MACH_DEBUGGER /// @file POSIXMachContract.h /// @brief POSIX Mach debugger. @@ -28,10 +28,10 @@ #include #include -LC_IMPORT_C kern_return_t mach_vm_write(vm_map_t target_task, mach_vm_address_t address, +CK_IMPORT_C kern_return_t mach_vm_write(vm_map_t target_task, mach_vm_address_t address, vm_offset_t data, mach_msg_type_number_t dataCnt); -LC_IMPORT_C kern_return_t mach_vm_protect(vm_map_t target_task, mach_vm_address_t address, +CK_IMPORT_C kern_return_t mach_vm_protect(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, boolean_t set_maximum, vm_prot_t new_protection); @@ -93,7 +93,7 @@ class POSIXMachContract : public DebuggerContract { BOOL BreakAt(std::string symbol) noexcept override { if (!m_path.empty() && std::filesystem::exists(m_path) && std::filesystem::is_regular_file(m_path)) { - auto handle = dlopen(m_path.c_str(), RTLD_LAZY); + auto handle = dlopen(m_path.c_str(), RTDK_LAZY); if (handle == nullptr) { return false; diff --git a/dev/DebuggerKit/ld-nekernel.json b/dev/DebuggerKit/ld-nekernel.json index be55d51..45ee51d 100644 --- a/dev/DebuggerKit/ld-nekernel.json +++ b/dev/DebuggerKit/ld-nekernel.json @@ -10,8 +10,8 @@ "compiler_flags": ["-fPIC", "-shared"], "cpp_macros": [ "__NECTI__=202505", - "LC_USE_STRUCTS=1", - "LD_NEKERNEL_DEBUGGER", + "CK_USE_STRUCTS=1", + "DK_NEKERNEL_DEBUGGER", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] } diff --git a/dev/DebuggerKit/ld-osx.json b/dev/DebuggerKit/ld-osx.json index a7c5fac..c220756 100644 --- a/dev/DebuggerKit/ld-osx.json +++ b/dev/DebuggerKit/ld-osx.json @@ -10,9 +10,9 @@ "compiler_flags": ["-fPIC", "-shared"], "cpp_macros": [ "__NECTI__=202505", - "LC_USE_STRUCTS=1", + "CK_USE_STRUCTS=1", "DEBUGGERKIT_POSIX", - "LD_MACH_DEBUGGER", + "DK_MACH_DEBUGGER", "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)" ] } diff --git a/dev/DebuggerKit/src/NeKernelContract.cc b/dev/DebuggerKit/src/NeKernelContract.cc index c78e2f2..a469e46 100644 --- a/dev/DebuggerKit/src/NeKernelContract.cc +++ b/dev/DebuggerKit/src/NeKernelContract.cc @@ -5,7 +5,7 @@ Purpose: NeKernel Debugger */ -#ifdef LD_NEKERNEL_DEBUGGER +#ifdef DK_NEKERNEL_DEBUGGER /// @author Amlal El Mahrouss /// @brief Kernel Debugger Protocol @@ -16,8 +16,6 @@ #include -constexpr static UInt16 kDebugPort = 51820; - using namespace DebuggerKit::NeKernel; NeKernelContract::NeKernelContract() = default; @@ -26,6 +24,7 @@ NeKernelContract::~NeKernelContract() = default; BOOL NeKernelContract::Attach(CompilerKit::STLString path, CompilerKit::STLString argv, ProcessID& pid) noexcept { + if (path.empty() || argv.empty()) return NO; return NO; } @@ -45,4 +44,4 @@ BOOL NeKernelContract::Detach() noexcept { return NO; } -#endif // LD_NEKERNEL_DEBUGGER \ No newline at end of file +#endif // DK_NEKERNEL_DEBUGGER \ No newline at end of file diff --git a/dev/DebuggerKit/src/NeKernelContractCLI.cc b/dev/DebuggerKit/src/NeKernelContractCLI.cc index 49cf6c8..1dd87a5 100644 --- a/dev/DebuggerKit/src/NeKernelContractCLI.cc +++ b/dev/DebuggerKit/src/NeKernelContractCLI.cc @@ -5,7 +5,7 @@ Purpose: NeKernel Debugger CLI. */ -#ifdef LD_NEKERNEL_DEBUGGER +#ifdef DK_NEKERNEL_DEBUGGER #include #include @@ -98,4 +98,4 @@ NECTI_MODULE(DebuggerNeKernel) { return EXIT_FAILURE; } -#endif // LD_NEKERNEL_DEBUGGER \ No newline at end of file +#endif // DK_NEKERNEL_DEBUGGER \ No newline at end of file diff --git a/dev/DebuggerKit/src/POSIXMachContractCLI.cc b/dev/DebuggerKit/src/POSIXMachContractCLI.cc index 80825c3..2b2ebc5 100644 --- a/dev/DebuggerKit/src/POSIXMachContractCLI.cc +++ b/dev/DebuggerKit/src/POSIXMachContractCLI.cc @@ -5,7 +5,7 @@ Purpose: OS X/Darwin Debugger */ -#ifdef LD_MACH_DEBUGGER +#ifdef DK_MACH_DEBUGGER #include #include diff --git a/tools/asm.cc b/tools/asm.cc index 5e7cae9..f600408 100644 --- a/tools/asm.cc +++ b/tools/asm.cc @@ -14,10 +14,10 @@ #include #include -LC_IMPORT_C int AssemblerMainPower64(int argc, char const* argv[]); -LC_IMPORT_C int AssemblerMainARM64(int argc, char const* argv[]); -LC_IMPORT_C int AssemblerMain64x0(int argc, char const* argv[]); -LC_IMPORT_C int AssemblerMainAMD64(int argc, char const* argv[]); +CK_IMPORT_C int AssemblerMainPower64(int argc, char const* argv[]); +CK_IMPORT_C int AssemblerMainARM64(int argc, char const* argv[]); +CK_IMPORT_C int AssemblerMain64x0(int argc, char const* argv[]); +CK_IMPORT_C int AssemblerMainAMD64(int argc, char const* argv[]); enum AsmKind : Int32 { kInvalidAssembler = 0, diff --git a/tools/cppdrv.cc b/tools/cppdrv.cc index e46c8ee..3152753 100644 --- a/tools/cppdrv.cc +++ b/tools/cppdrv.cc @@ -14,7 +14,7 @@ #include #include -LC_IMPORT_C int CPlusPlusPreprocessorMain(int argc, char const* argv[]); +CK_IMPORT_C int CPlusPlusPreprocessorMain(int argc, char const* argv[]); int main(int argc, char const* argv[]) { if (auto code = CPlusPlusPreprocessorMain(2, argv); code > 0) { diff --git a/tools/dbg.cc b/tools/dbg.cc index e8e75fc..1ee9c37 100644 --- a/tools/dbg.cc +++ b/tools/dbg.cc @@ -9,7 +9,7 @@ /// @file dbg.cxx /// @brief NE debugger. -LC_IMPORT_C Int32 DebuggerMachPOSIX(Int32 argc, Char const* argv[]); +CK_IMPORT_C Int32 DebuggerMachPOSIX(Int32 argc, Char const* argv[]); /// @brief Debugger entrypoint. /// @return Status code of debugger. diff --git a/tools/kdbg.cc b/tools/kdbg.cc index 5fd06e8..d7aaa93 100644 --- a/tools/kdbg.cc +++ b/tools/kdbg.cc @@ -9,7 +9,7 @@ /// @file kdbg.cxx /// @brief NeKernel debugger. -LC_IMPORT_C Int32 DebuggerNeKernel(Int32 argc, Char const* argv[]); +CK_IMPORT_C Int32 DebuggerNeKernel(Int32 argc, Char const* argv[]); /// @brief Debugger entrypoint. /// @return Status code of debugger. diff --git a/tools/ld64.cc b/tools/ld64.cc index 612b370..e551fee 100644 --- a/tools/ld64.cc +++ b/tools/ld64.cc @@ -9,7 +9,7 @@ /// @file ld64.cxx /// @brief NE Linker for AE objects. -LC_IMPORT_C int DynamicLinker64PEF(int argc, char const* argv[]); +CK_IMPORT_C int DynamicLinker64PEF(int argc, char const* argv[]); int main(int argc, char const* argv[]) { return DynamicLinker64PEF(argc, argv); diff --git a/tools/pef-amd64-cxxdrv.cc b/tools/pef-amd64-cxxdrv.cc index c7ca39e..21b68a0 100644 --- a/tools/pef-amd64-cxxdrv.cc +++ b/tools/pef-amd64-cxxdrv.cc @@ -17,7 +17,7 @@ static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; static auto kSymbol = "CompilerCPlusPlusAMD64"; Int32 main(Int32 argc, Char const* argv[]) { - CompilerKitDylib handler = dlopen(kPath, RTLD_LAZY | RTLD_GLOBAL); + CompilerKitDylib handler = dlopen(kPath, RTDK_LAZY | RTDK_GLOBAL); if (!handler) { kStdOut; diff --git a/tools/pef-arm64-cdrv.cc b/tools/pef-arm64-cdrv.cc index 1e4b149..4dbf39e 100644 --- a/tools/pef-arm64-cdrv.cc +++ b/tools/pef-arm64-cdrv.cc @@ -17,7 +17,7 @@ static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; static auto kSymbol = "CompilerCLangARM64"; Int32 main(Int32 argc, Char const* argv[]) { - CompilerKitDylib handler = dlopen(kPath, RTLD_LAZY | RTLD_GLOBAL); + CompilerKitDylib handler = dlopen(kPath, RTDK_LAZY | RTDK_GLOBAL); if (!handler) { kStdOut; -- cgit v1.2.3 From 85a8e5967def8164b90824c9095c3a93d62d96b2 Mon Sep 17 00:00:00 2001 From: Amlal Date: Sat, 9 Aug 2025 19:53:40 +0200 Subject: feat: compiler_kit: post PR compiler error fixes. Signed-off-by: Amlal --- dev/CompilerKit/Compiler.h | 2 +- dev/CompilerKit/Defines.h | 52 +++++++++++----------- dev/CompilerKit/Frontend.h | 11 ++--- dev/CompilerKit/Macros.h | 12 ++--- dev/CompilerKit/UUID.h | 2 +- dev/CompilerKit/src/Backend/Assembler32x0.cc | 2 +- dev/CompilerKit/src/Backend/Assembler64x0.cc | 2 +- dev/CompilerKit/src/Backend/AssemblerAMD64.cc | 2 +- dev/CompilerKit/src/Backend/AssemblerARM64.cc | 4 +- dev/CompilerKit/src/Backend/AssemblerPowerPC.cc | 4 +- dev/CompilerKit/src/Frontend/CCompiler64x0.cc | 9 ++-- dev/CompilerKit/src/Frontend/CCompilerARM64.cc | 9 ++-- dev/CompilerKit/src/Frontend/CCompilerPower64.cc | 9 ++-- .../src/Frontend/CPlusPlusCompilerAMD64.cc | 46 +++++++++---------- dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc | 17 +++---- dev/CompilerKit/src/StringKit.cc | 20 ++++----- dev/DebuggerKit/NeKernelContract.h | 4 +- dev/DebuggerKit/Platform.h | 2 +- dev/DebuggerKit/src/NeKernelContractCLI.cc | 3 +- dev/LibC++/__abi+unreachable.cc | 9 ++-- dev/LibC++/__abi.h | 6 +-- dev/LibC++/base_exception.h | 6 +-- dev/LibC++/defines.h | 2 +- dev/ThirdParty/Dialogs.h | 41 +++++++++-------- tools/pef-amd64-cxxdrv.cc | 7 ++- tools/pef-arm64-cdrv.cc | 7 ++- 26 files changed, 140 insertions(+), 150 deletions(-) (limited to 'dev/DebuggerKit/src/NeKernelContractCLI.cc') diff --git a/dev/CompilerKit/Compiler.h b/dev/CompilerKit/Compiler.h index 60d63ff..46059b8 100644 --- a/dev/CompilerKit/Compiler.h +++ b/dev/CompilerKit/Compiler.h @@ -6,9 +6,9 @@ #pragma once -#include #include #include +#include #define CK_ASSEMBLY_INTERFACE : public ::CompilerKit::AssemblyInterface #define CK_ENCODER : public ::CompilerKit::EncoderInterface diff --git a/dev/CompilerKit/Defines.h b/dev/CompilerKit/Defines.h index e9d2560..ffaae0d 100644 --- a/dev/CompilerKit/Defines.h +++ b/dev/CompilerKit/Defines.h @@ -51,6 +51,8 @@ #define Char char #define Boolean bool +#include +#include #include #include #include @@ -81,20 +83,39 @@ #define rt_copy_memory(dst, src, len) memcpy(dst, src, len) #endif -#define NECTI_COPY_DELETE(KLASS) \ +#define ATTRIBUTE(X) __attribute__((X)) +#define PACKED ATTRIBUTE(packed) + +typedef char char_type; + +#define kObjectFileExt ".obj" +#define kBinaryFileExt ".bin" + +#define kAsmFileExts \ + { ".64x", ".32x", ".masm", ".s", ".S", ".asm", ".x64" } + +#define kAsmFileExtsMax (7U) + +#define NECTI_MODULE(name) extern "C" int name(int argc, char** argv) + +#ifdef MSVC +#pragma scalar_storage_order big - endian +#endif // ifdef MSVC + +#define NECTI_COPY_DELETE(KLASS) \ KLASS& operator=(const KLASS&) = delete; \ KLASS(const KLASS&) = delete; -#define NECTI_COPY_DEFAULT(KLASS) \ +#define NECTI_COPY_DEFAULT(KLASS) \ KLASS& operator=(const KLASS&) = default; \ KLASS(const KLASS&) = default; -#define NECTI_MOVE_DELETE(KLASS) \ - KLASS& operator=(KLASS&&) = delete; \ +#define NECTI_MOVE_DELETE(KLASS) \ + KLASS& operator=(KLASS&&) = delete; \ KLASS(KLASS&&) = delete; -#define NECTI_MOVE_DEFAULT(KLASS) \ - KLASS& operator=(KLASS&&) = default; \ +#define NECTI_MOVE_DEFAULT(KLASS) \ + KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; #define CK_IMPORT_C extern "C" @@ -149,23 +170,4 @@ inline bool install_signal(Int32 signal, void (*handler)(int)) noexcept { } } // namespace CompilerKit -#define ATTRIBUTE(X) __attribute__((X)) -#define PACKED ATTRIBUTE(packed) - -typedef char char_type; - -#define kObjectFileExt ".obj" -#define kBinaryFileExt ".bin" - -#define kAsmFileExts \ - { ".64x", ".32x", ".masm", ".s", ".S", ".asm", ".x64" } - -#define kAsmFileExtsMax (7U) - -#define NECTI_MODULE(name) extern "C" int name(int argc, char** argv) - -#ifdef MSVC -#pragma scalar_storage_order big - endian -#endif // ifdef MSVC - #endif /* ifndef __NECTI_DEFINES_H__ */ diff --git a/dev/CompilerKit/Frontend.h b/dev/CompilerKit/Frontend.h index 4719c3d..0f81342 100644 --- a/dev/CompilerKit/Frontend.h +++ b/dev/CompilerKit/Frontend.h @@ -59,20 +59,17 @@ enum KeywordKind { /// \brief Compiler keyword information struct. struct CompilerKeyword { CompilerKeyword(STLString name, KeywordKind kind) : keyword_name(name), keyword_kind(kind) {} - + STLString keyword_name{""}; KeywordKind keyword_kind{kKeywordKindInvalid}; }; struct SyntaxLeafList final { struct SyntaxLeaf final { - Int32 fUserType{0U}; - CompilerKeyword fUserData{ - "", - kKeywordKindInvalid - }; + Int32 fUserType{0U}; + CompilerKeyword fUserData{"", kKeywordKindInvalid}; - STLString fUserValue{""}; + STLString fUserValue{""}; struct SyntaxLeaf* fNext{nullptr}; }; diff --git a/dev/CompilerKit/Macros.h b/dev/CompilerKit/Macros.h index ee42be5..f05729c 100644 --- a/dev/CompilerKit/Macros.h +++ b/dev/CompilerKit/Macros.h @@ -9,20 +9,20 @@ #ifndef _MACROS_H_ #define _MACROS_H_ -#define NECTI_COPY_DELETE(KLASS) \ +#define NECTI_COPY_DELETE(KLASS) \ KLASS& operator=(const KLASS&) = delete; \ KLASS(const KLASS&) = delete; -#define NECTI_COPY_DEFAULT(KLASS) \ +#define NECTI_COPY_DEFAULT(KLASS) \ KLASS& operator=(const KLASS&) = default; \ KLASS(const KLASS&) = default; -#define NECTI_MOVE_DELETE(KLASS) \ - KLASS& operator=(KLASS&&) = delete; \ +#define NECTI_MOVE_DELETE(KLASS) \ + KLASS& operator=(KLASS&&) = delete; \ KLASS(KLASS&&) = delete; -#define NECTI_MOVE_DEFAULT(KLASS) \ - KLASS& operator=(KLASS&&) = default; \ +#define NECTI_MOVE_DEFAULT(KLASS) \ + KLASS& operator=(KLASS&&) = default; \ KLASS(KLASS&&) = default; /// @note xxxx is the error placeholder, in hexadecimal. diff --git a/dev/CompilerKit/UUID.h b/dev/CompilerKit/UUID.h index 39db276..d54eec7 100644 --- a/dev/CompilerKit/UUID.h +++ b/dev/CompilerKit/UUID.h @@ -172,7 +172,7 @@ namespace Detail { process_byte(static_cast((bitCount >> 24) & 0xFF)); process_byte(static_cast((bitCount >> 16) & 0xFF)); process_byte(static_cast((bitCount >> 8) & 0xFF)); - process_byte(static_cast((bitCount) &0xFF)); + process_byte(static_cast((bitCount) & 0xFF)); memcpy(digest, m_digest, 5 * sizeof(uint32_t)); return digest; diff --git a/dev/CompilerKit/src/Backend/Assembler32x0.cc b/dev/CompilerKit/src/Backend/Assembler32x0.cc index a7cb022..8478930 100644 --- a/dev/CompilerKit/src/Backend/Assembler32x0.cc +++ b/dev/CompilerKit/src/Backend/Assembler32x0.cc @@ -22,9 +22,9 @@ #endif #include -#include #include #include +#include #include ///////////////////////////////////////////////////////////////////////////////////////// diff --git a/dev/CompilerKit/src/Backend/Assembler64x0.cc b/dev/CompilerKit/src/Backend/Assembler64x0.cc index 6bc8842..c2dd31c 100644 --- a/dev/CompilerKit/src/Backend/Assembler64x0.cc +++ b/dev/CompilerKit/src/Backend/Assembler64x0.cc @@ -22,9 +22,9 @@ #endif #include -#include #include #include +#include #include #include #include diff --git a/dev/CompilerKit/src/Backend/AssemblerAMD64.cc b/dev/CompilerKit/src/Backend/AssemblerAMD64.cc index b085773..7e21c93 100644 --- a/dev/CompilerKit/src/Backend/AssemblerAMD64.cc +++ b/dev/CompilerKit/src/Backend/AssemblerAMD64.cc @@ -29,9 +29,9 @@ #define kAssemblerPragmaSym '#' #include -#include #include #include +#include #include #include #include diff --git a/dev/CompilerKit/src/Backend/AssemblerARM64.cc b/dev/CompilerKit/src/Backend/AssemblerARM64.cc index 331e708..ec0f16b 100644 --- a/dev/CompilerKit/src/Backend/AssemblerARM64.cc +++ b/dev/CompilerKit/src/Backend/AssemblerARM64.cc @@ -20,12 +20,12 @@ #endif #include -#include #include #include #include -#include #include +#include +#include #include #include #include diff --git a/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc b/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc index bbb5a8b..3282ccb 100644 --- a/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc +++ b/dev/CompilerKit/src/Backend/AssemblerPowerPC.cc @@ -20,12 +20,12 @@ #endif #include -#include #include #include #include -#include #include +#include +#include #include #include #include diff --git a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc index 1221521..de76807 100644 --- a/dev/CompilerKit/src/Frontend/CCompiler64x0.cc +++ b/dev/CompilerKit/src/Frontend/CCompiler64x0.cc @@ -10,9 +10,9 @@ /// BUGS: 0 /// TODO: none -#include #include #include +#include #include #include #include @@ -141,8 +141,8 @@ class CompilerFrontend64x0 final : public CompilerKit::CompilerFrontendInterface NECTI_COPY_DEFAULT(CompilerFrontend64x0); - std::string Check(const char* text, const char* file); - CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; + std::string Check(const char* text, const char* file); + CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; const char* Language() override { return "64k C"; } }; @@ -182,7 +182,8 @@ union double_cast final { ///////////////////////////////////////////////////////////////////////////////////////// -CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontend64x0::Compile(std::string text_, std::string file) { +CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontend64x0::Compile(std::string text_, + std::string file) { std::string text = text_; bool typeFound = false; diff --git a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc index 6795c67..9cfc019 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerARM64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerARM64.cc @@ -10,9 +10,9 @@ /// BUGS: 0 /// TODO: none -#include #include #include +#include #include #include @@ -142,8 +142,8 @@ class CompilerFrontendARM64 final : public CompilerKit::CompilerFrontendInterfac NECTI_COPY_DEFAULT(CompilerFrontendARM64); - std::string Check(const char* text, const char* file); - CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; + std::string Check(const char* text, const char* file); + CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; const char* Language() override { return "64k C"; } }; @@ -183,7 +183,8 @@ union double_cast final { ///////////////////////////////////////////////////////////////////////////////////////// -CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendARM64::Compile(std::string text, std::string file) { +CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendARM64::Compile(std::string text, + std::string file) { bool typeFound = false; bool fnFound = false; diff --git a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc index 1999f48..1888ed0 100644 --- a/dev/CompilerKit/src/Frontend/CCompilerPower64.cc +++ b/dev/CompilerKit/src/Frontend/CCompilerPower64.cc @@ -7,9 +7,9 @@ * ======================================================== */ -#include #include #include +#include #include #include #include @@ -132,8 +132,8 @@ class CompilerFrontendPower64 final : public CompilerKit::CompilerFrontendInterf NECTI_COPY_DEFAULT(CompilerFrontendPower64); - std::string Check(const char* text, const char* file); - CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; + std::string Check(const char* text, const char* file); + CompilerKit::SyntaxLeafList::SyntaxLeaf Compile(std::string text, std::string file) override; const char* Language() override { return "POWER C"; } }; @@ -173,7 +173,8 @@ union double_cast final { ///////////////////////////////////////////////////////////////////////////////////////// -CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendPower64::Compile(std::string text_, std::string file) { +CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendPower64::Compile(std::string text_, + std::string file) { std::string text = text_; bool typeFound = false; diff --git a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc index ad2b8e1..c92f2e2 100644 --- a/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc +++ b/dev/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc @@ -15,10 +15,10 @@ #define kExitOK (EXIT_SUCCESS) #define kExitNO (EXIT_FAILURE) -#include #include #include #include +#include #include #include #include @@ -48,7 +48,6 @@ ///////////////////////////////////// /// @internal -namespace Detail { // Avoids relative_path which could discard parts of the original. std::filesystem::path expand_home(const std::filesystem::path& input) { const std::string& raw = input.string(); @@ -57,14 +56,12 @@ std::filesystem::path expand_home(const std::filesystem::path& input) { const char* home = std::getenv("HOME"); if (!home) home = std::getenv("USERPROFILE"); - if (!home) - throw std::runtime_error("Home directory not found in environment variables"); + if (!home) throw std::runtime_error("Home directory not found in environment variables"); return std::filesystem::path(home) / raw.substr(1); } return input; - } } struct CompilerRegisterMap final { @@ -90,16 +87,14 @@ struct CompilerState final { /// @brief prints an error into stdout. /// @param reason the reason of the error. /// @param file where does it originate from? -void print_error(const CompilerKit::STLString& reason, const CompilerKit::STLString& file) noexcept { +void print_error(const CompilerKit::STLString& reason, + const CompilerKit::STLString& file) noexcept { kPrintErr << kRed << "Error in " << file << ": " << reason << kWhite << std::endl; } -} // namespace Detail -static Detail::CompilerState kState; +static CompilerState kState; static Int32 kOnClassScope = 0; -static Boolean kVerbose = false; -static Int32 kErrorLimit = 0; ///////////////////////////////////////////////////////////////////////////////////////// @@ -245,7 +240,7 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( expr.find("<=") + strlen("<=")); auto right = text.substr(expr.find(">=") + strlen(">="), text.find(")") - 1); - // Trim whitespace + // Trim whitespace while (!right.empty() && (right.back() == ' ' || right.back() == '\t')) { right.pop_back(); } @@ -323,8 +318,8 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( break; accept: - CompilerKit::STLString symbol_name_fn = text; - size_t indexFnName = 0; + CompilerKit::STLString symbol_name_fn = text; + size_t indexFnName = 0; // this one is for the type. for (auto& ch : text) { @@ -369,11 +364,11 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( break; lc_write_assembly: - auto it = - std::find_if(kOriginMap.begin(), kOriginMap.end(), - [&symbol_name_fn](std::pair pair) -> bool { - return symbol_name_fn == pair.first; - }); + auto it = std::find_if( + kOriginMap.begin(), kOriginMap.end(), + [&symbol_name_fn](std::pair pair) -> bool { + return symbol_name_fn == pair.first; + }); if (it != kOriginMap.end()) { std::stringstream ss; @@ -490,8 +485,8 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( if (pairRight != valueOfVar) { if (valueOfVar[0] == '\"') { - syntax_tree.fUserValue = "segment .data64 __NECTI_LOCAL_VAR_" + varName + - ": db " + valueOfVar + ", 0\n\n"; + syntax_tree.fUserValue = "segment .data64 __NECTI_LOCAL_VAR_" + varName + ": db " + + valueOfVar + ", 0\n\n"; syntax_tree.fUserValue += instr + kRegisterList[kRegisterMap.size() - 1] + ", " + "__NECTI_LOCAL_VAR_" + varName + "\n"; kOrigin += 1UL; @@ -507,8 +502,8 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( if (((int) indexRight - 1) < 0) { if (valueOfVar[0] == '\"') { - syntax_tree.fUserValue = "segment .data64 __NECTI_LOCAL_VAR_" + varName + - ": db " + valueOfVar + ", 0\n"; + syntax_tree.fUserValue = + "segment .data64 __NECTI_LOCAL_VAR_" + varName + ": db " + valueOfVar + ", 0\n"; syntax_tree.fUserValue += instr + kRegisterList[kRegisterMap.size()] + ", " + "__NECTI_LOCAL_VAR_" + varName + "\n"; kOrigin += 1UL; @@ -521,7 +516,8 @@ CompilerKit::SyntaxLeafList::SyntaxLeaf CompilerFrontendCPlusPlusAMD64::Compile( goto done; } - if (!valueOfVar.empty() && valueOfVar[0] != '\"' && valueOfVar[0] != '\'' && !isdigit(valueOfVar[0])) { + if (!valueOfVar.empty() && valueOfVar[0] != '\"' && valueOfVar[0] != '\'' && + !isdigit(valueOfVar[0])) { for (auto pair : kRegisterMap) { if (pair == valueOfVar) goto done; } @@ -819,14 +815,13 @@ NECTI_MODULE(CompilerCPlusPlusAMD64) { kFactory.Mount(new AssemblyCPlusPlusInterfaceAMD64()); CompilerKit::install_signal(SIGSEGV, Detail::drvi_crash_handler); - + // Ensure cleanup on exit std::atexit([]() { delete kCompilerFrontend; kCompilerFrontend = nullptr; }); - for (auto index = 1UL; index < argc; ++index) { if (!argv[index]) break; @@ -835,7 +830,6 @@ NECTI_MODULE(CompilerCPlusPlusAMD64) { skip = false; continue; } - if (strcmp(argv[index], "-cxx-verbose") == 0) { kVerbose = true; diff --git a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc index 394014c..2d149df 100644 --- a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc +++ b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc @@ -13,19 +13,19 @@ /// @note Do not look up for anything with .code64/.data64/.zero64! /// It will be loaded when the program loader will start the image. - +#include +#include #include #include -#include #include #include #include -#include #include -#define kLinkerVersionStr \ - "NeKernel.org 64-Bit Linker (Preferred Executable Format) %s, (c) Amlal El Mahrouss, and NeKernel Contributors " \ - "2024-2025 " \ +#define kLinkerVersionStr \ + "NeKernel.org 64-Bit Linker (Preferred Executable Format) %s, (c) Amlal El Mahrouss, and " \ + "NeKernel Contributors " \ + "2024-2025 " \ "all rights reserved.\n" #define MemoryCopy(DST, SRC, SZ) memcpy(DST, SRC, SZ) @@ -44,10 +44,7 @@ /// @brief PEF stack size symbol. #define kLinkerStackSizeSymbol "__PEFSizeOfReserveStack" -#define kConsoleOut \ - (std::cout << "\e[0;31m" \ - << "ld64: " \ - << "\e[0;97m") +#define kConsoleOut (std::cout << "\e[0;31m" << "ld64: " << "\e[0;97m") enum { kABITypeNull = 0, diff --git a/dev/CompilerKit/src/StringKit.cc b/dev/CompilerKit/src/StringKit.cc index 13142a6..67f2f55 100644 --- a/dev/CompilerKit/src/StringKit.cc +++ b/dev/CompilerKit/src/StringKit.cc @@ -42,7 +42,7 @@ bool BasicString::operator==(const BasicString& rhs) const { bool BasicString::operator==(const Char* rhs) const { const SizeType rhs_len = string_length(rhs); - const SizeType len = Length(); + const SizeType len = Length(); if (rhs_len != len) return false; return memcmp(m_Data, rhs, len) == 0; } @@ -74,7 +74,7 @@ BasicString StringBuilder::FromInt(const char* fmt, int i) { const SizeType res_len = string_length(result); BasicString output(fmt_len + res_len); - bool inserted = false; + bool inserted = false; for (SizeType idx = 0; idx < fmt_len; ++idx) { if (!inserted && fmt[idx] == '%') { @@ -91,12 +91,12 @@ BasicString StringBuilder::FromInt(const char* fmt, int i) { BasicString StringBuilder::FromBool(const char* fmt, bool val) { if (!fmt) return BasicString(0); - const Char* boolean_expr = val ? "true" : "false"; - const SizeType fmt_len = string_length(fmt); - const SizeType res_len = string_length(boolean_expr); + const Char* boolean_expr = val ? "true" : "false"; + const SizeType fmt_len = string_length(fmt); + const SizeType res_len = string_length(boolean_expr); BasicString output(fmt_len + res_len); - bool inserted = false; + bool inserted = false; for (SizeType idx = 0; idx < fmt_len; ++idx) { if (!inserted && fmt[idx] == '%') { @@ -125,7 +125,7 @@ BasicString StringBuilder::Format(const char* fmt, const char* fmtRight) { const SizeType rhs_len = string_length(fmtRight); BasicString output(fmt_len + rhs_len); - bool inserted = false; + bool inserted = false; for (SizeType idx = 0; idx < fmt_len; ++idx) { if (!inserted && fmt[idx] == '%') { @@ -146,7 +146,7 @@ BasicString& BasicString::operator+=(const Char* rhs) { } memcpy(this->m_Data + this->m_Cur, rhs, rhs_len); - + this->m_Cur += rhs_len; this->m_Data[this->m_Cur] = '\0'; @@ -171,9 +171,9 @@ BasicString& BasicString::operator+=(const Char ch) { } this->m_Data[this->m_Cur++] = ch; - this->m_Data[this->m_Cur] = '\0'; + this->m_Data[this->m_Cur] = '\0'; return *this; } -} // namespace CompilerKit +} // namespace CompilerKit diff --git a/dev/DebuggerKit/NeKernelContract.h b/dev/DebuggerKit/NeKernelContract.h index 20d86cd..098244e 100644 --- a/dev/DebuggerKit/NeKernelContract.h +++ b/dev/DebuggerKit/NeKernelContract.h @@ -14,8 +14,8 @@ namespace DebuggerKit::NeKernel { class NeKernelContract; namespace Detail { - inline constexpr auto kDebugCmdLen = 256U; - inline constexpr auto kDebugPort = 51820; + inline constexpr auto kDebugCmdLen = 256U; + inline constexpr auto kDebugPort = 51820; inline constexpr auto kDebugMagic = "VMK1.0.0;"; inline constexpr auto kDebugVersion = 0x0100; typedef char rt_debug_cmd[kDebugCmdLen]; diff --git a/dev/DebuggerKit/Platform.h b/dev/DebuggerKit/Platform.h index b24c5d9..6a3ef7c 100644 --- a/dev/DebuggerKit/Platform.h +++ b/dev/DebuggerKit/Platform.h @@ -13,5 +13,5 @@ #include #include #else -#error !!! DebuggerKit needs a networking backend !!! +#error !!! DebuggerKit needs a networking backend !!! #endif \ No newline at end of file diff --git a/dev/DebuggerKit/src/NeKernelContractCLI.cc b/dev/DebuggerKit/src/NeKernelContractCLI.cc index 1dd87a5..0eb04d3 100644 --- a/dev/DebuggerKit/src/NeKernelContractCLI.cc +++ b/dev/DebuggerKit/src/NeKernelContractCLI.cc @@ -30,7 +30,8 @@ static void dbgi_ctrlc_handler(std::int32_t _) { NECTI_MODULE(DebuggerNeKernel) { pfd::notify("Debugger Event", - "NeKernel Debugger\n(C) 2025 Amlal El Mahrouss and NeKernel.org contributors, all rights reserved."); + "NeKernel Debugger\n(C) 2025 Amlal El Mahrouss and NeKernel.org contributors, all " + "rights reserved."); if (argc >= 5 && std::string(argv[1]) == "-k" && argv[2] != nullptr && std::string(argv[3]) == "-ip" && argv[4] != nullptr) { diff --git a/dev/LibC++/__abi+unreachable.cc b/dev/LibC++/__abi+unreachable.cc index 9f436c0..90c50e1 100644 --- a/dev/LibC++/__abi+unreachable.cc +++ b/dev/LibC++/__abi+unreachable.cc @@ -1,7 +1,7 @@ /* ------------------------------------------- - - Copyright (C) 2025 Amlal El Mahrouss, all rights reserved. - + + Copyright (C) 2025 Amlal El Mahrouss, all rights reserved. + ------------------------------------------- */ #include @@ -12,6 +12,5 @@ static const int32_t __unreachable_code = 34; extern "C" void __libcompiler_unreachable(void) { std::base_process::signal(__unreachable_code); - while (1) - ; + while (1); } \ No newline at end of file diff --git a/dev/LibC++/__abi.h b/dev/LibC++/__abi.h index d2cc52f..48d4449 100644 --- a/dev/LibC++/__abi.h +++ b/dev/LibC++/__abi.h @@ -1,7 +1,7 @@ /* ------------------------------------------- - - Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved. - + + Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved. + ------------------------------------------- */ #pragma once diff --git a/dev/LibC++/base_exception.h b/dev/LibC++/base_exception.h index 9a599be..29f996b 100644 --- a/dev/LibC++/base_exception.h +++ b/dev/LibC++/base_exception.h @@ -6,9 +6,9 @@ #pragma once -#include -#include #include +#include +#include #include /// @author Amlal El Mahrouss (amlal@nekernel.org) @@ -34,4 +34,4 @@ inline void __throw_bad_array_new_length(const char* what) { __throw_general(what); __builtin_unreachable(); // prevent from continuing. } -} // namespace std::base_exception +} // namespace std::base_exception::abi diff --git a/dev/LibC++/defines.h b/dev/LibC++/defines.h index 2fedac5..21c43e4 100644 --- a/dev/LibC++/defines.h +++ b/dev/LibC++/defines.h @@ -16,7 +16,7 @@ extern "C" { #ifndef __GNUC__ -typedef __SIZE_TYPE__ size_t; +typedef __SIZE_TYPE__ size_t; typedef __SSIZE_TYPE__ ssize_t; typedef void* ptr_type; diff --git a/dev/ThirdParty/Dialogs.h b/dev/ThirdParty/Dialogs.h index 84e239f..ce50b81 100644 --- a/dev/ThirdParty/Dialogs.h +++ b/dev/ThirdParty/Dialogs.h @@ -175,7 +175,7 @@ namespace internal { #elif __EMSCRIPTEN__ void start(int exit_code); #else - void start_process(std::vector const& command); + void start_process(std::vector const& command); #endif ~executor(); @@ -490,10 +490,10 @@ inline settings::settings(bool resync) { #if _WIN32 flags(flag::is_vista) = internal::is_vista(); #elif !__APPLE__ - flags(flag::has_zenity) = check_program("zenity"); + flags(flag::has_zenity) = check_program("zenity"); flags(flag::has_matedialog) = check_program("matedialog"); - flags(flag::has_qarma) = check_program("qarma"); - flags(flag::has_kdialog) = check_program("kdialog"); + flags(flag::has_qarma) = check_program("qarma"); + flags(flag::has_kdialog) = check_program("kdialog"); // If multiple helpers are available, try to default to the best one if (flags(flag::has_zenity) && flags(flag::has_kdialog)) { @@ -540,7 +540,7 @@ inline bool settings::check_program(std::string const& program) { (void) program; return false; #else - int exit_code = -1; + int exit_code = -1; internal::executor async; async.start_process({"/bin/sh", "-c", "which " + program}); async.result(&exit_code); @@ -604,7 +604,7 @@ inline std::string path::home() { if (size_max != -1) len = size_t(size_max); #endif std::vector buf(len); - struct passwd pwd, *result; + struct passwd pwd, *result; if (getpwuid_r(getuid(), &pwd, buf.data(), buf.size(), &result) == 0) return result->pw_dir; #endif return "/"; @@ -717,7 +717,7 @@ inline void internal::executor::start_process(std::vector const& co } close(in[1]); - m_fd = out[0]; + m_fd = out[0]; auto flags = fcntl(m_fd, F_GETFL); fcntl(m_fd, F_SETFL, flags | O_NONBLOCK); @@ -753,7 +753,7 @@ inline bool internal::executor::ready(int timeout /* = default_wait_timeout */) // FIXME: do something (void) timeout; #else - char buf[BUFSIZ]; + char buf[BUFSIZ]; ssize_t received = read(m_fd, buf, BUFSIZ); // Flawfinder: ignore if (received > 0) { m_stdout += std::string(buf, received); @@ -764,7 +764,7 @@ inline bool internal::executor::ready(int timeout /* = default_wait_timeout */) // (this happens when the calling application handles or ignores SIG_CHLD) and results in // waitpid() failing with ECHILD. Otherwise we assume the child is running and we sleep for // a little while. - int status; + int status; pid_t child = waitpid(m_pid, &status, WNOHANG); if (child != m_pid && (child >= 0 || errno != ECHILD)) { // FIXME: this happens almost always at first iteration @@ -782,8 +782,7 @@ inline bool internal::executor::ready(int timeout /* = default_wait_timeout */) inline void internal::executor::stop() { // Loop until the user closes the dialog - while (!ready()) - ; + while (!ready()); } // dll implementation @@ -879,11 +878,11 @@ inline std::vector internal::dialog::desktop_helper() const { #if __APPLE__ return {"osascript"}; #else - return {flags(flag::has_zenity) ? "zenity" + return {flags(flag::has_zenity) ? "zenity" : flags(flag::has_matedialog) ? "matedialog" - : flags(flag::has_qarma) ? "qarma" - : flags(flag::has_kdialog) ? "kdialog" - : "echo"}; + : flags(flag::has_qarma) ? "qarma" + : flags(flag::has_kdialog) ? "kdialog" + : "echo"}; #endif } @@ -1125,9 +1124,9 @@ inline internal::file_dialog::file_dialog(type in_type, std::string const& title // Split the pattern list to check whether "*" is in there; if it // is, we have to disable filters because there is no mechanism in // OS X for the user to override the filter. - std::regex sep("\\s+"); - std::string filter_list; - bool has_filter = true; + std::regex sep("\\s+"); + std::string filter_list; + bool has_filter = true; std::sregex_token_iterator iter(patterns.begin(), patterns.end(), sep, -1); std::sregex_token_iterator end; for (; iter != end; ++iter) { @@ -1236,7 +1235,7 @@ inline std::vector internal::file_dialog::vector_result() { return m_vector_result; #else std::vector ret; - auto result = m_async->result(); + auto result = m_async->result(); for (;;) { // Split result along newline characters auto i = result.find('\n'); @@ -1569,7 +1568,7 @@ inline message::message(std::string const& title, std::string const& text, if_cancel = button::ok; break; } - m_mappings[1] = if_cancel; + m_mappings[1] = if_cancel; m_mappings[256] = if_cancel; // XXX: I think this was never correct script += " with icon "; switch (_icon) { @@ -1656,7 +1655,7 @@ inline message::message(std::string const& title, std::string const& text, if (_choice == choice::yes_no_cancel) flag += "cancel"; command.push_back(flag); if (_choice == choice::yes_no || _choice == choice::yes_no_cancel) { - m_mappings[0] = button::yes; + m_mappings[0] = button::yes; m_mappings[256] = button::no; } } diff --git a/tools/pef-amd64-cxxdrv.cc b/tools/pef-amd64-cxxdrv.cc index 21b68a0..274df09 100644 --- a/tools/pef-amd64-cxxdrv.cc +++ b/tools/pef-amd64-cxxdrv.cc @@ -9,11 +9,11 @@ #include #include +#include #include #include -#include -static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; +static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; static auto kSymbol = "CompilerCPlusPlusAMD64"; Int32 main(Int32 argc, Char const* argv[]) { @@ -26,8 +26,7 @@ Int32 main(Int32 argc, Char const* argv[]) { return EXIT_FAILURE; } - CompilerKitEntrypoint entrypoint_cxx = - (CompilerKitEntrypoint) dlsym(handler, kSymbol); + CompilerKitEntrypoint entrypoint_cxx = (CompilerKitEntrypoint) dlsym(handler, kSymbol); if (!entrypoint_cxx) { kStdOut; diff --git a/tools/pef-arm64-cdrv.cc b/tools/pef-arm64-cdrv.cc index 4dbf39e..1d2822b 100644 --- a/tools/pef-arm64-cdrv.cc +++ b/tools/pef-arm64-cdrv.cc @@ -9,11 +9,11 @@ #include #include +#include #include #include -#include -static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; +static auto kPath = "/usr/local/lib/libCompilerKit.dylib"; static auto kSymbol = "CompilerCLangARM64"; Int32 main(Int32 argc, Char const* argv[]) { @@ -26,8 +26,7 @@ Int32 main(Int32 argc, Char const* argv[]) { return EXIT_FAILURE; } - CompilerKitEntrypoint entrypoint_cxx = - (CompilerKitEntrypoint) dlsym(handler, kSymbol); + CompilerKitEntrypoint entrypoint_cxx = (CompilerKitEntrypoint) dlsym(handler, kSymbol); if (!entrypoint_cxx) { kStdOut; -- cgit v1.2.3