diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-02 01:39:42 -0500 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-02 01:40:12 -0500 |
| commit | f7930b3a1279922cf9e6e75e651fe9b5df247bc6 (patch) | |
| tree | 984d92f85d89aaf355a51af13d45a358da6473b7 | |
| parent | c895f469119903b3874d74604e582aed0da989ae (diff) | |
chore: source level tweaks and breaking API changes.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
35 files changed, 97 insertions, 90 deletions
@@ -1,4 +1,4 @@ -<!-- Read Me of NCTI --> +<!-- Read Me of NeCTI --> <div align="center"> <img src="meta/png/nekernel.png" alt="Logo" width="256"/> @@ -7,6 +7,7 @@ <br/>  + [](LICENSE) ## Overview: diff --git a/src/CompilerKit/AE.h b/src/CompilerKit/AE.h index a1f56e6..a856689 100644 --- a/src/CompilerKit/AE.h +++ b/src/CompilerKit/AE.h @@ -11,6 +11,7 @@ #define _NECTI_AE_H_ #include <CompilerKit/Config.h> +#include <fstream> #define kAEIdentVersion (0x0122) diff --git a/src/CompilerKit/AST.h b/src/CompilerKit/AST.h index 3cb5a08..fb38ac8 100644 --- a/src/CompilerKit/AST.h +++ b/src/CompilerKit/AST.h @@ -6,7 +6,8 @@ #pragma once -#include <CompilerKit/Compiler.h> +#include <CompilerKit/CodeGenerator.h> +#include <vector> #define CK_COMPILER_FRONTEND : public ::CompilerKit::CompilerFrontendInterface diff --git a/src/CompilerKit/Compiler.h b/src/CompilerKit/CodeGenerator.h index b02f1ef..f3f71d0 100644 --- a/src/CompilerKit/Compiler.h +++ b/src/CompilerKit/CodeGenerator.h @@ -9,6 +9,7 @@ #include <CompilerKit/Config.h> #include <CompilerKit/Macros.h> #include <CompilerKit/StringKit.h> +#include <cstring> #define CK_ASSEMBLY_INTERFACE : public ::CompilerKit::AssemblyInterface #define CK_ENCODER : public ::CompilerKit::EncoderInterface diff --git a/src/CompilerKit/Config.h b/src/CompilerKit/Config.h index 59efcf0..637d56e 100644 --- a/src/CompilerKit/Config.h +++ b/src/CompilerKit/Config.h @@ -56,18 +56,29 @@ #include <signal.h> #include <unistd.h> #include <cassert> -#include <cctype> -#include <cstdint> -#include <cstdio> -#include <cstring> -#include <filesystem> -#include <fstream> -#include <iostream> -#include <memory> -#include <new> +#include <time.h> #include <string> -#include <utility> -#include <vector> +#include <stdint.h> + +#define kDistVersion "v0.0.7-compilerkit" +#define kDistVersionBCD 0x0002 + +#define ToString(X) Stringify(X) +#define Stringify(X) #X + +#define kDistRelease ToString(kDistReleaseBranch) + +#ifndef kDistRelease + +#define kDistVersion "v0.0.7-compilerkit" +#define kDistVersionBCD 0x0002 + +#define ToString(X) Stringify(X) +#define Stringify(X) #X + +#define kDistRelease ToString(kDistReleaseBranch) + +#endif // !kDistRelease #define nullPtr std::nullptr_t diff --git a/src/CompilerKit/ErrorOr.h b/src/CompilerKit/ErrorOr.h index 54c1c45..9e1e801 100644 --- a/src/CompilerKit/ErrorOr.h +++ b/src/CompilerKit/ErrorOr.h @@ -18,7 +18,6 @@ #include <CompilerKit/Config.h> #include <CompilerKit/ErrorID.h> #include <CompilerKit/Ref.h> -#include <CompilerKit/StringKit.h> namespace CompilerKit { using ErrorT = Int32; diff --git a/src/CompilerKit/PEF.h b/src/CompilerKit/PEF.h index f69102a..ad47efd 100644 --- a/src/CompilerKit/PEF.h +++ b/src/CompilerKit/PEF.h @@ -7,6 +7,7 @@ #pragma once #include <CompilerKit/Config.h> +#include <fstream> // @file PEF.h // @brief Preferred Executable Format diff --git a/src/CompilerKit/StringKit.h b/src/CompilerKit/StringKit.h index e4bc1c1..4f07a07 100644 --- a/src/CompilerKit/StringKit.h +++ b/src/CompilerKit/StringKit.h @@ -12,6 +12,7 @@ #include <CompilerKit/Config.h> #include <CompilerKit/ErrorOr.h> +#include <cstring> /// =========================================================== /// /// @file StringKit.h diff --git a/src/CompilerKit/Version.h b/src/CompilerKit/Version.h deleted file mode 100644 index efd174c..0000000 --- a/src/CompilerKit/Version.h +++ /dev/null @@ -1,15 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license - -======================================== */ - -#pragma once - -#define kDistVersion "v0.0.7-compilerkit" -#define kDistVersionBCD 0x0002 - -#define ToString(X) Stringify(X) -#define Stringify(X) #X - -#define kDistRelease ToString(kDistReleaseBranch) diff --git a/src/CompilerKit/impl/32x0.h b/src/CompilerKit/impl/32x0.h index 5996708..f55e4a6 100644 --- a/src/CompilerKit/impl/32x0.h +++ b/src/CompilerKit/impl/32x0.h @@ -7,6 +7,7 @@ #pragma once #include <CompilerKit/Config.h> +#include <vector> // @brief Open32x0 support. // @file impl/32x0.h diff --git a/src/CompilerKit/impl/X64.h b/src/CompilerKit/impl/X64.h index e69d509..f97812d 100644 --- a/src/CompilerKit/impl/X64.h +++ b/src/CompilerKit/impl/X64.h @@ -7,6 +7,7 @@ #pragma once #include <CompilerKit/Config.h> +#include <vector> // @brief AMD64 support. // @file impl/X64.h diff --git a/src/CompilerKit/src/AssemblyFactory.cc b/src/CompilerKit/src/AssemblyFactory.cc index 185c522..f386083 100644 --- a/src/CompilerKit/src/AssemblyFactory.cc +++ b/src/CompilerKit/src/AssemblyFactory.cc @@ -4,7 +4,7 @@ ======================================== */ -#include <CompilerKit/Compiler.h> +#include <CompilerKit/CodeGenerator.h> #include <CompilerKit/ErrorID.h> /** diff --git a/src/CompilerKit/src/Backend/AssemblerARM64.cc b/src/CompilerKit/src/Backend/AssemblerARM64.cc index 6aa8dea..2114fe6 100644 --- a/src/CompilerKit/src/Backend/AssemblerARM64.cc +++ b/src/CompilerKit/src/Backend/AssemblerARM64.cc @@ -23,7 +23,7 @@ #include <CompilerKit/AST.h> #include <CompilerKit/ErrorID.h> #include <CompilerKit/PEF.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <CompilerKit/impl/Aarch64.h> #include <CompilerKit/utils/AsmUtils.h> #include <algorithm> diff --git a/src/CompilerKit/src/Backend/AssemblerPowerPC.cc b/src/CompilerKit/src/Backend/AssemblerPowerPC.cc index a845f8b..5da36cf 100644 --- a/src/CompilerKit/src/Backend/AssemblerPowerPC.cc +++ b/src/CompilerKit/src/Backend/AssemblerPowerPC.cc @@ -23,7 +23,7 @@ #include <CompilerKit/AST.h> #include <CompilerKit/ErrorID.h> #include <CompilerKit/PEF.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <CompilerKit/impl/PowerPC.h> #include <CompilerKit/utils/AsmUtils.h> #include <algorithm> diff --git a/src/CompilerKit/src/Frontend/CCompiler64x0.cc b/src/CompilerKit/src/Frontend/CCompiler64x0.cc index ecc2c34..45306d7 100644 --- a/src/CompilerKit/src/Frontend/CCompiler64x0.cc +++ b/src/CompilerKit/src/Frontend/CCompiler64x0.cc @@ -1185,7 +1185,7 @@ class AssemblyCCInterface final CK_ASSEMBLY_INTERFACE { ///////////////////////////////////////////////////////////////////////////////////////// -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #define kPrintF printf #define kSplashCxx() kPrintF(kWhite "NeCTI C Driver, %s, (c) Amlal El Mahrouss\n", kDistVersion) diff --git a/src/CompilerKit/src/Frontend/CCompilerARM64.cc b/src/CompilerKit/src/Frontend/CCompilerARM64.cc index 665c02d..b519193 100644 --- a/src/CompilerKit/src/Frontend/CCompilerARM64.cc +++ b/src/CompilerKit/src/Frontend/CCompilerARM64.cc @@ -1184,7 +1184,7 @@ class AssemblyCCInterface final CK_ASSEMBLY_INTERFACE { ///////////////////////////////////////////////////////////////////////////////////////// -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #define kPrintF printf #define kSplashCxx() kPrintF(kWhite "NeCTI C Driver, %s, (c) Amlal El Mahrouss\n", kDistVersion) diff --git a/src/CompilerKit/src/Frontend/CCompilerPower64.cc b/src/CompilerKit/src/Frontend/CCompilerPower64.cc index 8a1a943..f67040d 100644 --- a/src/CompilerKit/src/Frontend/CCompilerPower64.cc +++ b/src/CompilerKit/src/Frontend/CCompilerPower64.cc @@ -1202,7 +1202,7 @@ class AssemblyMountpointCLang final CK_ASSEMBLY_INTERFACE { ///////////////////////////////////////////////////////////////////////////////////////// -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #define kPrintF printf #define kSplashCxx() kPrintF(kWhite "cc, %s, (c) Amlal El Mahrouss\n", kDistVersion) diff --git a/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc b/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc index c0addff..8cc5af0 100644 --- a/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc +++ b/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc @@ -38,6 +38,7 @@ #include <CompilerKit/utils/CompilerUtils.h> #include <csignal> #include <cstdlib> +#include <filesystem> /* NeKernel C++ Compiler Driver */ /* This is part of the CompilerKit. */ diff --git a/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc b/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc index 7c56624..8c49601 100644 --- a/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc +++ b/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc @@ -14,13 +14,14 @@ /// It will be loaded when the program loader will start the image. #include <CompilerKit/AE.h> -#include <CompilerKit/Compiler.h> +#include <CompilerKit/CodeGenerator.h> #include <CompilerKit/Config.h> #include <CompilerKit/ErrorID.h> #include <CompilerKit/PEF.h> #include <CompilerKit/UUID.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <CompilerKit/utils/CompilerUtils.h> +#include <filesystem> #define kLinkerVersionStr "NeCTI 64-Bit Linker (Preferred Executable Format)" diff --git a/src/CompilerKit/src/StringKit.cc b/src/CompilerKit/src/StringKit.cc index 95326bc..b3584e7 100644 --- a/src/CompilerKit/src/StringKit.cc +++ b/src/CompilerKit/src/StringKit.cc @@ -19,6 +19,7 @@ */ #include <CompilerKit/StringKit.h> +#include <stdexcept> namespace CompilerKit { diff --git a/src/CompilerKit/utils/AsmUtils.h b/src/CompilerKit/utils/AsmUtils.h index 40fa133..2cde706 100644 --- a/src/CompilerKit/utils/AsmUtils.h +++ b/src/CompilerKit/utils/AsmUtils.h @@ -7,7 +7,7 @@ #pragma once #include <CompilerKit/AST.h> -#include <CompilerKit/Compiler.h> +#include <CompilerKit/CodeGenerator.h> #include <CompilerKit/utils/CompilerUtils.h> using namespace CompilerKit; diff --git a/src/CompilerKit/utils/CompilerUtils.h b/src/CompilerKit/utils/CompilerUtils.h index 8ae6291..e24ee37 100644 --- a/src/CompilerKit/utils/CompilerUtils.h +++ b/src/CompilerKit/utils/CompilerUtils.h @@ -7,9 +7,9 @@ #pragma once #include <CompilerKit/AST.h> -#include <CompilerKit/Compiler.h> +#include <CompilerKit/CodeGenerator.h> #include <CompilerKit/ErrorID.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <ThirdParty/Dialogs.h> #include <iostream> diff --git a/src/DebuggerKit/Config.h b/src/DebuggerKit/Config.h index 2697832..7e589d2 100644 --- a/src/DebuggerKit/Config.h +++ b/src/DebuggerKit/Config.h @@ -23,15 +23,22 @@ #include <sys/wait.h> #include <unistd.h> -#include <filesystem> -#include <iostream> - #include <dlfcn.h> + +#ifdef __APPLE__ #include <mach-o/dyld.h> #include <mach/mach.h> #include <mach/mach_error.h> -#include <signal.h> +#endif + +#ifndef kDistRelease + +#define kDistVersion "v0.0.7-debuggerkit" +#define kDistVersionBCD 0x0001 + +#define ToString(X) Stringify(X) +#define Stringify(X) #X + +#define kDistRelease ToString(kDistReleaseBranch) -#include <cstdint> -#include <string> -#include <unordered_map>
\ No newline at end of file +#endif // !kDistRelease
\ No newline at end of file diff --git a/src/DebuggerKit/DebuggerContract.h b/src/DebuggerKit/DebuggerContract.h index 2db0526..424bd80 100644 --- a/src/DebuggerKit/DebuggerContract.h +++ b/src/DebuggerKit/DebuggerContract.h @@ -7,6 +7,7 @@ #pragma once #include <DebuggerKit/Config.h> +#include <unordered_map> #define DK_DEBUGGER_CONTRACT : public ::DebuggerKit::DebuggerContract diff --git a/src/DebuggerKit/POSIXMachContract.h b/src/DebuggerKit/POSIXMachContract.h index 5bd4ba8..76aa238 100644 --- a/src/DebuggerKit/POSIXMachContract.h +++ b/src/DebuggerKit/POSIXMachContract.h @@ -12,13 +12,17 @@ /// @brief POSIX Mach debugger. #include <DebuggerKit/DebuggerContract.h> +#include <filesystem> +#include <vector> +#ifdef __APPLE__ 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); 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); +#endif #define PTRACE_ATTACH PT_ATTACHEXC #define PTRACE_DETACH PT_DETACH @@ -93,6 +97,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return false; } +#ifdef __APPLE__ task_read_t task; task_for_pid(mach_task_self(), m_pid, &task); @@ -102,6 +107,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE); mach_vm_write(task, (mach_vm_address_t) addr, (vm_offset_t) &brk_inst, sizeof(addr)); +#endif return true; } @@ -109,6 +115,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return false; } +#ifdef __APPLE__ Bool Break() noexcept override { task_read_t task; task_for_pid(mach_task_self(), m_pid, &task); @@ -137,6 +144,7 @@ class POSIXMachContract final DK_DEBUGGER_CONTRACT { return kr = KERN_SUCCESS; } +#endif private: ProcessID m_pid{0}; diff --git a/src/DebuggerKit/Version.h b/src/DebuggerKit/Version.h deleted file mode 100644 index 8f3168a..0000000 --- a/src/DebuggerKit/Version.h +++ /dev/null @@ -1,15 +0,0 @@ -/* ======================================== - - Copyright (C) 2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license. - -======================================== */ - -#pragma once - -#define kDistVersion "v0.0.7-debuggerkit" -#define kDistVersionBCD 0x0001 - -#define ToString(X) Stringify(X) -#define Stringify(X) #X - -#define kDistRelease ToString(kDistReleaseBranch) diff --git a/src/DebuggerKit/src/POSIXMachContractCLI.cc b/src/DebuggerKit/src/POSIXMachContractCLI.cc index 9e77a1b..2beaa9a 100644 --- a/src/DebuggerKit/src/POSIXMachContractCLI.cc +++ b/src/DebuggerKit/src/POSIXMachContractCLI.cc @@ -11,6 +11,7 @@ #include <ThirdParty/Dialogs.h> #include <DebuggerKit/CommonCLI.inl> +#ifdef __APPLE__ /// @internal /// @brief Handles CTRL-C signal on debugger. static void dbgi_ctrlc_handler(std::int32_t _) { @@ -90,5 +91,6 @@ NECTI_MODULE(DebuggerMachPOSIX) { return EXIT_SUCCESS; } +#endif #endif
\ No newline at end of file diff --git a/src/LibC++/defines.h b/src/LibC++/defines.h index 9293bc2..6aac009 100644 --- a/src/LibC++/defines.h +++ b/src/LibC++/defines.h @@ -73,4 +73,9 @@ typedef union double_cast { double f; } __ATTRIBUTE(packed) double_cast_t; +namespace std { +struct placement_t; +struct nothrow_t; +} // namespace std + #endif /* __NECTI_DEFINES_H__ */ diff --git a/src/LibC++/filesystem.h b/src/LibC++/filesystem.h index 807ab0d..4627c50 100644 --- a/src/LibC++/filesystem.h +++ b/src/LibC++/filesystem.h @@ -9,8 +9,6 @@ #include <LibC++/defines.h> -/// @brief Filesystem module for LibC++ - namespace std { class path; class filesystem_error; diff --git a/src/LibC++/new.h b/src/LibC++/new.h index 37e2a26..27c8159 100644 --- a/src/LibC++/new.h +++ b/src/LibC++/new.h @@ -9,27 +9,25 @@ #include <LibC++/defines.h> namespace std { -struct placement_new; - -/// ========================================================= -/// @brief Disambugate non-throwing allocation functions. -/// ========================================================= -struct nothrow_t { +struct nothrow_t final { explicit nothrow_t() = default; + ~nothrow_t() = default; }; -/// ========================================================= -/// @brief Placement new metadata. -/// ========================================================= -struct placement_new final { +struct placement_t final { + explicit placement_t() = default; + ~placement_t() = default; + void* __base{}; int32_t __align{}; size_t __size{}; }; - -using placement_new_t = placement_new; } // namespace std +#ifndef __has_placement +#define placement +#endif + void* operator new(size_t); void* operator new[](size_t); diff --git a/src/Tools/asm.cc b/src/Tools/asm.cc index 37c7d01..c92705b 100644 --- a/src/Tools/asm.cc +++ b/src/Tools/asm.cc @@ -8,7 +8,7 @@ /// @brief Assembler frontend. #include <CompilerKit/Config.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <cstring> #include <vector> @@ -34,7 +34,7 @@ Int32 main(Int32 argc, Char const* argv[]) { Int32 asm_type = kInvalidAssembler; for (size_t index_arg = 1; index_arg < argc; ++index_arg) { - if (strstr(argv[index_arg], "-asm:h")) { + if (strcmp(argv[index_arg], "-asm-h") == 0) { std::printf("asm: Frontend Assembler (64x0, power64, arm64, x64).\n"); std::printf("asm: Version: %s, Release: %s.\n", kDistVersion, kDistRelease); std::printf( @@ -45,13 +45,13 @@ Int32 main(Int32 argc, Char const* argv[]) { "Licensed under the Apache 2.0 license.\n"); return 0; - } else if (strstr(argv[index_arg], "-asm:x64")) { + } else if (strcmp(argv[index_arg], "-asm-x64") == 0) { asm_type = kX64Assembler; - } else if (strstr(argv[index_arg], "-asm:aarch64")) { + } else if (strcmp(argv[index_arg], "-asm-aarch64") == 0) { asm_type = kARM64Assembler; - } else if (strstr(argv[index_arg], "-asm:64x0")) { + } else if (strcmp(argv[index_arg], "-asm-64x0") == 0) { asm_type = k64X0Assembler; - } else if (strstr(argv[index_arg], "-asm:power64")) { + } else if (strcmp(argv[index_arg], "-asm-power64") == 0) { asm_type = kPOWER64Assembler; } else { arg_vec_cstr.push_back(argv[index_arg]); diff --git a/src/Tools/cppdrv.cc b/src/Tools/cppdrv.cc index 9d42b15..c1f8fa2 100644 --- a/src/Tools/cppdrv.cc +++ b/src/Tools/cppdrv.cc @@ -9,7 +9,7 @@ #include <CompilerKit/Config.h> #include <CompilerKit/ErrorID.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <cstring> #include <iostream> #include <vector> diff --git a/src/Tools/pef-amd64-cxxdrv.cc b/src/Tools/pef-amd64-cxxdrv.cc index 8aedba5..eff8c05 100644 --- a/src/Tools/pef-amd64-cxxdrv.cc +++ b/src/Tools/pef-amd64-cxxdrv.cc @@ -9,7 +9,7 @@ #include <CompilerKit/Config.h> #include <CompilerKit/ErrorID.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <CompilerKit/utils/CompilerUtils.h> #include <CompilerKit/utils/DylibHelpers.h> diff --git a/src/Tools/pef-arm64-cdrv.cc b/src/Tools/pef-arm64-cdrv.cc index d07d9bd..316eb23 100644 --- a/src/Tools/pef-arm64-cdrv.cc +++ b/src/Tools/pef-arm64-cdrv.cc @@ -9,7 +9,7 @@ #include <CompilerKit/Config.h> #include <CompilerKit/ErrorID.h> -#include <CompilerKit/Version.h> +#include <CompilerKit/Config.h> #include <CompilerKit/utils/CompilerUtils.h> #include <CompilerKit/utils/DylibHelpers.h> diff --git a/tests/test_01_codegen/codegen_test.cc b/tests/test_01_codegen/codegen_test.cc index 6cbea22..24d4bf6 100644 --- a/tests/test_01_codegen/codegen_test.cc +++ b/tests/test_01_codegen/codegen_test.cc @@ -10,9 +10,6 @@ #include <gtest/gtest.h> TEST(CodegenTest, BasicCodegenTest) { - /// compile asm - { - auto expr = std::system("asm sample/sample.asm"); - EXPECT_TRUE(expr == 0) << "ASM Driver did not compile the easy ASM unit."; - } + auto expr = std::system("asm -asm-x64 sample/sample.asm"); + EXPECT_TRUE(expr == 0) << "ASM Driver did not compile the easy ASM unit."; } |
