summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-05 16:48:25 -0500
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-05 16:48:25 -0500
commit6decb96948f61b9a311467ecdb621a048fbcd3d6 (patch)
tree247d8b92e42068b53e2ebbeccb21e31a545ecd30
parent037ac38824623c13070384e8fc0e70c4770dcdbd (diff)
chore: CompilerKit breaking changes.v0.0.81
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--include/CompilerKit/CodeGenerator.h18
-rw-r--r--include/CompilerKit/Ref.h2
-rw-r--r--include/CompilerKit/Utilities/Assembler.h10
-rw-r--r--include/CompilerKit/Utilities/Compiler.h2
-rw-r--r--include/LibC++/__abi+unreachable.inl16
-rw-r--r--include/LibC++/__abi.h9
-rw-r--r--src/CompilerKit/src/CodeGenerator+AssemblyFactory.cc (renamed from src/CompilerKit/src/AssemblyFactory.cc)6
-rw-r--r--src/CompilerKit/src/Compilers/CPlusPlusCompiler+AMD64.cc6
-rw-r--r--src/CompilerKit/src/DyanmicLinkers/DynamicLinker64+PEF.cc2
9 files changed, 32 insertions, 39 deletions
diff --git a/include/CompilerKit/CodeGenerator.h b/include/CompilerKit/CodeGenerator.h
index 383f170..79b185b 100644
--- a/include/CompilerKit/CodeGenerator.h
+++ b/include/CompilerKit/CodeGenerator.h
@@ -10,12 +10,12 @@
#include <CompilerKit/Macros.h>
#include <cstring>
-#define CK_ASSEMBLY_INTERFACE : public ::CompilerKit::AssemblyInterface
+#define CK_ASSEMBLY_INTERFACE : public ::CompilerKit::IAssembly
#define CK_ENCODER : public ::CompilerKit::EncoderInterface
namespace CompilerKit {
class AssemblyFactory;
-class AssemblyInterface;
+class IAssembly;
/// =========================================================== ///
/// @brief Simple assembly factory
@@ -42,23 +42,23 @@ class AssemblyFactory final {
Int32 Compile(std::string sourceFile, const Int32& arch) noexcept;
- void Mount(AssemblyInterface* mountPtr) noexcept;
- AssemblyInterface* Unmount() noexcept;
+ void Mount(IAssembly* mountPtr) noexcept;
+ IAssembly* Unmount() noexcept;
private:
- AssemblyInterface* fMounted{nullptr};
+ IAssembly* fMounted{nullptr};
};
/// =========================================================== ///
/// @brief Assembly to binary generator class.
/// @note This interface creates according to the CPU target of the child class.
/// =========================================================== ///
-class AssemblyInterface {
+class IAssembly {
public:
- explicit AssemblyInterface() = default;
- virtual ~AssemblyInterface() = default;
+ explicit IAssembly() = default;
+ virtual ~IAssembly() = default;
- NECTI_COPY_DEFAULT(AssemblyInterface);
+ NECTI_COPY_DEFAULT(IAssembly);
virtual UInt32 Arch() noexcept { return AssemblyFactory::kArchAMD64; }
diff --git a/include/CompilerKit/Ref.h b/include/CompilerKit/Ref.h
index 863a100..72e9472 100644
--- a/include/CompilerKit/Ref.h
+++ b/include/CompilerKit/Ref.h
@@ -18,7 +18,7 @@ namespace CompilerKit {
template <typename T>
class Ref final {
public:
- explicit Ref() = default;
+ Ref() = default;
~Ref() {
if (m_Strong) {
diff --git a/include/CompilerKit/Utilities/Assembler.h b/include/CompilerKit/Utilities/Assembler.h
index fc965f0..afe95d1 100644
--- a/include/CompilerKit/Utilities/Assembler.h
+++ b/include/CompilerKit/Utilities/Assembler.h
@@ -10,13 +10,14 @@
#include <CompilerKit/CodeGenerator.h>
#include <CompilerKit/Utilities/Compiler.h>
-using namespace CompilerKit;
-
+namespace CompilerKit {
/// @brief Get Number from lineBuffer.
/// @param lineBuffer the lineBuffer to fetch from.
/// @param numberKey where to seek that number.
/// @return A numbercast of 32-bit width.
-static NumberCast32 GetNumber32(STLString lineBuffer, STLString numberKey) {
+inline NumberCast32 GetNumber32(STLString lineBuffer, STLString numberKey) {
+ if (lineBuffer.empty()) return {};
+
auto pos = lineBuffer.find(numberKey) + numberKey.size();
while (lineBuffer[pos] == ' ') {
@@ -83,10 +84,11 @@ static NumberCast32 GetNumber32(STLString lineBuffer, STLString numberKey) {
NumberCast32 numOffset(strtol(lineBuffer.substr(pos).c_str(), nullptr, 10));
if (kVerbose) {
- kStdOut << "asm: found a base 10 number here:" << lineBuffer.substr(pos) << "\n";
+ kStdOut << "asm: found a base 10 number here:" << lineBuffer.substr(pos) << kStdEndl;
}
return numOffset;
}
}
}
+} // namespace CompilerKit \ No newline at end of file
diff --git a/include/CompilerKit/Utilities/Compiler.h b/include/CompilerKit/Utilities/Compiler.h
index bbca020..41b7771 100644
--- a/include/CompilerKit/Utilities/Compiler.h
+++ b/include/CompilerKit/Utilities/Compiler.h
@@ -28,7 +28,7 @@
#define kStdOut (std::cout << kRed << "drv: " << kWhite)
#define kStdErr (std::cerr << kYellow << "drv: " << kWhite)
-
+#define kStdEndl std::endl
#define kPrintF kStdOut
#define kPrintErr kStdErr
diff --git a/include/LibC++/__abi+unreachable.inl b/include/LibC++/__abi+unreachable.inl
deleted file mode 100644
index 5628e7d..0000000
--- a/include/LibC++/__abi+unreachable.inl
+++ /dev/null
@@ -1,16 +0,0 @@
-/* ========================================
-
- Copyright (C) 2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license.
-
-======================================== */
-
-#include <LibC++/__abi.h>
-#include <LibC++/base_process.h>
-
-static const int32_t __unreachable_code = 34;
-
-extern "C" void __compilerkit_unreachable(void) {
- std::base_process::signal(__unreachable_code);
-
- while (1);
-} \ No newline at end of file
diff --git a/include/LibC++/__abi.h b/include/LibC++/__abi.h
index 206b5ef..6b4b058 100644
--- a/include/LibC++/__abi.h
+++ b/include/LibC++/__abi.h
@@ -7,9 +7,16 @@
#pragma once
#include <LibC++/defines.h>
+#include <LibC++/base_process.h>
__init_decl()
- extern void __compilerkit_unreachable(void);
+static constexpr int32_t __unreachable_code = 34;
+
+inline void __compilerkit_unreachable(void) {
+ std::base_process::signal(__unreachable_code);
+
+ while (1);
+}
__fini_decl() \ No newline at end of file
diff --git a/src/CompilerKit/src/AssemblyFactory.cc b/src/CompilerKit/src/CodeGenerator+AssemblyFactory.cc
index f386083..44e2484 100644
--- a/src/CompilerKit/src/AssemblyFactory.cc
+++ b/src/CompilerKit/src/CodeGenerator+AssemblyFactory.cc
@@ -26,20 +26,20 @@ Int32 AssemblyFactory::Compile(STLString sourceFile, const Int32& arch) noexcept
try {
return this->fMounted->CompileToFormat(sourceFile, arch);
- } catch (std::exception& e) {
+ } catch (...) {
return NECTI_EXEC_ERROR;
}
}
///! @brief mount assembly backend.
-void AssemblyFactory::Mount(AssemblyInterface* mountPtr) noexcept {
+void AssemblyFactory::Mount(IAssembly* mountPtr) noexcept {
if (mountPtr) {
fMounted = mountPtr;
}
}
///! @brief Unmount assembler.
-AssemblyInterface* AssemblyFactory::Unmount() noexcept {
+IAssembly* AssemblyFactory::Unmount() noexcept {
auto mount_prev = fMounted;
if (fMounted) {
diff --git a/src/CompilerKit/src/Compilers/CPlusPlusCompiler+AMD64.cc b/src/CompilerKit/src/Compilers/CPlusPlusCompiler+AMD64.cc
index 23e1bd8..d93256d 100644
--- a/src/CompilerKit/src/Compilers/CPlusPlusCompiler+AMD64.cc
+++ b/src/CompilerKit/src/Compilers/CPlusPlusCompiler+AMD64.cc
@@ -35,7 +35,7 @@
/* (c) Amlal El Mahrouss 2024-2025 */
/// @author Amlal El Mahrouss (amlal@nekernel.org)
-/// @file CPlusPlusCompilerAMD64.cxx
+/// @file CPlusPlusCompilerAMD64.cc
/// @brief Optimized C++ Compiler Driver.
/////////////////////////////////////
@@ -146,7 +146,7 @@ static std::size_t kFunctionEmbedLevel = 0UL;
/// detail namespaces
const char* CompilerFrontendCPlusPlusAMD64::Language() {
- return "AMD64 C++";
+ return "AMD64 CFront";
}
static std::uintptr_t kOrigin = kPefBaseOrigin;
@@ -753,7 +753,7 @@ class AssemblyCPlusPlusInterfaceAMD64 final CK_ASSEMBLY_INTERFACE {
/////////////////////////////////////////////////////////////////////////////////////////
-#define kExtListCxx {".cpp", ".cxx", ".cc", ".c++", ".cp"}
+#define kExtListCxx {".cpp", ".cc", ".cc", ".c++", ".cp"}
NECTI_MODULE(CompilerCPlusPlusAMD64) {
bool skip = false;
diff --git a/src/CompilerKit/src/DyanmicLinkers/DynamicLinker64+PEF.cc b/src/CompilerKit/src/DyanmicLinkers/DynamicLinker64+PEF.cc
index 5e8253b..28e12a1 100644
--- a/src/CompilerKit/src/DyanmicLinkers/DynamicLinker64+PEF.cc
+++ b/src/CompilerKit/src/DyanmicLinkers/DynamicLinker64+PEF.cc
@@ -31,7 +31,7 @@
#define kLinkerId (0x5046FF)
#define kLinkerAbiContainer "__PEFContainer:ABI:"
-#define kLinkerSplash() kStdOut << kLinkerVersionStr << std::endl
+#define kLinkerSplash() kStdOut << kLinkerVersionStr << kStdEndl
/// @brief PEF stack size symbol.
#define kLinkerStackSizeSymbol "__PEFSizeOfReserveStack"