Index: trunk/src/core/library.cc
===================================================================
--- trunk/src/core/library.cc	(revision 398)
+++ trunk/src/core/library.cc	(revision 399)
@@ -41,5 +41,5 @@
 }
 
-void library::open( string_ref name )
+void library::open( string_view name )
 {
 	m_name.assign( name.data(), name.size() );
@@ -51,5 +51,5 @@
 }
 
-bool nv::library::try_open( string_ref name )
+bool nv::library::try_open( string_view name )
 {
 	m_name.assign( name.data(), name.size() );
@@ -62,7 +62,7 @@
 }
 
-string_ref library::get_name() const
+string_view library::get_name() const
 {
-    return string_ref( m_name );
+    return string_view( m_name );
 }
 
@@ -76,5 +76,5 @@
 
 	std::string name = m_name;
-	string_ref ext( NV_LIB_EXT );
+	string_view ext( NV_LIB_EXT );
 
 	if ( name.length() < ext.length() || name.substr( name.length() - ext.length(), ext.length() ) != ext )
@@ -94,5 +94,5 @@
 }
 
-void* library::get( string_ref symbol )
+void* library::get( string_view symbol )
 {
 	void* result = (void*) NV_LIB_GET( (NV_LIB_HANDLE) m_handle, symbol.data() );
@@ -104,5 +104,5 @@
 }
 
-void* nv::library::try_get( string_ref symbol )
+void* nv::library::try_get( string_view symbol )
 {
 	return (void*) NV_LIB_GET( (NV_LIB_HANDLE) m_handle, symbol.data() );
Index: trunk/src/core/logger.cc
===================================================================
--- trunk/src/core/logger.cc	(revision 398)
+++ trunk/src/core/logger.cc	(revision 399)
@@ -85,5 +85,5 @@
 
 // log function
-void logger::log( log_level level, const string_ref& message )
+void logger::log( log_level level, const string_view& message )
 {
 	for ( auto& sink_info : m_log_sinks )
@@ -141,5 +141,5 @@
 
 // console logging
-void log_console_sink::log( log_level level, const string_ref& message )
+void log_console_sink::log( log_level level, const string_view& message )
 {
 	char stamp[16];
@@ -177,5 +177,5 @@
 
 // handle logging
-void log_handle_sink::log( log_level level, const string_ref& message )
+void log_handle_sink::log( log_level level, const string_view& message )
 {
 	char stamp[16];
@@ -204,5 +204,5 @@
 }
 
-nv::log_file_sink::log_file_sink( const string_ref& file_name, bool flush_always /*= true */ )
+nv::log_file_sink::log_file_sink( const string_view& file_name, bool flush_always /*= true */ )
 	: log_handle_sink( nullptr, flush_always )
 {
@@ -257,12 +257,12 @@
 }
 
-string_ref nv::log_sink::level_name( log_level level ) const
+string_view nv::log_sink::level_name( log_level level ) const
 {
 	return NV_LOG_LEVEL_NAME( level );
 }
 
-string_ref nv::log_sink::padded_level_name( log_level level ) const
-{
-	return string_ref( NV_LOG_LEVEL_NAME_PAD( level ), 8 );
-}
-
+string_view nv::log_sink::padded_level_name( log_level level ) const
+{
+	return string_view( NV_LOG_LEVEL_NAME_PAD( level ), 8 );
+}
+
Index: trunk/src/core/profiler.cc
===================================================================
--- trunk/src/core/profiler.cc	(revision 398)
+++ trunk/src/core/profiler.cc	(revision 399)
@@ -30,5 +30,5 @@
 }
 
-void profiler::start_profile( const string_ref& tag )
+void profiler::start_profile( const string_view& tag )
 {
 	if ( tag != m_current->m_tag )
@@ -47,5 +47,5 @@
 }
 
-profiler::node::node( const string_ref& tag, node* parent )
+profiler::node::node( const string_view& tag, node* parent )
 	: m_tag( tag.to_string() )
 	, m_parent( parent )
@@ -58,5 +58,5 @@
 }
 
-profiler::node* profiler::node::request_child( const string_ref& tag )
+profiler::node* profiler::node::request_child( const string_view& tag )
 {
 	std::string stag( tag.to_string() );
@@ -110,5 +110,5 @@
 	char buffer[128];
 	snprintf( buffer, 128, "%-23s %6s %6s %9s %6s", "TAG", "%PARNT", "CALLS", "TOTAL(ms)", "AVG(ms)" );
-	NV_LOG_INFO( string_ref( buffer, nvstrlen( buffer ) ) );
+	NV_LOG_INFO( string_view( buffer, 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.c_str(), pparent, calls, total_ms, avg_ms );
-			NV_LOG_INFO( string_ref( buffer, nvstrlen( buffer ) ) );
+			NV_LOG_INFO( string_view( buffer, nvstrlen( buffer ) ) );
 			if ( c->m_children.size() > 0 )
 			{
Index: trunk/src/engine/program_manager.cc
===================================================================
--- trunk/src/engine/program_manager.cc	(revision 398)
+++ trunk/src/engine/program_manager.cc	(revision 399)
@@ -37,5 +37,5 @@
 	}
 
-	nv::program program = m_context->get_device()->create_program( string_ref( vsource ), string_ref( fsource ) );
+	nv::program program = m_context->get_device()->create_program( string_view( vsource ), string_view( fsource ) );
 	return add( program );
 }
Index: trunk/src/engine/resource_system.cc
===================================================================
--- trunk/src/engine/resource_system.cc	(revision 398)
+++ trunk/src/engine/resource_system.cc	(revision 399)
@@ -12,5 +12,5 @@
 {
 	m_lua = a_lua_state;
-	lua::register_storage( m_lua, get_storage_name(), string_ref( "register_" + get_resource_name().to_string() ) );
+	lua::register_storage( m_lua, get_storage_name(), string_view( "register_" + get_resource_name().to_string() ) );
 }
 
Index: trunk/src/fmod/fmod_audio.cc
===================================================================
--- trunk/src/fmod/fmod_audio.cc	(revision 398)
+++ trunk/src/fmod/fmod_audio.cc	(revision 399)
@@ -88,5 +88,5 @@
 
 
-nv::sound fmod::audio::load_sound( const string_ref& a_path )
+nv::sound fmod::audio::load_sound( const string_view& a_path )
 {
 	FMOD_SYSTEM* system = (FMOD_SYSTEM*)m_system;
Index: trunk/src/formats/assimp_loader.cc
===================================================================
--- trunk/src/formats/assimp_loader.cc	(revision 398)
+++ trunk/src/formats/assimp_loader.cc	(revision 399)
@@ -237,5 +237,5 @@
 			aiMesh* mesh = scene->mMeshes[mc];
 
-			NV_LOG_NOTICE( "Mesh #", mc, "   - ", string_ref( (char*)mesh->mName.data ) );
+			NV_LOG_NOTICE( "Mesh #", mc, "   - ", string_view( (char*)mesh->mName.data ) );
 			NV_LOG_NOTICE( "  bones   - ", mesh->mNumBones );
 			NV_LOG_NOTICE( "  uvs     - ", mesh->mNumUVComponents[0] );
Index: trunk/src/formats/md3_loader.cc
===================================================================
--- trunk/src/formats/md3_loader.cc	(revision 398)
+++ trunk/src/formats/md3_loader.cc	(revision 399)
@@ -284,5 +284,5 @@
 }
 
-nv::key_raw_channel* nv::md3_loader::load_tags( const string_ref& tag )
+nv::key_raw_channel* nv::md3_loader::load_tags( const string_view& tag )
 {
 	md3_t* md3 = (md3_t*)m_md3;
@@ -294,5 +294,5 @@
 		{
 			const md3_tag_t& rtag = md3->tags[i + md3->header.num_tags * f];
-			string_ref rname((char*)(rtag.name));
+			string_view rname((char*)(rtag.name));
 			if (rname == tag)
 			{
@@ -425,5 +425,5 @@
 	{
 		const md3_tag_t& rtag = md3->tags[i];
-		string_ref name( (char*)(rtag.name) );
+		string_view name( (char*)(rtag.name) );
 
 		nodes[i].transform = mat4();
Index: trunk/src/formats/md5_loader.cc
===================================================================
--- trunk/src/formats/md5_loader.cc	(revision 398)
+++ trunk/src/formats/md5_loader.cc	(revision 399)
@@ -457,5 +457,5 @@
 }
 
-void md5_loader::build_frame_skeleton( mesh_node_data* nodes, uint32 index, const const_array_ref<md5_joint_info>& joint_infos, const const_array_ref<transform>& base_frames, const const_array_ref<float>& frame_data )
+void md5_loader::build_frame_skeleton( mesh_node_data* nodes, uint32 index, const array_view<md5_joint_info>& joint_infos, const array_view<transform>& base_frames, const array_view<float>& frame_data )
 {
 	assert( m_type == ANIMATION );
Index: trunk/src/formats/nmd_loader.cc
===================================================================
--- trunk/src/formats/nmd_loader.cc	(revision 398)
+++ trunk/src/formats/nmd_loader.cc	(revision 399)
@@ -162,5 +162,5 @@
 static void nmd_dump_mesh( const mesh_data* mesh, stream& stream_out )
 {
-	const_array_ref< mesh_raw_channel* > data  = mesh->get_raw_channels();
+	array_view< mesh_raw_channel* > data  = mesh->get_raw_channels();
 
 	uint32 size = sizeof( nmd_element_header );
Index: trunk/src/gfx/texture_font.cc
===================================================================
--- trunk/src/gfx/texture_font.cc	(revision 398)
+++ trunk/src/gfx/texture_font.cc	(revision 399)
@@ -92,5 +92,5 @@
 }
 
-bool texture_font::load_glyphs( string_ref codes )
+bool texture_font::load_glyphs( string_view codes )
 {
 	FT_Face face = (FT_Face)(m_rface);
Index: trunk/src/gl/gl_device.cc
===================================================================
--- trunk/src/gl/gl_device.cc	(revision 398)
+++ trunk/src/gl/gl_device.cc	(revision 399)
@@ -24,5 +24,5 @@
 }
 
-program gl_device::create_program( string_ref vs_source, string_ref fs_source )
+program gl_device::create_program( string_view vs_source, string_view fs_source )
 {
 	program result = m_programs.create();
@@ -41,5 +41,5 @@
 // this is a temporary function that will be removed once we find a way to 
 // pass binary file data around
-image_data* gl_device::create_image_data( string_ref filename )
+image_data* gl_device::create_image_data( string_view filename )
 {
 	load_sdl_image_library();
@@ -264,5 +264,5 @@
 }
 
-bool nv::gl_device::compile( gl_program_info* p, string_ref vertex_program, string_ref fragment_program )
+bool nv::gl_device::compile( gl_program_info* p, string_view vertex_program, string_view fragment_program )
 {
 	if (!compile( GL_VERTEX_SHADER,   vertex_program, p->glidv ))   { return false; }
@@ -407,5 +407,5 @@
 }
 
-bool nv::gl_device::compile( uint32 sh_type, string_ref shader_code, unsigned& glid )
+bool nv::gl_device::compile( uint32 sh_type, string_view shader_code, unsigned& glid )
 {
 	glid = glCreateShader( sh_type );
Index: trunk/src/lua/lua_nova.cc
===================================================================
--- trunk/src/lua/lua_nova.cc	(revision 398)
+++ trunk/src/lua/lua_nova.cc	(revision 399)
@@ -810,5 +810,5 @@
 }
 
-void nv::lua::register_storage( state* a_state, string_ref name, string_ref constructor_name )
+void nv::lua::register_storage( state* a_state, string_view name, string_view constructor_name )
 {
 	// TODO: error checking
Index: trunk/src/lua/lua_path.cc
===================================================================
--- trunk/src/lua/lua_path.cc	(revision 398)
+++ trunk/src/lua/lua_path.cc	(revision 399)
@@ -14,9 +14,9 @@
 {
 	if ( m_elements[0].length == 0 || m_elements[0].str == nullptr ) return;
-	string_ref spath( m_elements[0].str, m_elements[0].length );
+	string_view spath( m_elements[0].str, m_elements[0].length );
 	m_count = 0;
 	size_t point = spath.find( '.' );
 
-	while ( point != string_ref::npos )
+	while ( point != string_view::npos )
 	{
 		m_elements[m_count].str    = spath.data();
@@ -39,5 +39,5 @@
 }
 
-void nv::lua::path::push( string_ref p )
+void nv::lua::path::push( string_view p )
 {
 	m_elements[ m_count ].str    = p.data();
Index: trunk/src/lua/lua_state.cc
===================================================================
--- trunk/src/lua/lua_state.cc	(revision 398)
+++ trunk/src/lua/lua_state.cc	(revision 399)
@@ -80,5 +80,5 @@
 }
 
-void lua::state_wrapper::register_native_function( lfunction f, string_ref name )
+void lua::state_wrapper::register_native_function( lfunction f, string_view name )
 {
 	if ( m_global ) push_global_table();
@@ -171,5 +171,5 @@
 }
 
-bool lua::table_guard::has_field( string_ref element )
+bool lua::table_guard::has_field( string_view element )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -179,5 +179,5 @@
 }
 
-std::string lua::table_guard::get_std_string( string_ref element, string_ref defval /*= string_ref() */ )
+std::string lua::table_guard::get_std_string( string_view element, string_view defval /*= string_view() */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -198,5 +198,5 @@
 }
 
-const_string lua::table_guard::get_string( string_ref element, string_ref defval /*= string_ref() */ )
+const_string lua::table_guard::get_string( string_view element, string_view defval /*= string_view() */ )
 {
  	lua_getfield( m_state, -1, element.data() );
@@ -217,5 +217,5 @@
 }
 
-char lua::table_guard::get_char( string_ref element, char defval /*= "" */ )
+char lua::table_guard::get_char( string_view element, char defval /*= "" */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -225,5 +225,5 @@
 }
 
-int lua::table_guard::get_integer( string_ref element, int defval /*= "" */ )
+int lua::table_guard::get_integer( string_view element, int defval /*= "" */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -233,5 +233,5 @@
 }
 
-unsigned lua::table_guard::get_unsigned( string_ref element, unsigned defval /*= "" */ )
+unsigned lua::table_guard::get_unsigned( string_view element, unsigned defval /*= "" */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -241,5 +241,5 @@
 }
 
-double lua::table_guard::get_double( string_ref element, double defval /*= "" */ )
+double lua::table_guard::get_double( string_view element, double defval /*= "" */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -250,5 +250,5 @@
 
 
-float nv::lua::table_guard::get_float( string_ref element, float defval /*= 0.0 */ )
+float nv::lua::table_guard::get_float( string_view element, float defval /*= 0.0 */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -258,5 +258,5 @@
 }
 
-bool lua::table_guard::get_boolean( string_ref element, bool defval /*= "" */ )
+bool lua::table_guard::get_boolean( string_view element, bool defval /*= "" */ )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -266,5 +266,5 @@
 }
 
-bool nv::lua::table_guard::is_table( string_ref element )
+bool nv::lua::table_guard::is_table( string_view element )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -274,5 +274,5 @@
 }
 
-bool nv::lua::table_guard::is_number( string_ref element )
+bool nv::lua::table_guard::is_number( string_view element )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -282,5 +282,5 @@
 }
 
-bool nv::lua::table_guard::is_boolean( string_ref element )
+bool nv::lua::table_guard::is_boolean( string_view element )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -290,5 +290,5 @@
 }
 
-bool nv::lua::table_guard::is_string( string_ref element )
+bool nv::lua::table_guard::is_string( string_view element )
 {
 	lua_getfield( m_state, -1, element.data() );
@@ -350,5 +350,5 @@
 }
 
-int lua::state::load_string( string_ref code, string_ref name )
+int lua::state::load_string( string_view code, string_view name )
 {
 	NV_LOG_TRACE( "Loading Lua string '", name, "'");
@@ -356,5 +356,5 @@
 }
 
-int lua::state::load_file( string_ref filename )
+int lua::state::load_file( string_view filename )
 {
 	NV_LOG_NOTICE( "Loading Lua file '", filename, "'");
@@ -362,5 +362,5 @@
 }
 
-bool lua::state::do_string( string_ref code, string_ref name, int rvalues )
+bool lua::state::do_string( string_view code, string_view name, int rvalues )
 {
 	lua::stack_guard( this );
@@ -374,5 +374,5 @@
 }
 
-bool lua::state::do_file( string_ref filename )
+bool lua::state::do_file( string_view filename )
 {
 	lua::stack_guard( this );
@@ -386,5 +386,5 @@
 }
 
-int lua::state::do_current( string_ref name, int rvalues )
+int lua::state::do_current( string_view name, int rvalues )
 {
 	int result = lua_pcall(m_state, 0, rvalues, 0);
@@ -417,5 +417,5 @@
 }
 
-lua::ref lua::state::register_object( void* o, string_ref lua_name )
+lua::ref lua::state::register_object( void* o, string_view lua_name )
 {
 	if ( o == nullptr ) return lua::ref( lua::ref::none );
@@ -430,5 +430,5 @@
 }
 
-lua::ref lua::state::register_proto( string_ref id, string_ref storage )
+lua::ref lua::state::register_proto( string_view id, string_view storage )
 {
 	stack_guard guard( this );
@@ -446,5 +446,5 @@
 }
 
-void lua::state::register_native_object_method( string_ref lua_name, string_ref name, lfunction f )
+void lua::state::register_native_object_method( string_view lua_name, string_view name, lfunction f )
 {
 	stack_guard guard( this );
@@ -508,5 +508,5 @@
 }
 
-void nv::lua::state::store_metadata( ref object_index, string_ref metaname, void* pointer )
+void nv::lua::state::store_metadata( ref object_index, string_view metaname, void* pointer )
 {
 	if ( !object_index.is_valid() ) return;
@@ -518,5 +518,5 @@
 }
 
-void nv::lua::state::register_enum( string_ref name, int value )
+void nv::lua::state::register_enum( string_view name, int value )
 {
 	lua_pushinteger( m_state, value );
@@ -524,5 +524,5 @@
 }
 
-nv::lua::ref nv::lua::state::register_handle_component_impl( string_ref id, bool empty )
+nv::lua::ref nv::lua::state::register_handle_component_impl( string_view id, bool empty )
 {
 	int args = empty ? 1 : 2;
@@ -547,5 +547,5 @@
 }
 
-void nv::lua::state::unregister_handle_component_impl( string_ref id )
+void nv::lua::state::unregister_handle_component_impl( string_view id )
 {
 	NV_LUA_STACK_ASSERT( m_state, -1 );
@@ -562,5 +562,5 @@
 }
 
-void nv::lua::state::register_singleton( string_ref name, void* o )
+void nv::lua::state::register_singleton( string_view name, void* o )
 {
 	if ( o == nullptr ) return;
Index: trunk/src/lua/lua_values.cc
===================================================================
--- trunk/src/lua/lua_values.cc	(revision 398)
+++ trunk/src/lua/lua_values.cc	(revision 399)
@@ -75,5 +75,5 @@
 }
 
-void nv::lua::detail::push_string_ref( lua_State *L, string_ref s )
+void nv::lua::detail::push_string_view( lua_State *L, string_view s )
 {
 	lua_pushlstring( L, s.data(), s.size() );
@@ -123,9 +123,9 @@
 }
 
-nv::string_ref nv::lua::detail::to_string_ref( lua_State *L, int index )
+nv::string_view nv::lua::detail::to_string_view( lua_State *L, int index )
 {
 	size_t length = 0;
 	const char* result = lua_tolstring( L, index, &length );
-	return string_ref( result, length );
+	return string_view( result, length );
 }
 
Index: trunk/src/sdl/sdl_audio.cc
===================================================================
--- trunk/src/sdl/sdl_audio.cc	(revision 398)
+++ trunk/src/sdl/sdl_audio.cc	(revision 399)
@@ -85,5 +85,5 @@
 }
 
-nv::sound nv::sdl::audio::load_sound( const string_ref& a_path )
+nv::sound nv::sdl::audio::load_sound( const string_view& a_path )
 {
 	// TODO: this is a really weird error - if we remove this check, all hell gets loose
