Last updated: 10 April, 2002
The FreeBSD C99 & POSIX Conformance Project aims to implement all requirements of the ISO 9899:1999 (C99) and IEEE 1003.1-2001 (POSIX) standards. In cases where aspects of these standards cannot be followed, those aspects will be documented in the c99(7) or posix(7) manuals. It is also an aim of this project to implement regression tests to ensure correctness whenever possible.
All of the initial development will take place in the 5.0-CURRENT branch and hopefully most of the changes will eventually be merged into the 4-STABLE branch. Since this is a rather large project and is being done on a volunteer basis, there is no set schedule.
The project is always looking for additional contributors. If you wish to participate, the best way to find out what is happening is to subscribe to the freebsd-standards mailing list. If you are working on a specific task relating to the project, you should contact mike@FreeBSD.org with a description of the task so that your task can be listed below.
ISO/IEC 9899:1999, also known as C99, is available for purchase in electronic form from the American National Standards Institute, or available from the International Organization for Standardization store in electronic and paper form.
IEEE Std 1003.1-2001 - The free (registration required), online version of POSIX.1-2001 and SUSv3 standard.
Are you Ready For C99? - This article discusses some of the new features in C99.
Most discussion relating to this project takes place on the standards@FreeBSD.org mailing list. To subscribe to the list, send a message to majordomo@FreeBSD.org with "subscribe freebsd-standards" in the body of the text.
Jens Schweikhardt maintains a list with the current status of POSIX Utility Conformance in FreeBSD.
|Document standards conformity level of the API.||26 March 2002|
|Document thread safety and async-cancel safety.||26 March 2002|
|Create c99(7) and posix(7) manuals.||11 December 2001|
|Document in posix(7) that the batch job management utilities are available in the port net/generic-nqs.||11 December 2001|
|Functions and System Calls|
|Implement strerror_r().||Wes Peters||20 December 2001|
|Implement tgamma() based on Lite1's gamma().||Bruce Evans||27 March 2002|
|Add __func__ reporting to assert(3).||Jeroen Ruigrok||27 October 2001|
|Implement imaxabs(), imaxdiv(), llabs(), lldiv().||Mike Barcroft||14 November 2001|
|Implement atoll(), strtoimax(), strtoumax().||Bill Fenner||27 November 2001|
|Implement new C99 format types in printf(3).|| Garrett Wollman,
|30 November 2001|
|Implement new format types in scanf(3).||Bill Fenner||26 October 2001|
|Implement strtof(), strtold().||Alexey Zelkin||20 December 2001|
|Investigate syncing strtod.c with David M. Gay (Lucent)'s sources.||Alexey Zelkin||11 December 2001|
|Implement getgrgid_r(), getgrnam_r().||Wes Peters||20 December 2001|
|Implement getpwnam_r(), getpwuid_r().||Wes Peters||20 December 2001|
|Implement new functions that appear in <complex.h>.||Mark Murray||6 February 2002|
|Implement new conversion specifiers (%j and %z) in printf(9).||Dima Dorfman||5 April 2002|
|Implement new functions that appear in <fenv.h>.||Bill Fenner||14 November 2001|
|Make non thread-safe functions thread-safe.||22 October 2001|
|Make functions async-cancel safe.||22 October 2001|
|Add restrict type-qualifier to functions that require it.||27 October 2001|
|Implement new POSIX format types in printf(3).||30 November 2001|
|Fix prototypes and hide non-conforming portions of header <arpa/inet.h>.||Mike Barcroft||19 February 2002|
|Add exposure control primitives to <sys/cdefs.h> (originally developed by Garrett Wollman).||Mike Barcroft||1 April 2002|
|Implement <sys/_types> to store shared MI types.||Mike Barcroft||1 April 2002|
|Implement header <strings.h>, and work out compatibility issues with header <string.h>.||Mike Barcroft||4 April 2002|
|Implement the <stdint.h> and <inttypes.h> headers.||Mike Barcroft||1 March 2002|
|Implement new types and prototypes in header <complex.h>.||Mark Murray||6 February 2002|
|Hide non-conforming portions, add missing types to <sys/types.h>.||Mike Barcroft||1 April 2002|
|Reduce namespace pollution and add missing typedefs in <unistd.h>||Mike Barcroft||25 March 2002|
|Remove pollution and add missing macros to <netinet/in.h> and <netinet6/in6.h>.||Mike Barcroft||1 April 2002|
|Hide non-conforming portions, add missing types to <sys/un.h>.||Mike Barcroft||1 April 2002|
|Implement the header <fenv.h>.||Bill Fenner||14 November 2001|
|Obtain a copy of Proc. ACM SIGPLAN '90 (required for printf(3) %'f).||Bill Fenner||9 November 2001|
|Add regression test for each function.||17 November 2001|
|Add -o option and base64 decoding to the uudecode utility.||J. Mallett||26 March 2002|
|Add -m option and base64 encoding to the uuencode utility.||J. Mallett||26 March 2002|
|Improve join(1)'s POSIX.1-2001 conformance. (PR: 36072)||Tim Robbins||27 March 2002|
|Require atleast one file argument in paste(1). (PR: 36074)||Tim Robbins||1 April 2002|
|Add -a option to the split utility.||Tim Robbins||1 April 2002|
|Add the -i option to the patch utility.||J. Mallett||9 April 2002|
|Add -r and -t options to the at utility.||Joe Halpin||13 January 2002|
|Add -L option to the pwd utility.||Tim Robbins||4 February 2002|
|Fix exit status of the env(1) utility.||Tim Robbins||20 February 2002|
|Make expr(1) conform to POSIX.1-2001.||Garrett Wollman||24 March 2002|
|Add the -f and -p options to the pr utility. (PR: 36243)||Tim Robbins||31 March 2002|
|Add -n option and resolve other issues in the renice utility. (PR: 36950)|| Peter Avalos,
|10 April 2002|
|Add missing options to the mailx utility.||Mike Heffner||22 December 2001|
|Add the pathchk utility.||Chuck Rouillard||2 January 2002|
|Add -n option to the nice utility.||Peter Avalos||13 January 2002|
|Add the tabs utility. (PR: 36126)||Tim Robbins||25 January 2002|
|Add -I and -L options to the xargs utility.||J. Mallett||27 January 2002|
|Add the -b and -s option to the fold utility. (PR: 36245)||Tim Robbins||31 January 2002|
|Add -m option to the wc utility.||Tim Robbins||1 March 2002|
|Add the -s option to the m4 utility. (PR: 36075)||Tim Robbins||4 February 2002|
|Add -C option to the tr utility.||Tim Robbins||9 February 2002|
|Implement the -m, -p, and -x options in the ls utility.||Kyle Martin||1 March 2002|
|Add missing components to the jobs utility.||Kyle Martin||5 March 2002|
|Add -t option to uuexpand(1) utility. (PR: 35621)||Tim Robbins||18 March 2002|
|Make printf(1) utility conform to POSIX.2 (1992). (PR: 35616)||Tim Robbins||18 March 2002|
|Implement the fuser utility. (PR: 36076)||Tim Robbins||24 March 2002|
|Add the c99 utility (similar to c89). (PR: 36087)||Tim Robbins||24 March 2002|
|Add missing options to the who utility. (PR: 36128)||Tim Robbins||24 March 2002|
|Implement the asa utility. (PR: 36130)||Tim Robbins||24 March 2002|
|Implement the csplit utility. (PR: 36191)||Tim Robbins||24 March 2002|
|Implement the locale and localedef utilities.||Alexey Zelkin||11 December 2001|
|Implement/import the SCCS development utilities: admin, delta, get, prs, rmdel, sact, sccs, unget, val||30 November 2001|
|Add -C and -T options to the ar utility.||30 November 2001|
|Add -L and -P options to the cd utility (shell built-in).||30 November 2001|
|Investigate importing the cflow utility from the ports collection.||30 November 2001|
|Add -p, -v, and -V options to the command utility (shell built-in).||30 November 2001|
|Bring the cp utility up to conformance.||30 November 2001|
|Implement the cxref utility.||30 November 2001|
|Work out conflicting -t option in the df utility.||30 November 2001|
|Document the -n option in the echo utility as being non-POSIX compliant.||30 November 2001|
|Add the -d, -h, and -M options and fix conflicting -i option in the file utility.||30 November 2001|
|Implement the iconv utility.||30 November 2001|
|Implement the -m, -w, and -t options in the lp utility.||30 November 2001|
|Bring the make utility up to conformance.||30 November 2001|
|Add -p option the more utility.||30 November 2001|
|Add the newgrp utility.||30 November 2001|
|Add missing options and resolve conflicting options in the nm utility.||30 November 2001|
|Add the -s, -A, -j, -N, and -t option to the od utility.||30 November 2001|
|Investigate adopting some of the POSIX options in the ps utility.||30 November 2001|
|Add the qsub utility.||30 November 2001|
|Add unimplemented features to the sh utility.||30 November 2001|
| Wide Character/String Support
This area is managed by David E. Cross and Kelly Yancey. Changes to this section should be coordinated through them.
|Implement wcstoimax(), wcstoumax().||11 October 2001|
|Implement wcrtomb().||27 November 2001|
|Not yet started|
|Blocked awaiting completion of another task|
|Work in progress|
The remainder of this page is structured as a reverse-chronological log.3 March 2002
A new status report on the state of the project, covering December and January, has been produced.
The Open Group has announced the completion of SUSv3 and POSIX.1-2001 and the availability of a free, online version of the specification.
A new status report on the current state of the project has been produced.
The IEEE Standards Board has approved the Austin Group Specification as IEEE Std 1003.1.
The project mailing list has been moved from firstname.lastname@example.org to standards@FreeBSD.org.
A status report on the current state of the project has been produced.
This web page was created.
The original layout for this web page was borrowed from the FreeBSD SMPng Project. BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.