On 02/15/10 10:16, Stephan Bergmann wrote:
On 02/12/10 17:18, Christian Lippka wrote:
If you change code at one place, you may cause an assertion to
trigger at another place.

Since triggered assertions indicate programming errors, the above sentence is equivalent to "If you change code at one place, you may introduce a programming error, the symptoms of which can be witnessed at another place." One reportedly effective measure against such errors is testing. I think we all know that we need lots of tests, regularly run (with the average developer in the driver's seat, passionately writing and executing tests). The test cleanup project wants to improve things here, and it is by deliberation that the assertion cleanup issue has a later target than test cleanup.

But unlike compiler warnings there
is no way to check the complete office for assertion automaticly.
Therefore assertions will pop up in the master and annoy others,
causing sooner or later that all people use only pro again. FAIL.

Not necessarily. The point is that triggered assertions need to be sufficiently rare. Just like people tolerate the occasional master build breaker, addressed promptly by a masterfix (which you can easily pull into your affected CWS), I would argue that they would also tolerate the occasional assertion abort---fixed promptly by a masterfix, too.

The important point, of course, is that we first need to reach a plateau where triggered assertions *are* sufficiently rare. We need to address the false assertions that do not diagnose programming errors (that the program cannot handle) but rather interesting events (that the program must handle). We need to have sufficient testing in place so that no CWS or MWS can any longer introduce triggered assertions on well-visited code paths.

Therefore assertions will and do pop up in the master. which is
no problem if they get fixed in time. If there is a milestone
that has to many assertions, you can already redirect them
in a window (right after you wrote the author of that assertion
a P1 issue).

This I see differently. First, I believe in the principle of no broken windows. As soon as you tolerate a single ("harmless") triggered assertion (which people can oh so easily work around by clicking it away or redirecting it) you are on your way down the slippery slope. We are already pretty much at the bottom of that hill; once we are at the top, we must make sure to stay there.

Second, in an environment where assertions regularly trigger, automated processes *do* have a hard time coping with them. Automated tests need to have extra complexity to "hide" assertions, Ause manually needs to unlock feedme builds that got stuck with a triggered assertion window from one of the build tools, etc.

If this is still not understandable, I will draw you a flow chart
on monday at your office :-)

Christian, rather than becoming primitive, I would like to ask you the same question I already asked Frank: "[A]ssuming we have somehow reached that land [where assertions trigger rarely, and if they do indicate true programming errors], would you then still have objections against aborting assertions?"


I have an objection against aborting assertions also in that case. If you make the pressure on assertions that high, you will not necessarily get a better code quality. In contrast the result could be that people will simply stop using assertions. That would be a pity and a great loss of information!

Ingrid

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.org
For additional commands, e-mail: dev-h...@openoffice.org




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.org
For additional commands, e-mail: dev-h...@openoffice.org

Reply via email to