diff --git a/default.config b/default.config index 16d1c6b..37c5883 100644 --- a/default.config +++ b/default.config @@ -1,5 +1,5 @@ #!/bin/bash -CONFIG_VERSION=2 +CONFIG_VERSION=3 CBUILD_VERSION=2 PROJECT=kerep @@ -7,7 +7,7 @@ CMP_C=gcc CMP_CPP=g++ STD_C=c11 STD_CPP=c++17 -WARN_C="-Wall -Wno-discarded-qualifiers" +WARN_C="-Wall -Wno-discarded-qualifiers -Wno-int-conversion" WARN_CPP="-Wall" SRC_C="$( find src -name '*.c')" SRC_CPP="$( find src -name '*.cpp')" diff --git a/src/base/cptr.c b/src/base/cptr.c index cba9814..53872cd 100644 --- a/src/base/cptr.c +++ b/src/base/cptr.c @@ -52,7 +52,7 @@ void memcopy(void* from, void* to, uint32 size){ if(from==NULL || to==NULL) throw(ERR_NULLPTR); for(uint32 i=0; i"); } char* toString_bin(char* bytes, uint32 size, bool withPrefix){ diff --git a/src/base/type_system/base_toString.h b/src/base/type_system/base_toString.h index a0ed7ac..5700302 100644 --- a/src/base/type_system/base_toString.h +++ b/src/base/type_system/base_toString.h @@ -8,6 +8,7 @@ extern "C" { // functions for base types char* __toString_char(void* c, uint32 fmt); +char* __toString_charPtr(void* c, uint32 fmt); char* __toString_bool(void* c, uint32 fmt); char* toString_int(int64 n); diff --git a/src/base/type_system/init.c b/src/base/type_system/init.c index 0f1b18b..91f592e 100644 --- a/src/base/type_system/init.c +++ b/src/base/type_system/init.c @@ -22,18 +22,18 @@ void ktDescriptors_initKerepTypes(){ kt_register(int64, ktId_Int64, NULL, __toString_int64); kt_register(uint64, ktId_UInt64, NULL, __toString_uint64); // base type pointers - kt_register(char*, ktId_CharPtr, NULL, __toString_char); - kt_register(bool*, ktId_BoolPtr, NULL, __toString_bool); - kt_register(float32*, ktId_Float32Ptr, NULL, __toString_float32); - kt_register(float64*, ktId_Float64Ptr, NULL, __toString_float64); - kt_register(int8*, ktId_Int8Ptr, NULL, __toString_int8); - kt_register(uint8*, ktId_UInt8Ptr, NULL, __toString_uint8); - kt_register(int16*, ktId_Int16Ptr, NULL, __toString_int16); - kt_register(uint16*, ktId_UInt16Ptr, NULL, __toString_uint16); - kt_register(int32*, ktId_Int32Ptr, NULL, __toString_int32); - kt_register(uint32*, ktId_UInt32Ptr, NULL, __toString_uint32); - kt_register(int64*, ktId_Int64Ptr, NULL, __toString_int64); - kt_register(uint64*, ktId_UInt64Ptr, NULL, __toString_uint64); + kt_register(char*, ktId_CharPtr, NULL, __toString_charPtr); + kt_register(bool*, ktId_BoolPtr, NULL, NULL); + kt_register(float32*, ktId_Float32Ptr, NULL, NULL); + kt_register(float64*, ktId_Float64Ptr, NULL, NULL); + kt_register(int8*, ktId_Int8Ptr, NULL, NULL); + kt_register(uint8*, ktId_UInt8Ptr, NULL, NULL); + kt_register(int16*, ktId_Int16Ptr, NULL, NULL); + kt_register(uint16*, ktId_UInt16Ptr, NULL, NULL); + kt_register(int32*, ktId_Int32Ptr, NULL, NULL); + kt_register(uint32*, ktId_UInt32Ptr, NULL, NULL); + kt_register(int64*, ktId_Int64Ptr, NULL, NULL); + kt_register(uint64*, ktId_UInt64Ptr, NULL, NULL); // ktDescriptor kt_register(ktDescriptor, ktId_ktDescriptor, NULL, NULL); diff --git a/src/base/type_system/kt_functions.c b/src/base/type_system/kt_functions.c index 5d3d014..c3afe91 100644 --- a/src/base/type_system/kt_functions.c +++ b/src/base/type_system/kt_functions.c @@ -71,7 +71,7 @@ void __kt_register(char* name, int16 size, void (*freeMembers)(void*), char* (*t ktDescriptor ktDescriptor_get(ktId id){ if(id>ktId_last) { - printf("\n%u\n",id); + printf("\ntype id: %u\n",id); throw("invalid type id"); } return typeDescriptors[id]; diff --git a/src/kprint/kprint.c b/src/kprint/kprint.c index 28de177..1f1ec21 100644 --- a/src/kprint/kprint.c +++ b/src/kprint/kprint.c @@ -23,7 +23,7 @@ ktId __typeFromFormat(kprint_format f){ } } -Maybe __next_toString(kprint_format f, void* object){ +Maybe __next_toString(kprint_format f, __kprint_value_union* object){ // detecting type ktId typeId=__typeFromFormat(f); if(typeId==-1) @@ -34,19 +34,22 @@ Maybe __next_toString(kprint_format f, void* object){ return SUCCESS(UniHeap(ktId_CharPtr, typeDesc.toString(object, f))); } -Maybe __ksprint(uint8 n, kprint_format* formats, void** objects){ +Maybe __ksprint(uint8 n, kprint_format* formats, __kprint_value_union* objects){ + n/=2; StringBuilder* strb=StringBuilder_create(); for(uint8 i=0; i