From f900849f98bad9988805ec89c587395752490486 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 29 Nov 2025 22:21:44 -0500 Subject: chore: API and system design update. Signed-off-by: Amlal El Mahrouss --- src/CompilerKit/AE.h | 2 +- src/CompilerKit/AST.h | 2 +- src/CompilerKit/Compiler.h | 2 +- src/CompilerKit/Config.h | 172 ++++++++++++++++++++ src/CompilerKit/Defines.h | 173 --------------------- src/CompilerKit/ErrorID.h | 2 +- src/CompilerKit/ErrorOr.h | 2 +- src/CompilerKit/PEF.h | 2 +- src/CompilerKit/Ref.h | 2 +- src/CompilerKit/StringKit.h | 2 +- src/CompilerKit/UUID.h | 2 +- src/CompilerKit/XCOFF.h | 2 +- src/CompilerKit/impl/32x0.h | 2 +- src/CompilerKit/impl/64x0.h | 2 +- src/CompilerKit/impl/Aarch64.h | 2 +- src/CompilerKit/impl/X64.h | 2 +- src/CompilerKit/src/Backend/AssemblerARM64.cc | 2 +- src/CompilerKit/src/Backend/AssemblerPowerPC.cc | 2 +- .../src/Frontend/CPlusPlusCompilerAMD64.cc | 3 +- src/CompilerKit/src/Linker/DynamicLinker64PEF.cc | 2 +- src/CompilerKit/src/Macro/CPlusPlusPreprocessor.cc | 2 +- src/CompilerKit/src/StringKit.cc | 6 +- src/CompilerKit/utils/AsmUtils.h | 2 +- src/CompilerKit/utils/CompilerUtils.h | 2 +- src/CompilerKit/utils/DylibHelpers.h | 2 +- 25 files changed, 197 insertions(+), 199 deletions(-) create mode 100644 src/CompilerKit/Config.h delete mode 100644 src/CompilerKit/Defines.h (limited to 'src/CompilerKit') diff --git a/src/CompilerKit/AE.h b/src/CompilerKit/AE.h index 438bb36..a1f56e6 100644 --- a/src/CompilerKit/AE.h +++ b/src/CompilerKit/AE.h @@ -10,7 +10,7 @@ #ifndef _NECTI_AE_H_ #define _NECTI_AE_H_ -#include +#include #define kAEIdentVersion (0x0122) diff --git a/src/CompilerKit/AST.h b/src/CompilerKit/AST.h index 74db957..3cb5a08 100644 --- a/src/CompilerKit/AST.h +++ b/src/CompilerKit/AST.h @@ -22,7 +22,7 @@ struct CompilerKeyword; /// =========================================================== /// enum KeywordKind { - kKeywordKindReserved = 0, + kKeywordKindReserved = 0, kKeywordKindNamespace = 100, kKeywordKindFunctionStart, kKeywordKindFunctionEnd, diff --git a/src/CompilerKit/Compiler.h b/src/CompilerKit/Compiler.h index 1f24370..b02f1ef 100644 --- a/src/CompilerKit/Compiler.h +++ b/src/CompilerKit/Compiler.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #include #include diff --git a/src/CompilerKit/Config.h b/src/CompilerKit/Config.h new file mode 100644 index 0000000..59efcf0 --- /dev/null +++ b/src/CompilerKit/Config.h @@ -0,0 +1,172 @@ +/* ======================================== + + Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license + +======================================== */ + +#ifndef __NECTI_DEFINES_H__ +#define __NECTI_DEFINES_H__ + +/// =========================================================== /// +/// @file Config.h +/// @author Amlal El Mahrouss +/// @brief Basic defines and types for CompilerKit. +/// =========================================================== /// + +#ifndef Yes +#define Yes true +#endif // ifndef Yes + +#ifndef No +#define No false +#endif // ifndef No + +#ifndef YES +#define YES true +#endif // ifndef YES + +#ifndef NO +#define NO false +#endif // ifndef NO + +#define SizeType size_t + +#define VoidPtr void* +#define voidPtr VoidPtr + +#define UIntPtr uintptr_t + +#define Int64 int64_t +#define UInt64 uint64_t + +#define Int32 int +#define UInt32 unsigned + +#define Bool bool + +#define Int16 int16_t +#define UInt16 uint16_t + +#define Int8 int8_t +#define UInt8 uint8_t + +#define Char char +#define Boolean bool + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define nullPtr std::nullptr_t + +#define MUST_PASS(E) assert(E) + +#ifndef __FORCE_STRLEN +#define __FORCE_STRLEN 1 + +#define string_length(len) strlen(len) +#endif + +#ifndef __FORCE_MEMCPY +#define __FORCE_MEMCPY 1 + +#define rt_copy_memory(dst, src, len) memcpy(dst, src, len) +#endif + +#define ATTRIBUTE(X) __attribute__((X)) +#define PACKED ATTRIBUTE(packed) + +#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) \ + KLASS& operator=(const KLASS&) = default; \ + KLASS(const KLASS&) = default; + +#define NECTI_MOVE_DELETE(KLASS) \ + KLASS& operator=(KLASS&&) = delete; \ + KLASS(KLASS&&) = delete; + +#define NECTI_MOVE_DEFAULT(KLASS) \ + KLASS& operator=(KLASS&&) = default; \ + KLASS(KLASS&&) = default; + +#define CK_IMPORT_C extern "C" +#define CK_IMPORT extern +namespace CompilerKit { +inline constexpr int kBaseYear = 1900; + +typedef std::string STLString; + +inline STLString current_date() noexcept { + auto time_data = time(nullptr); + auto time_struct = gmtime(&time_data); + + STLString fmt = std::to_string(kBaseYear + time_struct->tm_year); + + fmt += "-"; + fmt += std::to_string(time_struct->tm_mon + 1); + fmt += "-"; + fmt += std::to_string(time_struct->tm_mday); + + return fmt; +} + +inline bool to_str(Char* str, Int32 limit, Int32 base) noexcept { + if (limit == 0) return false; + + Int32 copy_limit = limit; + Int32 cnt = 0; + Int32 ret = base; + + while (limit != 1) { + ret = ret % 10; + str[cnt] = ret; + + ++cnt; + --limit; + --ret; + } + + str[copy_limit] = '\0'; + return true; +} + +inline bool install_signal(Int32 signal, void (*handler)(int)) noexcept { + if (handler == nullptr) return false; + + if (::signal(signal, handler) == SIG_ERR) { + return false; + } + + return true; +} +} // namespace CompilerKit + +#endif /* ifndef __NECTI_DEFINES_H__ */ diff --git a/src/CompilerKit/Defines.h b/src/CompilerKit/Defines.h deleted file mode 100644 index d036767..0000000 --- a/src/CompilerKit/Defines.h +++ /dev/null @@ -1,173 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license - -======================================== */ - -#ifndef __NECTI_DEFINES_H__ -#define __NECTI_DEFINES_H__ - -/// =========================================================== /// -/// @file Defines.h -/// @author Amlal El Mahrouss -/// @brief Basic defines and types for CompilerKit. -/// =========================================================== /// - -#ifndef Yes -#define Yes true -#endif // ifndef Yes - -#ifndef No -#define No false -#endif // ifndef No - -#ifndef YES -#define YES true -#endif // ifndef YES - -#ifndef NO -#define NO false -#endif // ifndef NO - -#define SizeType size_t - -#define VoidPtr void* -#define voidPtr VoidPtr - -#define UIntPtr uintptr_t - -#define Int64 int64_t -#define UInt64 uint64_t - -#define Int32 int -#define UInt32 unsigned - -#define Bool bool - -#define Int16 int16_t -#define UInt16 uint16_t - -#define Int8 int8_t -#define UInt8 uint8_t - -#define Char char -#define Boolean bool - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define nullPtr std::nullptr_t - -#define MUST_PASS(E) assert(E) - -#ifndef __FORCE_STRLEN -#define __FORCE_STRLEN 1 - -#define string_length(len) strlen(len) -#endif - -#ifndef __FORCE_MEMCPY -#define __FORCE_MEMCPY 1 - -#define rt_copy_memory(dst, src, len) memcpy(dst, src, len) -#endif - -#define ATTRIBUTE(X) __attribute__((X)) -#define PACKED ATTRIBUTE(packed) - -#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) \ - KLASS& operator=(const KLASS&) = default; \ - KLASS(const KLASS&) = default; - -#define NECTI_MOVE_DELETE(KLASS) \ - KLASS& operator=(KLASS&&) = delete; \ - KLASS(KLASS&&) = delete; - -#define NECTI_MOVE_DEFAULT(KLASS) \ - KLASS& operator=(KLASS&&) = default; \ - KLASS(KLASS&&) = default; - -#define CK_IMPORT_C extern "C" -#define CK_IMPORT extern -namespace CompilerKit { -inline constexpr int kBaseYear = 1900; - -typedef std::string STLString; - -inline STLString current_date() noexcept { - auto time_data = time(nullptr); - auto time_struct = gmtime(&time_data); - - STLString fmt = std::to_string(kBaseYear + time_struct->tm_year); - - fmt += "-"; - fmt += std::to_string(time_struct->tm_mon + 1); - fmt += "-"; - fmt += std::to_string(time_struct->tm_mday); - - return fmt; -} - -inline bool to_str(Char* str, Int32 limit, Int32 base) noexcept { - if (limit == 0) return false; - - Int32 copy_limit = limit; - Int32 cnt = 0; - Int32 ret = base; - - while (limit != 1) { - ret = ret % 10; - str[cnt] = ret; - - ++cnt; - --limit; - --ret; - } - - str[copy_limit] = '\0'; - return true; -} - -inline bool install_signal(Int32 signal, void (*handler)(int)) noexcept { - if (handler == nullptr) return false; - - if (::signal(signal, handler) == SIG_ERR) { - return false; - } - - return true; -} -} // namespace CompilerKit - -#endif /* ifndef __NECTI_DEFINES_H__ */ diff --git a/src/CompilerKit/ErrorID.h b/src/CompilerKit/ErrorID.h index 35039ab..1b1e8e8 100644 --- a/src/CompilerKit/ErrorID.h +++ b/src/CompilerKit/ErrorID.h @@ -9,7 +9,7 @@ #pragma once -#include +#include /// =========================================================== /// /// @file ErrorID.h diff --git a/src/CompilerKit/ErrorOr.h b/src/CompilerKit/ErrorOr.h index ac42c19..54c1c45 100644 --- a/src/CompilerKit/ErrorOr.h +++ b/src/CompilerKit/ErrorOr.h @@ -15,7 +15,7 @@ /// @brief ErrorOr for CompilerKit. /// =========================================================== /// -#include +#include #include #include #include diff --git a/src/CompilerKit/PEF.h b/src/CompilerKit/PEF.h index edf8f5d..f69102a 100644 --- a/src/CompilerKit/PEF.h +++ b/src/CompilerKit/PEF.h @@ -6,7 +6,7 @@ #pragma once -#include +#include // @file PEF.h // @brief Preferred Executable Format diff --git a/src/CompilerKit/Ref.h b/src/CompilerKit/Ref.h index 66ed60f..703fde8 100644 --- a/src/CompilerKit/Ref.h +++ b/src/CompilerKit/Ref.h @@ -10,7 +10,7 @@ #pragma once -#include +#include namespace CompilerKit { /// @author Amlal El Mahrouss diff --git a/src/CompilerKit/StringKit.h b/src/CompilerKit/StringKit.h index f93b135..e4bc1c1 100644 --- a/src/CompilerKit/StringKit.h +++ b/src/CompilerKit/StringKit.h @@ -10,7 +10,7 @@ #ifndef __NECTI_STRINGKIT__ #define __NECTI_STRINGKIT__ -#include +#include #include /// =========================================================== /// diff --git a/src/CompilerKit/UUID.h b/src/CompilerKit/UUID.h index 98733fd..2993b8b 100644 --- a/src/CompilerKit/UUID.h +++ b/src/CompilerKit/UUID.h @@ -165,7 +165,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/src/CompilerKit/XCOFF.h b/src/CompilerKit/XCOFF.h index a61949a..e9c1f2e 100644 --- a/src/CompilerKit/XCOFF.h +++ b/src/CompilerKit/XCOFF.h @@ -14,7 +14,7 @@ #ifndef _NECTI_XCOFF_H_ #define _NECTI_XCOFF_H_ -#include +#include #define kXCOFF64Magic 0x01F7 diff --git a/src/CompilerKit/impl/32x0.h b/src/CompilerKit/impl/32x0.h index 1ad13ee..5996708 100644 --- a/src/CompilerKit/impl/32x0.h +++ b/src/CompilerKit/impl/32x0.h @@ -6,7 +6,7 @@ #pragma once -#include +#include // @brief Open32x0 support. // @file impl/32x0.h diff --git a/src/CompilerKit/impl/64x0.h b/src/CompilerKit/impl/64x0.h index ce2ae89..cc521f1 100644 --- a/src/CompilerKit/impl/64x0.h +++ b/src/CompilerKit/impl/64x0.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #include // @brief Open64x0 support. diff --git a/src/CompilerKit/impl/Aarch64.h b/src/CompilerKit/impl/Aarch64.h index c1e9c77..be052c0 100644 --- a/src/CompilerKit/impl/Aarch64.h +++ b/src/CompilerKit/impl/Aarch64.h @@ -6,7 +6,7 @@ Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license #pragma once -#include +#include #include /// @brief ARM64 encoding support. diff --git a/src/CompilerKit/impl/X64.h b/src/CompilerKit/impl/X64.h index ccbcf13..e69d509 100644 --- a/src/CompilerKit/impl/X64.h +++ b/src/CompilerKit/impl/X64.h @@ -6,7 +6,7 @@ #pragma once -#include +#include // @brief AMD64 support. // @file impl/X64.h diff --git a/src/CompilerKit/src/Backend/AssemblerARM64.cc b/src/CompilerKit/src/Backend/AssemblerARM64.cc index e50b8ec..6aa8dea 100644 --- a/src/CompilerKit/src/Backend/AssemblerARM64.cc +++ b/src/CompilerKit/src/Backend/AssemblerARM64.cc @@ -20,8 +20,8 @@ #endif #include -#include #include +#include #include #include #include diff --git a/src/CompilerKit/src/Backend/AssemblerPowerPC.cc b/src/CompilerKit/src/Backend/AssemblerPowerPC.cc index 7074123..a845f8b 100644 --- a/src/CompilerKit/src/Backend/AssemblerPowerPC.cc +++ b/src/CompilerKit/src/Backend/AssemblerPowerPC.cc @@ -20,8 +20,8 @@ #endif #include -#include #include +#include #include #include #include diff --git a/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc b/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc index c0f366d..c0addff 100644 --- a/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc +++ b/src/CompilerKit/src/Frontend/CPlusPlusCompilerAMD64.cc @@ -762,8 +762,7 @@ class AssemblyCPlusPlusInterfaceAMD64 final CK_ASSEMBLY_INTERFACE { ///////////////////////////////////////////////////////////////////////////////////////// -#define kExtListCxx \ - { ".cpp", ".cxx", ".cc", ".c++", ".cp" } +#define kExtListCxx {".cpp", ".cxx", ".cc", ".c++", ".cp"} NECTI_MODULE(CompilerCPlusPlusAMD64) { Boolean skip = false; diff --git a/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc b/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc index 4236ceb..7c56624 100644 --- a/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc +++ b/src/CompilerKit/src/Linker/DynamicLinker64PEF.cc @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/CompilerKit/src/Macro/CPlusPlusPreprocessor.cc b/src/CompilerKit/src/Macro/CPlusPlusPreprocessor.cc index 980f0e0..4cf42dc 100644 --- a/src/CompilerKit/src/Macro/CPlusPlusPreprocessor.cc +++ b/src/CompilerKit/src/Macro/CPlusPlusPreprocessor.cc @@ -9,8 +9,8 @@ /// BUGS: 0 -#include #include +#include #include #include #include diff --git a/src/CompilerKit/src/StringKit.cc b/src/CompilerKit/src/StringKit.cc index 45e50a9..95326bc 100644 --- a/src/CompilerKit/src/StringKit.cc +++ b/src/CompilerKit/src/StringKit.cc @@ -74,7 +74,7 @@ NEString NEStringBuilder::FromInt(const char* fmt, int i) { const SizeType res_len = string_length(result); NEString output(fmt_len + res_len); - bool inserted = false; + bool inserted = false; for (SizeType idx = 0; idx < fmt_len; ++idx) { if (!inserted && fmt[idx] == '%') { @@ -96,7 +96,7 @@ NEString NEStringBuilder::FromBool(const char* fmt, bool val) { const SizeType res_len = string_length(boolean_expr); NEString 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 @@ NEString NEStringBuilder::Format(const char* fmt, const char* fmtRight) { const SizeType rhs_len = string_length(fmtRight); NEString output(fmt_len + rhs_len); - bool inserted = false; + bool inserted = false; for (SizeType idx = 0; idx < fmt_len; ++idx) { if (!inserted && fmt[idx] == '%') { diff --git a/src/CompilerKit/utils/AsmUtils.h b/src/CompilerKit/utils/AsmUtils.h index 83086e3..40fa133 100644 --- a/src/CompilerKit/utils/AsmUtils.h +++ b/src/CompilerKit/utils/AsmUtils.h @@ -6,8 +6,8 @@ #pragma once -#include #include +#include #include using namespace CompilerKit; diff --git a/src/CompilerKit/utils/CompilerUtils.h b/src/CompilerKit/utils/CompilerUtils.h index 607418d..8ae6291 100644 --- a/src/CompilerKit/utils/CompilerUtils.h +++ b/src/CompilerKit/utils/CompilerUtils.h @@ -6,9 +6,9 @@ #pragma once +#include #include #include -#include #include #include #include diff --git a/src/CompilerKit/utils/DylibHelpers.h b/src/CompilerKit/utils/DylibHelpers.h index ab58fc7..ca7af38 100644 --- a/src/CompilerKit/utils/DylibHelpers.h +++ b/src/CompilerKit/utils/DylibHelpers.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #include #include -- cgit v1.2.3