Re: Help for my Master thesis

2013-03-30 Thread Oleg Endo
Hello,

On Fri, 2013-03-29 at 20:35 +, Kiefmann Bernhard wrote:
> Dear Ladies and Gentlemen!
> 
> My name is Bernhard Kiefmann and I'm writing my Master's thesis with
> the topic "the suitability of the GNU C compiler used in safety-related
> areas". 

I can imagine that it could be important to differentiate whether the
compiler is just used to compile programs that are subject to safety
constraints, or whether the compiler is part of the runtime system and
is used during runtime (e.g. JIT compilation).

> The first problem with this is that I have to check if the
> compiler met the requirements of the international standard IEC
> 61508:2010. Here I would like to ask you my question as follows:
> 
>   1) What are the rules of the compiler development? 

Basically: Each patch (i.e. modification of the compiler) is tested
using compiler bootsrapping and/or testsuite and then submitted for
review. 

> Are there any diagrams of UML? Because they are a requirement of the standard.

Not in the official GCC repository. (at least not that I know of).

>   2) Are there activities for the Functional Verification?

The testsuite contains test cases with some input (program code) and
expected output.  There are test cases that check whether a piece of
code just compiles, links, runs and produces some expected output or
whether certain instructions are generated on particular targets.

>   3) What procedures and measures for
>- The design and programming guidelines

There is a common coding convention.  The SW design of the compiler is
modified in order to fulfill the needs for new features or improvements.
Some data structures and algorithms are carefully designed or picked to
meet certain performance criteria (e.g. avoiding n^2 algorithms).

>- Dynamic analysis and testing

Occasionally developers use additional tools such as GDB, Valgrind etc
to identify problematic parts in the compiler.

>- Functional testing and black box testing

Testsuite (see above).

>- Ausfall-/Versagensanalyse

I guess you mean failure analysis here.
If somebody detects a problem (e.g. compiler crashes or produces wrong
machine code and the compiled program crashes) this problem is reported
and a reduced test case is derived.  After fixing the issue in the
compiler the test case is added to the testsuite.

>- Performance tests

People run various kinds of benchmarks and post the results to the
mailing lists etc.

>- Modular approach

GCC is split into different modules internally, such as language
front-ends, SSA tree optimizations/transformations, back-ends etc.

> 
> If you have information here for me I would rather help in assessing
> whether the compiler for use in safety-relevant area is suitable. The
> second point of my work is concerned with the treatment of releases.
> Are you putting any kind of evidences in your source-code and how they
> look like? 

What do you mean by putting evidence into the source code regarding
releases?  Like associating a release and the source code that was used
to make the release?  The official GCC is released as source code only.
Versions are tracked with SVN branches.  See also the bottom of this
page: http://gcc.gnu.org/develop.html 

Hope it helps,
Oleg



gcc-4.7-20130330 is now available

2013-03-30 Thread gccadmin
Snapshot gcc-4.7-20130330 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20130330/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.7 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch 
revision 197271

You'll find:

 gcc-4.7-20130330.tar.bz2 Complete GCC

  MD5=1492f9f232464c5f4994913910804376
  SHA1=50ddda32d5230c23c1bcbe9e7c0a497a58db617d

Diffs from 4.7-20130323 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.7
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.