got matrix logging stuff to compile
diff --git a/aos/build/queues/output/message_dec.rb b/aos/build/queues/output/message_dec.rb
index 9ef2a68..59e2f35 100644
--- a/aos/build/queues/output/message_dec.rb
+++ b/aos/build/queues/output/message_dec.rb
@@ -284,9 +284,9 @@
 		f_call.args.dont_wrap = true
 	end
 	def getTypeID()
-		Digest::SHA1.hexdigest(@type)[0..7].to_i(16) |
+		'0x' + ((Digest::SHA1.hexdigest(@type)[0..3].to_i(16) << 16) |
                 0x2000 | # marks it as primitive
-                size
+                size).to_s(16)
 	end
 	def simpleStr()
 		"#{@type} #{@name}"
diff --git a/aos/build/queues/queue_primitives.rb b/aos/build/queues/queue_primitives.rb
index bd91191..2c9594e 100644
--- a/aos/build/queues/queue_primitives.rb
+++ b/aos/build/queues/queue_primitives.rb
@@ -15,17 +15,16 @@
 #include <stdint.h>
 
 namespace aos {
-
-enum class QueuePrimitiveTypes : uint32_t {
+namespace queue_primitive_types {
 #{TypeNames.collect do |name|
   message_element = Target::MessageElement.new(name, 'value')
   statement = MessageElementStmt.new(name, 'value')
   message_element.size = statement.size
   next <<END2
-  #{name}_p = #{message_element.getTypeID()},
+  static const uint32_t #{name}_p = #{message_element.getTypeID()};
 END2
 end.join('')}
-};
+}  // namespace queue_primitive_types
 
 // A class for mapping an actual type to a type ID.
 // There are specializations for all of the actual primitive types.