Index: trunk/src/core/logger.cc
===================================================================
--- trunk/src/core/logger.cc	(revision 520)
+++ trunk/src/core/logger.cc	(revision 533)
@@ -144,5 +144,5 @@
 {
 	char stamp[16];
-	size_t ssize = timestamp( stamp );
+	uint32 ssize = timestamp( stamp );
 
 #if NV_COMPILER == NV_MSVC 
@@ -180,5 +180,5 @@
 {
 	char stamp[16];
-	size_t ssize = timestamp( stamp );
+	uint32 ssize = timestamp( stamp );
 #if 0 // NV_PLATFORM == NV_WINDOWS
 	// Turns out WriteFile on Windows is unbuffered and quite slower than fwrite 
@@ -242,5 +242,5 @@
 }
 
-nv::size_t nv::log_sink::timestamp( char* buffer ) const
+nv::uint32 nv::log_sink::timestamp( char* buffer ) const
 {
 	uint32 ms = get_system_ms();
Index: trunk/src/core/profiler.cc
===================================================================
--- trunk/src/core/profiler.cc	(revision 520)
+++ trunk/src/core/profiler.cc	(revision 533)
@@ -109,5 +109,5 @@
 	char buffer[128];
 	snprintf( buffer, 128, "%-23s %6s %6s %9s %6s", "TAG", "%PARNT", "CALLS", "TOTAL(ms)", "AVG(ms)" );
-	NV_LOG_INFO( string_view( buffer, nvstrlen( buffer ) ) );
+	NV_LOG_INFO( string_view( buffer, static_cast< uint32 >( nvstrlen( buffer ) ) ) );
  	log_node_children( 0, m_root );
 	NV_LOG_INFO( "-- PROFILER REPORT END ---------------------------------" );
@@ -131,5 +131,5 @@
 			snprintf( buffer + indent, 128 - indent, "%*.*s %6.2f %6d %9.2f %6.2f", indent - 23, 23 - indent,
 				c->m_tag.data(), pparent, calls, total_ms, avg_ms );
-			NV_LOG_INFO( string_view( buffer, nvstrlen( buffer ) ) );
+			NV_LOG_INFO( string_view( buffer, static_cast< uint32 >( nvstrlen( buffer ) ) ) );
 			if ( c->m_children.size() > 0 )
 			{
Index: trunk/src/core/random.cc
===================================================================
--- trunk/src/core/random.cc	(revision 520)
+++ trunk/src/core/random.cc	(revision 533)
@@ -16,6 +16,6 @@
 static const uint32 mt_matrix_a   = 0x9908B0DFUL;
 
-#define NV_MT_MIXBITS(u, v) ( ( (u) & mt_upper_mask) | ( (v) & mt_lower_mask) )
-#define NV_MT_TWIST(u, v)  ( (NV_MT_MIXBITS(u, v) >> 1) ^ ( (v) & 1UL ? mt_matrix_a : 0UL) )
+#define NV_MT_MIXBITS(u, v) ( uint32( (u) & mt_upper_mask) | uint32( (v) & mt_lower_mask) )
+#define NV_MT_TWIST(u, v)  ( uint32(NV_MT_MIXBITS(u, v) >> uint32(1)) ^ uint32( (v) & uint32(1) ? mt_matrix_a : uint32(0)) )
 
 nv::random& random::get()
@@ -43,12 +43,16 @@
 {
 	uint32 *p = m_state;
-
-	for ( int count = ( mersenne_n - mersenne_m + 1 ); --count; p++ )
+	constexpr int m = mersenne_m;
+	constexpr int n = mersenne_n;
+
+	for ( int count = ( n - m + 1 ); --count; p++ )
 		*p = p[mersenne_m] ^ NV_MT_TWIST( p[0], p[1] );
 
 	for ( int count = mersenne_m; --count; p++ )
-		*p = p[mersenne_m - mersenne_n] ^ NV_MT_TWIST( p[0], p[1] );
-
-	*p = p[mersenne_m - mersenne_n] ^ NV_MT_TWIST( p[0], m_state[0] );
+	{
+		*p = p[m - n] ^ NV_MT_TWIST( p[0], p[1] );
+	}
+
+	*p = p[m - n] ^ NV_MT_TWIST( p[0], m_state[0] );
 
 	m_remaining = mersenne_n;
