From owner-freebsd-questions@FreeBSD.ORG Sat Jan 17 01:21:32 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3A82106564A for ; Sat, 17 Jan 2009 01:21:32 +0000 (UTC) (envelope-from keramida@ceid.upatras.gr) Received: from mx-out.forthnet.gr (mx-out.forthnet.gr [193.92.150.104]) by mx1.freebsd.org (Postfix) with ESMTP id 15EA48FC16 for ; Sat, 17 Jan 2009 01:21:31 +0000 (UTC) (envelope-from keramida@ceid.upatras.gr) Received: from mx-av-05.forthnet.gr (mx-av.forthnet.gr [193.92.150.27]) by mx-out-03.forthnet.gr (8.14.3/8.14.3) with ESMTP id n0H1MSxM022734; Sat, 17 Jan 2009 03:22:28 +0200 Received: from MX-IN-01.forthnet.gr (mx-in-01.forthnet.gr [193.92.150.23]) by mx-av-05.forthnet.gr (8.14.3/8.14.3) with ESMTP id n0H1LQJs009132; Sat, 17 Jan 2009 03:21:26 +0200 Received: from kobe.laptop (adsl145-182.kln.forthnet.gr [195.74.244.182]) by MX-IN-01.forthnet.gr (8.14.3/8.14.3) with ESMTP id n0H1LOK6007969; Sat, 17 Jan 2009 03:21:24 +0200 Authentication-Results: MX-IN-01.forthnet.gr smtp.mail=keramida@ceid.upatras.gr; spf=neutral Authentication-Results: MX-IN-01.forthnet.gr header.from=keramida@ceid.upatras.gr; sender-id=neutral Received: from kobe.laptop (kobe.laptop [127.0.0.1]) by kobe.laptop (8.14.3/8.14.3) with ESMTP id n0H1LNkR004710; Sat, 17 Jan 2009 03:21:23 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Received: (from keramida@localhost) by kobe.laptop (8.14.3/8.14.3/Submit) id n0H1LMGN004709; Sat, 17 Jan 2009 03:21:22 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) From: Giorgos Keramidas To: Da Rock References: <1232150619.1190.36.camel@laptop2.herveybayaustralia.com.au> Date: Sat, 17 Jan 2009 03:21:22 +0200 In-Reply-To: <1232150619.1190.36.camel@laptop2.herveybayaustralia.com.au> (Da Rock's message of "Sat, 17 Jan 2009 10:03:39 +1000") Message-ID: <87primralp.fsf@kobe.laptop> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: freebsd-questions@freebsd.org Subject: Re: Freebsd standards compliance X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jan 2009 01:21:32 -0000 On Sat, 17 Jan 2009 10:03:39 +1000, Da Rock 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