FreeBSD C99 & POSIX Conformance Project

Last updated: 10 April, 2002

Project Goal

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.

Project Plan

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.

How to Contribute

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.

Resources and Links Status Board

Task Responsible Last Updated Status
5.0 4.x
Documentation
Document standards conformity level of the API.   26 March 2002 In progress  
Document thread safety and async-cancel safety.   26 March 2002 In progress  
Create c99(7) and posix(7) manuals.   11 December 2001 Not Started  
Document in posix(7) that the batch job management utilities are available in the port net/generic-nqs.   11 December 2001 Not Started  
Functions and System Calls
Implement strerror_r(). Wes Peters 20 December 2001 Done Done
Implement tgamma() based on Lite1's gamma(). Bruce Evans 27 March 2002 Done Not Planned
Add __func__ reporting to assert(3). Jeroen Ruigrok 27 October 2001 Done Not Started
Implement imaxabs(), imaxdiv(), llabs(), lldiv(). Mike Barcroft 14 November 2001 Done Not Started
Implement atoll(), strtoimax(), strtoumax(). Bill Fenner 27 November 2001 Done Not Started
Implement new C99 format types in printf(3). Garrett Wollman,
Bill Fenner
30 November 2001 Done Not Started
Implement new format types in scanf(3). Bill Fenner 26 October 2001 In progress  
Implement strtof(), strtold(). Alexey Zelkin 20 December 2001 In progress  
Investigate syncing strtod.c with David M. Gay (Lucent)'s sources. Alexey Zelkin 11 December 2001 In progress  
Implement getgrgid_r(), getgrnam_r(). Wes Peters 20 December 2001 In progress  
Implement getpwnam_r(), getpwuid_r(). Wes Peters 20 December 2001 In progress  
Implement new functions that appear in <complex.h>. Mark Murray 6 February 2002 In progress  
Implement new conversion specifiers (%j and %z) in printf(9). Dima Dorfman 5 April 2002 In progress  
Implement new functions that appear in <fenv.h>. Bill Fenner 14 November 2001 Not Started  
Make non thread-safe functions thread-safe.   22 October 2001 Not Started  
Make functions async-cancel safe.   22 October 2001 Not Started  
Add restrict type-qualifier to functions that require it.   27 October 2001 Not Started  
Implement new POSIX format types in printf(3).   30 November 2001 Not Started  
Headers
Fix prototypes and hide non-conforming portions of header <arpa/inet.h>. Mike Barcroft 19 February 2002 Done Not Planned
Add exposure control primitives to <sys/cdefs.h> (originally developed by Garrett Wollman). Mike Barcroft 1 April 2002 Done Not Planned
Implement <sys/_types> to store shared MI types. Mike Barcroft 1 April 2002 Done Not Planned
Implement header <strings.h>, and work out compatibility issues with header <string.h>. Mike Barcroft 4 April 2002 Done Not Planned
Implement the <stdint.h> and <inttypes.h> headers. Mike Barcroft 1 March 2002 Done Blocked
Implement new types and prototypes in header <complex.h>. Mark Murray 6 February 2002 In progress  
Hide non-conforming portions, add missing types to <sys/types.h>. Mike Barcroft 1 April 2002 In progress  
Reduce namespace pollution and add missing typedefs in <unistd.h> Mike Barcroft 25 March 2002 In progress  
Remove pollution and add missing macros to <netinet/in.h> and <netinet6/in6.h>. Mike Barcroft 1 April 2002 In progress  
Hide non-conforming portions, add missing types to <sys/un.h>. Mike Barcroft 1 April 2002 In progress  
Implement the header <fenv.h>. Bill Fenner 14 November 2001 Not Started  
Miscellaneous
Obtain a copy of Proc. ACM SIGPLAN '90 (required for printf(3) %'f). Bill Fenner 9 November 2001 Done Not Planned
Add regression test for each function.   17 November 2001 Not Started  
Utility Conformance
Add -o option and base64 decoding to the uudecode utility. J. Mallett 26 March 2002 Done Done
Add -m option and base64 encoding to the uuencode utility. J. Mallett 26 March 2002 Done Done
Improve join(1)'s POSIX.1-2001 conformance. (PR: 36072) Tim Robbins 27 March 2002 Done Not Planned
Require atleast one file argument in paste(1). (PR: 36074) Tim Robbins 1 April 2002 Done Done
Add -a option to the split utility. Tim Robbins 1 April 2002 Done Not Planned
Add the -i option to the patch utility. J. Mallett 9 April 2002 Done Done
Add -r and -t options to the at utility. Joe Halpin 13 January 2002 Done Not Started
Add -L option to the pwd utility. Tim Robbins 4 February 2002 Done Not Started
Fix exit status of the env(1) utility. Tim Robbins 20 February 2002 Done Not Started
Make expr(1) conform to POSIX.1-2001. Garrett Wollman 24 March 2002 Done Not Started
Add the -f and -p options to the pr utility. (PR: 36243) Tim Robbins 31 March 2002 Done Not Started
Add -n option and resolve other issues in the renice utility. (PR: 36950) Peter Avalos,
Maxim Konovalov
10 April 2002 In progress  
Add missing options to the mailx utility. Mike Heffner 22 December 2001 In progress  
Add the pathchk utility. Chuck Rouillard 2 January 2002 In progress  
Add -n option to the nice utility. Peter Avalos 13 January 2002 In progress  
Add the tabs utility. (PR: 36126) Tim Robbins 25 January 2002 In progress  
Add -I and -L options to the xargs utility. J. Mallett 27 January 2002 In progress  
Add the -b and -s option to the fold utility. (PR: 36245) Tim Robbins 31 January 2002 In progress  
Add -m option to the wc utility. Tim Robbins 1 March 2002 Blocked  
Add the -s option to the m4 utility. (PR: 36075) Tim Robbins 4 February 2002 In progress  
Add -C option to the tr utility. Tim Robbins 9 February 2002 In progress  
Implement the -m, -p, and -x options in the ls utility. Kyle Martin 1 March 2002 In progress  
Add missing components to the jobs utility. Kyle Martin 5 March 2002 In progress  
Add -t option to uuexpand(1) utility. (PR: 35621) Tim Robbins 18 March 2002 In progress  
Make printf(1) utility conform to POSIX.2 (1992). (PR: 35616) Tim Robbins 18 March 2002 In progress  
Implement the fuser utility. (PR: 36076) Tim Robbins 24 March 2002 In progress  
Add the c99 utility (similar to c89). (PR: 36087) Tim Robbins 24 March 2002 In progress  
Add missing options to the who utility. (PR: 36128) Tim Robbins 24 March 2002 In progress  
Implement the asa utility. (PR: 36130) Tim Robbins 24 March 2002 In progress  
Implement the csplit utility. (PR: 36191) Tim Robbins 24 March 2002 In progress  
Implement the locale and localedef utilities. Alexey Zelkin 11 December 2001 Not Started  
Implement/import the SCCS development utilities: admin, delta, get, prs, rmdel, sact, sccs, unget, val   30 November 2001 Not Started  
Add -C and -T options to the ar utility.   30 November 2001 Not Started  
Add -L and -P options to the cd utility (shell built-in).   30 November 2001 Not Started  
Investigate importing the cflow utility from the ports collection.   30 November 2001 Not Started  
Add -p, -v, and -V options to the command utility (shell built-in).   30 November 2001 Not Started  
Bring the cp utility up to conformance.   30 November 2001 Not Started  
Implement the cxref utility.   30 November 2001 Not Started  
Work out conflicting -t option in the df utility.   30 November 2001 Not Started  
Document the -n option in the echo utility as being non-POSIX compliant.   30 November 2001 Not Started  
Add the -d, -h, and -M options and fix conflicting -i option in the file utility.   30 November 2001 Not Started  
Implement the iconv utility.   30 November 2001 Not Started  
Implement the -m, -w, and -t options in the lp utility.   30 November 2001 Not Started  
Bring the make utility up to conformance.   30 November 2001 Not Started  
Add -p option the more utility.   30 November 2001 Not Started  
Add the newgrp utility.   30 November 2001 Not Started  
Add missing options and resolve conflicting options in the nm utility.   30 November 2001 Not Started  
Add the -s, -A, -j, -N, and -t option to the od utility.   30 November 2001 Not Started  
Investigate adopting some of the POSIX options in the ps utility.   30 November 2001 Not Started  
Add the qsub utility.   30 November 2001 Not Started  
Add unimplemented features to the sh utility.   30 November 2001 Not Started  
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 Not Started  
Implement wcrtomb().   27 November 2001 Not Started  


Legend
Not Started Not yet started
Blocked Blocked awaiting completion of another task
In progress Work in progress
Done Task completed
Not Planned Not planned

News

The remainder of this page is structured as a reverse-chronological log.

3 March 2002 30 January 2002 14 December 2001 6 December 2001 28 November 2001 19 October 2001 10 October 2001

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.