From owner-freebsd-standards@FreeBSD.ORG Mon Apr 19 08:22:50 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6668716A4CE; Mon, 19 Apr 2004 08:22:50 -0700 (PDT) Received: from meitner.wh.uni-dortmund.de (meitner.wh.Uni-Dortmund.DE [129.217.129.133]) by mx1.FreeBSD.org (Postfix) with ESMTP id E683543D31; Mon, 19 Apr 2004 08:22:47 -0700 (PDT) (envelope-from michaelnottebrock@gmx.net) Received: from lofi.dyndns.org (pc2-105.intern.meitner [10.3.12.105]) by meitner.wh.uni-dortmund.de (Postfix) with ESMTP id 0A89016758C; Mon, 19 Apr 2004 17:22:47 +0200 (CEST) Received: from [192.168.8.4] (kiste.my.domain [192.168.8.4]) (authenticated bits=0) by lofi.dyndns.org (8.12.10/8.12.10) with ESMTP id i3JFMk8f039624 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Mon, 19 Apr 2004 17:22:46 +0200 (CEST) (envelope-from michaelnottebrock@gmx.net) From: Michael Nottebrock Date: Mon, 19 Apr 2004 17:22:45 +0200 User-Agent: KMail/1.6.2 To: freebsd-current@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Boundary-02=_G7+gAgoDqzZ/qFV"; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200404191722.46164.michaelnottebrock@gmx.net> X-Virus-Scanned: by amavisd-new cc: standards@freebsd.org Subject: Fwd: Re: libassuan troubles X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 15:22:50 -0000 --Boundary-02=_G7+gAgoDqzZ/qFV Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Standards issues like these are over my head, so I'm forwarding this here,= =20 hoping some experts can comment on it. =2D--------- Forwarded Message ---------- Subject: Re: libassuan troubles Date: Monday 19 April 2004 17:15 =46rom: Marcus Brinkmann To: Michael Nottebrock Cc: gpa-dev@gnupg.org At Mon, 19 Apr 2004 16:54:37 +0200, Michael Nottebrock wrote: > [1 ] > > On Monday 19 April 2004 16:34, Marcus Brinkmann wrote: > > This seems spurious. Maybe putc_unlocked is only defined as a macro > > on BSD, and thus circumvents the autoconf tests? This would sound > > broken to me (it may be allowed to define it as a macro, but it should > > still be defined as a function in the library). > > Yes, it's a macro. However, I don't see what's wrong about that other than > making autoconf's life harder. putc_unlocked is specified as a function that may be defined as a macro. The fact that it is defined as a macro does not relief you from also declaring and defining it as a function. IE, the following must be possible in a program: #undef putc_unlocked putc_unlocked ('a'); At least this is my interpretation of the wording in POSIX. In fact, if you not only take into account the specification, but also the application usage, it becomes apparent: 16064 APPLICATION USAGE 16065 Since they may be implemented as macros, getc_unlocked( ) and putc_unlocked( ) may treat 16066 incorrectly a stream argument with side effects. In particular, getc_unlocked(*f++) and 16067 = =20 putc_unlocked(*f++) do not necessarily work as expected. Therefor= e, use of these functions in 16068 such situations should be preceded by the following statement as appropriate: 16069 =20 #undef getc_unlocked 16070 #undef putc_unlocked The autoconf test relies on the function in the library object file. This will work for almost all functions, except those for which POSIX explicitely allows the lack of a function definition (like setjmp, =46D_CLR, etc). Thanks, Marcus =2D------------------------------------------------------ =2D-=20 ,_, | Michael Nottebrock | lofi@freebsd.org (/^ ^\) | FreeBSD - The Power to Serve | http://www.freebsd.org \u/ | K Desktop Environment on FreeBSD | http://freebsd.kde.org --Boundary-02=_G7+gAgoDqzZ/qFV Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAg+7GXhc68WspdLARAgqhAKCXKK5nwDF3uFLATRKFLUfroUzxsgCdEvEV cTzpfolQbyGcuVa3l2dm1oY= =9s8D -----END PGP SIGNATURE----- --Boundary-02=_G7+gAgoDqzZ/qFV-- From owner-freebsd-standards@FreeBSD.ORG Mon Apr 19 08:41:25 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1671C16A4CE; Mon, 19 Apr 2004 08:41:25 -0700 (PDT) Received: from meitner.wh.uni-dortmund.de (meitner.wh.Uni-Dortmund.DE [129.217.129.133]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F65843D3F; Mon, 19 Apr 2004 08:41:24 -0700 (PDT) (envelope-from michaelnottebrock@gmx.net) Received: from lofi.dyndns.org (pc2-105.intern.meitner [10.3.12.105]) by meitner.wh.uni-dortmund.de (Postfix) with ESMTP id 9F61416758C; Mon, 19 Apr 2004 17:41:23 +0200 (CEST) Received: from [192.168.8.4] (kiste.my.domain [192.168.8.4]) (authenticated bits=0) by lofi.dyndns.org (8.12.10/8.12.10) with ESMTP id i3JFfM8f041860 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO); Mon, 19 Apr 2004 17:41:23 +0200 (CEST) (envelope-from michaelnottebrock@gmx.net) From: Michael Nottebrock To: freebsd-current@freebsd.org Date: Mon, 19 Apr 2004 17:41:19 +0200 User-Agent: KMail/1.6.2 References: <200404191722.46164.michaelnottebrock@gmx.net> In-Reply-To: <200404191722.46164.michaelnottebrock@gmx.net> MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Boundary-02=_iM/gAJCwrsOiyoL"; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200404191741.22501.michaelnottebrock@gmx.net> X-Virus-Scanned: by amavisd-new cc: standards@freebsd.org Subject: Re: Fwd: Re: libassuan troubles X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 15:41:25 -0000 --Boundary-02=_iM/gAJCwrsOiyoL Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Obviously the issue has already been resolved in -CURRENT by indeed adding = the=20 function to libc. Any chance this will get MFC'd? =2D-=20 ,_, | Michael Nottebrock | lofi@freebsd.org (/^ ^\) | FreeBSD - The Power to Serve | http://www.freebsd.org \u/ | K Desktop Environment on FreeBSD | http://freebsd.kde.org --Boundary-02=_iM/gAJCwrsOiyoL Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAg/MiXhc68WspdLARAkonAKCPcYISvimrNOu2ncENnP4oYDoZvACgpWWB /MviwEd/j70G1sITyS6Xj3s= =J5QB -----END PGP SIGNATURE----- --Boundary-02=_iM/gAJCwrsOiyoL-- From owner-freebsd-standards@FreeBSD.ORG Mon Apr 19 11:01:39 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 08D1216A4D7 for ; Mon, 19 Apr 2004 11:01:39 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 03DF643D49 for ; Mon, 19 Apr 2004 11:01:39 -0700 (PDT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) i3JI1cbv042899 for ; Mon, 19 Apr 2004 11:01:38 -0700 (PDT) (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3JI1cdd042893 for freebsd-standards@freebsd.org; Mon, 19 Apr 2004 11:01:38 -0700 (PDT) (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 19 Apr 2004 11:01:38 -0700 (PDT) Message-Id: <200404191801.i3JI1cdd042893@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-standards@FreeBSD.org Subject: Current problem reports assigned to you X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 18:01:39 -0000 Current FreeBSD problem reports Critical problems Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- s [2001/01/23] misc/24590 standards timezone function not compatible witn Sin o [2001/03/05] bin/25542 standards /bin/sh: null char in quoted string o [2002/02/25] bin/35307 standards standard include files are not standard c o [2003/03/05] bin/48958 standards The type 'bool' has different sizes for C o [2003/04/21] standards/51209standards [PATCH] add a64l()/l64a/l64a_r functions p [2003/06/05] standards/52972standards /bin/sh arithmetic not POSIX compliant o [2003/07/12] standards/54410standards one-true-awk not POSIX compliant (no exte o [2003/09/15] standards/56906standards Several math(3) functions fail to set err o [2003/12/31] standards/60772standards _Bool and bool should be unsigned o [2004/02/05] standards/62388standards sys/resource.h does not pull in dependenc 10 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- f [1995/01/11] i386/105 standards Distributed libm (msun) has non-standard o [2000/09/24] bin/21519 standards sys/dir.h should be deprecated some more o [2000/12/05] kern/23304 standards POSIX clock_gettime, clock_getres return o [2001/01/16] bin/24390 standards Replacing old dir-symlinks when using /bi s [2001/06/18] kern/28260 standards UIO_MAXIOV needs to be made public o [2001/11/20] standards/32126standards getopt(3) not Unix-98 conformant s [2002/03/18] standards/36076standards Implementation of POSIX fuser command o [2002/06/13] standards/39256standards [v]snprintf aren't POSIX-conformant for s o [2002/07/09] misc/40378 standards stdlib.h gives needless warnings with -an p [2002/08/12] standards/41576standards POSIX compliance of ln(1) o [2002/10/23] standards/44425standards getcwd() succeeds even if current dir has o [2002/12/09] standards/46119standards Priority problems for SCHED_OTHER using p o [2002/12/23] standards/46504standards Warnings in headers o [2003/06/22] standards/53613standards FreeBSD doesn't define EPROTO o [2003/06/24] bin/53682 standards [PATCH] add fuser(1) utitity o [2003/07/24] standards/54809standards pcvt deficits o [2003/07/24] standards/54833standards more pcvt deficits o [2003/07/25] standards/54839standards pcvt deficits o [2003/07/31] standards/55112standards glob.h, glob_t's gl_pathc should be "size o [2003/09/04] standards/56476standards cd9660 unicode support simple hack o [2003/09/27] standards/57295standards [patch] make does not include cmd line va o [2003/10/12] standards/57911standards fnmatch ("[[:alpha:]]","x", FNM_PATHNAME) o [2003/10/29] standards/58676standards grantpt(3) alters storage used by ptsname o [2003/11/29] standards/59797standards Implement C99's round[f]() math fucntions p [2003/12/26] standards/60597standards FreeBSD's /usr/include lacks of cpio.h s [2004/02/14] standards/62858standards malloc(0) not C99 compliant p [2004/02/21] standards/63173standards Patch to add getopt_long_only(3) to libc o [2004/02/25] standards/63371standards [patch] isblank() not in C99/SUSv3 namesp o [2004/03/08] standards/63935standards [patch] Fix C90 namespace pollution in macros to be c 30 problems total. From owner-freebsd-standards@FreeBSD.ORG Mon Apr 19 12:20:18 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E844A16A4CF for ; Mon, 19 Apr 2004 12:20:17 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C54A043D49 for ; Mon, 19 Apr 2004 12:20:17 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i3JJKHbv059421 for ; Mon, 19 Apr 2004 12:20:17 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3JJKHci059420; Mon, 19 Apr 2004 12:20:17 -0700 (PDT) (envelope-from gnats) Resent-Date: Mon, 19 Apr 2004 12:20:17 -0700 (PDT) Resent-Message-Id: <200404191920.i3JJKHci059420@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-standards@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Jonathan McGee Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6AA8116A4CE for ; Mon, 19 Apr 2004 12:18:58 -0700 (PDT) Received: from po0.wam.umd.edu (po0.wam.umd.edu [128.8.10.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6EF9743D3F for ; Mon, 19 Apr 2004 12:18:53 -0700 (PDT) (envelope-from mcgee@wam.umd.edu) Received: from rac3.wam.umd.edu (IDENT:sendmail@rac3.wam.umd.edu [128.8.10.143]) by po0.wam.umd.edu (8.12.10/8.12.10) with ESMTP id i3JJIqci027239 for ; Mon, 19 Apr 2004 15:18:52 -0400 (EDT) Received: (from mcgee@localhost) by rac3.wam.umd.edu (8.12.10/8.12.10) id i3JJIlKi005399 for FreeBSD-gnats-submit@freebsd.org; Mon, 19 Apr 2004 15:18:47 -0400 (EDT) Message-Id: <200404191918.i3JJIlKi005399@rac3.wam.umd.edu> Date: Mon, 19 Apr 2004 15:18:47 -0400 (EDT) From: Jonathan McGee To: undisclosed-recipients: ; Subject: standards/65779: Potential bug in printf positional parameters X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Jonathan McGee List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 19:20:18 -0000 >Number: 65779 >Category: standards >Synopsis: Potential bug in printf positional parameters >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-standards >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Apr 19 12:20:17 PDT 2004 >Closed-Date: >Last-Modified: >Originator: Jonathan McGee >Release: FreeBSD 5.2.1-RELEASE-p4 i386 >Organization: >Environment: System: FreeBSD freebie 5.2.1-RELEASE-p4 FreeBSD 5.2.1-RELEASE-p4 #0: Tue Apr 13 06:05:44 EDT 2004 root@freebie:/usr/obj/usr/src/sys/FREEBIE i386 System is build by user with CFLAGS="-O3 -pipe", CPU="p3". After the problem was found, it was retried with CFLAGS="-O0 -g" with no change in the behavior. >Description: While working on a port, found a potential issue with positional parameters in FreeBSD's libc. It seems that both sprintf and printf (the only two functions tested) are not honoring the positional argument flags. A minimum test case was written and attached (test-libc.c). When built, four integers (1, 2, 3, 4) are passed to a positional printf that should display them in order, skipping the second. When executed, the output expected is: 1 3 4 1 3 4 Instead, I get: 1 2 3 1 2 3 It seems rather sensitive to the ordering of printf and sprintf calls. I can swap them and get different behaviors (occasionally one may work). >How-To-Repeat: See attached test-libc.c >Fix: --- test-libc.c begins here --- #include int main() { int int1 = 1; int int2 = 2; int int3 = 3; int int4 = 4; char buffer[200]; char *format = "%1$i %3$i %4$i\n"; printf(format, int1, int2, int3, int4); sprintf(buffer, format, int1, int2, int3, int4); printf("%s", buffer); return 0; } --- test-libc.c ends here --- >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-standards@FreeBSD.ORG Mon Apr 19 13:40:26 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 64A3316A4CE for ; Mon, 19 Apr 2004 13:40:26 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B04243D1D for ; Mon, 19 Apr 2004 13:40:26 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i3JKeQbv073286 for ; Mon, 19 Apr 2004 13:40:26 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3JKeQtP073285; Mon, 19 Apr 2004 13:40:26 -0700 (PDT) (envelope-from gnats) Date: Mon, 19 Apr 2004 13:40:26 -0700 (PDT) Message-Id: <200404192040.i3JKeQtP073285@freefall.freebsd.org> To: freebsd-standards@FreeBSD.org From: Wartan Hachaturow Subject: Re: standards/65779: Potential bug in printf positional parameters X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Wartan Hachaturow List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2004 20:40:26 -0000 The following reply was made to PR standards/65779; it has been noted by GNATS. From: Wartan Hachaturow To: freebsd-gnats-submit@FreeBSD.ORG Cc: Subject: Re: standards/65779: Potential bug in printf positional parameters Date: Tue, 20 Apr 2004 00:28:06 +0400 (sorry, misspelled gnats address in the last letter) On Mon, Apr 19, 2004 at 03:18:47PM -0400, Jonathan McGee wrote: > A minimum test case was written and attached (test-libc.c). When built, four > integers (1, 2, 3, 4) are passed to a positional printf that should display > them in order, skipping the second. This is not a bug. To quote SUSv3 (http://www.opengroup.org/onlinepubs/007904975/functions/fprintf.html): "When numbered argument specifications are used, specifying the Nth argument requires that all the leading arguments, from the first to the (N-1)th, are specified in the format string." Furthemore, man 3 printf says: "Arguments are numbered starting at 1. If unaccessed arguments in the format string are interspersed with ones that are accessed the results will be indeterminate." .. which is just what you get. -- Regards, Wartan. "Be different: conform." From owner-freebsd-standards@FreeBSD.ORG Tue Apr 20 01:21:28 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2C34E16A4CE for ; Tue, 20 Apr 2004 01:21:28 -0700 (PDT) Received: from ioskeha.hittite.isp.9tel.net (ioskeha.hittite.isp.9tel.net [62.62.156.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9B55443D58 for ; Tue, 20 Apr 2004 01:21:25 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (unknown [81.185.56.92]) by ioskeha.hittite.isp.9tel.net (Postfix) with SMTP id 7C0DC17B5B9; Tue, 20 Apr 2004 10:21:54 +0200 (CEST) Message-ID: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: Date: Tue, 20 Apr 2004 10:21:23 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: Garance A Drosihn cc: Albert Cahalan Subject: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 08:21:28 -0000 I've finished to cleanup my code and to merge recent changes made by Garance. I've get rid of my -X feature for now, and replaced it with -q (posix mode) and -Q (sunos/tru64 compat mode, aka the return of -g which means -a w/o process group leaders, and sizes displayed in KGM format). A detailled description of what I've made may be found here : http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/65803 some enhancements requires a provided kernel path (cursig, systime, umask and usertime keywords). Of course, I don't expect all of my changes be accepted as-is, however, I hope we will talk about what could be accepted or not, but, please, don't reject all the code for any bad reason and don't be too close. the next step would have to merge NetBSD/OpenBSD full dynamic sizing of fields (to get rid of our current static sizing of most of the fields) as well as to integrate the NetBSD -k keyword. PS : Garance, I've integrated most of your code, except addelem_* and *_list functions. not that I like them or now, but I think that if we merge our code, ps will grow too mutch (you have many functions, where I have only one -- parselist). however, if you wish to preserve your logic, I could get a try, just to see, but not before the next week. also, I get rid of xkeep_implied which isn't necessary. Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Tue Apr 20 10:59:01 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 90F5A16A4CE for ; Tue, 20 Apr 2004 10:59:01 -0700 (PDT) Received: from smtp0.server.rpi.edu (smtp0.server.rpi.edu [128.113.53.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 318B643D54 for ; Tue, 20 Apr 2004 10:59:01 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp0.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i3KHwwEd013145; Tue, 20 Apr 2004 13:58:58 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> Date: Tue, 20 Apr 2004 13:58:56 -0400 To: "Cyrille Lefevre" , From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2004 17:59:01 -0000 At 10:21 AM +0200 4/20/04, Cyrille Lefevre wrote: >I've finished to cleanup my code and to merge recent changes >made by Garance. I've get rid of my -X feature for now, and >replaced it with -q (posix mode) and -Q (sunos/tru64 compat >mode, aka the return of -g which means -a w/o process group >leaders, and sizes displayed in KGM format). > >A detailled description of what I've made may be found here : > > http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/65803 > >some enhancements requires a provided kernel path (cursig, >systime, umask and usertime keywords). > >Of course, I don't expect all of my changes be accepted as-is, >however, I hope we will talk about what could be accepted or not, >but, please, don't reject all the code for any bad reason and >don't be too close. Ugh. There is a lot in your update. Some of it I like, some of it conflicts with other changes I'm already working on, some of it I do not like, and some of it I have not figured out what I think about it yet. (I only made a quick look through your PR) >the next step would have to merge NetBSD/OpenBSD full dynamic >sizing of fields (to get rid of our current static sizing of most >of the fields) as well as to integrate the NetBSD -k keyword. Yeah, I wanted to do more with dynamic sizing, but I have not spent any time on it yet. I have been looking at -k, but I wasn't sure how much it would increase the size of `ps'. I am not sure when I will have time to look at all that you have done, but I will look through your changes before doing any more major commits to `ps'. -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu From owner-freebsd-standards@FreeBSD.ORG Tue Apr 20 19:07:24 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9B20216A4CE for ; Tue, 20 Apr 2004 19:07:24 -0700 (PDT) Received: from sccrmhc13.comcast.net (sccrmhc13.comcast.net [204.127.202.64]) by mx1.FreeBSD.org (Postfix) with ESMTP id 52A8643D31 for ; Tue, 20 Apr 2004 19:07:24 -0700 (PDT) (envelope-from albert@users.sf.net) Received: from c-65-34-189-253.se.client2.attbi.com ([65.34.189.253]) by comcast.net (sccrmhc13) with SMTP id <2004042102072301600d2f25e>; Wed, 21 Apr 2004 02:07:23 +0000 From: Albert Cahalan To: Garance A Drosihn In-Reply-To: References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> Content-Type: text/plain Organization: Message-Id: <1082504719.3444.534.camel@cube> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 20 Apr 2004 19:45:20 -0400 Content-Transfer-Encoding: 7bit cc: freebsd-standards@freebsd.org cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 02:07:24 -0000 On Tue, 2004-04-20 at 13:58, Garance A Drosihn wrote: > At 10:21 AM +0200 4/20/04, Cyrille Lefevre wrote: > >I've finished to cleanup my code and to merge recent changes > >made by Garance. I've get rid of my -X feature for now, and > >replaced it with -q (posix mode) and -Q (sunos/tru64 compat > >mode, aka the return of -g which means -a w/o process group > >leaders, and sizes displayed in KGM format). Having a "-q" for posix mode is kind of pointless, no? The same goes for "-Q". > >the next step would have to merge NetBSD/OpenBSD full dynamic > >sizing of fields (to get rid of our current static sizing of most > >of the fields) as well as to integrate the NetBSD -k keyword. > > Yeah, I wanted to do more with dynamic sizing, but I have not > spent any time on it yet. I have been looking at -k, but I > wasn't sure how much it would increase the size of `ps'. DYNAMIC FIELD SIZES: There are different choices here. Some can hurt you. It is good to produce some output before all the process data has been read. Think about piped commands running on an SMP box. Also, though I know FreeBSD never has kernel bugs, suppose some dodgey hardware caused process table corruption. You might want to at least be able to produce partial output. I re-align columns as I can. If VSZ overflows while there is some room in the TTY column, the spaces get grabbed up in order to keep other columns aligned. This works well. THE -k OPTION: Let's accept the NetBSD direction. SIZE OF PS: If the size of ps is a problem (for a boot floppy???), you can simply create a special ps for that. In the Linux world there is a busybox program that, after looking at argv[0], can act as ps, gzip, tar, dd, cp... In case you need to write something, I have a minimal.c program that implements ps in 8 kB on i386 or 10 kB on ppc. It's been ported away from Linux /proc before, and it can work with several non-GNU C libraries. Here is the feature set you'd get if you ported it: $ ./minimal --help -C select by command name (minimal ps only accepts one) -p select by process ID (minimal ps only accepts one) -e all processes (same as ax) a all processes w/ tty, including other users x processes w/o controlling ttys -f full format -j,j job control format v virtual memory format -l,l long format u user-oriented format -o user-defined format (limited support, only "ps -o pid=") h no header -------- NOW QUOTING FROM THE PR --------- > (-K) don't show kernel thread (option taken from openbsd -k, > *not implemented yet*). Gee, how many do you have? If they are per-CPU threads all doing the same thing, then only display one of them when the "H" option isn't used. > -g pgidlist select processes by process group id(s). If the PGID list contains non-numeric entries, then you should parse it as a list of effective group names and IDs. > -o fmtlist similar to bsd -o fmtlist. I have an explicit-width syntax that you might like. It does the obvious thing with "ps -o pid,wchan:42,args". > -c omits the nice field and replaces the c field with the > class field (option taken from solaris). It should do a bit more than that. Pushing format specifiers starting from the rightmost one goes like this: //////////////////////////////////////////////////// if -c-option then push "pri" push "class" else if -l-option push "ni" push "opri" endif if -L-option and -f-option then push "nlwp" endif if (-l-option or -f-option) and not -c-option then push "c" endif ///////////////////////////////////////////////////// As you can see, had the "c" field been replaced with the "class" field, "nlwp" would end up on the wrong side. For editing oddball formats, this works pretty well: 1. delete %CPU, CPU, CP, C, and NI 2. replace PRI ("opri") with CLS PRI ("class,pri") > -x wide output format (option taken from hpux, similar to bsd -ww) It's more useful to take this as meaning "show args" and just use -ww for wide output. Adding this option will make transition to a mixed POSIX/BSD parser much more difficult, because you won't be able to fall back to a pure BSD parser when "ps -ax" is seen. > fname FNAME alias to ucomm [solaris] Yes, except that it's narrow. Make it 8 characters wide. > opri alias to pri [solaris] Nope. They go opposite directions. KEYWORD SOURCE RANGE intpri HP-UX 39..79 opri SunOS 39..79 pri Everybody 20..60 <-- funny direction priority Linux -20..20 psxpri Tru64 ?????? (direction?) I suspect Tru64 gets "pri" kind of wrong, and uses "psxpri" to implement "PRI". Note that the UNIX and POSIX spec only specifies when "PRI" should appear. There is no standard keyword for this. > osz alias to sz [solaris] I think not, else why would osz exist? I think one of these is in pages, and the other in kB. > size alias to sz [just for convenience] Nope. This is the size of your swappable image. That would be dirty pages in RAM plus pages in swap, plus anything else (page tables?) that you could swap out. Origins may involve Novell or SCO. > wname alias to mwchan [irix] I interpret related options as: nwchan hex address wname function name wchan as wname, or nwchan with -n option From owner-freebsd-standards@FreeBSD.ORG Tue Apr 20 23:20:11 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8991016A4CE for ; Tue, 20 Apr 2004 23:20:11 -0700 (PDT) Received: from smtp0.server.rpi.edu (smtp0.server.rpi.edu [128.113.53.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 26E3443D5E for ; Tue, 20 Apr 2004 23:20:11 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp0.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i3L6K3Ed015915; Wed, 21 Apr 2004 02:20:03 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <1082504719.3444.534.camel@cube> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> Date: Wed, 21 Apr 2004 02:20:01 -0400 To: Albert Cahalan From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 06:20:11 -0000 At 7:45 PM -0400 4/20/04, Albert Cahalan wrote: > >DYNAMIC FIELD SIZES: > >There are different choices here. Some can hurt you. > >It is good to produce some output before all the >process data has been read. Note that `ps' already sorts all data before printing out anything. If it has gotten far enough to sort all the data, it can probably size it all too. (I have not looked at how Cyrille actually did that, but I assume that at least that much of it is probably okay). -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 00:11:50 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 58DE616A4CE; Wed, 21 Apr 2004 00:11:50 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 37F7A43D4C; Wed, 21 Apr 2004 00:11:50 -0700 (PDT) (envelope-from das@FreeBSD.org) Received: from freefall.freebsd.org (das@localhost [127.0.0.1]) i3L7Bobv017437; Wed, 21 Apr 2004 00:11:50 -0700 (PDT) (envelope-from das@freefall.freebsd.org) Received: (from das@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3L7Bo5G017433; Wed, 21 Apr 2004 00:11:50 -0700 (PDT) (envelope-from das) Date: Wed, 21 Apr 2004 00:11:50 -0700 (PDT) From: David Schultz Message-Id: <200404210711.i3L7Bo5G017433@freefall.freebsd.org> To: mcgee@wam.umd.edu, das@FreeBSD.org, freebsd-standards@FreeBSD.org Subject: Re: standards/65779: Potential bug in printf positional parameters X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 07:11:50 -0000 Synopsis: Potential bug in printf positional parameters State-Changed-From-To: open->closed State-Changed-By: das State-Changed-When: Wed Apr 21 00:10:49 PDT 2004 State-Changed-Why: This is not a bug. See Wartan's email. http://www.freebsd.org/cgi/query-pr.cgi?pr=65779 From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 02:18:24 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7241C16A4CE; Wed, 21 Apr 2004 02:18:24 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5261243D58; Wed, 21 Apr 2004 02:18:24 -0700 (PDT) (envelope-from tjr@FreeBSD.org) Received: from freefall.freebsd.org (tjr@localhost [127.0.0.1]) i3L9IObv031753; Wed, 21 Apr 2004 02:18:24 -0700 (PDT) (envelope-from tjr@freefall.freebsd.org) Received: (from tjr@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3L9IO91031749; Wed, 21 Apr 2004 02:18:24 -0700 (PDT) (envelope-from tjr) Date: Wed, 21 Apr 2004 02:18:24 -0700 (PDT) From: "Tim J. Robbins" Message-Id: <200404210918.i3L9IO91031749@freefall.freebsd.org> To: tjr@FreeBSD.org, freebsd-standards@FreeBSD.org, tjr@FreeBSD.org Subject: Re: standards/63371: [patch] isblank() not in C99/SUSv3 namespace X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 09:18:24 -0000 Synopsis: [patch] isblank() not in C99/SUSv3 namespace Responsible-Changed-From-To: freebsd-standards->tjr Responsible-Changed-By: tjr Responsible-Changed-When: Wed Apr 21 02:17:50 PDT 2004 Responsible-Changed-Why: I'm fairly familiar with the code in question, so I'll handle this. http://www.freebsd.org/cgi/query-pr.cgi?pr=63371 From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 06:15:10 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4126016A4CF for ; Wed, 21 Apr 2004 06:15:10 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id D787143D2D for ; Wed, 21 Apr 2004 06:15:09 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (183-61-118-80.kaptech.net [80.118.61.183]) by huva.hittite.isp.9tel.net (Postfix) with SMTP id 6E4EA9BF1C; Wed, 21 Apr 2004 15:16:13 +0200 (CEST) Message-ID: <009a01c427a2$ab2943d0$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: , "Garance A Drosihn" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> Date: Wed, 21 Apr 2004 15:15:07 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 13:15:10 -0000 "Garance A Drosihn" wrote: > At 10:21 AM +0200 4/20/04, Cyrille Lefevre wrote: [snip] > > > >A detailled description of what I've made may be found here : > > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/65803 > > [snip] > >Of course, I don't expect all of my changes be accepted as-is, > >however, I hope we will talk about what could be accepted or not, > >but, please, don't reject all the code for any bad reason and > >don't be too close. > > Ugh. There is a lot in your update. Some of it I like, some of > it conflicts with other changes I'm already working on, some of it > I do not like, and some of it I have not figured out what I think > about it yet. (I only made a quick look through your PR) I'm waiting for your comments... :) > >the next step would have to merge NetBSD/OpenBSD full dynamic > >sizing of fields (to get rid of our current static sizing of most > >of the fields) as well as to integrate the NetBSD -k keyword. > > Yeah, I wanted to do more with dynamic sizing, but I have not > spent any time on it yet. I have been looking at -k, but I > wasn't sure how much it would increase the size of `ps'. I'll tell you when I'll finished (well, I've not starting yet :) also, I could #if posix sections, so, it will be possible to keep ps as small as possible for crunching. however, there is also a really minimal ps implementation in pico. > I am not sure when I will have time to look at all that you have > done, but I will look through your changes before doing any more > major commits to `ps'. thanks. Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 15:55:44 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 66A1C16A4CF for ; Wed, 21 Apr 2004 15:55:44 -0700 (PDT) Received: from ioskeha.hittite.isp.9tel.net (ioskeha.hittite.isp.9tel.net [62.62.156.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id DC39D43D1D for ; Wed, 21 Apr 2004 15:55:43 -0700 (PDT) (envelope-from root@gits.dyndns.org) Received: from mail.gits.dyndns.org (unknown [81.185.55.107]) by ioskeha.hittite.isp.9tel.net (Postfix) with ESMTP id 21E8017B460; Thu, 22 Apr 2004 00:56:13 +0200 (CEST) Received: from pc2k (pc2k [192.168.144.120]) by mail.gits.dyndns.org (8.12.11/8.12.11) with SMTP id i3LMsqIa065674; Thu, 22 Apr 2004 00:55:00 +0200 (CEST) (envelope-from root@gits.dyndns.org) Message-ID: <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Albert Cahalan" , "Garance A Drosihn" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> Date: Thu, 22 Apr 2004 00:54:51 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Spam-Status: No, hits=-100 required=5 tests=USER_IN_WHITELIST X-Scanned-By: MIMEDefang 2.38 cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 22:55:44 -0000 "Albert Cahalan" wrote: > On Tue, 2004-04-20 at 13:58, Garance A Drosihn wrote: > > At 10:21 AM +0200 4/20/04, Cyrille Lefevre wrote: > > >I've finished to cleanup my code and to merge recent changes > > >made by Garance. I've get rid of my -X feature for now, and > > >replaced it with -q (posix mode) and -Q (sunos/tru64 compat > > >mode, aka the return of -g which means -a w/o process group > > >leaders, and sizes displayed in KGM format). > > Having a "-q" for posix mode is kind of pointless, no? > The same goes for "-Q". -X has been recently taken. free letters, are : BDEFIJKQRVWYbukq, well K and k are reserved for future use... so, why now -qQ ? do you have any better suggestion ? > > >the next step would have to merge NetBSD/OpenBSD full dynamic > > >sizing of fields (to get rid of our current static sizing of most > > >of the fields) as well as to integrate the NetBSD -k keyword. > > > > Yeah, I wanted to do more with dynamic sizing, but I have not > > spent any time on it yet. I have been looking at -k, but I > > wasn't sure how much it would increase the size of `ps'. > > DYNAMIC FIELD SIZES: > > There are different choices here. Some can hurt you. > > It is good to produce some output before all the > process data has been read. Think about piped commands > running on an SMP box. Also, though I know FreeBSD > never has kernel bugs, suppose some dodgey hardware > caused process table corruption. You might want to > at least be able to produce partial output. > > I re-align columns as I can. If VSZ overflows while > there is some room in the TTY column, the spaces get > grabbed up in order to keep other columns aligned. > This works well. the tru64 alternative is not so bad, you know that the size will not be greater than 7 chars (999.95M). for instance, the fixed size is, 5, which is too less IMHO, but 6 or 7 will be to much. however, this suffice in 95% of cases. under BSD, there is no room in tty ! > THE -k OPTION: > > Let's accept the NetBSD direction. regarding their keyword structure, this will be done w/ dynamic field sizing :) > SIZE OF PS: > > If the size of ps is a problem (for a boot floppy???), > you can simply create a special ps for that. In the there is one in picoBSD. /usr/src/release/picobsd/tinyware/aps/main.c (using /proc) /usr/src/release/picobsd/tinyware/sps/sps.c (using sysctl) > Linux world there is a busybox program that, after > looking at argv[0], can act as ps, gzip, tar, dd, cp... BSD also have one which is named crunch. > In case you need to write something, I have a minimal.c > program that implements ps in 8 kB on i386 or 10 kB on ppc. > It's been ported away from Linux /proc before, and it can > work with several non-GNU C libraries. Here is the feature > set you'd get if you ported it: both aps and sps gave no options at all :( > -------- NOW QUOTING FROM THE PR --------- > > > (-K) don't show kernel thread (option taken from openbsd -k, > > *not implemented yet*). > > Gee, how many do you have? If they are per-CPU threads # ps ax | awk '$3 ~ /K/' | wc 43 > all doing the same thing, then only display one of them > when the "H" option isn't used. no, there are not threads as the ones selected by freebsd -H, kernel threads are seen as processes. > > -g pgidlist select processes by process group id(s). > > If the PGID list contains non-numeric entries, then you > should parse it as a list of effective group names and IDs. s/should/could/ as a general rule, I tend to follow what other "standard" systems does. by "standard", I mean, *bsd, susv3, hpux, irix, solaris and tru64. > > -o fmtlist similar to bsd -o fmtlist. > > I have an explicit-width syntax that you might like. > It does the obvious thing with "ps -o pid,wchan:42,args". may be for the future. however, ':' is currently used internally, but easily replacable. > > -c omits the nice field and replaces the c field with the > > class field (option taken from solaris). > > It should do a bit more than that. Pushing format specifiers you don't look at the code. as done under solaris, -c works only w/ -f or -l, but, I agree that it's not documented yet. also, pri vs opri only has a meaning on pre-svr4 and svr4 oses. under bsd, there is only one pri which follow the susv3 rule. > As you can see, had the "c" field been replaced with > the "class" field, "nlwp" would end up on the wrong side. lwp/nlwp are not implemented yet. so, there are not displayed. > For editing oddball formats, this works pretty well: > > 1. delete %CPU, CPU, CP, C, and NI > 2. replace PRI ("opri") with CLS PRI ("class,pri") this also works pretty well and does not need C code editing :) * internal format syntax: * keyword[:flags in reverse polish notation][=header] * reverse polish notation: * x by itself, * means any, x! means not x, * xy| means x | y, xy& means x & y, xy^ means x ^ y. * [xyz] is a more compact and readable form of xy|z| * [a-z] isn't supported and is understood as a-|z| * () may be used for readability but are no-op. * bsd flags: d12jlsuv, bsd modifiers: nZ * posix flags: d12fjl, posix modifiers: cMPy * both modifiers: X if extended. static char bsd_fmtstr[] = "\ label:Z user:[ju](n!)& uid:([ju]n&)([ls]([ju]!)&)| pid:2! ppid:[jl] \ pgid:j sid:jX& tpgid:jX& tsid:jX& jobc:j sig:s sigmask:s sigignore:s \ sigcatch:s cpu:l pri:l nice:l %cpu:u %mem:u vsz:[lu] rss:[lu] \ mwchan:l(n!)& nwchan:ln& tt:[d2u](vX&)| state:1! tt:[jls]([du]!)& \ start:u time:1! sl:v re:v pagein:v vsz:v([lu]!)& rss:v([lu]!)& lim:v \ tsiz:v %cpu:v(u!)& %mem:v(u!)& command:1! \ "; static char psx_fmtstr[] = "\ label:M f:l(y!)& s:l user:f uid:l(f!)& pid:2! ppid:[fjl] pgid:j \ sid:j tpgid:jX& tsid:jX& c:[fl](c!)& class:[fl]c& psr:P pri:l \ nice:l(c!)& addr:l(y!)& rss:ly& sz:l wchan:l stime:f tty:1! time:1! \ comm:[1f]! args:f \ "; > > -x wide output format (option taken from hpux, similar to bsd -ww) > > It's more useful to take this as meaning "show args" well, "show all args" would be more appropriate. > and just use -ww for wide output. Adding this option -ww doesn't exists in any posix syntax. > will make transition to a mixed POSIX/BSD parser much > more difficult, because you won't be able to fall back > to a pure BSD parser when "ps -ax" is seen. in the actual code, the syntax aren't mixed at all. so, no transition is needed (except if options aren't preceded by a dash which means goes in bsd syntax). the syntax selection is based on the program name, and eventually, on an environment variable, if compiled in, but it's name isn't fixed, yet. for instance, it's POSIX, but I dislike it. maybe something like FLAVOR is more appropriate ? I won't use any existing environment variable to avoid conflicts w/ other oses. > > fname FNAME alias to ucomm [solaris] > > Yes, except that it's narrow. Make it 8 characters wide. yes, I know, but, for instance, it's just an alias and I don't understand the 8 char limit ? 13 yes, but 8 ! > > opri alias to pri [solaris] > > Nope. They go opposite directions. > > KEYWORD SOURCE RANGE > intpri HP-UX 39..79 pri and intpri are identical under hpux 11.x and are the internal kernel representation of the priority as I understand the ps and rtsched manual pages. so, priorities may goes from 0 to 255. but ps shows me 2 processes at -34 which are in class HPUX (aka TS) ! > opri SunOS 39..79 > pri Everybody 20..60 <-- funny direction wrong, tru64 priorities goes from 63..0 > priority Linux -20..20 > psxpri Tru64 ?????? (direction?) seems to be 0..63, in opposite order of pri. > I suspect Tru64 gets "pri" kind of wrong, and uses > "psxpri" to implement "PRI". Note that the UNIX and to be a little more precise about priority directions : pri : bsd, linux and posix say higher value is lower priority -- low value is high priority pri/intpri : hpux, sco, solaris and tru64 say high value is high priority -- low value is lower priority opri/psxpri : solaris and tru64 say low value is high priority -- high value is lower priority in the mean time, I wanted to implement opri as : #define scaleopri(x) ((int)((PRI_MAX - (x)) / ((PRI_MAX+1) / 40))) void opri(KINFO *k, VARENT *ve) { VAR *v; v = ve->var; (void)printf(wdfmt, v->width, scaleopri(k->ki_p->ki_pri.pri_level)); } which scale the internal priority from 0 to 40 to match "The magic garden explained" internal priorities just for fun :) but finaly make them just aliases to pri. > POSIX spec only specifies when "PRI" should appear. > There is no standard keyword for this. right. > > osz alias to sz [solaris] > > I think not, else why would osz exist? I think one > of these is in pages, and the other in kB. I know, but there is no concensus between all ps implmentations about memory sizes. some uses pages, some uses kbytes, some, mix them, etc. under recent BSDs, all sizez are in kbytes, so, osize too. in other words, implementing all variations will makes ps too fat for nothing. > > size alias to sz [just for convenience] > > Nope. This is the size of your swappable image. > That would be dirty pages in RAM plus pages in > swap, plus anything else (page tables?) that you > could swap out. Origins may involve Novell or SCO. well, yes, originally implemented as : void size(KINFO *k, VARENT *ve) { VAR *v; v = ve->var; (void)printsize(wlufmt, v->width, ps_pgtok((u_long)k->ki_p->ki_dsize) + ps_pgtok((u_long)k->ki_p->ki_ssize)); } but, here also, there is no consescus between all flavor of unices. hpux and irix says it's dsize+ssize+tsize, sunos says (as I remember me) it's dsize+ssize, tru64 says sz is rss, while solaris says it's osz (aka vsz in pages). since the dsiz and ssiz keywords where added, I prefered to say that sz (alias size) is an alias to vsz since rss is also displayed w/ -y. > > wname alias to mwchan [irix] > > I interpret related options as: > > nwchan hex address > wname function name > wchan as wname, or nwchan with -n option right. Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 16:01:27 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6BAE816A4CE for ; Wed, 21 Apr 2004 16:01:27 -0700 (PDT) Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [128.30.28.20]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2391B43D39 for ; Wed, 21 Apr 2004 16:01:27 -0700 (PDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: from khavrinen.lcs.mit.edu (localhost [IPv6:::1]) by khavrinen.lcs.mit.edu (8.12.9/8.12.9) with ESMTP id i3LN1PXX058708 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK CN=khavrinen.lcs.mit.edu issuer=SSL+20Client+20CA); Wed, 21 Apr 2004 19:01:26 -0400 (EDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.12.9/8.12.9/Submit) id i3LN1PGd058705; Wed, 21 Apr 2004 19:01:25 -0400 (EDT) (envelope-from wollman) Date: Wed, 21 Apr 2004 19:01:25 -0400 (EDT) From: Garrett Wollman Message-Id: <200404212301.i3LN1PGd058705@khavrinen.lcs.mit.edu> To: "Cyrille Lefevre" In-Reply-To: <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> X-Spam-Score: -19.8 () IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES X-Scanned-By: MIMEDefang 2.37 cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2004 23:01:27 -0000 < said: > free letters, are : BDEFIJKQRVWYbukq, well K and k are reserved > for future use... so, why now -qQ ? do you have any better suggestion ? POSIX officially reserves -W for implementation use in all utilities. -GAWollman From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 17:30:21 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7955316A4CE for ; Wed, 21 Apr 2004 17:30:21 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0941043D31 for ; Wed, 21 Apr 2004 17:30:21 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (unknown [81.185.55.107]) by huva.hittite.isp.9tel.net (Postfix) with SMTP id 9CBB19BB3F; Thu, 22 Apr 2004 02:31:25 +0200 (CEST) Message-ID: <016801c42800$fe28e320$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Albert Cahalan" , "Garance A Drosihn" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> Date: Thu, 22 Apr 2004 02:19:56 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 00:30:21 -0000 "Garance A Drosihn" wrote: > At 7:45 PM -0400 4/20/04, Albert Cahalan wrote: > > > >DYNAMIC FIELD SIZES: > > > >There are different choices here. Some can hurt you. > > > >It is good to produce some output before all the > >process data has been read. > > Note that `ps' already sorts all data before printing > out anything. If it has gotten far enough to sort all > the data, it can probably size it all too. (I have not > looked at how Cyrille actually did that, but I assume > that at least that much of it is probably okay). I follow you, except that I've shortened the code a lot :) PS : the PR has been updated w/ some new features... Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 17:30:21 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7F64016A4CF for ; Wed, 21 Apr 2004 17:30:21 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 49D7943D3F for ; Wed, 21 Apr 2004 17:30:21 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (unknown [81.185.55.107]) by huva.hittite.isp.9tel.net (Postfix) with SMTP id 05D369BB44; Thu, 22 Apr 2004 02:31:26 +0200 (CEST) Message-ID: <016901c42800$fe62dee0$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Albert Cahalan" , "Garance A Drosihn" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> Date: Thu, 22 Apr 2004 02:22:06 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 00:30:21 -0000 From: "Albert Cahalan" > > (-K) don't show kernel thread (option taken from openbsd -k, > > *not implemented yet*). > > Gee, how many do you have? If they are per-CPU threads > all doing the same thing, then only display one of them > when the "H" option isn't used. well, the description is wrong, you have to read "shows kernel thread"... so, OpenBSD -K is FreeBSD -H except that system process aren't shown by default under OpenBSD while they are under FreeBSD (for instance). Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Wed Apr 21 18:26:14 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A8E3216A4CE for ; Wed, 21 Apr 2004 18:26:14 -0700 (PDT) Received: from sccrmhc12.comcast.net (sccrmhc12.comcast.net [204.127.202.56]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4ED4E43D54 for ; Wed, 21 Apr 2004 18:26:14 -0700 (PDT) (envelope-from albert@users.sf.net) Received: from c-65-34-189-253.se.client2.attbi.com ([65.34.189.253]) by comcast.net (sccrmhc12) with SMTP id <2004042201261201200p3sspe>; Thu, 22 Apr 2004 01:26:13 +0000 From: Albert Cahalan To: Cyrille Lefevre In-Reply-To: <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> Content-Type: text/plain Organization: Message-Id: <1082588650.3450.628.camel@cube> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4 Date: 21 Apr 2004 19:04:10 -0400 Content-Transfer-Encoding: 7bit cc: freebsd-standards@freebsd.org cc: Garance A Drosihn cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 01:26:14 -0000 On Wed, 2004-04-21 at 18:54, Cyrille Lefevre wrote: > "Albert Cahalan" wrote: > > On Tue, 2004-04-20 at 13:58, Garance A Drosihn wrote: > > > At 10:21 AM +0200 4/20/04, Cyrille Lefevre wrote: > > > >I've finished to cleanup my code and to merge recent changes > > > >made by Garance. I've get rid of my -X feature for now, and > > > >replaced it with -q (posix mode) and -Q (sunos/tru64 compat > > > >mode, aka the return of -g which means -a w/o process group > > > >leaders, and sizes displayed in KGM format). > > > > Having a "-q" for posix mode is kind of pointless, no? > > The same goes for "-Q". > > -X has been recently taken. > > free letters, are : BDEFIJKQRVWYbukq, well K and k are reserved > for future use... so, why now -qQ ? do you have any better suggestion ? No, the point was that adding **any** option to switch parser modes kind of defeats the whole idea of trying to be compatible with anything. You can switch via $PATH and/or some other environment variable. > > I re-align columns as I can. If VSZ overflows while > > there is some room in the TTY column, the spaces get > > grabbed up in order to keep other columns aligned. > > This works well. > > the tru64 alternative is not so bad, you know that the size > will not be greater than 7 chars (999.95M). for instance, This is painful for scripts parsing ps output. > the fixed size is, 5, which is too less IMHO, but 6 or 7 will > be to much. however, this suffice in 95% of cases. > under BSD, there is no room in tty ! You usually have room in STAT or TIME. > > > (-K) don't show kernel thread (option taken from openbsd -k, > > > *not implemented yet*). > > > > Gee, how many do you have? If they are per-CPU threads > > # ps ax | awk '$3 ~ /K/' | wc > 43 > > > all doing the same thing, then only display one of them > > when the "H" option isn't used. > > no, there are not threads as the ones selected by freebsd -H, > kernel threads are seen as processes. For uniprocessor, that is a large number you have there. I'm seeing 6 per CPU plus 4. (10 for 1-way, 16 for 2-way... and so I guess over 3000 on an Altix with 512 CPUs) Maybe you don't do per-CPU built-in threads. If you do though, you can hide most of them behind "H". BTW, I notice that AIX matches OpenBSD on the "k" issue. It's kind of defective though, since then it (and old "g") get in the way of a user thinking "I meant **ALL**, damnit". > > > -g pgidlist select processes by process group id(s). > > > > If the PGID list contains non-numeric entries, then you > > should parse it as a list of effective group names and IDs. > > s/should/could/ > > as a general rule, I tend to follow what other "standard" systems > does. by "standard", I mean, *bsd, susv3, hpux, irix, solaris and tru64. OK, don't admit that Linux has become the standard now. (You're dying, remember?) Also, you forgot AIX and DYNIX/pts. Just look at how neatly -g matches up with -U, -u, and -G. Not that I entirely made this up though: I remember once finding an OS that only used -g for effective groups. > this also works pretty well and does not need C code editing :) > > * internal format syntax: > * keyword[:flags in reverse polish notation][=header] > * reverse polish notation: > * x by itself, * means any, x! means not x, > * xy| means x | y, xy& means x & y, xy^ means x ^ y. > * [xyz] is a more compact and readable form of xy|z| > * [a-z] isn't supported and is understood as a-|z| > * () may be used for readability but are no-op. > * bsd flags: d12jlsuv, bsd modifiers: nZ > * posix flags: d12fjl, posix modifiers: cMPy > * both modifiers: X if extended. > > static char bsd_fmtstr[] = "\ > label:Z user:[ju](n!)& uid:([ju]n&)([ls]([ju]!)&)| pid:2! ppid:[jl] \ > pgid:j sid:jX& tpgid:jX& tsid:jX& jobc:j sig:s sigmask:s sigignore:s \ > sigcatch:s cpu:l pri:l nice:l %cpu:u %mem:u vsz:[lu] rss:[lu] \ > mwchan:l(n!)& nwchan:ln& tt:[d2u](vX&)| state:1! tt:[jls]([du]!)& \ > start:u time:1! sl:v re:v pagein:v vsz:v([lu]!)& rss:v([lu]!)& lim:v \ > tsiz:v %cpu:v(u!)& %mem:v(u!)& command:1! \ > "; I am reminded of sendmail. You're getting close. > > will make transition to a mixed POSIX/BSD parser much > > more difficult, because you won't be able to fall back > > to a pure BSD parser when "ps -ax" is seen. > > in the actual code, the syntax aren't mixed at all. so, no > transition is needed (except if options aren't preceded > by a dash which means goes in bsd syntax). the syntax > selection is based on the program name, and eventually, > on an environment variable, if compiled in, As a primary mechanism, this makes sense. What about when you hit an error? You could add/remove the "-" and re-exec (once at most!) to get a second chance at doing what the user wanted. > > > size alias to sz [just for convenience] > > > > Nope. This is the size of your swappable image. > > That would be dirty pages in RAM plus pages in > > swap, plus anything else (page tables?) that you > > could swap out. Origins may involve Novell or SCO. > > well, yes, originally implemented as : > > void > size(KINFO *k, VARENT *ve) > { > VAR *v; > > v = ve->var; > (void)printsize(wlufmt, v->width, > ps_pgtok((u_long)k->ki_p->ki_dsize) + > ps_pgtok((u_long)k->ki_p->ki_ssize)); > } > > but, here also, there is no consescus between all flavor > of unices. hpux and irix says it's dsize+ssize+tsize, sunos > says (as I remember me) it's dsize+ssize, tru64 says sz > is rss, while solaris says it's osz (aka vsz in pages). > since the dsiz and ssiz keywords where added, I prefered > to say that sz (alias size) is an alias to vsz since rss is also > displayed w/ -y. This all makes sense for: sz, vsz, osz, rss BTW, you forgot Tru64 rssize. It's rss with an RSS header. If you don't implement "size" as being the amount of stuff that could end up in swap, then there isn't any format specifier that covers that. The POSIX spec has a strange distinction between SZ and vsz. Observe: SZ The size in blocks of the core image of the process. vsz The size of the process in (virtual) memory in 1024 byte units as a decimal integer. For vsz, the term "memory" is used. For SZ, the term "core" is used instead. If ancient terms were being used, I'd expect to see "core" in both places. This seems to suggest that the spec really is referring to what would be produced if the process could and did produce a core dump. Damn that spec is vile. From owner-freebsd-standards@FreeBSD.ORG Thu Apr 22 10:24:03 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4197116A4CE for ; Thu, 22 Apr 2004 10:24:03 -0700 (PDT) Received: from hexagon.stack.nl (hexagon.stack.nl [131.155.140.144]) by mx1.FreeBSD.org (Postfix) with ESMTP id D97C743D1F for ; Thu, 22 Apr 2004 10:24:02 -0700 (PDT) (envelope-from jilles@stack.nl) Received: from turtle.stack.nl (turtle.stack.nl [IPv6:2001:610:1108:5010::132]) by hexagon.stack.nl (Postfix) with ESMTP id 4087FFB1#CFFBD52CB; Thu, 22 Apr 2004 19:24:01 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id B4BCA1CC9B; Thu, 22 Apr 2004 19:24:01 +0200 (CEST) Date: Thu, 22 Apr 2004 19:24:01 +0200 From: Jilles Tjoelker To: Cyrille Lefevre Message-ID: <20040422172401.GA88130@stack.nl> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube> <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00ba01c427f3$b3477f40$7890a8c0@dyndns.org> X-Operating-System: FreeBSD 5.2.1-RELEASE-p4 i386 User-Agent: Mutt/1.5.6i cc: freebsd-standards@freebsd.org cc: Garance A Drosihn cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 17:24:03 -0000 On Thu, Apr 22, 2004 at 12:54:51AM +0200, Cyrille Lefevre wrote: > > > fname FNAME alias to ucomm [solaris] > > Yes, except that it's narrow. Make it 8 characters wide. > yes, I know, but, for instance, it's just an alias and I don't > understand the 8 char limit ? 13 yes, but 8 ! Because solaris does it that way. Quoting from the pr: > -s show signal output, same as -O SFMT (option taken from tru64 > conflicts w/ netbsd -s, aka show threads w/ different fields > IMHO, this may be implemented as part of freebsd -H). Historic BSD used it to show kernel stack size. Tried with Ultrix 4.x, NextSTEP and 4.3BSD-Quasijarus. It may look like (from the latter): % ps s$$ SSIZ PID TT STAT TIME COMMAND 1032 2248 01 S 0:00 -csh (csh) % ps su$$ ps: specify only one of s,l,v and u % The 4.3BSD man page says: s Adds the size SSIZ of the kernel stack of each process (for use by system maintainers) to the basic output format. It's quite likely that 's' for signals is an OSF invention. > added keywords (bsd) : Keep the -o option equal between bsd and posix modes, if possible. > enhancements to the posix syntax are : > -O same as -o pid,fmtlist,tty,time,comm Where do you have this from? Keep this -O same as BSD -O if possible. SUSv3 mentions BSD's -O in an informative section and recommends -O being used for that purpose. > Format string which contains both an equal sign and a comma are considered > to be comma only separated list. so, both > -o "pid=process id,ppid=parent pid,command=command line" and > -o "pid=child ppid=parent command=command" are well parsed, > unfortunately, mixing "user=user name,pid=pid command" isn't... Hmm, FreeBSD 5.x follows the spec exactly in this respect, an equal sign marks the rest of the argument as header text, so I doubt whether it's worth doing this. Note that FreeBSD 4.x aborts header texts at a comma or space. > findvar() rewritten to handle header specification on aliases. > now, you may say "ps -O acflg=XXX" as well as "ps -O acfalg=XXX" There's a PR of mine open on that, too (much simpler). > -t '?' to select process not attached to a terminal (from older bsd) Good. > tsid added in -j format string Use sid instead, it's more informative (in case of processes that can't access their ctty anymore (like 'p2-') or don't have a ctty at all). I think I had a PR for that, too (certainly a local patch, at least). > if (!S_ISCHR(sb.st_mode)) { Use isatty(3) for checking whether it's a tty. Things like ps -t /dev/da0s1a are meaningless but I think your patch will not reject it. -- Jilles Tjoelker From owner-freebsd-standards@FreeBSD.ORG Thu Apr 22 16:47:58 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C8F4A16A4CE for ; Thu, 22 Apr 2004 16:47:58 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7240943D2D for ; Thu, 22 Apr 2004 16:47:58 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (unknown [81.185.50.147]) by huva.hittite.isp.9tel.net (Postfix) with SMTP id 34D039BE8E; Fri, 23 Apr 2004 01:49:03 +0200 (CEST) Message-ID: <01a001c428c4$3c9fe770$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Garrett Wollman" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org><1082504719.3444.534.camel@cube><00ba01c427f3$b3477f40$7890a8c0@dyndns.org> <200404212301.i3LN1PGd058705@khavrinen.lcs.mit.edu> Date: Fri, 23 Apr 2004 01:47:56 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2004 23:47:58 -0000 repost due to RBL... "Garrett Wollman" wrote: > < said: > > > free letters, are : BDEFIJKQRVWYbukq, well K and k are reserved > > for future use... so, why now -qQ ? do you have any better suggestion ? > > POSIX officially reserves -W for implementation use in all utilities. thanks, so, -q and -Q would have to become something like -W posix and such... Cyrille Lefevre. -- mailto:clefevre-lists@9online.fr From owner-freebsd-standards@FreeBSD.ORG Thu Apr 22 18:47:25 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EA3FA16A4CE for ; Thu, 22 Apr 2004 18:47:25 -0700 (PDT) Received: from smtp0.server.rpi.edu (smtp0.server.rpi.edu [128.113.53.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 965D743D39 for ; Thu, 22 Apr 2004 18:47:25 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp0.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i3N1lOEd026209; Thu, 22 Apr 2004 21:47:24 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <01b401c428d1$27f77060$7890a8c0@dyndns.org> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org><1082504719.3444.534.camel@cube ><00ba01c427f3$b3477f40$7890a8c0@dyndns.org> <1082588650.3450.628.camel@cube> <01b401c428d1$27f77060$7890a8c0@dyndns.org> Date: Thu, 22 Apr 2004 21:47:23 -0400 To: "Cyrille Lefevre" , "Albert Cahalan" From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: freebsd-standards@freebsd.org Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 01:47:26 -0000 At 3:19 AM +0200 4/23/04, Cyrille Lefevre wrote: >"Albert Cahalan" wrote: >> >> No, the point was that adding **any** option to switch >> parser modes kind of defeats the whole idea of trying >> to be compatible with anything. > >as suggested by Garrett Wollman, I will change -qQ to -W >something, as done before through -X posix,etc. which have >been retired from the current version. Don't go changing things around yet again. I don't think Garrett *requested* a change. He just pointed out that -W is reserved "for the implementation". > > You can switch via $PATH and/or some other environment variable. > >currently, mode switch is also done through [...] and using >an environment variable (see another email about that). >but, some others dislike environment variables... I have no intention of installing any updates which cause `ps' to completely change it's behavior and accepted options based on the value of an environment variable. > > > static char bsd_fmtstr[] = "\ >> > label:Z user:[ju](n!)& uid:([ju]n&)([ls]([ju]!)&)| pid:2! ppid:[jl] \ >> > pgid:j sid:jX& tpgid:jX& tsid:jX& jobc:j sig:s sigmask:s sigignore:s \ >> > sigcatch:s cpu:l pri:l nice:l %cpu:u %mem:u vsz:[lu] rss:[lu] \ >> > mwchan:l(n!)& nwchan:ln& tt:[d2u](vX&)| state:1! tt:[jls]([du]!)& \ >> > start:u time:1! sl:v re:v pagein:v vsz:v([lu]!)& rss:v([lu]!)& lim:v \ >> > tsiz:v %cpu:v(u!)& %mem:v(u!)& command:1! \ >> > "; >> >> I am reminded of sendmail. You're getting close. > >maybe, but this kept the code as small as possible. encode this >using if else if etc. and the code will be at least twice the >actual one. I am not sure of all that that section of code is doing, but I will say that I am a little uncomfortable with how cryptic that fmtstr is. -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu From owner-freebsd-standards@FreeBSD.ORG Thu Apr 22 19:09:24 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E822116A4CE for ; Thu, 22 Apr 2004 19:09:24 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8EEB543D31 for ; Thu, 22 Apr 2004 19:09:24 -0700 (PDT) (envelope-from root@gits.dyndns.org) Received: from mail.gits.dyndns.org (unknown [81.185.50.147]) by huva.hittite.isp.9tel.net (Postfix) with ESMTP id 7B3689BB6B; Fri, 23 Apr 2004 04:10:29 +0200 (CEST) Received: from pc2k (pc2k [192.168.144.120]) by mail.gits.dyndns.org (8.12.11/8.12.11) with SMTP id i3N27na1084025; Fri, 23 Apr 2004 04:08:16 +0200 (CEST) (envelope-from root@gits.dyndns.org) Message-ID: <01cb01c428d7$ea7592b0$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Jilles Tjoelker" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube><00ba01c427f3$b3477f40$7890a8c0@dyndns.org> <20040422172401.GA88130@stack.nl> Date: Fri, 23 Apr 2004 04:07:49 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Spam-Status: No, hits=-100 required=5 tests=USER_IN_WHITELIST X-Scanned-By: MIMEDefang 2.38 cc: Garance A Drosihn cc: freebsd-standards@freebsd.org cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 02:09:25 -0000 "Jilles Tjoelker" wrote: > On Thu, Apr 22, 2004 at 12:54:51AM +0200, Cyrille Lefevre wrote: > > > > fname FNAME alias to ucomm [solaris] > > > > Yes, except that it's narrow. Make it 8 characters wide. > > > yes, I know, but, for instance, it's just an alias and I don't > > understand the 8 char limit ? 13 yes, but 8 ! > > Because solaris does it that way. good answer :) > Quoting from the pr: > > > -s show signal output, same as -O SFMT (option taken from tru64 > > conflicts w/ netbsd -s, aka show threads w/ different fields > > IMHO, this may be implemented as part of freebsd -H). > > Historic BSD used it to show kernel stack size. Tried with Ultrix > 4.x, NextSTEP and 4.3BSD-Quasijarus. It may look like (from the latter): > [snip] > > The 4.3BSD man page says: > s Adds the size SSIZ of the kernel stack of each process > (for use by system maintainers) to the basic output > format. > > It's quite likely that 's' for signals is an OSF invention. your are right and wrong. I'm using as a reference, 4.3BSD reno which seems to be the first BSD version to introduce "keywords" before 4.4BSD. and 4.3BSD code says that -s is SFMT, while anterior versions say what you say. however, the 4.3BSD reno manual page has not been updated to match the code :( > > added keywords (bsd) : > > Keep the -o option equal between bsd and posix modes, if possible. well, they are. by "added keywords (bsd)", I mean keywords which comes from other BSD implementations. > > enhancements to the posix syntax are : > > -O same as -o pid,fmtlist,tty,time,comm > > Where do you have this from? Keep this -O same as BSD -O if possible. under BSD, pid, tt, state, time and command are the default fields used by all formats, while under POSIX, it's pid, tty, time and comm. not my fault. > SUSv3 mentions BSD's -O in an informative section and recommends -O > being used for that purpose. right and wrong, the sysv3 manual page says : "In a new BSD version of ps, a -O option can be used to write all of the default information" note the "default information". they also said : "This was not adopted because the default output is implementation-defined." so, it's implementation-defined :) > > Format string which contains both an equal sign and a comma are considered > > to be comma only separated list. so, both > > -o "pid=process id,ppid=parent pid,command=command line" and > > -o "pid=child ppid=parent command=command" are well parsed, > > unfortunately, mixing "user=user name,pid=pid command" isn't... > > Hmm, FreeBSD 5.x follows the spec exactly in this respect, an equal sign > marks the rest of the argument as header text, so I doubt whether it's > worth doing this. Note that FreeBSD 4.x aborts header texts at a comma > or space. any other opinion ? > > findvar() rewritten to handle header specification on aliases. > > now, you may say "ps -O acflg=XXX" as well as "ps -O acfalg=XXX" > > There's a PR of mine open on that, too (much simpler). your implementation isn't recursive, so -o RUSAGE could'nt be handled. > > -t '?' to select process not attached to a terminal (from older bsd) > > Good. -t - has just been implemented, also (from netbsd and probably some older bsd). both options are now handled at kernel level. > > tsid added in -j format string > > Use sid instead, it's more informative (in case of processes that can't > access their ctty anymore (like 'p2-') or don't have a ctty at all). I > think I had a PR for that, too (certainly a local patch, at least). you are right, I forgot to say that sid as also been added, as well as tpgid and tsid, but only if -Q (or -W extended in the future) is given. maybe sid should be added to the default format string (w/o -Q) ? # bps -jQ USER PID PPID PGID SID TPGID TSID JOBC STAT TT TIME COMMAND > > if (!S_ISCHR(sb.st_mode)) { > > Use isatty(3) for checking whether it's a tty. Things like ps -t > /dev/da0s1a are meaningless but I think your patch will not reject it. isatty(3) needs a file descriptor. do you intend that each -t args with an absolute path would have to be opened, checked w/ isatty(2), then close ? why not, any other opinion ? thanks for you review. Cyrille Lefevre. -- mailto:clefevre-lists@9online.fr From owner-freebsd-standards@FreeBSD.ORG Thu Apr 22 20:23:15 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B009616A4CF for ; Thu, 22 Apr 2004 20:23:15 -0700 (PDT) Received: from smtp0.server.rpi.edu (smtp0.server.rpi.edu [128.113.53.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CE8D43D54 for ; Thu, 22 Apr 2004 20:23:15 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp0.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i3N3NDEd026572; Thu, 22 Apr 2004 23:23:13 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <01cb01c428d7$ea7592b0$7890a8c0@dyndns.org> References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org> <1082504719.3444.534.camel@cube><00ba01c427f3$b3477f40$7890a8c0@dyndns.org > <20040422172401.GA88130@stack.nl> <01cb01c428d7$ea7592b0$7890a8c0@dyndns.org> Date: Thu, 22 Apr 2004 23:23:12 -0400 To: "Cyrille Lefevre" , "Jilles Tjoelker" From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: freebsd-standards@freebsd.org cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2004 03:23:15 -0000 At 4:07 AM +0200 4/23/04, Cyrille Lefevre wrote: > > > > Format string which contains both an equal sign and a comma > > > are considered to be comma only separated list. so, both > > > -o "pid=process id,ppid=parent pid,command=command line" and > > > -o "pid=child ppid=parent command=command" are well parsed, >> > unfortunately, mixing "user=user name,pid=pid command" isn't... >> > > Hmm, FreeBSD 5.x follows the spec exactly in this respect, > > an equal sign marks the rest of the argument as header > > text, so I doubt whether it's worth doing this. Note that > > FreeBSD 4.x aborts header texts at a comma or space. > >any other opinion ? "In my opinion": Each variable has a default header. The default header can be overridden by appending an equals sign and the new text of the header. The rest of the characters in the argument shall be used as the header text. That is a quote from SUSv3. I believe 5.x presently tries to follow that, and that is what I think it should do. As to 4.x, the only reason 4.x still behaves the way it does is that I avoided MFC-ing any commits which would *alter* the behavior of how something worked in `ps'. The only things I MFC-ed were commits that cleaned up the code, or which added new features. -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu From owner-freebsd-standards@FreeBSD.ORG Sat Apr 24 08:18:40 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 45D9716A4CE for ; Sat, 24 Apr 2004 08:18:40 -0700 (PDT) Received: from huva.hittite.isp.9tel.net (huva.hittite.isp.9tel.net [62.62.156.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 65A4243D1F for ; Sat, 24 Apr 2004 08:18:39 -0700 (PDT) (envelope-from clefevre-lists@9online.fr) Received: from pc2k (26-119-118-80.kaptech.net [80.118.119.26]) by huva.hittite.isp.9tel.net (Postfix) with SMTP id 08C879BB5B; Sat, 24 Apr 2004 17:19:45 +0200 (CEST) Message-ID: <02bb01c42a0f$6ab37b80$7890a8c0@dyndns.org> From: "Cyrille Lefevre" To: "Garance A Drosihn" References: <019601c426b0$77dc91a0$7890a8c0@dyndns.org><1082504719.3444.534.camel@cube ><00ba01c427f3$b3477f40$7890a8c0@dyndns.org> <1082588650.3450.628.camel@cube> <01b401c428d1$27f77060$7890a8c0@dyndns.org> Date: Sat, 24 Apr 2004 17:18:37 +0200 Organization: ACME MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 cc: freebsd-standards@freebsd.org cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 15:18:40 -0000 "Garance A Drosihn" wrote: > At 3:19 AM +0200 4/23/04, Cyrille Lefevre wrote: > >"Albert Cahalan" wrote: > >> > >> No, the point was that adding **any** option to switch > >> parser modes kind of defeats the whole idea of trying > >> to be compatible with anything. > > > >as suggested by Garrett Wollman, I will change -qQ to -W > >something, as done before through -X posix,etc. which have > >been retired from the current version. > > Don't go changing things around yet again. I don't think > Garrett *requested* a change. He just pointed out that -W > is reserved "for the implementation". I'll work on later, since it is better to have only one option to switch between more than mode than to have multiple options. As I do it w/ my original -X options (a kind of, but much simplier). > > > You can switch via $PATH and/or some other environment variable. > > > >currently, mode switch is also done through [...] and using > >an environment variable (see another email about that). > >but, some others dislike environment variables... > > I have no intention of installing any updates which cause `ps' > to completely change it's behavior and accepted options based > on the value of an environment variable. gnu's have _POSIXLY_CORRECT and other systems have a similary environment variable. why don't us ? for script portability, it may be much simplier to say BLAH=yes, than to modify the whole script, IMHO. > > > > static char bsd_fmtstr[] = "\ > >> > label:Z user:[ju](n!)& uid:([ju]n&)([ls]([ju]!)&)| pid:2! ppid:[jl] \ > >> > pgid:j sid:jX& tpgid:jX& tsid:jX& jobc:j sig:s sigmask:s sigignore:s \ > >> > sigcatch:s cpu:l pri:l nice:l %cpu:u %mem:u vsz:[lu] rss:[lu] \ > >> > mwchan:l(n!)& nwchan:ln& tt:[d2u](vX&)| state:1! tt:[jls]([du]!)& \ > >> > start:u time:1! sl:v re:v pagein:v vsz:v([lu]!)& rss:v([lu]!)& lim:v \ > >> > tsiz:v %cpu:v(u!)& %mem:v(u!)& command:1! \ > >> > "; > >> > >> I am reminded of sendmail. You're getting close. > > > >maybe, but this kept the code as small as possible. encode this > >using if else if etc. and the code will be at least twice the > >actual one. > > I am not sure of all that that section of code is doing, but I > will say that I am a little uncomfortable with how cryptic that > fmtstr is. well, at the first time, I use a simplier solution, but it was not working in some case. so, the answer was to implement a reverse-polish-calculator bcoz "it is really simple to implement, even if the syntax isn't so easy to understand". 1 and 2 are used by before and after -O fmtlist j, l, n, s, u, v and Z are enabled by -j, -l, -n, -s, -u, -v and -Z d is the default format string, X is enabled by -Q label:Z -> Z user:[ju](n!)& -> (j or u) and (not n) uid:([ju]n&)([ls]([ju]!)&)| -> (n and (j or u)) or ((l or s) and (not (j or u))) pid:2! -> not 2 ppid:[jl] -> j or u pgid:j -> j sid:jX& tpgid:jX& tsid:jX& -> j and X jobc:j -> j sig:s sigmask:s sigignore:s sigcatch:s -> s cpu:l pri:l nice:l -> l %cpu:u %mem:u -> u vsz:[lu] rss:[lu] -> (l or u) mwchan:l(n!)& -> l and (not n) nwchan:ln& -> l and n => I may implement -n as -c is implemented ? tt:[d2u](vX&)| -> (d or 2 or u) or (v and X) state:1! -> not 1 tt:[jls]([du]!)& -> (j or l or s) and (not (d or u)) => already printed by d or u start:u -> u time:1! -> not 1 sl:v re:v pagein:v -> v vsz:v([lu]!)& rss:v([lu]!)& -> v and (not (l or u)) => already printed by l or u lim:v tsiz:v -> v %cpu:v(u!)& %mem:v(u!)& -> v and (not u) => already printed by u command:1! -> not 1 is that help you ? Cyrille Lefevre. -- home: mailto:cyrille.lefevre@laposte.net From owner-freebsd-standards@FreeBSD.ORG Sat Apr 24 13:50:21 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5EB7416A4CE for ; Sat, 24 Apr 2004 13:50:21 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5215943D54 for ; Sat, 24 Apr 2004 13:50:21 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i3OKoLbv094302 for ; Sat, 24 Apr 2004 13:50:21 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3OKoLDU094301; Sat, 24 Apr 2004 13:50:21 -0700 (PDT) (envelope-from gnats) Resent-Date: Sat, 24 Apr 2004 13:50:21 -0700 (PDT) Resent-Message-Id: <200404242050.i3OKoLDU094301@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-standards@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Stefan Farfeleder Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20B5416A4CE for ; Sat, 24 Apr 2004 13:40:46 -0700 (PDT) Received: from bgezal.rise.tuwien.ac.at (bgezal.rise.tuwien.ac.at [128.130.59.74]) by mx1.FreeBSD.org (Postfix) with ESMTP id 208C243D5C for ; Sat, 24 Apr 2004 13:40:45 -0700 (PDT) (envelope-from stefan@fafoe.dyndns.org) Received: from fafoe.narf.at (unknown [212.186.3.235]) by bgezal.rise.tuwien.ac.at (Postfix) with ESMTP id AED0A20B0 for ; Sat, 24 Apr 2004 22:40:43 +0200 (CEST) Received: from frog.fafoe.narf.at (frog.fafoe.narf.at [192.168.2.101]) by fafoe.narf.at (Postfix) with ESMTP id 2B8C840B6; Sat, 24 Apr 2004 22:40:36 +0200 (CEST) Received: by frog.fafoe.narf.at (Postfix, from userid 1001) id E2F0D7E46; Sat, 24 Apr 2004 22:40:35 +0200 (CEST) Message-Id: <20040424204035.E2F0D7E46@frog.fafoe.narf.at> Date: Sat, 24 Apr 2004 22:40:35 +0200 (CEST) From: Stefan Farfeleder To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: stefan@fafoe.narf.at Subject: standards/65939: [patch] namespace issues in X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Stefan Farfeleder List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 20:50:21 -0000 >Number: 65939 >Category: standards >Synopsis: [patch] namespace issues in >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-standards >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Apr 24 13:50:20 PDT 2004 >Closed-Date: >Last-Modified: >Originator: Stefan Farfeleder >Release: FreeBSD 5.2-CURRENT i386 >Organization: >Environment: System: FreeBSD frog.fafoe.narf.at 5.2-CURRENT FreeBSD 5.2-CURRENT #38: Sat Apr 24 19:45:23 CEST 2004 freebsd@frog.fafoe.narf.at:/freebsd/frog/obj/freebsd/frog/src/sys/FROG i386 >Description: Here's a list of identifiers defined in that aren't protected correctly and the namespace they should belong to. C99 means __ISO_C_VISIBLE >= 1999 BSD means __BSD_VISIBLE XSI means __XSI_VISIBLE 1 -> C99: FP_ILOGB0, FP_ILOGBNAN, HUGE_VALF, HUGE_VALL, INFINITY, NAN, FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, fpclassify, isfinite, isinf, isnan, isnormal, isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered, signbit, double_t, float_t 1 -> BSD: isnanf, !_ANSI_SOURCE && !_POSIX_SOURCE -> C99 | XSI: lgamma, expm1, log1p !_ANSI_SOURCE && !_POSIX_SOURCE -> BSD: drem, finite !_ANSI_SOURCE && !_POSIX_SOURCE -> XSI: M_E, M_E, M_LOG2E, M_LOG10E, M_LN2, M_LN10, M_PI, M_PI_2, M_PI_4, M_1_PI, M_2_PI, M_2_SQRTPI, M_SQRT2, M_SQRT1_2, MAXFLOAT, signgam, j0, j1, jn, y0, y1, yn !_ANSI_SOURCE && !_POSIX_SOURCE && !_XOPEN_SOURCE -> C99: tgamma, copysign, rint, scalbn, acosf, asinf, atanf, atan2f, cosf, sinf, tanf, coshf, sinhf, tanhf, expf, frexpf, log10f, modff, powf, sqrtf, ceilf, fabsf, floorf, fmodf, erff, erfcf, hypotf, lgammaf, acoshf, asinhf, atanhf, cbrtf, nextafterf, remainderf, copysignf, ilogbf, rintf, scalbnf, expm1f, log1pf, fabsl !_ANSI_SOURCE && !_POSIX_SOURCE && !_XOPEN_SOURCE -> C99 | XSI: erf, erfc, hypot, acosh, asinh, atanh, cbrt, logb, nextafter, remainder, ilogb !_ANSI_SOURCE && !_POSIX_SOURCE && !_XOPEN_SOURCE -> XSI: gamma (_XOPEN_SOURCE <= 500 only), scalb !_ANSI_SOURCE && !_POSIX_SOURCE && !_XOPEN_SOURCE -> BSD: matherr, significand, finitef, gammaf, j0f, j1f, jnf, y0f, y1f, ynf, scalbf, significandf, dremf, The macro isnan() should be __XSI_VISIBLE too, but it currently uses C99's fpclassify(). I also removed a stale comment about , this should probably be committed separately. >How-To-Repeat: >Fix: --- math.h.diff begins here --- Index: /usr/src/lib/msun/src/math.h =================================================================== RCS file: /usr/home/ncvs/src/lib/msun/src/math.h,v retrieving revision 1.29 diff -u -r1.29 math.h --- /usr/src/lib/msun/src/math.h 12 Mar 2004 12:05:38 -0000 1.29 +++ /usr/src/lib/msun/src/math.h 24 Apr 2004 19:52:17 -0000 @@ -32,19 +32,19 @@ float __uf; } __nan; +#define HUGE_VAL (__infinity.__ud) + +#if __ISO_C_VISIBLE >= 1999 #define FP_ILOGB0 (-0x7fffffff - 1) /* INT_MIN */ #define FP_ILOGBNAN 0x7fffffff /* INT_MAX */ -#define HUGE_VAL (__infinity.__ud) #define HUGE_VALF (float)HUGE_VAL #define HUGE_VALL (long double)HUGE_VAL #define INFINITY HUGE_VALF #define NAN (__nan.__uf) -#if __ISO_C_VISIBLE >= 1999 #define MATH_ERRNO 1 #define MATH_ERREXCEPT 2 #define math_errhandling 0 -#endif /* Symbolic constants to classify floating point numbers. */ #define FP_INFINITE 0x01 @@ -60,7 +60,6 @@ #define isfinite(x) ((fpclassify(x) & (FP_INFINITE|FP_NAN)) == 0) #define isinf(x) (fpclassify(x) == FP_INFINITE) #define isnan(x) (fpclassify(x) == FP_NAN) -#define isnanf(x) isnan(x) #define isnormal(x) (fpclassify(x) == FP_NORMAL) #define isgreater(x, y) (!isunordered((x), (y)) && (x) > (y)) @@ -75,11 +74,12 @@ typedef __double_t double_t; typedef __float_t float_t; +#endif /* __ISO_C_VISIBLE >= 1999 */ /* * XOPEN/SVID */ -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#if __XSI_VISIBLE #define M_E 2.7182818284590452354 /* e */ #define M_LOG2E 1.4426950408889634074 /* log 2e */ #define M_LOG10E 0.43429448190325182765 /* log 10e */ @@ -96,8 +96,9 @@ #define MAXFLOAT ((float)3.40282346638528860e+38) extern int signgam; +#endif -#if !defined(_XOPEN_SOURCE) +#if __BSD_VISIBLE enum fdversion {fdlibm_ieee = -1, fdlibm_svid, fdlibm_xopen, fdlibm_posix}; #define _LIB_VERSION_TYPE enum fdversion @@ -129,6 +130,8 @@ }; #endif +#define isnanf(x) isnan(x) + #if 0 /* Old value from 4.4BSD-Lite math.h; this is probably better. */ #define HUGE HUGE_VAL @@ -136,12 +139,7 @@ #define HUGE MAXFLOAT #endif -/* - * set X_TLOSS = pi*2**52, which is possibly defined in - * (one may replace the following line by "#include ") - */ - -#define X_TLOSS 1.41484755040568800000e+16 +#define X_TLOSS 1.41484755040568800000e+16 /* pi*2**52 */ #define DOMAIN 1 #define SING 2 @@ -150,8 +148,7 @@ #define TLOSS 5 #define PLOSS 6 -#endif /* !_XOPEN_SOURCE */ -#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ +#endif /* __BSD_VISIBLE */ #include @@ -202,65 +199,70 @@ * These functions are not in C90 so they can be "right". The ones that * never set errno in lib/msun are declared as __pure2. */ -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE +double acosh(double); +double asinh(double); +double atanh(double); +double cbrt(double) __pure2; double erf(double); double erfc(double) __pure2; -int finite(double) __pure2; -double gamma(double); +double expm1(double) __pure2; double hypot(double, double); +int ilogb(double); +double lgamma(double); +double log1p(double) __pure2; +double logb(double) __pure2; +double nextafter(double, double); +double remainder(double, double); +double rint(double) __pure2; +#endif + +#if __XSI_VISIBLE double j0(double); double j1(double); double jn(int, double); -double lgamma(double); +double scalb(double, double); double y0(double); double y1(double); double yn(int, double); -#if !defined(_XOPEN_SOURCE) -double acosh(double); -double asinh(double); -double atanh(double); -double cbrt(double) __pure2; -double logb(double) __pure2; -double nextafter(double, double); -double remainder(double, double); -double scalb(double, double); -double tgamma(double); - -#ifndef __cplusplus -int matherr(struct exception *); +#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE +double gamma(double); #endif +#endif /* __XSI_VISIBLE */ -/* - * IEEE Test Vector - */ -double significand(double); - -/* - * Functions callable from C, intended to support IEEE arithmetic. - */ +#if __ISO_C_VISIBLE >= 1999 double copysign(double, double) __pure2; -int ilogb(double); -double rint(double) __pure2; double scalbn(double, int); +double tgamma(double); +#endif /* * BSD math library entry points */ +#if __BSD_VISIBLE double drem(double, double); -double expm1(double) __pure2; -double log1p(double) __pure2; +int finite(double) __pure2; /* * Reentrant version of gamma & lgamma; passes signgam back by reference * as the second argument; user must allocate space for signgam. */ -#if __BSD_VISIBLE double gamma_r(double, int *); double lgamma_r(double, int *); + +/* + * IEEE Test Vector + */ +double significand(double); + +#ifndef __cplusplus +int matherr(struct exception *); +#endif #endif /* __BSD_VISIBLE */ /* float versions of ANSI/POSIX functions */ +#if __ISO_C_VISIBLE >= 1999 float acosf(float); float asinf(float); float atanf(float); @@ -274,10 +276,13 @@ float tanhf(float); float expf(float); +float expm1f(float) __pure2; float frexpf(float, int *); /* fundamentally !__pure2 */ +int ilogbf(float); float ldexpf(float, int); -float logf(float); float log10f(float); +float log1pf(float) __pure2; +float logf(float); float modff(float, float *); /* fundamentally !__pure2 */ float powf(float, float); @@ -290,60 +295,54 @@ float erff(float); float erfcf(float) __pure2; -int finitef(float) __pure2; -float gammaf(float); float hypotf(float, float) __pure2; -float j0f(float); -float j1f(float); -float jnf(int, float); float lgammaf(float); -float y0f(float); -float y1f(float); -float ynf(int, float); float acoshf(float); float asinhf(float); float atanhf(float); float cbrtf(float) __pure2; float logbf(float) __pure2; +float copysignf(float, float) __pure2; float nextafterf(float, float); float remainderf(float, float); -float scalbf(float, float); - -/* - * float version of IEEE Test Vector - */ -float significandf(float); - -/* - * Float versions of functions callable from C, intended to support - * IEEE arithmetic. - */ -float copysignf(float, float) __pure2; -int ilogbf(float); float rintf(float); float scalbnf(float, int); +#endif /* * float versions of BSD math library entry points */ +#if __BSD_VISIBLE float dremf(float, float); -float expm1f(float) __pure2; -float log1pf(float) __pure2; +int finitef(float) __pure2; +float gammaf(float); +float j0f(float); +float j1f(float); +float jnf(int, float); +float scalbf(float, float); +float y0f(float); +float y1f(float); +float ynf(int, float); /* * Float versions of reentrant version of gamma & lgamma; passes * signgam back by reference as the second argument; user must * allocate space for signgam. */ -#if __BSD_VISIBLE float gammaf_r(float, int *); float lgammaf_r(float, int *); + +/* + * float version of IEEE Test Vector + */ +float significandf(float); #endif /* __BSD_VISIBLE */ /* * long double versions of ISO/POSIX math functions */ +#if __ISO_C_VISIBLE >= 1999 #if 0 long double acoshl(long double); long double acosl(long double); @@ -408,8 +407,7 @@ long double truncl(long double); #endif -#endif /* !_XOPEN_SOURCE */ -#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ +#endif /* __ISO_C_VISIBLE >= 1999 */ __END_DECLS #endif /* !_MATH_H_ */ --- math.h.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-standards@FreeBSD.ORG Sat Apr 24 15:11:07 2004 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 23CBE16A4CE for ; Sat, 24 Apr 2004 15:11:07 -0700 (PDT) Received: from mailhost.stack.nl (vaak.stack.nl [131.155.140.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92B0743D45 for ; Sat, 24 Apr 2004 15:11:06 -0700 (PDT) (envelope-from jilles@stack.nl) Received: from turtle.stack.nl (turtle.stack.nl [2001:610:1108:5010::132]) by mailhost.stack.nl (Postfix) with ESMTP id 408AE5F9#9FD021F003; Sun, 25 Apr 2004 00:11:05 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id 7E8431CC9B; Sun, 25 Apr 2004 00:11:05 +0200 (CEST) Date: Sun, 25 Apr 2004 00:11:05 +0200 From: Jilles Tjoelker To: Cyrille Lefevre Message-ID: <20040424221105.GA67382@stack.nl> References: <20040422172401.GA88130@stack.nl> <01cb01c428d7$ea7592b0$7890a8c0@dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <01cb01c428d7$ea7592b0$7890a8c0@dyndns.org> X-Operating-System: FreeBSD 5.2.1-RELEASE-p4 i386 User-Agent: Mutt/1.5.6i cc: freebsd-standards@freebsd.org cc: Garance A Drosihn cc: Albert Cahalan Subject: Re: ps enhencements (posix syntax, and more) X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Apr 2004 22:11:07 -0000 On Fri, Apr 23, 2004 at 04:07:49AM +0200, Cyrille Lefevre wrote: > "Jilles Tjoelker" wrote: > > On Thu, Apr 22, 2004 at 12:54:51AM +0200, Cyrille Lefevre wrote: > > Quoting from the pr: > > > enhancements to the posix syntax are : > > > -O same as -o pid,fmtlist,tty,time,comm > [snip] What bothered me was that that -O didn't seem to take any arguments, but that's a mistake in that list only :) > > > findvar() rewritten to handle header specification on aliases. > > > now, you may say "ps -O acflg=XXX" as well as "ps -O acfalg=XXX" > > There's a PR of mine open on that, too (much simpler). > your implementation isn't recursive, so -o RUSAGE could'nt be handled. I told you that my implementation was much simpler :) > > > tsid added in -j format string > > Use sid instead, it's more informative (in case of processes that can't > > access their ctty anymore (like 'p2-') or don't have a ctty at all). I > > think I had a PR for that, too (certainly a local patch, at least). > you are right, I forgot to say that sid as also been added, as well as > tpgid and tsid, but only if -Q (or -W extended in the future) is given. > maybe sid should be added to the default format string (w/o -Q) ? > # bps -jQ > USER PID PPID PGID SID TPGID TSID JOBC STAT TT TIME COMMAND No, just keep USER PID PPID PGID SID JOBC STAT TT TIME COMMAND The interesting thing about TSID is whether it's equal to SID or not, but that information is given by the presence of a '-' after TT already. TPGID might be useful. > > > if (!S_ISCHR(sb.st_mode)) { > > Use isatty(3) for checking whether it's a tty. Things like ps -t > > /dev/da0s1a are meaningless but I think your patch will not reject it. > isatty(3) needs a file descriptor. do you intend that each -t args with an > absolute path would have to be opened, checked w/ isatty(2), then close ? > why not, any other opinion ? Doh! Of course you shouldn't open the tty. And the check you use is the same as in earlier versions of FreeBSD ps. Never mind. -- Jilles Tjoelker From owner-freebsd-standards@FreeBSD.ORG Sat Apr 24 18:19:20 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D122016A4CE; Sat, 24 Apr 2004 18:19:20 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DBAE43D1D; Sat, 24 Apr 2004 18:19:20 -0700 (PDT) (envelope-from das@FreeBSD.org) Received: from freefall.freebsd.org (das@localhost [127.0.0.1]) i3P1JKbv024736; Sat, 24 Apr 2004 18:19:20 -0700 (PDT) (envelope-from das@freefall.freebsd.org) Received: (from das@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3P1JKPg024732; Sat, 24 Apr 2004 18:19:20 -0700 (PDT) (envelope-from das) Date: Sat, 24 Apr 2004 18:19:20 -0700 (PDT) From: David Schultz Message-Id: <200404250119.i3P1JKPg024732@freefall.freebsd.org> To: das@FreeBSD.org, freebsd-standards@FreeBSD.org, das@FreeBSD.org Subject: Re: standards/63935: [patch] Fix C90 namespace pollution in X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 01:19:20 -0000 Synopsis: [patch] Fix C90 namespace pollution in Responsible-Changed-From-To: freebsd-standards->das Responsible-Changed-By: das Responsible-Changed-When: Sat Apr 24 18:18:24 PDT 2004 Responsible-Changed-Why: I'll take this one. http://www.freebsd.org/cgi/query-pr.cgi?pr=63935 From owner-freebsd-standards@FreeBSD.ORG Sat Apr 24 18:19:49 2004 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6DC5016A4CE; Sat, 24 Apr 2004 18:19:49 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4FC1343D53; Sat, 24 Apr 2004 18:19:49 -0700 (PDT) (envelope-from das@FreeBSD.org) Received: from freefall.freebsd.org (das@localhost [127.0.0.1]) i3P1Jnbv024781; Sat, 24 Apr 2004 18:19:49 -0700 (PDT) (envelope-from das@freefall.freebsd.org) Received: (from das@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i3P1Jn8o024777; Sat, 24 Apr 2004 18:19:49 -0700 (PDT) (envelope-from das) Date: Sat, 24 Apr 2004 18:19:49 -0700 (PDT) From: David Schultz Message-Id: <200404250119.i3P1Jn8o024777@freefall.freebsd.org> To: das@FreeBSD.org, freebsd-standards@FreeBSD.org, das@FreeBSD.org Subject: Re: standards/65939: [patch] namespace issues in X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2004 01:19:49 -0000 Synopsis: [patch] namespace issues in Responsible-Changed-From-To: freebsd-standards->das Responsible-Changed-By: das Responsible-Changed-When: Sat Apr 24 18:19:36 PDT 2004 Responsible-Changed-Why: I'll take this one. http://www.freebsd.org/cgi/query-pr.cgi?pr=65939