summaryrefslogtreecommitdiff
path: root/zap/include
diff options
context:
space:
mode:
Diffstat (limited to 'zap/include')
-rw-r--r--zap/include/zap/bs.d/flt.h20
-rw-r--r--zap/include/zap/bs.d/int.h173
-rw-r--r--zap/include/zap/bs.h50
-rw-r--r--zap/include/zap/bs.hh201
-rw-r--r--zap/include/zap/math.h76
-rw-r--r--zap/include/zap/math.hh91
-rw-r--r--zap/include/zap/mem.h26
-rw-r--r--zap/include/zap/mem.hh76
-rw-r--r--zap/include/zap/str.h49
-rw-r--r--zap/include/zap/str.hh33
-rw-r--r--zap/include/zap/sys.d/arch.h68
-rw-r--r--zap/include/zap/sys.d/attr.h35
-rw-r--r--zap/include/zap/sys.d/cmp.h66
-rw-r--r--zap/include/zap/sys.d/lang.h60
-rw-r--r--zap/include/zap/sys.d/os.h160
-rw-r--r--zap/include/zap/sys.h108
-rw-r--r--zap/include/zap/sys.hh18
17 files changed, 0 insertions, 1310 deletions
diff --git a/zap/include/zap/bs.d/flt.h b/zap/include/zap/bs.d/flt.h
deleted file mode 100644
index 4d65236..0000000
--- a/zap/include/zap/bs.d/flt.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#if \
- zap_arch_amd64 \
-|| zap_arch_arm \
-|| zap_arch_arm64 \
-|| zap_arch_ia32
-#define zap_fixfltf02 (0x1)
-#define zap_fixfltf04 (0x1)
-
-typedef float zap_f02;
-typedef double zap_f04;
-#else
-#define zap_fixflt02 (0x0)
-#define zap_fixflt04 (0x0)
-#endif
diff --git a/zap/include/zap/bs.d/int.h b/zap/include/zap/bs.d/int.h
deleted file mode 100644
index 864a761..0000000
--- a/zap/include/zap/bs.d/int.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#define zap_minvaluc ((unsigned char) +0x0u)
-#define zap_minvalus ((unsigned short) +0x0u)
-#define zap_minvalui ((unsigned int) +0x0u)
-#define zap_minvalul ((unsigned long) +0x0u)
-#define zap_minvalull ((unsigned long long)+0x0)
-#define zap_minvalsc ((signed char) -0x80)
-#define zap_minvals ((short) -0x8000)
-#define zap_minvali ((int) -0x80000000)
-#define zap_minvalll ((long long) -0x8000000000000000)
-
-#define zap_maxvaluc ((unsigned char) +0xFFu)
-#define zap_maxvalus ((unsigned short) +0xFFFFu)
-#define zap_maxvalui ((unsigned int) +0xFFFFFFFFu)
-#define zap_maxvalull ((unsigned long long)+0xFFFFFFFFFFFFFFFFu)
-#define zap_maxvalsc ((signed char) +0x7F)
-#define zap_maxvals ((short) +0x7FFF)
-#define zap_maxvali ((int) +0x7FFFFFFF)
-#define zap_maxvalll ((long long) +0x7FFFFFFFFFFFFFFF)
-
-#define zap_typid8 zap_typidc
-#define zap_minval8 zap_minvaluc
-#define zap_minval8s zap_minvalsc
-#define zap_maxval8 zap_maxvaluc
-#define zap_maxval8s zap_maxvalsc
-typedef unsigned char zap_i8;
-typedef signed char zap_i8s;
-
-#define zap_typid01 zap_typids
-#define zap_minval01 zap_minvalus
-#define zap_minval01s zap_minvals
-#define zap_maxval01 zap_maxvalus
-#define zap_maxval01s zap_maxvals
-typedef unsigned short zap_i01;
-typedef short zap_i01s;
-
-#define zap_typid02 zap_typid
-#define zap_minval02 zap_minvalui
-#define zap_minval02s zap_minvali
-#define zap_maxval02 zap_maxvalui
-#define zap_maxval02s zap_maxvali
-typedef unsigned int zap_i02;
-typedef int zap_i02s;
-
-#if \
- zap_os_dos \
-|| zap_os_os2 \
-|| zap_os_win
-
-#define zap_minvall ((long long) -0x80000000)
-#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFu)
-#define zap_maxvall ((long long) +0x7FFFFFFF)
-
-#define zap_typid04 zap_typidll
-#define zap_minval04 zap_minvalull
-#define zap_minval04s zap_minvalll
-#define zap_maxval04 zap_maxvalull
-#define zap_maxval04s zap_maxvalll
-typedef unsigned long long zap_i04;
-typedef long long zap_i04s;
-
-#else
-#if \
- zap_arch_amd64 \
-|| zap_arch_arm64
-#define zap_minvall ((long long) -0x8000000000000000)
-#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFFFFFFFFFu)
-#define zap_maxvall ((long long) +0x7FFFFFFFFFFFFFFF)
-
-#define zap_typid04 zap_typidl
-#define zap_minval04 zap_minvalul
-#define zap_minval04s zap_minvall
-#define zap_maxval04 zap_maxvalul
-#define zap_maxval04s zap_maxvall
-typedef unsigned long zap_i04;
-typedef long zap_i04s;
-
-#elif \
- zap_arch_arm \
-|| zap_arch_ia32
-#define zap_minvall ((long long) -0x80000000)
-#define zap_maxvalul ((unsigned long long)+0xFFFFFFFFu)
-#define zap_maxvall ((long long) +0x7FFFFFFF)
-
-#define zap_typid04 zap_typidl
-#define zap_minval04 zap_minvalul
-#define zap_minval04s zap_minvall
-#define zap_maxval04 zap_maxvalul
-#define zap_maxval04s zap_maxvall
-typedef unsigned long zap_i04;
-typedef long zap_i04s;
-
-#endif
-#endif
-
-#if \
- zap_arch_arm \
-|| zap_arch_arm64
-#define zap_uchr (0x1)
-#else
-#define zap_uchr (0x0)
-#endif
-
-#if zap_uchr
-#define zap_minvalc zap_minvaluc
-#define zap_maxvalc zap_maxvaluc
-#else
-#define zap_minvalc zap_minvalsc
-#define zap_maxvalc zap_maxvalsc
-#endif
-
-#if \
- zap_arch_amd64 \
-|| zap_arch_arm64
-
-#define zap_typidp zap_typid04
-#define zap_minvalp zap_minval04
-#define zap_maxvalp zap_maxval04
-typedef zap_i04 zap_ptr;
-
-#define zap_typidsz zap_typid04
-#define zap_minvalsz zap_minval04
-#define zap_maxvalsz zap_maxval04
-typedef zap_i04 zap_sz;
-
-#elif \
- zap_arch_arm
-|| zap_arch_ia32
-
-#define zap_typidp zap_typid02
-#define zap_minvalp zap_minval02
-#define zap_maxvalp zap_maxval02
-typedef zap_i02 zap_ptr;
-
-#define zap_typidsz zap_typid02
-#define zap_minvalsz zap_minval02
-#define zap_maxvalsz zap_maxval02
-typedef zap_i02 zap_sz;
-
-#endif
-
-#if \
- zap_os_dos \
-|| zap_os_os2 \
-|| zap_os_win
-
-#define zap_typidwc zap_typid01
-#define zap_minvalwc zap_minval01
-#define zap_maxvalwc zap_maxval01
-typedef zap_i01 zap_wchr;
-
-#else
-#if zap_uchr
-
-#define zap_typidwc zap_typid02
-#define zap_minvalwc zap_minval02
-#define zap_maxvalwc zap_maxval02
-typedef zap_i02 zap_wchr;
-
-#else
-
-#define zap_typidwc zap_typid02
-#define zap_minvalwc zap_minval02s
-#define zap_maxvalwc zap_maxval02s
-typedef zap_i02s zap_wchr;
-
-#endif
-#endif
diff --git a/zap/include/zap/bs.h b/zap/include/zap/bs.h
deleted file mode 100644
index 482f20d..0000000
--- a/zap/include/zap/bs.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_hdr_bs
-#define zap_priv_hdr_bs
-
-// C99: long long
-
-#include <zap/sys.h>
-
-zap_priv_cdecl
-
-#define zap_ver ((unsigned long)+0x1Bu) // Programs expecting this version will still compile with the current extension version.
-#define zap_extver ((unsigned long)+0x0u) // The extension versions adds functionality without breaking the existing ones.
- // The patch version is not public as it only changes implementation details.
-
-#define zap_typid_c ((unsigned char)+0x0u)
-#define zap_typid_s ((unsigned char)+0x1u)
-#define zap_typid_i ((unsigned char)+0x2u)
-#define zap_typid_l ((unsigned char)+0x3u)
-#define zap_typid_ll ((unsigned char)+0x4u)
-#define zap_typid_f ((unsigned char)+0x5u)
-#define zap_typid_d ((unsigned char)+0x6u)
-#define zap_typid_ld ((unsigned char)+0x7u)
-
-#include <zap/bs.d/int.h>
-#include <zap/bs.d/flt.h>
-
-#define zap_nopos zap_maxvalsz
-
-#define zap_nullptr ((void *)0x0)
-
-#define zap_bytelen ((zap_sz)+0x8u)
-
-zap_noret void zap_trap(void);
-
-#if zap_cmp_gcc
-#define zap_unreach() ((void)__builtin_unreachable())
-#elif zap_cmp_msvc
-#define zap_unreach() ((void)__assume(0x0))
-#else
-#define zap_unreach() (zap_trap())
-#endif
-
-zap_priv_cdeclend
-
-#endif
diff --git a/zap/include/zap/bs.hh b/zap/include/zap/bs.hh
deleted file mode 100644
index 00f66b1..0000000
--- a/zap/include/zap/bs.hh
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_cxxhdr_bs
-#define zap_priv_cxxhdr_bs
-
-// C++11: constexpr
-// C++14: template variables
-
-#ifndef __cplusplus
-#error C++ header included from C!
-#endif
-
-#include <zap/sys.hh>
-#include <zap/bs.h>
-
-namespace zap {
- namespace impl {
- template<typename typ> struct minval {constexpr static typ val = {};};
-
- template<> struct minval<bool> {constexpr static auto val = false;};
- template<> struct minval<signed char> {constexpr static auto val = zap_minvalsc;};
- template<> struct minval<short> {constexpr static auto val = zap_minvals;};
- template<> struct minval<int> {constexpr static auto val = zap_minvali;};
- template<> struct minval<long> {constexpr static auto val = zap_minvall;};
- template<> struct minval<long long> {constexpr static auto val = zap_minvalll;};
- template<> struct minval<unsigned char> {constexpr static auto val = zap_minvaluc;};
- template<> struct minval<unsigned short> {constexpr static auto val = zap_minvalus;};
- template<> struct minval<unsigned int> {constexpr static auto val = zap_minvalui;};
- template<> struct minval<unsigned long> {constexpr static auto val = zap_minvalul;};
- template<> struct minval<unsigned long long> {constexpr static auto val = zap_minvalull;};
- template<> struct minval<char> {constexpr static auto val = zap_minvalc;};
- template<> struct minval<wchar_t> {constexpr static auto val = zap_minvalwc;};
-#if __cpp_char8_t >= 201811
- template<> struct minval<char8_t> {constexpr static auto val = zap_minvaluc;};
-#endif
- template<> struct minval<char16_t> {constexpr static auto val = zap_minval01;};
- template<> struct minval<char32_t> {constexpr static auto val = zap_minval02;};
-
- template<typename typ> struct maxval {constexpr static typ val = {};};
-
- template<> struct maxval<bool> {constexpr static auto val = true;};
- template<> struct maxval<signed char> {constexpr static auto val = zap_maxvalsc;};
- template<> struct maxval<int> {constexpr static auto val = zap_maxvali;};
- template<> struct maxval<short> {constexpr static auto val = zap_maxvals;};
- template<> struct maxval<long> {constexpr static auto val = zap_maxvall;};
- template<> struct maxval<long long> {constexpr static auto val = zap_maxvalll;};
- template<> struct maxval<unsigned char> {constexpr static auto val = zap_maxvaluc;};
- template<> struct maxval<unsigned short> {constexpr static auto val = zap_maxvalus;};
- template<> struct maxval<unsigned int> {constexpr static auto val = zap_maxvalui;};
- template<> struct maxval<unsigned long> {constexpr static auto val = zap_maxvalul;};
- template<> struct maxval<unsigned long long> {constexpr static auto val = zap_maxvalull;};
- template<> struct maxval<char> {constexpr static auto val = zap_maxvalc;};
- template<> struct maxval<wchar_t> {constexpr static auto val = zap_maxvalwc;};
-#if __cpp_char8_t >= 201811
- template<> struct maxval<char8_t> {constexpr static auto val = zap_maxvaluc;};
-#endif
- template<> struct maxval<char16_t> {constexpr static auto val = zap_maxval01;};
- template<> struct maxval<char32_t> {constexpr static auto val = zap_maxval02;};
- }
-
- template<typename typ> constexpr auto minval = ::zap::impl::minval<typ>::val;
-
- template<typename typ> constexpr auto maxval = ::zap::impl::maxval<typ>::val;
-}
-
-namespace zap {
- namespace impl {
- template<typename ityp> struct sign {using typ = ityp;};
-
- template<> struct sign<unsigned char> {using typ = signed char;};
- template<> struct sign<unsigned int> {using typ = int;};
- template<> struct sign<unsigned long> {using typ = long;};
- template<> struct sign<unsigned long long> {using typ = long long;};
- template<> struct sign<unsigned short> {using typ = short;};
-
- template<typename ityp> struct usign {using typ = ityp;};
-
- template<> struct usign<signed char> {using typ = unsigned char;};
- template<> struct usign<int> {using typ = unsigned int;};
- template<> struct usign<long> {using typ = unsigned long;};
- template<> struct usign<long long> {using typ = unsigned long long;};
- template<> struct usign<short> {using typ = unsigned short;};
- }
-
- template<typename typ> using sign = typename ::zap::impl::sign<typ>::typ;
-
- template<typename typ> using usign = typename ::zap::impl::usign<typ>::typ;
-}
-
-namespace zap {
- namespace impl {
- template<typename ityp> struct remqual {using typ = ityp;};
-
- template<typename ityp> struct remqual<ityp const> {using typ = ityp;};
- template<typename ityp> struct remqual<ityp volatile> {using typ = ityp;};
- template<typename ityp> struct remqual<ityp const volatile> {using typ = ityp;};
- }
-
- template<typename typ> using remqual = typename ::zap::impl::remqual<typ>::typ;
-}
-
-namespace zap {
- namespace impl {
- template<typename ltyp,typename rtyp> struct typeq {constexpr static bool eq = false;};
-
- template<typename typ> struct typeq<typ,typ> {constexpr static auto eq = true;};
- }
-
- template<typename ltyp,typename rtyp> constexpr auto typeq = ::zap::impl::typeq<ltyp,rtyp>::eq;
-}
-
-namespace zap {
- template<typename typ> constexpr auto ischrtyp =
- ::zap::typeq<typ,char>
- || ::zap::typeq<typ,char16_t>
- || ::zap::typeq<typ,char32_t>
-#if __cpp_char8_t
- || ::zap::typeq<typ,char8_t>
-#endif
- || ::zap::typeq<typ,unsigned char>
- || ::zap::typeq<typ,wchar_t>;
-
- template<typename typ> constexpr auto isflttyp =
- ::zap::typeq<typ,double>
- || ::zap::typeq<typ,float>
- || ::zap::typeq<typ,long double>
-#if __STDCPP_BFLOAT16_T__
- || ::zap::typeq<typ,decltype (0x0.0p0bf16)>
-#endif
-#if __STDCPP_FLOAT128_T__
- || ::zap::typeq<typ,decltype (0x0.0p0f16)>
-#endif
-#if __STDCPP_FLOAT16_T__
- || ::zap::typeq<typ,decltype (0x0.0p0f32)>
-#endif
-#if __STDCPP_FLOAT32_T__
- || ::zap::typeq<typ,decltype (0x0.0p0f64)>
-#endif
-#if __STDCPP_FLOAT64_T__
- || ::zap::typeq<typ,decltype (0x0.0p0f128)>
-#endif
- ;
-
- template<typename typ> constexpr auto isinttyp =
- ::zap::typeq<typ,int>
- || ::zap::typeq<typ,long>
- || ::zap::typeq<typ,long long>
- || ::zap::typeq<typ,short>
- || ::zap::typeq<typ,signed char>
- || ::zap::typeq<typ,unsigned char>
- || ::zap::typeq<typ,unsigned int>
- || ::zap::typeq<typ,unsigned long>
- || ::zap::typeq<typ,unsigned long long>
- || ::zap::typeq<typ,unsigned short>;
-
- template<typename typ> constexpr auto isarithtyp =
- ::zap::isflttyp<typ>
- || ::zap::isinttyp<typ>;
-}
-
-namespace zap {
- using i8 = ::zap_i8;
- using i8s = ::zap_i8s;
-
- using i01 = ::zap_i01;
- using i01s = ::zap_i01s;
-
- using i02 = ::zap_i02;
- using i02s = ::zap_i02s;
-
- using i04 = ::zap_i04;
- using i04s = ::zap_i04s;
-
- using ptr = ::zap_ptr;
- using sz = ::zap_sz;
-
-#if zap_fixflt02
- using f02 = ::zap_f02;
-#endif
-#if zap_fixflt04
- using f04 = ::zap_f04;
-#endif
-}
-
-namespace zap {
- constexpr auto ver = zap_ver;
- constexpr auto bytelen = zap_bytelen;
- constexpr auto nopos = zap_nopos;
-}
-
-namespace zap {
- [[noreturn]] zap_attr_iln inline void trap() noexcept {::zap_trap();}
-
- [[noreturn]] zap_attr_iln inline void unreach() noexcept {zap_unreach();}
-}
-
-#endif
diff --git a/zap/include/zap/math.h b/zap/include/zap/math.h
deleted file mode 100644
index f90116c..0000000
--- a/zap/include/zap/math.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_hdr_math
-#define zap_priv_hdr_math
-
-#include <zap/bs.h>
-
-zap_priv_cdecl
-
-typedef struct {
- signed char lval;
- signed char rval;
-} zap_pairsc;
-
-typedef struct {
- short lval;
- short rval;
-} zap_pairs;
-
-typedef struct {
- int lval;
- int rval;
-} zap_pairi;
-
-typedef struct {
- long lval;
- long rval;
-} zap_pairl;
-
-typedef struct {
- long long lval;
- long long rval;
-} zap_pairll;
-
-zap_attr_nthrw zap_attr_unseq zap_pairsc zap_divmodsc(signed char num,signed char den);
-zap_attr_nthrw zap_attr_unseq zap_pairs zap_divmods( short num,short den);
-zap_attr_nthrw zap_attr_unseq zap_pairi zap_divmodi( int num,int den);
-zap_attr_nthrw zap_attr_unseq zap_pairl zap_divmodl( long num,long den);
-zap_attr_nthrw zap_attr_unseq zap_pairll zap_divmodll(long long num,long long den);
-zap_attr_nthrw zap_attr_unseq zap_pairsc zap_divmodsc(signed char num,signed char den);
-zap_attr_nthrw zap_attr_unseq zap_pairs zap_divmods( short num,short den);
-zap_attr_nthrw zap_attr_unseq zap_pairi zap_divmodi( int num,int den);
-zap_attr_nthrw zap_attr_unseq zap_pairl zap_divmodl( long num,long den);
-zap_attr_nthrw zap_attr_unseq zap_pairll zap_divmodll(long long num,long long den);
-
-zap_attr_nthrw zap_attr_unseq float zap_absf( float val);
-zap_attr_nthrw zap_attr_unseq double zap_absd( double val);
-zap_attr_nthrw zap_attr_unseq long double zap_absld(long double val);
-
-zap_attr_nthrw zap_attr_unseq float zap_cosf( float ang);
-zap_attr_nthrw zap_attr_unseq double zap_cosd( double ang);
-zap_attr_nthrw zap_attr_unseq long double zap_cosld(long double ang);
-
-zap_attr_nthrw zap_attr_unseq float zap_sinf( float ang);
-zap_attr_nthrw zap_attr_unseq double zap_sind( double ang);
-zap_attr_nthrw zap_attr_unseq long double zap_sinld(long double ang);
-
-zap_attr_nthrw zap_attr_unseq float zap_sqrtf( float val);
-zap_attr_nthrw zap_attr_unseq double zap_sqrtd( double val);
-zap_attr_nthrw zap_attr_unseq long double zap_sqrtld(long double val);
-
-zap_attr_nthrw zap_attr_unseq float zap_rootf( float val,float n);
-zap_attr_nthrw zap_attr_unseq double zap_rootd( double val,double n);
-zap_attr_nthrw zap_attr_unseq long double zap_rootld(long double val,long double n);
-
-zap_attr_nthrw zap_attr_unseq float zap_tanf( float ang);
-zap_attr_nthrw zap_attr_unseq double zap_tand( double ang);
-zap_attr_nthrw zap_attr_unseq long double zap_tanld(long double ang);
-
-zap_priv_cdeclend
-
-#endif
diff --git a/zap/include/zap/math.hh b/zap/include/zap/math.hh
deleted file mode 100644
index ae159c8..0000000
--- a/zap/include/zap/math.hh
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_cxxhdr_math
-#define zap_priv_cxxhdr_math
-
-#include <zap/bs.hh>
-#include <zap/math.h>
-
-namespace zap {
- namespace impl {
- template<typename typ> struct inf {constexpr static auto val = ::zap::maxval<typ>;};
-
-#if zap_priv_hasbuiltin(__builtin_huge_valf)
- template<> struct inf<float> {constexpr static auto val = __builtin_huge_valf();};
-#endif
-
-#if zap_priv_hasbuiltin(__builtin_huge_val)
- template<> struct inf<double> {constexpr static auto val = __builtin_huge_val();};
-#endif
-
-#if zap_priv_hasbuiltin(__builtin_huge_vall)
- template<> struct inf<long double> {constexpr static auto val = __builtin_huge_vall();};
-#endif
- }
-
- template<typename typ> constexpr auto inf = ::zap::impl::inf<typ>::val;
-}
-
-namespace zap {
- namespace impl {
- template<typename ityp> struct cpairtyp {using typ = ityp;};
-
- template<> struct cpairtyp<signed char> {using typ = ::zap_pairsc;};
- template<> struct cpairtyp<short> {using typ = ::zap_pairs;};
- template<> struct cpairtyp<int> {using typ = ::zap_pairi;};
- template<> struct cpairtyp<long> {using typ = ::zap_pairl;};
- template<> struct cpairtyp<long long> {using typ = ::zap_pairll;};
- }
-
- template<typename typ> class pair {
- public:
- using cpairtyp = typename ::zap::impl::cpairtyp<typ>::typ;
-
- typ lval;
- typ rval;
-
- constexpr auto cpair() noexcept -> cpairtyp {
- cpairtyp pair;
- pair.lval = this->lval;
- pair.rval = this->rval;
- return pair;
- }
- };
-}
-
-namespace zap {
- template<typename typ> constexpr auto abs(typ const val) noexcept -> ::zap::usign<typ> {
- using newtyp = ::zap::usign<typ>; // If a floating-point type was used, the new type would be identical.
- if (val > typ {0x0}) return static_cast<newtyp>(val);
- return typ {0x0} - static_cast<newtyp>(val);
- }
-
- template<typename typ> constexpr auto divmod(typ const num,typ const den) noexcept -> ::zap::pair<typ> {
- ::zap::pair<typ> pair;
- zap_priv_ulikly (den == 0x0) {
- pair.lval = ::zap::inf<typ>;
- pair.rval = pair.lval;
- return pair;
- }
- for (pair = ::zap::pair<typ> {typ {0x0},num};pair.rval >= den;++pair.lval,pair.rval -= den);
- return pair;
- }
-
- template<typename typ> constexpr auto exp(typ const val,typ const n) noexcept -> typ {
- zap_priv_ulikly (n == typ {0x0}) {
- return typ {0x1};
- }
- zap_priv_ulikly (val == typ {0x0}) {
- return typ {0x0};
- }
- typ exp = val;
- for (typ i = typ {0x1};i < n;++i) exp *= val;
- return exp;
- }
-}
-
-#endif
diff --git a/zap/include/zap/mem.h b/zap/include/zap/mem.h
deleted file mode 100644
index 0364b9d..0000000
--- a/zap/include/zap/mem.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_hdr_mem
-#define zap_priv_hdr_mem
-
-#include <zap/bs.h>
-
-zap_priv_cdecl
-
-typedef struct {
- void * dest;
- void * src;
-} zap_cpret;
-
-zap_attr_nthrw zap_cpret zap_cp( void * zap_restr dest,void const * zap_restr src, zap_sz num);
-zap_attr_nthrw zap_i8 zap_eq( void const * lbuf,void const * rbuf,zap_sz num);
-zap_attr_nthrw void zap_fill(void * dest,unsigned char val, zap_sz num);
-zap_attr_nthrw void * zap_srch(void const * buf, unsigned char val, zap_sz num);
-
-zap_priv_cdeclend
-
-#endif
diff --git a/zap/include/zap/mem.hh b/zap/include/zap/mem.hh
deleted file mode 100644
index b237cbc..0000000
--- a/zap/include/zap/mem.hh
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_cxxhdr_mem
-#define zap_priv_cxxhdr_mem
-
-#include <zap/bs.hh>
-#include <zap/mem.h>
-
-namespace zap {
- template<typename desttyp,typename srctyp> struct cpret {
- desttyp * dest;
- srctyp * src;
- };
-}
-
-namespace zap {
- template<typename desttyp,typename srctyp> zap_attr_iln inline ::zap::cpret<desttyp,srctyp> bytecp(desttyp * zap_restr dest,srctyp const * zap_restr src,::zap::sz const num) noexcept {
- ::zap_cpret const cpret = ::zap_cp(dest,src,num);
-
- return ::zap::cpret<desttyp,srctyp> {.dest = static_cast<desttyp *>(cpret.dest),.src = static_cast<srctyp *>(cpret.src),};
- }
-
- template<typename ltyp,typename rtyp> zap_attr_iln inline bool byteeq(ltyp const * lbuf,rtyp const * rbuf,::zap::sz const num) noexcept {
- return ::zap_eq(lbuf,rbuf,num);
- }
-
- template<typename typ> zap_attr_iln inline void bytefill(typ * dest,unsigned char const val,::zap::sz const num) noexcept {
- ::zap_fill(dest,val,num);
- }
-
- template<typename typ> zap_attr_iln inline typ * bytesrch(typ * buf,unsigned char const val,::zap::sz const num) noexcept {
- return const_cast<typ *>(static_cast<::zap::remqual<typ> *>(::zap_srch(buf,val,num)));
- }
-}
-
-namespace zap {
- template<typename typ> constexpr ::zap::cpret<typ,typ> cp(typ * zap_restr dest,typ const * zap_restr src,::zap::sz const num) noexcept {
- zap_priv_ifnconsteval {return ::zap::bytecp(dest,src,num);}
-
- typ * const zap_restr stop = dest + num;
- while (dest != stop) *dest++ = *src++;
-
- return ::zap::cpret<typ,typ> {.dest = dest,.src = const_cast<typ *>(src),};
- }
-
- template<typename typ> constexpr bool eq(typ const * lbuf,typ const * rbuf,::zap::sz const num) noexcept {
- typ const * const stop = lbuf + num;
-
- while (lbuf != stop) if (*lbuf++ != *rbuf++) return false;
-
- return true;
- }
-
- template<typename typ> constexpr void fill(typ * dest,typ const val,::zap::sz const num) noexcept {
- typ * const stop = dest + num;
-
- while (dest != stop) *dest++ = val;
- }
-
- template<typename typ> constexpr typ * srch(typ * buf,unsigned char const val,::zap::sz const num) noexcept {
- typ const * const stop = buf + num;
-
- while (buf != stop) {
- typ const * addr = buf++;
- if (*addr == val) return addr;
- }
-
- return nullptr;
- }
-}
-
-#endif
diff --git a/zap/include/zap/str.h b/zap/include/zap/str.h
deleted file mode 100644
index a4c75fb..0000000
--- a/zap/include/zap/str.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_hdr_str
-#define zap_priv_hdr_str
-
-#include <zap/bs.h>
-
-zap_priv_cdecl
-
-zap_i8 zap_streq( char const * lstr,char const * rstr);
-zap_sz zap_strlen(char const * str);
-
-zap_sz zap_utf8declen(zap_i8 const * buf);
-zap_sz zap_utf8enclen(zap_i02 const * buf);
-
-void zap_utf8dec( zap_i02 * zap_restr dest,zap_i8 const * zap_restr src);
-void zap_utf8enc( zap_i8 * zap_restr dest,zap_i02 const * zap_restr src);
-void zap_win1252dec(zap_i02 * zap_restr dest,zap_i8 const * zap_restr src);
-void zap_win1252enc(zap_i8 * zap_restr dest,zap_i02 const * zap_restr src);
-
-void zap_fmti( zap_i02 * buf,int val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtl( zap_i02 * buf,long val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtll( zap_i02 * buf,long long val,zap_i8 bs,zap_i8 rtl);
-void zap_fmts( zap_i02 * buf,short val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtsc( zap_i02 * buf,signed char val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtuc( zap_i02 * buf,unsigned char val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtui( zap_i02 * buf,unsigned int val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtul( zap_i02 * buf,unsigned long val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtull(zap_i02 * buf,unsigned long long val,zap_i8 bs,zap_i8 rtl);
-void zap_fmtus( zap_i02 * buf,unsigned short val,zap_i8 bs,zap_i8 rtl);
-
-zap_i8 zap_fmtleni( int val,zap_i8 bs);
-zap_i8 zap_fmtlenl( long val,zap_i8 bs);
-zap_i8 zap_fmtlenll( long long val,zap_i8 bs);
-zap_i8 zap_fmtlens( short val,zap_i8 bs);
-zap_i8 zap_fmtlensc( signed char val,zap_i8 bs);
-zap_i8 zap_fmtlenuc( unsigned char val,zap_i8 bs);
-zap_i8 zap_fmtlenui( unsigned int val,zap_i8 bs);
-zap_i8 zap_fmtlenul( unsigned long val,zap_i8 bs);
-zap_i8 zap_fmtlenull(unsigned long long val,zap_i8 bs);
-zap_i8 zap_fmtlenus( unsigned short val,zap_i8 bs);
-
-zap_priv_cdeclend
-
-#endif
diff --git a/zap/include/zap/str.hh b/zap/include/zap/str.hh
deleted file mode 100644
index 288ca07..0000000
--- a/zap/include/zap/str.hh
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_cxxhdr_str
-#define zap_priv_cxxhdr_str
-
-#include <zap/bs.hh>
-#include <zap/str.h>
-
-namespace zap {
- template<typename typ> constexpr auto streq(typ const * lstr,typ const * rstr) noexcept -> bool {
- static_assert(::zap::ischrtyp<typ>,"Input type must be a character type.");
- for (;;++lstr,++rstr) {
- typ const lchr = *lstr;
- typ const rchr = *rstr;
- if (lchr != rchr) return false;
- if (lchr == typ {0x0}) break;
- }
- return true;
- }
-
- template<typename typ> constexpr auto strlen(typ const * str) noexcept -> ::zap::sz {
- static_assert(::zap::ischrtyp<typ>,"Input type must be a character type.");
- typ const * const start = str;
- while (*str++ != typ {0x0});
- return static_cast<::zap::sz>(str - start) - 0x1u;
- }
-}
-
-#endif
diff --git a/zap/include/zap/sys.d/arch.h b/zap/include/zap/sys.d/arch.h
deleted file mode 100644
index 2abd2b2..0000000
--- a/zap/include/zap/sys.d/arch.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-/*
- arch- macro-------- vendors-----------------------------------
- clang cray gcc icc icx msvc pcc tiny watcom xlc
-
- amd64 __amd64 clang gcc pcc
- amd64 __amd64__ clang gcc pcc
- amd64 __x86_64 clang gcc icc icx pcc
- amd64 __x86_64__ clang gcc icc icx pcc tiny
- amd64 _M_AMD64 icc msvc
- amd64 _M_X64 icc icx msvc
-
- arm __arm clang
- arm __arm__ clang gcc
- arm _M_ARM msvc
-
- arm64 __aarch64__ clang gcc
- arm64 _M_ARM64 msvc
-
- ia32 __386__ watcom
- ia32 __I86__ watcom
- ia32 __X86__ watcom
- ia32 __i386 clang gcc icc icx
- ia32 __i386__ clang gcc icc icx
- ia32 _M_I386 watcom
- ia32 _M_I86 watcom
- ia32 _M_IX86 icc icx msvc watcom
-*/
-
-#if \
- defined(__amd64) \
-|| defined(__amd64__) \
-|| defined(__x86_64) \
-|| defined(__x86_64__) \
-|| defined(_M_AMD64) \
-|| defined(_M_X64)
-#define zap_arch_amd64 (0x1)
-#endif
-
-#if \
- defined(__arm) \
-|| defined(__arm__) \
-|| defined(_M_ARM)
-#define zap_arch_arm (0x1)
-#endif
-
-#if \
- defined(__aarch64__) \
-|| defined(_M_ARM64)
-#define zap_arch_arm64
-#endif
-
-#if \
- defined(__386__) \
-|| defined(__I86__) \
-|| defined(__X86__) \
-|| defined(__i386) \
-|| defined(__i386__) \
-|| defined(_M_I386) \
-|| defined(_M_I86) \
-|| defined(_M_IX86)
-#define zap_arch_ia32
-#endif
diff --git a/zap/include/zap/sys.d/attr.h b/zap/include/zap/sys.d/attr.h
deleted file mode 100644
index 4c4a268..0000000
--- a/zap/include/zap/sys.d/attr.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#if zap_priv_hasattr(__always_inline__)
-#define zap_attr_iln __attribute__ ((__always_inline__))
-#else
-#define zap_attr_iln
-#endif
-
-#if zap_priv_hasattr(__nothrow__)
-#define zap_attr_nthrw __attribute__ ((__nothrow__))
-#elif zap_cmp_msvc
-#define zap_attr_nthrw __declspec (nothrow)
-#else
-#define zap_attr_nthrw
-#endif
-
-#if zap_priv_hasattr(__const__)
-#define zap_attr_unseq __attribute__ ((__const__))
-#elif zap_lang_c23
-#define zap_attr_unseq [[unsequenced]]
-#else
-#define zap_attr_unseq
-#endif
-
-#if zap_priv_hasattr(__unused__)
-#define zap_attr_unuse __attribute__ ((__unused__))
-#elif zap_lang_c23 || zap_lang_cxx11
-#define zap_attr_unuse [[maybe_unused]]
-#else
-#define zap_attr_unuse
-#endif
diff --git a/zap/include/zap/sys.d/cmp.h b/zap/include/zap/sys.d/cmp.h
deleted file mode 100644
index efc6126..0000000
--- a/zap/include/zap/sys.d/cmp.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#if \
- defined(__clang__) \
-|| defined(__llvm__)
-#define zap_cmp_clang (0x1)
-#endif
-
-#if \
- defined(_CRAYC)
-#define zap_cmp_cray (0x1)
-#endif
-
-#if \
- defined(__GNUC__)
-#define zap_cmp_gcc (0x1)
-#endif
-
-#if \
- defined(__EDG__)
-#define zap_cmp_edg (0x1)
-#endif
-
-#if \
- defined(__ICC) \
-|| defined(__ICL) \
-|| defined(__INTEL_COMPILER)
-#define zap_cmp_icc (0x1)
-#endif
-
-#if \
- defined(__INTEL_LLVM_COMPILER)
-#define zap_icx (0x1)
-#endif
-
-#if \
- defined(_MSC_VER)
-#define zap_cmp_msvc (0x1)
-#endif
-
-#if \
- defined(__open_xl__)
-#define zap_cmp_xlc (0x1)
-#endif
-
-#if \
- defined(__VAX11C) \
-|| defined(__VAXC) \
-|| defined(__vax11c) \
-|| defined(__vaxc)
-#define zap_cmp_vsi (0x1)
-#endif
-
-#if \
- defined(__WATCOMC__)
-#define zap_cmp_watcom (0x1)
-#endif
-
-#if \
- defined(__TINYC__)
-#define zap_cmp_tiny (0x1)
-#endif
diff --git a/zap/include/zap/sys.d/lang.h b/zap/include/zap/sys.d/lang.h
deleted file mode 100644
index c7157e5..0000000
--- a/zap/include/zap/sys.d/lang.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifdef __cplusplus
-
-#define zap_lang_cxx89 (0x1)
-
-#if __cplusplus >= 199711
-#define zap_lang_cxx99 (0x1)
-
-#if __cplusplus >= 201103
-#define zap_lang_cxx11 (0x1)
-
-#if __cplusplus >= 201402
-#define zap_lang_cxx14 (0x1)
-
-#if __cplusplus >= 201703
-#define zap_lang_cxx17 (0x1)
-
-#if __cplusplus >= 202002
-#define zap_lang_cxx20 (0x1)
-
-#if __cplusplus > 202002
-#define zap_lang_cxx23 (0x1)
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-
-#else
-
-#define zap_lang_c90 (0x1)
-
-#if __STDC_VERSION__ >= 199409
-#define zap_lang_c95 (0x1)
-
-#if zap_lang_c99
-#define zap_lang_c99 (0x1)
-
-#if __STDC_VERSION__ >= 201112
-#define zap_lang_c11 (0x1)
-
-#if __STDC_VERSION__ >= 201710
-#define zap_lang_c17 (0x1)
-
-#if zap_lang_c23
-#define zap_lang_c23 (0x1)
-
-#endif
-#endif
-#endif
-#endif
-#endif
-
-#endif
diff --git a/zap/include/zap/sys.d/os.h b/zap/include/zap/sys.d/os.h
deleted file mode 100644
index 0a8e85c..0000000
--- a/zap/include/zap/sys.d/os.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-/*
- os------- macro---------- vendors-----------------------------------
- clang cray edg gcc icc icx msvc pcc tiny vsi watcom xlc
-
- aix __HOS_AIX__ clang
- aix __TOS_AIX__ clang
- aix _AIX clang
-
- dos __DOS__ watcom
- dos _DOS watcom
-
- drgnfly __DragonFly__ clang
-
- freebsd __FreeBSD__ clang gcc
-
- hurd __GNU__ clang
- hurd __gnu_hurd__ clang
-
- linux __LINUX__ watcom
- linux __gnu_linux__ clang cray gcc icc icx
- linux __linux clang cray gcc icc icx tiny
- linux __linux__ clang cray gcc icc icx pcc tiny
-
- mac __APPLE__ clang icc
- mac __MACH__ clang icc
-
- minix __minix clang
-
- netbsd __NetBSD__ clang
-
- openbsd __OpenBSD__ clang
-
- os2 __OS2__ watcom
-
- sol __sun clang
- sol __sun__ clang
-
- vms __VMS vsi
- vms __vms vsi
-
- win __WINDOWS__ watcom
- win __WINDOWS_386__ watcom
- win __w64 icc
- win _WIN32 clang edg icc icx msvc
- win _WIN64 clang edg icc icx msvc
- win _WINDOWS watcom
-
-
- unix __UNIX__ watcom
- unix __unix clang gcc icc icx tiny xlc
- unix __unix__ clang gcc icc icx tiny xlc
-*/
-
-#if \
- defined(__HOS_AIX__) \
-|| defined(__TOS_AIX__) \
-|| defined(_AIX)
-#define zap_os_aix (0x1)
-#endif
-
-#if \
- defined(__DragonFly__)
-#define zap_os_drgnfly (0x1)
-#endif
-
-#if \
- defined(__DOS__) \
-|| defined(_DOS)
-#define zap_os_dos (0x1)
-#endif
-
-#if \
- defined(__FreeBSD__)
-#define zap_os_freebsd (0x1)
-#endif
-
-#if \
- defined(__GNU__) \
-|| defined(__gnu_hurd__)
-#define zap_os_hurd (0x1)
-#endif
-
-#if \
- defined(__LINUX__) \
-|| defined(__gnu_linux__) \
-|| defined(__linux) \
-|| defined(__linux__)
-#define zap_os_linux (0x1)
-#endif
-
-#if \
- defined(__APPLE__) \
-|| defined(__MACH__)
-#define zap_os_mac (0x1)
-#endif
-
-#if \
- defined(__minix)
-#define zap_os_minix (0x1)
-#endif
-
-#if \
- defined(__NetBSD__)
-#define zap_os_netbsd (0x1)
-#endif
-
-#if \
- defined(__OpenBSD__)
-#define zap_os_openbsd (0x1)
-#endif
-
-#if \
- defined(__OS2__)
-#define zap_os_os2 (0x1)
-#endif
-
-#if \
- defined(__sun) \
-|| defined(__sun__)
-#define zap_os_sol (0x1)
-#endif
-
-#if \
- defined(__VMS)
-|| defined(__vms)
-#define zap_os_vms (0x1)
-#endif
-
-#if \
- defined(__WINDOWS__) \
-|| defined(__WINDOWS_386__) \
-|| defined(__w64) \
-|| defined(_WIN32) \
-|| defined(_WIN64) \
-|| defined(_WINDOWS)
-#define zap_os_win (0x1)
-#endif
-
-#if \
- zap_os_aix \
-|| zap_os_drgnfly \
-|| zap_os_freebsd \
-|| zap_os_hurd \
-|| zap_os_linux \
-|| zap_os_mac \
-|| zap_os_minix \
-|| zap_os_netbsd \
-|| zap_os_openbsd \
-|| zap_os_sol \
-|| defined(__UNIX__) \
-|| defined(__unix) \
-|| defined(__unix__)
-#define zap_os_unix (0x1)
-#endif
diff --git a/zap/include/zap/sys.h b/zap/include/zap/sys.h
deleted file mode 100644
index 96cfb42..0000000
--- a/zap/include/zap/sys.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_hdr_sys
-#define zap_priv_hdr_sys
-
-/*
- Sources for pre-defined macros:
-
- clang: <https://clang.llvm.org/docs/LanguageExtensions.html#builtin-macros>
- cray: <https://www.serc.iisc.ac.in/serc_web/wp-content/uploads/2019/05/Cray_C_and_C-_Reference_Manual.pdf>
- gcc: <https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html>
- icc: <https://www.intel.com/content/www/us/en/docs/cpp-compiler/developer-guide-reference/2021-8/additional-predefined-macros.html>
- icx: <https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2023-0/additional-predefined-macros.html>
- xlc: <https://www.ibm.com/docs/en/SSRZSMX_17.1.0/pdf/user.pdf>
- msvc: <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros>
- vsi: <https://vmssoftware.com/docs/VSI_C_USER.pdf>
-
- ... as well as my own tests.
-
- We define all of the platform detection macros to the value (1) of the type int.
-*/
-
-#include <zap/sys.d/cmp.h>
-
-#include <zap/sys.d/arch.h>
-#include <zap/sys.d/os.h>
-
-#include <zap/sys.d/lang.h>
-
-#ifdef __cplusplus
-#define zap_priv_cdecl extern "C" {
-#define zap_priv_cdeclend }
-#else
-#define zap_priv_cdecl
-#define zap_priv_cdeclend
-#endif
-
-#ifdef __has_builtin
-#define zap_priv_hasbuiltin(builtin) __has_builtin(builtin)
-#else
-#define zap_priv_hasbuiltin(builtin) (0x0)
-#endif
-
-#ifdef __has_attribute
-#define zap_priv_hasattr(attr) __has_attribute(attr)
-#else
-#define zap_priv_hasattr(attr) (0x0)
-#endif
-
-#if zap_cmp_gcc
-#define zap_restr __restrict__
-#elif zap_cmp_msvc
-#define zap_restr __restrict
-#elif zap_lang_c99
-#define zap_restr restrict
-#else
-#define zap_restr
-#endif
-
-#if zap_priv_hasbuiltin(__builtin_expect)
-#define zap_priv_likly(expr) if (__builtin_expect((expr),0x1))
-#define zap_priv_ulikly(expr) if (__builtin_expect((expr),0x0))
-#elif __cplusplus > 202002
-#define zap_priv_likly(expr) if ((expr)) [[likely]]
-#define zap_priv_ulikly(expr) if ((expr)) [[unlikely]]
-#else
-#define zap_priv_likly(expr) if ((expr))
-#define zap_priv_ulikly(expr) if ((expr))
-#endif
-
-#if zap_lang_cxx89
-#if zap_priv_hasbuiltin(__builtin_is_constant_evaluated)
-#define zap_priv_ifconsteval if (__builtin_is_constant_evaluated())
-#define zap_priv_ifnconsteval if (!__builtin_is_constant_evaluated())
-#elif zap_lang_cxx23
-#define zap_priv_ifconsteval if consteval
-#define zap_priv_ifnconsteval if !consteval
-#else
-#define zap_priv_ifconsteval if (false)
-#define zap_priv_ifnconsteval if (true)
-#endif
-#endif
-
-#if zap_priv_hasattr(__noreturn__)
-#define zap_noret __attribute__ ((__noreturn__))
-#elif zap_cmp_msvc
-#define zap_noret __declspec (noreturn)
-#elif zap_lang_c23 || __cplusplus >= 201103
-#define zap_noret [[noreturn]]
-#elif zap_lang_c99
-#define zap_noret _Noreturn
-#else
-#define zap_noret
-#endif
-
-#include <zap/sys.d/attr.h>
-
-zap_priv_cdecl
-
-unsigned long zap_syscall(unsigned long id,...);
-
-zap_priv_cdeclend
-
-#endif
diff --git a/zap/include/zap/sys.hh b/zap/include/zap/sys.hh
deleted file mode 100644
index 9b210e6..0000000
--- a/zap/include/zap/sys.hh
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2022-2023 Gabriel Jensen.
- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
- If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
-*/
-
-#ifndef zap_priv_cxxhdr_sys
-#define zap_priv_cxxhdr_sys
-
-// C++11: parameter pack
-
-#include <zap/sys.h>
-
-namespace zap {
- template<typename... typs> zap_attr_iln inline unsigned long syscall(unsigned long const id,typs... args) noexcept {return ::zap_syscall(id,args...);}
-}
-
-#endif