From dadc8a3baa35bb0d47120321f63fc11fcbf2d79f Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sun, 6 Nov 2011 19:56:47 -0800 Subject: [PATCH] vm: print type names instead of numbers in fep --- vm/debug.cpp | 4 ++-- vm/layouts.hpp | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/vm/debug.cpp b/vm/debug.cpp index ff22770ced..0349e3ff25 100755 --- a/vm/debug.cpp +++ b/vm/debug.cpp @@ -122,8 +122,8 @@ void factor_vm::print_nested_obj(cell obj, fixnum nesting) std::cout << " ]"; break; default: - std::cout << "#(obj).type() << " @ "; - std::cout << std::hex << obj << std::dec << ">"; + std::cout << "#<" << type_name(tagged(obj).type()) << " "; + std::cout << (void*)obj << ">"; break; } } diff --git a/vm/layouts.hpp b/vm/layouts.hpp index 300b819b1f..ebffa644b5 100644 --- a/vm/layouts.hpp +++ b/vm/layouts.hpp @@ -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,