avoid unset ios failure error code message when IO error occur
use boost program options to parse the profiles

the old profile format is still supported for backward compatibility