summaryrefslogtreecommitdiffhomepage
path: root/include/CoreRuntimeKit
diff options
context:
space:
mode:
Diffstat (limited to 'include/CoreRuntimeKit')
-rw-r--r--include/CoreRuntimeKit/C++/abi/abi.hpp20
-rw-r--r--include/CoreRuntimeKit/C++/abi/new.hpp59
-rw-r--r--include/CoreRuntimeKit/C++/core/base_alloc.hpp44
-rw-r--r--include/CoreRuntimeKit/C++/core/base_exception.hpp36
-rw-r--r--include/CoreRuntimeKit/C++/core/base_math.hpp88
-rw-r--r--include/CoreRuntimeKit/C++/core/base_process.hpp44
-rw-r--r--include/CoreRuntimeKit/C++/defines.hpp80
-rw-r--r--include/CoreRuntimeKit/C++/filesystem/filesystem.hpp18
-rw-r--r--include/CoreRuntimeKit/C++/utility.hpp29
-rw-r--r--include/CoreRuntimeKit/Nectar/.keep0
-rw-r--r--include/CoreRuntimeKit/Nectar/exports.hpp15
-rw-r--r--include/CoreRuntimeKit/README.md12
12 files changed, 0 insertions, 445 deletions
diff --git a/include/CoreRuntimeKit/C++/abi/abi.hpp b/include/CoreRuntimeKit/C++/abi/abi.hpp
deleted file mode 100644
index c0a2680..0000000
--- a/include/CoreRuntimeKit/C++/abi/abi.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <base_process>
-#include <defines>
-
-__init_decl()
-
-static constexpr int32_t __unreachable_code = 34;
-
-inline void __compilerkit_unreachable(void) {
- std::base_process::signal(__unreachable_code);
- while (true);
-}
-
-__fini_decl()
diff --git a/include/CoreRuntimeKit/C++/abi/new.hpp b/include/CoreRuntimeKit/C++/abi/new.hpp
deleted file mode 100644
index 9e86e22..0000000
--- a/include/CoreRuntimeKit/C++/abi/new.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2025-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <defines>
-
-namespace std {
-
-struct nothrow_t final {
- explicit nothrow_t() = default;
- ~nothrow_t() = default;
-};
-
-struct placement_t final {
- explicit placement_t() = default;
- ~placement_t() = default;
-
- void* __base{};
- int32_t __align{};
- size_t __size{};
-};
-
-} // namespace std
-
-// AMLALE: Define the placement_t feature.
-#ifndef __cpp_has_placement
-#define __cpp_has_placement 1
-#endif
-
-// AMLALE: Define nothrow
-#ifndef __cpp_has_nothrow
-#define __cpp_has_nothrow 1
-#endif
-
-void* operator new(size_t);
-void* operator new[](size_t);
-
-/// \brief placement_t new and delete operators. Governs how the memory shall be placed.
-/// \note This is a feature that shall be used wisely, failure to do so will produce Undefined Behaviors at runtime.
-void* operator _placement_new(size_t);
-void operator _placement_delete(void*);
-
-/// \note This should NOT fail, failure to meet the conditions will cause the program's state to be aborted.
-/// \brief Set the placement policy of future memory allocations.
-template <class PlaceableType>
-void set_placement_policy(const PlaceableType&) noexcept;
-
-void* operator new(size_t, const nothrow_t&) noexcept;
-void* operator new(size_t, void*) noexcept;
-void* operator new[](size_t, const nothrow_t&) noexcept;
-void* operator new[](size_t, void*) noexcept;
-
-void operator delete(void*) noexcept;
-void operator delete(void*, size_t) noexcept;
-
-void operator delete[](void*) noexcept;
diff --git a/include/CoreRuntimeKit/C++/core/base_alloc.hpp b/include/CoreRuntimeKit/C++/core/base_alloc.hpp
deleted file mode 100644
index 4d715f7..0000000
--- a/include/CoreRuntimeKit/C++/core/base_alloc.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <defines>
-
-namespace std::base_alloc {
-
-/// @brief allocate a new class.
-/// @tparam KindClass the class type to allocate.
-template <class KindClass, typename... Args>
-inline KindClass* allocate(Args&&... args) {
- return new KindClass(forward(args)...);
-}
-
-/// @brief allocate a new class.
-/// @note aborts on error.
-/// @tparam KindClass the class type to allocate.
-template <class KindClass, typename... Args>
-inline KindClass* allocate_nothrow(Args&&... args) noexcept {
- return allocate(forward(args)...);
-}
-
-/// @brief free a class.
-/// @tparam KindClass the class type to allocate.
-template <class KindClass>
-inline void release(KindClass ptr) {
- if (!ptr) return;
-
- delete ptr;
-}
-
-/// @brief destroy and free a class.
-/// @note aborts on error.
-/// @tparam KindClass the class type to allocate.
-template <class KindClass>
-inline void release_nothrow(KindClass ptr) noexcept {
- release(ptr);
-}
-
-} // namespace std::base_alloc
diff --git a/include/CoreRuntimeKit/C++/core/base_exception.hpp b/include/CoreRuntimeKit/C++/core/base_exception.hpp
deleted file mode 100644
index c103da5..0000000
--- a/include/CoreRuntimeKit/C++/core/base_exception.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <abi>
-#include <base_process>
-#include <defines>
-#include <iostream>
-
-/// @author Amlal El Mahrouss (amlal@nekernel.org)
-
-namespace std::base_exception::abi {
-inline constexpr int __terminate_id = 33;
-
-/// @note This function is internal, don't call it.
-extern void __unwind_object_list();
-
-inline void __throw_general(const char* what) {
- std::cout << "LibC++: Unwinding exception of kind: " << what << ", aborting here..." << std::endl;
- __unwind_object_list();
- base_process::exit(__terminate_id);
-}
-
-inline void __throw_domain_error(const char* what) {
- __throw_general(what);
- __builtin_unreachable(); // prevent from continuing.
-}
-
-inline void __throw_bad_array_new_length(const char* what) {
- __throw_general(what);
- __builtin_unreachable(); // prevent from continuing.
-}
-} // namespace std::base_exception::abi
diff --git a/include/CoreRuntimeKit/C++/core/base_math.hpp b/include/CoreRuntimeKit/C++/core/base_math.hpp
deleted file mode 100644
index 6691c27..0000000
--- a/include/CoreRuntimeKit/C++/core/base_math.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <defines>
-
-#ifndef NAN
-#define NAN (__builtin_nanf(""))
-#endif // !NAN
-
-/// @file Math
-/// @brief Math functions.
-
-#ifdef __LIBCXX_USE_DOUBLE__
-typedef double real_type;
-#else
-typedef float real_type;
-#endif
-
-namespace std::base_math {
-inline constexpr static auto not_a_number = NAN;
-
-/// =========================================================== ///
-/// @brief Power function, with Repeat argument.
-/// =========================================================== ///
-template <size_t Exponent>
-inline real_type pow(real_type in) {
- if (Exponent == 0) return 1; // Any number to the power of 0 is 1.
-
- if (Exponent == 1) return in; // Any number to the power of 1 is itself.
-
- size_t cnt = Exponent;
-
- real_type result = 1;
-
- for (auto i = 0; i < cnt; ++i) result *= in;
-
- return result;
-}
-
-/// =========================================================== ///
-/// @brief Square root function.
-/// =========================================================== ///
-inline real_type sqrt(real_type in) {
- if (in == 0) return 0;
- if (in == not_a_number) return not_a_number;
-
- auto constexpr static kRootBase = 2;
- auto constexpr static kNumberBase = 10;
-
- auto x = in / kRootBase;
-
- for (int i = 0; i < kNumberBase; ++i) {
- x = (x + in / x) / kRootBase;
- }
-
- return x;
-}
-
-/// =========================================================== ///
-/// @brief Square of function, with Base template argument.
-/// @param of Base argument to find the square of.
-/// =========================================================== ///
-template <size_t Base>
-inline real_type surd(real_type in) {
- if (in == 0) return 0;
- if (in == 1) return 1;
-
- if (Base == 1) return in;
- if (Base == 2) return sqrt(in);
-
- return not_a_number;
-}
-
-/// =========================================================== ///
-/// @brief Linear interpolation equation solver.
-/// @param from where?
-/// @param to to?
-/// @param Updated diff value according to difference.
-/// =========================================================== ///
-inline real_type lerp(real_type to, real_type from, real_type stat) {
- real_type diff = (to - from);
- return from + (diff * stat);
-}
-} // namespace std::base_math
diff --git a/include/CoreRuntimeKit/C++/core/base_process.hpp b/include/CoreRuntimeKit/C++/core/base_process.hpp
deleted file mode 100644
index 84354a9..0000000
--- a/include/CoreRuntimeKit/C++/core/base_process.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <defines>
-
-__init_decl()
-
-/// @brief CRT exit, with exit code (!!! exits all threads. !!!)
-/// @param code the exit code.
-/// @return the return > 0 for non successful.
-extern int exit_(int code);
-
-/// @brief CRT signal handler.
-/// @param code the signal code.
-extern void signal_(int code);
-
-extern void (*__atexit_cdecl_ptr)(void);
-extern void (**__atexit_lst_ptr)(void);
-extern size_t __atexit_lst_cnt;
-
-__fini_decl()
-
- /// @brief Standard C++ namespace
- namespace std::base_process {
- inline int signal(int code) {
- signal_(code);
- return -1;
- }
-
- inline int32_t exit(const int32_t& code) {
- for (auto idx = 0UL; idx < __atexit_lst_cnt; ++idx) {
- __atexit_lst_ptr[idx]();
- }
-
- if (__atexit_cdecl_ptr) __atexit_cdecl_ptr();
-
- exit_(code);
- return -1;
- }
-} // namespace std::base_process
diff --git a/include/CoreRuntimeKit/C++/defines.hpp b/include/CoreRuntimeKit/C++/defines.hpp
deleted file mode 100644
index 3cd1ee1..0000000
--- a/include/CoreRuntimeKit/C++/defines.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#ifndef __NECTAR_DEFINES_H__
-#define __NECTAR_DEFINES_H__
-
-#define __ATTRIBUTE(X) __attribute__((X))
-
-typedef __SIZE_TYPE__ size_t;
-typedef __INT64_TYPE__ ssize_t;
-typedef __INT32_TYPE__ int32_t;
-
-typedef void* ptr_type;
-typedef __SIZE_TYPE__ size_type;
-
-typedef __INT64_TYPE__ ptrdiff_t;
-typedef size_t uintptr_t;
-typedef void* voidptr_t;
-typedef void* any_t;
-typedef char* caddr_t;
-
-#ifndef NULL
-#define NULL ((voidptr_t) 0)
-#endif // !null
-
-#define __alloca(sz) __ck_alloca(sz)
-
-#define __deref(ptr) (*(ptr))
-
-#ifdef __cplusplus
-#define __init_decl() extern "C" {
-#define __fini_decl() \
- } \
- ;
-#else
-#define __init_decl()
-#define __fini_decl()
-#endif
-
-#if __has_builtin(__builtin_alloca)
-#define alloca(sz) __builtin_alloca(sz)
-#ifdef __alloca
-#undef __alloca
-#endif
-#define __alloca alloca
-#else
-#warning !! alloca not detected !!
-#endif
-
-typedef long long off_t;
-typedef unsigned long long uoff_t;
-
-typedef union float_cast {
- struct {
- unsigned int mantissa : 23;
- unsigned int exponent : 8;
- unsigned int sign : 1;
- };
-
- float f;
-} __ATTRIBUTE(packed) float_cast_t;
-
-typedef union double_cast {
- struct {
- unsigned long long int mantissa : 52;
- unsigned int exponent : 11;
- unsigned int sign : 1;
- };
-
- double f;
-} __ATTRIBUTE(packed) double_cast_t;
-
-namespace std {
-struct placement_t;
-struct nothrow_t;
-} // namespace std
-
-#endif /* __NECTAR_DEFINES_H__ */
diff --git a/include/CoreRuntimeKit/C++/filesystem/filesystem.hpp b/include/CoreRuntimeKit/C++/filesystem/filesystem.hpp
deleted file mode 100644
index 917dd0f..0000000
--- a/include/CoreRuntimeKit/C++/filesystem/filesystem.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#ifndef __NECTAR_FS_H__
-#define __NECTAR_FS_H__
-
-#include <defines>
-
-namespace std {
-class path;
-class filesystem_error;
-class directory_entry;
-class directory_iterator;
-} // namespace std
-
-#endif // __NECTAR_FS_H__
diff --git a/include/CoreRuntimeKit/C++/utility.hpp b/include/CoreRuntimeKit/C++/utility.hpp
deleted file mode 100644
index a427c44..0000000
--- a/include/CoreRuntimeKit/C++/utility.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#ifndef LIBCXX_UTILITY_H
-#define LIBCXX_UTILITY_H
-
-namespace std {
-/// @brief Forward object.
-/// @tparam Args the object type.
-/// @param arg the object.
-/// @return object's rvalue
-template <typename Args>
-inline auto forward(Args& arg) -> Args&& {
- return static_cast<const Args&&>(arg);
-}
-
-/// @brief Move object.
-/// @tparam Args the object type.
-/// @param arg the object.
-/// @return object's rvalue
-template <typename Args>
-inline auto move(Args&& arg) -> Args&& {
- return static_cast<Args&&>(arg);
-}
-} // namespace std
-
-#endif // LIBCXX_UTILITY_H
diff --git a/include/CoreRuntimeKit/Nectar/.keep b/include/CoreRuntimeKit/Nectar/.keep
deleted file mode 100644
index e69de29..0000000
--- a/include/CoreRuntimeKit/Nectar/.keep
+++ /dev/null
diff --git a/include/CoreRuntimeKit/Nectar/exports.hpp b/include/CoreRuntimeKit/Nectar/exports.hpp
deleted file mode 100644
index 72638af..0000000
--- a/include/CoreRuntimeKit/Nectar/exports.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (See accompanying
-// file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0)
-// Official repository: https://github.com/ne-foss-org/nectar
-
-#pragma once
-
-#include <CoreRuntimeKit/C++/abi/abi.hpp>
-#include <CoreRuntimeKit/C++/abi/new.hpp>
-
-/// @brief The Nectar FFI.
-namespace nectar_lang {
-
-}
diff --git a/include/CoreRuntimeKit/README.md b/include/CoreRuntimeKit/README.md
deleted file mode 100644
index 84d50bb..0000000
--- a/include/CoreRuntimeKit/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# The Nectar Core Support Libraries:
-
-## Abstract:
-
-The NCSL is a framework used to interact with other programs using the concept of FFI in Nectar.
-The implmentation is still in progress, feel free to open a PR to propose a new function.
-
-## Example:
-
-**No examples are available right now, we're working on some.**
-
-