Freebsd standards compliance

2009-01-16 Thread Da Rock
I'm just in the middle of researching the core of Freebsd (for want of a
better term) so I can understand how to fix and create software and
drivers. Can people clarify my understanding here?

According to wikipedia Freebsd is only mostly compliant with POSIX, yet
BSD/OS is fully- why would this be?

From what I can tell ANSI C is the standard, and POSIX is an
implementation(?) of that standard (threads, i/o, etc)? Which version of
these standards is Freebsd at- c89, c90, c99, POSIX 1(b,c, etc)?

Excuse my ignorance- for reference I am reading the Developers guidebook
and the architecture book atm :)

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Freebsd standards compliance

2009-01-16 Thread Giorgos Keramidas
On Sat, 17 Jan 2009 10:03:39 +1000, Da Rock rock_on_the_...@comcen.com.au 
wrote:
 According to wikipedia Freebsd is only mostly compliant with POSIX, yet
 BSD/OS is fully- why would this be?

There are parts of FreeBSD that are deliberately BSD compliant instead
of POSIX compliant, because this is how they traditionally worked.  I am
not a standards' expert, so if you want more details it may be better to
ask by email to the freebsd-standards mailing list.

 From what I can tell ANSI C is the standard, and POSIX is an
 implementation(?) of that standard (threads, i/o, etc)? Which version of
 these standards is Freebsd at- c89, c90, c99, POSIX 1(b,c, etc)?

ISO/IEC 9899:1999 is the standard for the C programming language (ANSI C
is a bit ambiguous, because it may refer to an older standard depending
on the context).

This standard has a non-zero intersection with more than one standard of
the IEEE 1003 series (what is commonly referred to as POSIX), but they
are not the same, and it is nto correct to say that one of them is just
an `implementation' of the other.

There is a bit of information about 'c89', 'c90' and 'ANSI C' in the
Texinfo manual of GCC.  It may help clarify some of the terms:

% info '(gcc)'

and look at the ``Language Standards Supported by GCC'' section.

Most of FreeBSD compiles in 'c90' mode.  There are a few parts of the
kernel and userland source that use GCC extensions.  There are also
parts that use C99 features, i.e. (a) declaration of local variables in
the block they are used, instead of the start of a function, (b) the C99
syntax for partially initializing structures, and so on.

Then there are ISO/IEC 9899:1999 features that are not available in the
combination of GCC version and our system libraries.

So you can't really say that the entire FreeBSD source is `at c90' or
`at c99'.

The `FreeBSD C99 and POSIX Comformance Project' is an effort to work on
these issues.  More information is available online at:

http://www.freebsd.org/projects/c99/index.html

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Freebsd standards compliance

2009-01-16 Thread Da Rock
On Sat, 2009-01-17 at 03:21 +0200, Giorgos Keramidas wrote:
 On Sat, 17 Jan 2009 10:03:39 +1000, Da Rock rock_on_the_...@comcen.com.au 
 wrote:
  According to wikipedia Freebsd is only mostly compliant with POSIX, yet
  BSD/OS is fully- why would this be?
 
 There are parts of FreeBSD that are deliberately BSD compliant instead
 of POSIX compliant, because this is how they traditionally worked.  I am
 not a standards' expert, so if you want more details it may be better to
 ask by email to the freebsd-standards mailing list.
 
  From what I can tell ANSI C is the standard, and POSIX is an
  implementation(?) of that standard (threads, i/o, etc)? Which version of
  these standards is Freebsd at- c89, c90, c99, POSIX 1(b,c, etc)?
 
 ISO/IEC 9899:1999 is the standard for the C programming language (ANSI C
 is a bit ambiguous, because it may refer to an older standard depending
 on the context).
 
 This standard has a non-zero intersection with more than one standard of
 the IEEE 1003 series (what is commonly referred to as POSIX), but they
 are not the same, and it is nto correct to say that one of them is just
 an `implementation' of the other.
 
 There is a bit of information about 'c89', 'c90' and 'ANSI C' in the
 Texinfo manual of GCC.  It may help clarify some of the terms:
 
 % info '(gcc)'
 
 and look at the ``Language Standards Supported by GCC'' section.
 
 Most of FreeBSD compiles in 'c90' mode.  There are a few parts of the
 kernel and userland source that use GCC extensions.  There are also
 parts that use C99 features, i.e. (a) declaration of local variables in
 the block they are used, instead of the start of a function, (b) the C99
 syntax for partially initializing structures, and so on.
 
 Then there are ISO/IEC 9899:1999 features that are not available in the
 combination of GCC version and our system libraries.
 
 So you can't really say that the entire FreeBSD source is `at c90' or
 `at c99'.
 
 The `FreeBSD C99 and POSIX Comformance Project' is an effort to work on
 these issues.  More information is available online at:
 
 http://www.freebsd.org/projects/c99/index.html

I'm glad I asked that and got the right answer otherwise I would have
started on the wrong preposition. That clarifies it for me nicely- I'll
have a look into those areas then... knowing my nature I'll probably
come back with a few more questions :P

Thanks

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org