From: dpb on
Lynn McGuire wrote:
>> That's the kind of thing I was thinking about; just badly written...
>>
>> I think the option others have suggested of alternate compilers to produce warnings on at least some of these items would be
>> beneficial in the process rather than relying on the crashes to find them.
>
> I was thinking of a perl script to go through and init all local variable
> explicitely for all 5000 sibroutines. Kinda brute force but should get
> the job done.

If you're lucky and there really aren't any that actually do need their
values retained between invocations.

--
From: Louis Krupp on
On 7/10/2010 10:50 AM, Lynn McGuire wrote:
>> That's the kind of thing I was thinking about; just badly written...
>>
>> I think the option others have suggested of alternate compilers to produce warnings on at least some of these items would be
>> beneficial in the process rather than relying on the crashes to find them.
>
> I was thinking of a perl script to go through and init all local variable
> explicitely for all 5000 sibroutines. Kinda brute force but should get
> the job done.

You might want to include some automated testing. Save the current
output in a file, change one subroutine, recompile, rerun, diff the
output with the original. If it looks good, rinse and repeat with
another subroutine, otherwise revert to the original subroutine source
and move on to the next one. Hopefully, you'll be left with n (where n
<< 5000) subroutines which will need some editing by hand.

Louis
From: Lynn McGuire on
>> I was thinking of a perl script to go through and init all local variable
>> explicitely for all 5000 sibroutines. Kinda brute force but should get
>> the job done.
>
> You might want to include some automated testing. Save the current output in a file, change one subroutine, recompile, rerun,
> diff the output with the original. If it looks good, rinse and repeat with another subroutine, otherwise revert to the original
> subroutine source and move on to the next one. Hopefully, you'll be left with n (where n << 5000) subroutines which will need
> some editing by hand.

We have over 600 automated tests that we perform with our software
before we ship any full or patch releases. When you write and sell
commercial software, it is a given.

Thanks,
Lynn


From: Louis Krupp on
On 7/10/2010 2:34 PM, Lynn McGuire wrote:
>>> I was thinking of a perl script to go through and init all local variable
>>> explicitely for all 5000 sibroutines. Kinda brute force but should get
>>> the job done.
>>
>> You might want to include some automated testing. Save the current output in a file, change one subroutine, recompile, rerun,
>> diff the output with the original. If it looks good, rinse and repeat with another subroutine, otherwise revert to the original
>> subroutine source and move on to the next one. Hopefully, you'll be left with n (where n<< 5000) subroutines which will need
>> some editing by hand.
>
> We have over 600 automated tests that we perform with our software
> before we ship any full or patch releases. When you write and sell
> commercial software, it is a given.
>
> Thanks,
> Lynn
>
>

You'd be surprised (or maybe not) at what gets shipped untested.

Now you get to build some or all of those tests into an automated
process to edit part of the source and retest. You could get fancy and
run complete tests only after editing every 100 subroutines or
something. Once you get it set up, you could start it just before you
go home for the day (or weekend) and let it do its thing...

Louis
From: Lynn McGuire on
> You'd be surprised (or maybe not) at what gets shipped untested.

Not really. I've seen a lot in the commercial software arena.

> Now you get to build some or all of those tests into an automated process to edit part of the source and retest. You could get fancy
> and run complete tests only after editing every 100 subroutines or something. Once you get it set up, you could start it just before
> you go home for the day (or weekend) and let it do its thing...

It takes 72 hours to run our tests now. If nothing goes wrong.
And something almost always goes wrong <g>.

Lynn