Index: import/std/intrinsic.di
===================================================================
--- import/std/intrinsic.di	(revision 429)
+++ import/std/intrinsic.di	(working copy)
@@ -11,8 +11,10 @@
  * License:   Public Domain
  * Authors:   Walter Bright
  */
+
 module std.intrinsic;
 
+nothrow:
 
 /**
  * Scans the bits in v starting with bit 0, looking
@@ -21,9 +23,8 @@
  *      The bit number of the first bit set.
  *      The return value is undefined if v is zero.
  */
-pure nothrow int bsf( uint v );
+pure int bsf(size_t v);
 
-
 /**
  * Scans the bits in v from the most significant bit
  * to the least significant bit, looking
@@ -33,6 +34,7 @@
  *      The return value is undefined if v is zero.
  * Example:
  * ---
+ * import std.stdio;
  * import std.intrinsic;
  *
  * int main()
@@ -42,9 +44,9 @@
  *
  *     v = 0x21;
  *     x = bsf(v);
- *     printf("bsf(x%x) = %d\n", v, x);
+ *     writefln("bsf(x%x) = %d", v, x);
  *     x = bsr(v);
- *     printf("bsr(x%x) = %d\n", v, x);
+ *     writefln("bsr(x%x) = %d", v, x);
  *     return 0;
  * }
  * ---
@@ -52,35 +54,31 @@
  *  bsf(x21) = 0<br>
  *  bsr(x21) = 5
  */
-pure nothrow int bsr( uint v );
+pure int bsr(size_t v);
 
-
 /**
  * Tests the bit.
  */
-pure nothrow int bt( in uint* p, uint bitnum );
+pure int bt(in size_t* p, size_t bitnum);
 
-
 /**
  * Tests and complements the bit.
  */
-nothrow int btc( uint* p, uint bitnum );
+int btc(size_t* p, size_t bitnum);
 
-
 /**
  * Tests and resets (sets to 0) the bit.
  */
-nothrow int btr( uint* p, uint bitnum );
+int btr(size_t* p, size_t bitnum);
 
-
 /**
  * Tests and sets the bit.
  * Params:
- * p = a non-NULL pointer to an array of uints.
+ * p = a non-NULL pointer to an array of size_ts.
  * index = a bit number, starting with bit 0 of p[0],
  * and progressing. It addresses bits like the expression:
 ---
-p[index / (uint.sizeof*8)] & (1 << (index & ((uint.sizeof*8) - 1)))
+p[index / (size_t.sizeof*8)] & (1 << (index & ((size_t.sizeof*8) - 1)))
 ---
  * Returns:
  *      A non-zero value if the bit was set, and a zero
@@ -88,29 +86,30 @@
  *
  * Example:
  * ---
+import std.stdio;
 import std.intrinsic;
 
 int main()
 {
-    uint array[2];
+    size_t array[2];
 
     array[0] = 2;
     array[1] = 0x100;
 
-    printf("btc(array, 35) = %d\n", <b>btc</b>(array, 35));
-    printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]);
+    writefln("btc(array, 35) = %d", <b>btc</b>(array, 35));
+    writefln("array = [0]:x%x, [1]:x%x", array[0], array[1]);
 
-    printf("btc(array, 35) = %d\n", <b>btc</b>(array, 35));
-    printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]);
+    writefln("btc(array, 35) = %d", <b>btc</b>(array, 35));
+    writefln("array = [0]:x%x, [1]:x%x", array[0], array[1]);
 
-    printf("bts(array, 35) = %d\n", <b>bts</b>(array, 35));
-    printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]);
+    writefln("bts(array, 35) = %d", <b>bts</b>(array, 35));
+    writefln("array = [0]:x%x, [1]:x%x", array[0], array[1]);
 
-    printf("btr(array, 35) = %d\n", <b>btr</b>(array, 35));
-    printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]);
+    writefln("btr(array, 35) = %d", <b>btr</b>(array, 35));
+    writefln("array = [0]:x%x, [1]:x%x", array[0], array[1]);
 
-    printf("bt(array, 1) = %d\n", <b>bt</b>(array, 1));
-    printf("array = [0]:x%x, [1]:x%x\n", array[0], array[1]);
+    writefln("bt(array, 1) = %d", <b>bt</b>(array, 1));
+    writefln("array = [0]:x%x, [1]:x%x", array[0], array[1]);
 
     return 0;
 }
@@ -129,48 +128,45 @@
 array = [0]:x2, [1]:x100
 </pre>
  */
-nothrow int bts( uint* p, uint bitnum );
+int bts(size_t* p, size_t bitnum);
 
-
 /**
  * Swaps bytes in a 4 byte uint end-to-end, i.e. byte 0 becomes
  * byte 3, byte 1 becomes byte 2, byte 2 becomes byte 1, byte 3
  * becomes byte 0.
  */
-pure nothrow uint bswap( uint v );
+pure uint bswap(uint v);
 
 
 /**
  * Reads I/O port at port_address.
  */
-nothrow ubyte inp( uint port_address );
+ubyte inp(uint port_address);
 
-
 /**
  * ditto
  */
-nothrow ushort inpw( uint port_address );
+ushort inpw(uint port_address);
 
-
 /**
  * ditto
  */
-nothrow uint inpl( uint port_address );
+uint inpl(uint port_address);
 
 
 /**
  * Writes and returns value to I/O port at port_address.
  */
-nothrow ubyte outp( uint port_address, ubyte value );
+ubyte outp(uint port_address, ubyte value);
 
-
 /**
  * ditto
  */
-nothrow ushort outpw( uint port_address, ushort value );
+ushort outpw(uint port_address, ushort value);
 
-
 /**
  * ditto
  */
-nothrow uint outpl( uint port_address, uint value );
+uint outpl(uint port_address, uint value);
+
+
