Reading a line from a file into an array.

This feature allows users to read a line from a file into a 1D rectangular array of type uint(8). One can specify the array index at which to store the line, and whether or not to include the newline. The 'numRead' argument informs the caller how many bytes were read from the file.

This functionality is preferred when dealing with large amounts of binary information, especially if it needs to be modified quickly.
This logic can be simplified.
  arg[i] = got:uint(8);
  if got == newLineChar then break;
...
  if ! inclusive then i -= 1;
  numRead = i - start;
.  The calculation of numRead can be moved back past the end of the for loop.  But depending on the scoping rules in Chapel, you might have to turn the "for" back into a "while" so you can use "i" past the end of the loop.

Together, these changes will give you a performance boost (unless the C compiler is clever enough to do this for you), for these reasons: 
  - Only one conditional inside the body of the loop
  - Unconditional update of the result array.
  - Only one update to numRead.
Moving the "inclusive" test down below the loop means that client code will have to allocate space for the line-end character even if "inclusive == false".  I think that trading space for time here is reasonable.