diff --git a/en/projects/c99/index.sgml b/en/projects/c99/index.sgml index 85da5440b4..06d11a49f7 100644 --- a/en/projects/c99/index.sgml +++ b/en/projects/c99/index.sgml @@ -1,1504 +1,1521 @@ - + %includes; %developers; "> "> "> "> "> assert(3)"> printf(3)"> scanf(3)"> strtod(3)"> printf(9)"> majordomo@FreeBSD.org"> freebsd-standards@FreeBSD.org"> ]> FreeBSD C99 & POSIX Conformance Project FreeBSD C99 & POSIX Conformance Project
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
Create stdint(7) manual to document <stdint.h>. &a.mike; 2 May 2002 &status.wip; &status.blank;
Document standards conformity level of the API.   26 March 2002 &status.wip; &status.blank;
Document thread safety and async-cancel safety.   26 March 2002 &status.wip; &status.blank;
Create c99(7) and posix(7) manuals.   11 December 2001 &status.new; &status.blank;
Document in posix(7) that the batch job management utilities are available in the port net/generic-nqs.   11 December 2001 &status.new; &status.blank;


+ + + + + + + + - - - - - - - - - +
Task Responsible Last Updated Status
5.0 4.x
Functions and System Calls
Implement strerror_r(). &a.wes; 20 December 2001 &status.done; &status.done;
Implement tgamma() based on Lite1's gamma(). &a.bde; 27 March 2002 &status.done; &status.n-a;
Add WCONTINUED to waitpid(2). &a.mike; 1 June 2002 &status.done; &status.n-a;
Implement new conversion specifiers (%j and %n) in &man.printf.9;. &a.dd;
&a.des;
3 June 2002 &status.done; &status.n-a;
Implement fstatvfs() and statvfs() (trivial). &a.wollman; 14 June 2002 &status.done; &status.n-a;
Implement fmtmsg(). &a.mike; 8 August 2002 &status.done; &status.n-a;
Implement ulimit(). &a.mkm; 8 August 2002 &status.done; &status.n-a;
Implement C99's _Exit(). &a.wollman; 11 September 2002 &status.done; &status.n-a;
Add __func__ reporting to &man.assert.3;. &a.asmodai; 27 October 2001 &status.done; &status.new;
Implement imaxabs(), imaxdiv(), llabs(), lldiv(). &a.mike; 14 November 2001 &status.done; &status.new;
Implement atoll(), strtoimax(), strtoumax(). &a.fenner; 27 November 2001 &status.done; &status.new;
Implement new length modifiers (hh, j, t, z) and new flag (') in &man.printf.3;. &a.wollman;,
&a.fenner;
30 November 2001 &status.done; &status.new;
Implement new length modifiers (hh, j, ll, t, z) in &man.scanf.3;. &a.fenner; 20 April 2002 &status.done; &status.new;
Add required options for POSIX.1-2001 to glob(). &a.mikeh; 2 August 2002 &status.done; &status.new;
Implement strtof(), strtold(). &a.phantom; 20 December 2001 &status.wip; &status.blank;
Investigate syncing strtod.c with David M. Gay (Lucent)'s sources. &a.phantom; 11 December 2001 &status.wip; &status.blank;
Implement getgrgid_r(), getgrnam_r(). &a.wes; 20 December 2001 &status.wip; &status.blank;
Implement getpwnam_r(), getpwuid_r(). &a.wes; 20 December 2001 &status.wip; &status.blank;
Implement new functions that appear in <complex.h>. &a.markm; 6 February 2002 &status.wip; &status.blank;
Implement waitid(2). &a.mike; 27 May 2002 &status.wip; &status.blank;
Add floating-point support for the (') modifier in &man.printf.3; &a.phantom; 13 June 2002 &status.wip; &status.blank;
Add new conversion specifiers (%a and %A) to &man.printf.3;. &a.mkm; 13 June 2002 &status.wip; &status.blank;
Implement the utmpx family of functions. &a.robert; 28 June 2002 &status.wip; &status.blank;
Implement ftw() and nftw() in terms of fts(). &a.mkm; 16 August 2002 &status.wip; &status.blank;
Add restrict type-qualifier to functions that require it. &a.robert; 16 August 2002 &status.wip; &status.blank;
Implement qsort_r(). &a.wollman; 9 September 2002 &status.wip; &status.blank;
Implement new functions that appear in <fenv.h>. &a.fenner; 14 November 2001 &status.new; &status.blank;
Make non thread-safe functions thread-safe.   22 October 2001 &status.new; &status.blank;
Make functions async-cancel safe.   22 October 2001 &status.new; &status.blank;
Implement C99 macros fpclassify(), isfinite(), isinf(), isnan(), isnormal(), signbit().   13 April 2002 &status.new; &status.blank;
Implement C99 macros isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), isunordered().   13 April 2002 &status.new; &status.blank;
Implement new hex floating-point format types (%a/%A) in &man.scanf.3;.   20 April 2002 &status.new; &status.blank;
Implement wordexp() and wordfree().   24 April 2002 &status.new; &status.blank;
Implement C99 rounding functions lrint(), lrintf(), lrintl(), llrint(), llrintf(), llrintl().   30 July 2002 &status.new; &status.blank;
Implement posix_madvise(), posix_mem_offset(), posix_typed_mem_get_info(), posix_typed_mem_open(), posix_memalign().   23 August 2002 &status.new; &status.blank;
Implement strtof(), strtold().   9 September 2002 &status.new; &status.blank;
Implement a64l(), l64a(). Obtain a64l(), l64a(), and l64a_r() (extention) from NetBSD.   9 September 2002 &status.new; &status.blank;
Decide whether to implement legacy functions: ecvt(), fcvt(), gcvt().   9 September 2002 &status.new; &status.blank;
Implement grantpt(), posix_openpt(), pts_name(), unlockpt().   9 September 2002 &status.new; &status.blank;


+ + + + + + + + + + + + + + + +
Task Responsible Last Updated Status
5.0 4.x
Headers
Fix prototypes and hide non-conforming portions of header <arpa/inet.h>. &a.mike; 19 February 2002 &status.done; &status.n-a;
Add exposure control primitives to <sys/cdefs.h> (originally developed by &a.wollman). &a.mike; 1 April 2002 &status.done; &status.n-a;
Implement <sys/_types> to store shared MI types. &a.mike; 1 April 2002 &status.done; &status.n-a;
Implement header <strings.h>, and work out compatibility issues with header <string.h>. &a.mike; 4 April 2002 &status.done; &status.n-a;
Hide non-conforming portions, add missing types to <sys/un.h>. &a.mike; 19 April 2002 &status.done; &status.n-a;
Remove pollution and add missing macros to <netinet/in.h> and <netinet6/in6.h>. &a.mike; 23 May 2002 &status.done; &status.n-a;
Hide non-conforming portions of <sys/wait.h>. &a.mike; 3 June 2002 &status.done; &status.n-a;
Hide non-conforming portions of <pwd.h>. &a.mike; 9 June 2002 &status.done; &status.n-a;
Create <sys/statvfs.h> based on POSIX spec. &a.wollman; 14 June 2002 &status.done; &status.n-a;
Add nfds_t and resolve other issues in <poll.h> (actually <sys/poll.h>). &a.mike; 8 July 2002 &status.done; &status.n-a;
Implement the XSI header, <cpio.h>. &a.mike; 1 August 2002 &status.done; &status.n-a;
Implement <fmtmsg.h>. &a.mike; 8 August 2002 &status.done; &status.n-a;
Implement <ulimit.h>. &a.mkm; 8 August 2002 &status.done; &status.n-a;
Merge <machine/ansi.h> and <machine/types> into a new common header <machine/_types.h>. &a.bde;,
&a.mike;
23 August 2002 &status.done; &status.n-a;
Fix namespaces, add missing types in <sys/mman.h>. &a.mike; 29 August 2002 &status.done; &status.n-a;
Fix namespace issues in <ctype.h>. &a.mike; 9 September 2002 &status.done; &status.n-a;
Fix namespace issues in <dlfcn.h>. &a.wollman;,
&a.mike;
11 September 2002 &status.done; &status.n-a;
Implement the <stdint.h> and <inttypes.h> headers. &a.mike; 1 March 2002 &status.done; &status.new;
Implement new types and prototypes in header <complex.h>. &a.markm; 6 February 2002 &status.wip; &status.blank;
Hide non-conforming portions, add missing types to <sys/types.h>. &a.mike; 1 April 2002 &status.wip; &status.blank;
Reduce namespace pollution and add missing typedefs in <unistd.h> &a.mike; 25 March 2002 &status.wip; &status.blank;
Implement <utmpx.h> to eventually replace <utmp.h>. &a.robert; 28 June 2002 &status.wip; &status.blank;
Implement <ftw.h>. &a.mkm; 16 August 2002 &status.wip; &status.blank;
Fix namespaces issues in <stdlib.h>. &a.wollman; 9 September 2002 &status.wip; &status.blank;
Add missing errnos to <errno.h> (actually + <sys/errno.h>). &a.mike; 11 September 2002 &status.wip; &status.blank;
Implement the header <fenv.h>. &a.fenner; 14 November 2001 &status.new; &status.blank;
Implement the header <wordexp.h>.   24 April 2002 &status.new; &status.blank;


Task Responsible Last Updated Status
5.0 4.x
Miscellaneous
Obtain a copy of Proc. ACM SIGPLAN '90 (required for &man.printf.3; %'f). &a.fenner; 9 November 2001 &status.done; &status.n-a;
Upgrade system compiler to GCC 3.1. &a.obrien; 15 May 2002 &status.done; &status.n-a;
Add regression test for each function.   17 November 2001 &status.new; &status.blank;


Task Responsible Last Updated Status
5.0 4.x
Utility Conformance
Add -o option and base64 decoding to the uudecode utility. &a.jmallett; 26 March 2002 &status.done; &status.done;
Add -m option and base64 encoding to the uuencode utility. &a.jmallett; 26 March 2002 &status.done; &status.done;
Require atleast one file argument in paste(1). (PR: 36074) &a.tjr; 1 April 2002 &status.done; &status.done;
Add the -i option to the patch utility. &a.jmallett; 9 April 2002 &status.done; &status.done;
Add -r and -t options to the at utility. &a.joe.halpin; 16 April 2002 &status.done; &status.n-a;
Add the -f and -p options to the pr utility. (PR: 36243) &a.tjr; 16 April 2002 &status.done; &status.done;
Add the -s option to the m4 utility. (PR: 36075) &a.tjr; 24 April 2002 &status.done; &status.done;
Make printf(1) utility conform to POSIX.2 (1992). (PR: 35616) &a.tjr; 2 May 2002 &status.done; &status.done;
Correct output stream and exit status of the mesg(1) utility. &a.tjr; 6 May 2002 &status.done; &status.n-a;
Restore sccs utility from CVS attic. &a.jmallett; 22 May 2002 &status.done; &status.n-a;
Make expr(1) conform to POSIX.1-2001. &a.wollman; 22 May 2002 &status.done; &status.n-a;
Add -L option to the pwd utility. &a.tjr; 20 June 2002 &status.done; &status.done;
Fix exit status of the env(1) utility. &a.tjr; 20 June 2002 &status.done; &status.done;
Add the -b and -s option to the fold utility. (PR: 36245) &a.tjr; 20 June 2002 &status.done; &status.done;
Add -I and -L options to the xargs utility. &a.jmallett; 20 June 2002 &status.done; &status.done;
Implement the csplit utility. (PR: 36191) &a.tjr; 20 June 2002 &status.done; &status.n-a;
Fix exit status of the nice(1) utility. &a.tjr; 20 June 2002 &status.done; &status.done;
Add -n option to the nice utility. &a.pavalos; 20 June 2002 &status.done; &status.done;
Add -n option and resolve other issues in the renice utility. (PR: 36950) &a.pavalos;,
&a.maxim;
20 June 2002 &status.done; &status.done;
Add -t option to unexpand(1) utility. (PR: 35621) &a.tjr; 20 June 2002 &status.done; &status.done;
Make the uniq(1) utility accept `-' as a stdin specifier. &a.tjr; 28 June 2002 &status.done; &status.done;
Improve join(1)'s POSIX.1-2001 conformance. (PR: 36072) &a.tjr; 28 June 2002 &status.done; &status.done;
Implement the -m, -p, and -x options in the ls utility. &a.mkm; 8 July 2002 &status.done; &status.done;
Reimplement the who utility. (PR: 36128) &a.tjr; 14 July 2002 &status.done; &status.done;
Fix exit status, stdout/stderr confusion, and add `-' stdin support to the compress(1) utility. &a.tjr; 17 July 2002 &status.done; &status.done;
Add the -s, -A, -j, -N, and -t options to the od utility. (PR: 36783) &a.tjr; 24 July 2002 &status.done; &status.done;
Add -a option to the split utility. &a.tjr; 30 July 2002 &status.done; &status.done;
Add -m option to the wc utility. &a.tjr; 29 August 2002 &status.done; &status.done;
Implement the asa utility. (PR: 36130) &a.tjr; 15 May 2002 &status.done; &status.new;
Add -L and -P options to the cd utility (shell built-in). &a.tjr; 20 May 2002 &status.done; &status.new;
Add the tabs utility. (PR: 36126) &a.tjr; 20 May 2002 &status.done; &status.new;
Add the pathchk utility. &a.tjr; 22 May 2002 &status.done; &status.new;
Add the newgrp utility. (PR: 36190) &a.tjr; 28 May 2002 &status.done; &status.new;
Fix ctags(1)'s -t option; fix ordering with -x. &a.tjr; 2 June 2002 &status.done; &status.new;
Add -C option to the tr utility. &a.tjr; 28 June 2002 &status.done; &status.new;
Reimplement command(1) (shell built-in). &a.tjr; 20 July 2002 &status.done; &status.new;
Add missing options to the mailx utility. &a.mikeh; 22 December 2001 &status.wip; &status.blank;
Add missing components to the jobs utility. &a.mkm; 5 March 2002 &status.wip; &status.blank;
Implement the fuser utility. (PR: 36076) &a.tjr; 24 March 2002 &status.wip; &status.blank;
Add the c99 utility (similar to c89). (PR: 36087) &a.tjr; 24 March 2002 &status.wip; &status.blank;
Work out conflicting -t option in the df utility. &a.tjr; 22 April 2002 &status.wip; &status.blank;
Add unimplemented features to the sh utility. &a.tjr; 20 May 2002 &status.wip; &status.blank;
Implement the -m, -w, and -t options in the lp utility. &a.gad; 23 May 2002 &status.wip; &status.blank;
Implement/import the SCCS development utilities: admin, delta, get, prs, rmdel, sact, unget, val &a.jmallett; 23 May 2002 &status.wip; &status.blank;
Investigate adopting some of the POSIX options in the ps utility. &a.jmallett; 6 June 2002 &status.wip; &status.blank;
Add missing options and resolve conflicting options in the nm utility. &a.robert; 2 August 2002 &status.wip; &status.blank;
Implement the locale and localedef utilities. &a.phantom; 11 December 2001 &status.new; &status.blank;
Add -C and -T options to the ar utility.   30 November 2001 &status.new; &status.blank;
Investigate importing the cflow utility from the ports collection.   30 November 2001 &status.new; &status.blank;
Add -p, -v, and -V options to the command utility (shell built-in).   30 November 2001 &status.new; &status.blank;
Bring the cp utility up to conformance.   30 November 2001 &status.new; &status.blank;
Implement the cxref utility.   30 November 2001 &status.new; &status.blank;
Document the -n option in the echo utility as being non-POSIX compliant.   30 November 2001 &status.new; &status.blank;
Add the -d, -h, and -M options and fix conflicting -i option in the file utility.   30 November 2001 &status.new; &status.blank;
Implement the iconv utility.   30 November 2001 &status.new; &status.blank;
Bring the make utility up to conformance.   30 November 2001 &status.new; &status.blank;
Add -p option the more utility.   30 November 2001 &status.new; &status.blank;
Add the qsub utility.   30 November 2001 &status.new; &status.blank;
Make printf(1) utility conform to SUSv3.   23 April 2002 &status.new; &status.blank;


Task Responsible Last Updated Status
5.0 4.x
Wide Character/String Support
Implement basic support for wide character I/O: getwc(), fgetwc(), getwchar(), putwc(), fputwc(), putwchar(), ungetwc(), fwide(). &a.tjr; 16 August 2002 &status.done; &status.n-a;
Add stubs for reentrant wc handling functions btowc(), mbrlen(), mbrtowc(), mbsrtowcs(), wcrtomb(), wcsrtombs(), wctob(), wctype(). &a.tjr; 23 August 2002 &status.done; &status.n-a;
Add stubs for reentrant wc handling functions iswalnum(), iswalpha(), iswcntrl(), iswctype(), iswdigit(), iswgraph(), iswlower(), iswprint(), iswpunct(), iswspace(), iswupper(), iswxdigit(). &a.tjr; 23 August 2002 &status.done; &status.n-a;
Implement wcwidth(). &a.keichii; 23 August 2002 &status.done; &status.n-a;
Implement wcswidth(). &a.ache; 23 August 2002 &status.done; &status.n-a;
Implement wcstok(). &a.tjr; 9 September 2002 &status.done; &status.n-a;
Implement wcstol(), wcstoul(). &a.tjr; 9 September 2002 &status.done; &status.n-a;
Implement wcstoimax(), wcstoumax().   11 October 2001 &status.new; &status.blank;
Implement wide character format types (%C, %S, %lc, %ls) in &man.scanf.3;.   20 April 2002 &status.new; &status.blank;
Implement wide character format types (%C, %S, %lc, %ls) in &man.printf.3;.   20 April 2002 &status.new; &status.blank;


Legend
&status.new; Not yet started
&status.blocked; Blocked awaiting completion of another task
&status.wip; Work in progress
&status.done; Task completed
&status.n-a; Not planned

News

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

16 August 2002 1 August 2002 22 May 2002 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.

&footer;