Non-Upwards Compatible Changes Non-Upwards Compatible ChangesVarious diagnostics switched from stdout to stderrI went through the system and found various places where internal diagnostic were being sent to stdout, and switched all these to stderr. As of this release, we try to take a principled stance on the distinction between internal diagnostic output, which doesn't need to be authorized, and other I/O, which does. The diagnostic output destinations are the per-process stderr, and the per-process trace files. With this change, should you run an E program and redirect the process' stdout separately from its stderr, all the output sent to stdout should only have been able to come from components having authority to send such output. By contrast, we can make no authenticity statements regarding output appearing on stderr or in trace files -- all the information here is alleged, and intended purely for human consumption. In particular, components that are considered confined can cause output to show up at these destinations. New featuresCauseway: A message-oriented distributed debuggerIs now ready for trial use! Please give us feedback. Notification on stderr of output sent to a trace fileIn order to have a more-often visible reminder that there is output to look at in a trace file, and in order to know which trace file is associated with which process, now, the first time a process sends output to its trace file, a diagnostic is also printed to that processes' stderr letting you know what trace file you should check for trace output. $ rune ? 3 <- floorDivide(0) # value: <Promise> ***-----------------------*** *** Trace data written to *** '/home/markm/.e/etrace/etrace.2004-11-20T07_21_38.582Z.txt' ***-----------------------*** After the first notice, it traces further output silently ? 3 <- floorDivide(0) # value: <Promise> ? You can hide this -- along with other diagnostics that aren't part of the program's real output -- by redirecting the process' stderr elsewhere. Deprecated featuresResolver#resolveRace/1 is deprecated in favour of Resolver#resolve/2. Given a Resolver r, r.resolveRace(target) should be rewritten as r.resolve(target, false).
|
|||||||||||||||||||
Unless stated otherwise, all text on this page which is either unattributed or by Mark S. Miller is hereby placed in the public domain.
|