]> gitweb.factorcode.org Git - factor.git/commitdiff
vm: print type names instead of numbers in fep
authorJoe Groff <arcata@gmail.com>
Mon, 7 Nov 2011 03:56:47 +0000 (19:56 -0800)
committerJoe Groff <arcata@gmail.com>
Mon, 7 Nov 2011 04:26:51 +0000 (20:26 -0800)
vm/debug.cpp
vm/layouts.hpp

index ff22770cedc645daa690ed8246e4af9122206c92..0349e3ff25447732acd9e298d1dc4cbf2e7b0099 100755 (executable)
@@ -122,8 +122,8 @@ void factor_vm::print_nested_obj(cell obj, fixnum nesting)
                std::cout << " ]";
                break;
        default:
-               std::cout << "#<type " << tagged<object>(obj).type() << " @ ";
-               std::cout << std::hex << obj << std::dec << ">";
+               std::cout << "#<" << type_name(tagged<object>(obj).type()) << " ";
+               std::cout << (void*)obj << ">";
                break;
        }
 }
index 300b819b1fadcc96d612781959fe0d9220ce1072..ebffa644b571c01e53d5ba1b22f57d6126ee1963 100644 (file)
@@ -56,6 +56,44 @@ static const cell data_alignment = 16;
 
 #define TYPE_COUNT 14
 
+static inline const char *type_name(cell type)
+{
+       switch (type)
+       {
+       case FIXNUM_TYPE:
+               return "fixnum";
+       case F_TYPE:
+               return "f";
+       case ARRAY_TYPE:
+               return "array";
+       case FLOAT_TYPE:
+               return "float";
+       case QUOTATION_TYPE:
+               return "quotation";
+       case BIGNUM_TYPE:
+               return "bignum";
+       case ALIEN_TYPE:
+               return "alien";
+       case TUPLE_TYPE:
+               return "tuple";
+       case WRAPPER_TYPE:
+               return "wrapper";
+       case BYTE_ARRAY_TYPE:
+               return "byte-array";
+       case CALLSTACK_TYPE:
+               return "callstack";
+       case STRING_TYPE:
+               return "string";
+       case WORD_TYPE:
+               return "word";
+       case DLL_TYPE:
+               return "dll";
+       default:
+               assert(false);
+               return "";
+       }
+}
+
 enum code_block_type
 {
        code_block_unoptimized,