new system for warnings, by default prints to stderr and can be configured at runtime to emit assert exceptions