diff options
-rw-r--r-- | CHANGELOG.txt | 5 | ||||
-rw-r--r-- | GNUmakefile | 4 | ||||
-rw-r--r-- | test.cc | 120 | ||||
-rw-r--r-- | zap/include/zap/base.h | 12 | ||||
-rw-r--r-- | zap/src/fndbyte.c | 2 | ||||
-rw-r--r-- | zap/src/fndchr.c | 2 | ||||
-rw-r--r-- | zap/src/memcmp.c | 4 | ||||
-rw-r--r-- | zap/src/strcmp.c | 4 | ||||
-rw-r--r-- | zap/src/strdup.c | 2 |
9 files changed, 75 insertions, 80 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index e3e2f73..af69d4d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,8 @@ +| C + +- Fix install target; +- Remove type literals; + | B - memdup: Use sus_unlikely instead of __builtin_expect; diff --git a/GNUmakefile b/GNUmakefile index 5376911..0f24883 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -59,9 +59,9 @@ $(LIB): $(OBJS) ar r $@ $^ install: $(LIB) - mkdir -pm755 $(HDRDIR) + mkdir -pm755 $(HDRDIR)/zap mkdir -pm755 $(LIBDIR) - install -Dm644 zap/include/zap.h $(HDRDIR) + install -Dm644 zap/include/zap/base.h $(HDRDIR)/zap install -Dm755 $(LIB) $(LIBDIR)/$(LIB) clean: @@ -13,54 +13,54 @@ int main(void) { ::std::fprintf(stderr,"fast: %s\n",::zap_fastimpl ? "yes" : "no"); ::std::fprintf(stderr,"\n"); { - constexpr auto arrsz {zap_typlit_usz(0x8)}; - ::std::uint_least64_t arr0[arrsz] {zap_typlit_u40(0x0)}; - ::zap_memfill(arr0,arrsz * sizeof (::std::uint_least64_t),zap_typlit_u8(0x0)); - ::std::fprintf(stderr,"arr0[0]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x0)]); - ::std::fprintf(stderr,"arr0[1]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x1)]); - ::std::fprintf(stderr,"arr0[2]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x2)]); - ::std::fprintf(stderr,"arr0[3]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x3)]); - ::std::fprintf(stderr,"arr0[4]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x4)]); - ::std::fprintf(stderr,"arr0[5]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x5)]); - ::std::fprintf(stderr,"arr0[6]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x6)]); - assert(arr0[zap_typlit_usz(0x0)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x1)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x2)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x3)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x4)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x5)] == zap_typlit_u40(0x0)); - assert(arr0[zap_typlit_usz(0x6)] == zap_typlit_u40(0x0)); - ::zap_memfill(arr0,arrsz * sizeof (::std::uint_least64_t),zap_typlit_u8(0x7F)); - ::std::fprintf(stderr,"arr0[0]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x0)]); - ::std::fprintf(stderr,"arr0[1]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x1)]); - ::std::fprintf(stderr,"arr0[2]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x2)]); - ::std::fprintf(stderr,"arr0[3]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x3)]); - ::std::fprintf(stderr,"arr0[4]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x4)]); - ::std::fprintf(stderr,"arr0[5]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x5)]); - ::std::fprintf(stderr,"arr0[6]: %" PRIX64 "\n",arr0[zap_typlit_usz(0x6)]); - assert(arr0[zap_typlit_usz(0x0)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x1)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x2)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x3)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x4)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x5)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - assert(arr0[zap_typlit_usz(0x6)] == zap_typlit_u40(0x7F7F7F7F7F7F7F7F)); - ::std::uint_least64_t arr1[arrsz] {zap_typlit_u40(0x0)}; + constexpr ::std::size_t arrsz {0x8u}; + ::std::uint_least64_t arr0[arrsz] {0x0u}; + ::zap_memfill(arr0,arrsz * sizeof (::std::uint_least64_t),0x0u); + ::std::fprintf(stderr,"arr0[0]: %" PRIX64 "\n",arr0[0x0u]); + ::std::fprintf(stderr,"arr0[1]: %" PRIX64 "\n",arr0[0x1u]); + ::std::fprintf(stderr,"arr0[2]: %" PRIX64 "\n",arr0[0x2u]); + ::std::fprintf(stderr,"arr0[3]: %" PRIX64 "\n",arr0[0x3u]); + ::std::fprintf(stderr,"arr0[4]: %" PRIX64 "\n",arr0[0x4u]); + ::std::fprintf(stderr,"arr0[5]: %" PRIX64 "\n",arr0[0x5u]); + ::std::fprintf(stderr,"arr0[6]: %" PRIX64 "\n",arr0[0x6u]); + assert(arr0[0x0u] == 0x0u); + assert(arr0[0x1u] == 0x0u); + assert(arr0[0x2u] == 0x0u); + assert(arr0[0x3u] == 0x0u); + assert(arr0[0x4u] == 0x0u); + assert(arr0[0x5u] == 0x0u); + assert(arr0[0x6u] == 0x0u); + ::zap_memfill(arr0,arrsz * sizeof (::std::uint_least64_t),0x7Fu); + ::std::fprintf(stderr,"arr0[0]: %" PRIX64 "\n",arr0[0x0u]); + ::std::fprintf(stderr,"arr0[1]: %" PRIX64 "\n",arr0[0x1u]); + ::std::fprintf(stderr,"arr0[2]: %" PRIX64 "\n",arr0[0x2u]); + ::std::fprintf(stderr,"arr0[3]: %" PRIX64 "\n",arr0[0x3u]); + ::std::fprintf(stderr,"arr0[4]: %" PRIX64 "\n",arr0[0x4u]); + ::std::fprintf(stderr,"arr0[5]: %" PRIX64 "\n",arr0[0x5u]); + ::std::fprintf(stderr,"arr0[6]: %" PRIX64 "\n",arr0[0x6u]); + assert(arr0[0x0u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x1u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x2u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x3u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x4u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x5u] == 0x7F7F7F7F7F7F7F7Fu); + assert(arr0[0x6u] == 0x7F7F7F7F7F7F7F7Fu); + ::std::uint_least64_t arr1[arrsz] {0x0u}; ::zap_memcpy(arr0,arrsz * sizeof (::std::uint_least64_t),arr1); - ::std::fprintf(stderr,"arr1[0]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x0)]); - ::std::fprintf(stderr,"arr1[1]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x1)]); - ::std::fprintf(stderr,"arr1[2]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x2)]); - ::std::fprintf(stderr,"arr1[3]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x3)]); - ::std::fprintf(stderr,"arr1[4]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x4)]); - ::std::fprintf(stderr,"arr1[5]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x5)]); - ::std::fprintf(stderr,"arr1[6]: %" PRIX64 "\n",arr1[zap_typlit_usz(0x6)]); - assert(arr1[zap_typlit_usz(0x0)] == arr0[zap_typlit_usz(0x0)]); - assert(arr1[zap_typlit_usz(0x1)] == arr0[zap_typlit_usz(0x1)]); - assert(arr1[zap_typlit_usz(0x2)] == arr0[zap_typlit_usz(0x2)]); - assert(arr1[zap_typlit_usz(0x3)] == arr0[zap_typlit_usz(0x3)]); - assert(arr1[zap_typlit_usz(0x4)] == arr0[zap_typlit_usz(0x4)]); - assert(arr1[zap_typlit_usz(0x5)] == arr0[zap_typlit_usz(0x5)]); - assert(arr1[zap_typlit_usz(0x6)] == arr0[zap_typlit_usz(0x6)]); + ::std::fprintf(stderr,"arr1[0]: %" PRIX64 "\n",arr1[0x0u]); + ::std::fprintf(stderr,"arr1[1]: %" PRIX64 "\n",arr1[0x1u]); + ::std::fprintf(stderr,"arr1[2]: %" PRIX64 "\n",arr1[0x2u]); + ::std::fprintf(stderr,"arr1[3]: %" PRIX64 "\n",arr1[0x3u]); + ::std::fprintf(stderr,"arr1[4]: %" PRIX64 "\n",arr1[0x4u]); + ::std::fprintf(stderr,"arr1[5]: %" PRIX64 "\n",arr1[0x5u]); + ::std::fprintf(stderr,"arr1[6]: %" PRIX64 "\n",arr1[0x6u]); + assert(arr1[0x0u] == arr0[0x0u]); + assert(arr1[0x1u] == arr0[0x1u]); + assert(arr1[0x2u] == arr0[0x2u]); + assert(arr1[0x3u] == arr0[0x3u]); + assert(arr1[0x4u] == arr0[0x4u]); + assert(arr1[0x5u] == arr0[0x5u]); + assert(arr1[0x6u] == arr0[0x6u]); auto const eq {::zap_memeq(arr1,arrsz,arr0)}; ::std::fprintf(stderr,"eq: %u\n",eq); assert(eq); @@ -71,7 +71,7 @@ int main(void) { ::std::fprintf(stderr,"str: \"%s\"\n",str); auto const strsz {::zap_strlen(str)}; ::std::fprintf(stderr,"strsz: %zX\n",strsz); - assert(strsz == zap_typlit_usz(0x1C)); + assert(strsz == 0x1Cu); } ::std::fprintf(stderr,"\n"); { @@ -83,23 +83,23 @@ int main(void) { ::std::size_t pos1 = ::zap_fndbyte(str,len,(::std::uint_least8_t)' '); ::std::fprintf(stderr,"pos0: %zX\n",pos0); ::std::fprintf(stderr,"pos1: %zX\n",pos1); - assert(pos0 == zap_typlit_usz(0x2)); + assert(pos0 == 0x2u); assert(pos1 == pos0); - str += pos0 + zap_typlit_usz(0x1); + str += pos0 + 0x1u; len = ::zap_strlen(str); pos0 = ::zap_fndchr(str,' '); pos1 = ::zap_fndbyte(str,len,(::std::uint_least8_t)' '); ::std::fprintf(stderr,"pos0: %zX\n",pos0); ::std::fprintf(stderr,"pos1: %zX\n",pos1); - assert(pos0 == zap_typlit_usz(0x2)); + assert(pos0 == 0x2u); assert(pos1 == pos0); - str += pos0 + zap_typlit_usz(0x1); + str += pos0 + 0x1u; len = ::zap_strlen(str); pos0 = ::zap_fndchr(str,' '); pos1 = ::zap_fndbyte(str,len,(::std::uint_least8_t)' '); ::std::fprintf(stderr,"pos0: %zX\n",pos0); ::std::fprintf(stderr,"pos1: %zX\n",pos1); - assert(pos0 == (::std::size_t)-0x1); + assert(pos0 == -0x1u); assert(pos1 == pos0); } ::std::fprintf(stderr,"\n"); @@ -125,7 +125,7 @@ int main(void) { char const str0[] = "What in the world are you doing?"; ::std::fprintf(stderr,"str0: \"%s\"\n",str0); char str1[sizeof (str0)]; - assert(::zap_strcpy(str0,str1) == zap_typlit_usz(0x20)); + assert(::zap_strcpy(str0,str1) == 0x20u); ::std::fprintf(stderr,"str1: \"%s\"\n",str1); assert(::zap_streq(str0,str1)); } @@ -148,12 +148,12 @@ int main(void) { ::std::fprintf(stderr,"cmp3: %i\n",cmp3); ::std::fprintf(stderr,"cmp4: %i\n",cmp4); ::std::fprintf(stderr,"cmp5: %i\n",cmp5); - assert(cmp0 > zap_typlit_s8(0x0)); - assert(cmp1 == zap_typlit_s8(0x0)); - assert(cmp2 < zap_typlit_s8(0x0)); - assert(cmp3 > zap_typlit_s8(0x0)); - assert(cmp4 == zap_typlit_s8(0x0)); - assert(cmp5 < zap_typlit_s8(0x0)); + assert(cmp0 > 0x0); + assert(cmp1 == 0x0); + assert(cmp2 < 0x0); + assert(cmp3 > 0x0); + assert(cmp4 == 0x0); + assert(cmp5 < 0x0); } ::std::fprintf(stderr,"\n"); ::std::fprintf(stderr,"All tests have passed!\n"); diff --git a/zap/include/zap/base.h b/zap/include/zap/base.h index 48e0fb1..f909a45 100644 --- a/zap/include/zap/base.h +++ b/zap/include/zap/base.h @@ -12,17 +12,7 @@ #if !defined(zap_hdr_base) #define zap_hdr_base -#define zap_typlit_s10(_lit) ((int_least16_t)( _lit)) -#define zap_typlit_s20(_lit) ((int_least32_t)( _lit)) -#define zap_typlit_s40(_lit) ((int_least64_t)( _lit)) -#define zap_typlit_s8( _lit) ((int_least8_t)( _lit)) -#define zap_typlit_u10(_lit) ((uint_least16_t)(_lit)) -#define zap_typlit_u20(_lit) ((uint_least32_t)(_lit)) -#define zap_typlit_u40(_lit) ((uint_least64_t)(_lit)) -#define zap_typlit_u8( _lit) ((uint_least8_t)( _lit)) -#define zap_typlit_usz(_lit) ((size_t)( _lit)) - -#define zap_ver zap_typlit_u64(0xB) +#define zap_ver ((uint_Least64_t)0xCu) #if defined(sus_lang_asm) diff --git a/zap/src/fndbyte.c b/zap/src/fndbyte.c index 85fc14d..917aeff 100644 --- a/zap/src/fndbyte.c +++ b/zap/src/fndbyte.c @@ -72,6 +72,6 @@ size_t zap_fndbyte(void const * const _ptr,size_t const _num,uint_least8_t const uint_least8_t const * ptr = (uint_least8_t const *)_ptr; uint_least8_t const * const afterbuf = ptr + _num; for (;ptr != afterbuf;++ptr) {sus_unlikely (*ptr == _byte) {return ptr - (uint_least8_t const *)_ptr;}} - return zap_typlit_usz(-0x1); + return -0x1u; } #endif diff --git a/zap/src/fndchr.c b/zap/src/fndchr.c index cd5458f..6af1b73 100644 --- a/zap/src/fndchr.c +++ b/zap/src/fndchr.c @@ -64,7 +64,7 @@ size_t zap_fndchr(char const * const _str,char const _chr) { for (;;++pos) { char const chr = *pos; sus_unlikely (chr == _chr) {return (size_t)(pos - _str);} - sus_unlikely (chr == '\x0') {return zap_typlit_usz(-0x1);} + sus_unlikely (chr == '\x0') {return -0x1u;} } sus_unreach(); } diff --git a/zap/src/memcmp.c b/zap/src/memcmp.c index 810bab0..31e5161 100644 --- a/zap/src/memcmp.c +++ b/zap/src/memcmp.c @@ -15,7 +15,7 @@ int_least8_t zap_memcmp(void const * const _lstr,size_t const _num,void const * for (;lpos != afterlbuf;++lpos,++rpos) { unsigned char const lbyte = *lpos; unsigned char const rbyte = *rpos; - sus_likely (lbyte != rbyte) {return lbyte < rbyte ? (int_least8_t)INT8_MIN : (int_least8_t)INT8_MAX;} + sus_likely (lbyte != rbyte) {return lbyte < rbyte ? INT8_MIN : INT8_MAX;} } - return zap_typlit_s8(0x0); + return 0x0; } diff --git a/zap/src/strcmp.c b/zap/src/strcmp.c index 9e11601..101f7dc 100644 --- a/zap/src/strcmp.c +++ b/zap/src/strcmp.c @@ -14,8 +14,8 @@ int_least8_t zap_strcmp(char const * const _lstr,char const * const _rstr) { for (;;++lpos,++rpos) { unsigned char const lchr = *lpos; unsigned char const rchr = *rpos; - sus_likely (lchr != rchr) {return lchr < rchr ? (int_least8_t)INT8_MIN : (int_least8_t)INT8_MAX;} - sus_unlikely (lchr == (unsigned char)0x0) {return zap_typlit_s8(0x0);} + sus_likely (lchr != rchr) {return lchr < rchr ? INT8_MIN : INT8_MAX;} + sus_unlikely (lchr == (unsigned char)0x0) {return 0x0;} } sus_unreach(); } diff --git a/zap/src/strdup.c b/zap/src/strdup.c index 785a93b..a7ab6e6 100644 --- a/zap/src/strdup.c +++ b/zap/src/strdup.c @@ -10,7 +10,7 @@ char * zap_strdup(sus_attr_unused char const * const _str) { #if !defined(zap_priv_nostdlib) - return zap_memdup(_str,zap_strlen(_str) + zap_typlit_usz(0x1)); + return zap_memdup(_str,zap_strlen(_str) + 0x1u); #else return NULL; #endif |