Index: trunk/src/stl/assert.cc
===================================================================
--- trunk/src/stl/assert.cc	(revision 376)
+++ trunk/src/stl/assert.cc	(revision 378)
@@ -34,5 +34,8 @@
 }
 #	else
-#include <assert.h>
+extern "C" {
+	extern void __assert_fail(const char *, const char *, unsigned int, const char *)
+		throw() __attribute__ ((__noreturn__));
+}
 #	endif
 void nv_internal_assert( const char * assertion, const char * file, unsigned int line, const char * function )
Index: trunk/src/stl/string.cc
===================================================================
--- trunk/src/stl/string.cc	(revision 376)
+++ trunk/src/stl/string.cc	(revision 378)
@@ -11,4 +11,5 @@
 #include <cstdio>
 #include <cstdlib>
+#include <fstream> // for slurp only
 
 using namespace nv;
@@ -16,4 +17,13 @@
 static const double s_power_10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000,
 10000000, 100000000, 1000000000 };
+
+std::string nv::slurp( const std::string& filename )
+{
+	std::ifstream input( filename );
+	//		if ( !input.is_open() ) NV_THROW( std::runtime_error, "File "+filename+" not found!");
+	std::stringstream sstr;
+	while ( input >> sstr.rdbuf() );
+	return sstr.str();
+}
 
 static inline void string_reverse( char* begin, char* end )
