Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

More POSIX Issue 8 (next version) changes

Note that below, the indented descriptions of what the issue is
about are just intended as a guide to allow readers of this message
to decide which Austin Group bug issues are worth looking at.  They're
just my paraphrase of what it is all about, and aren't guaranteed to be
even very close to correct - if it matters to you, visit the URL that
precedes the description in question and examine that, not just my words.

Also note that I am omitting lots of changes that no-one here is likely
to really are about (spelling variations within a page being fixed, missing
newlines in ... and more of that kind) plus some others that are very
unlikely to matter to anyone here.

	Changes to sem_open() sem_close() - not really my thing,
	so see the URL if you care about these things.   I have
	no idea how these changes impact NetBSD (if at all).

	The tsort change mentioned in an earlier message, I think
	I forgot to give the URL for the change in that one.

	pax -s option, flags after /re/subst/ change (mentioned on
	this list some time ago).   For NetBSD we will need to alter
	the 'S' flag to do nothing (if I recall properly) rather than
	being a synonym for 's'.

	That's really about mktime (but mostly ignore that part, a later
	bug report is likely to almost entirely replace the mktime page - if
	accepted (in any case something will certainly happen - the description
	of mktime is hopeless).

	But thrown in as a by product is that Olson style TZ identifiers
	are now in the standard (which affects neither us, nor just about
	anyone else, at all, as we've accepted them since before NetBSD).
	The text changes for that should be at that URL I think. 

	This one just cleans up text about nul-terminted strings, and affects
	nothing for anyone who already knows what that is, and could interpret
	the various ways the standard used to refer to them.

	This adds \0 delimited I/O for path names to find (-print0) xargs (-0)
	and the sh read builtin (-d '') all of which we support already (the
	last one only in -10 and beyond).   They were all separate bug
	reports initially, but all got rolled into the one for find.
	This also adds xargs -r (which we already support, as a no-op, as
	it is our default behaviour) but continues to require (as it did
	before, and we ignored) that if -r is not given, the xargs command
	always be executed at least once, even if stdin is (effectively)
	/dev/null.   ie: xargs echo foo </dev/null is supposed to write "foo"
	(Of course, redirecting from /dev/null isn't where this really matters,
	that's lunacy, but where "find ... | xargs" finds nothing to write
	into the pipe ... a bunch of examples have had -r added to make them
	more rational.)

	That's a change to the spec for the shell, which adds a new kind
	of utility (a "declaration utility") for things like export
	readonly ...  (which by itself is just new terminology and harmless)
	but then alters the way the args are parsed when the command name is
	such a thing, which completely breaks the way that things are supposed
	to work, where the args are all processed, expanded, ... and once all
	that's done the shell works out what the command is, and executes it.
	Nice and regular, and the same for all commands.   Since this one is
	right in my area, I will say that I am planning on simply ignoring it,
	it adds nothing that can't already be done, and is absurd (IMO).

	Adds the -j option to make.   I doubt there's anything in this which
	is different than what we do, but someone familiar with make should
	take a look and make sure.

	More make ... I think this just adds mention of .NOTPARALLEL and .WAIT
	in the Rationale section, but once again ...

	More make ... adds :::= and +:= (or something like that).

	More make - should be just a clarification ...

	More make, things missed in earlier changes.

	Even more make ... adds $^

	And yet more make (will this never end?) -- deals with expanding
	unset macros.

	And we continue, more make, this one relating to escaped newlines
	in macro expansions.   I really don't want to know!

	readv() and writev() should be async-signal-safe but were not
	previously in the list (note: this one has no note added with the
	text that was changed, the two functions simply get added to the
	list of async-signal-safe functions).

	When remquo() returns a NaN what is put in "quo" is unspecified. 

	The text that specifies what happens (or can happen) when tgamma()
	is passed a negative arg has been changed to align better with C.

	time_t must be at least 64 bits... 

	Changes to what is specified (and not) when locale categories
	set specify locales that use different character sets.

	The definition of FS in awk has been fixed.

	The prs utility (yes, sccs is still in posix) is no longer required
	to support KV (Keyword Validation) (because no-one did, or rather,
	one implementation did, but always said "None").

	Changes the spec for when at(1) should exit(0) 

	Changes the spec for when dd(1) should exit(0)

	The exit status to use when diff(1) gets an error writing the diffs 

	If an error occurs, a standard utility must exit with a status that
	indicates an error occurred, not just non-zero (so test(1) cannot
	exit(1) on error, as that indicates success with a false value,
	similarly for grep, diff, ...)          expr          find          grep          kill          ln          mailx          stty          tty          what

	Changes to EXIT STATUS spec for:
		expr find grep kill ln mailx stty tty what

	system() and popen() need to run sh with "--" so that if the arg
	(command to run) starts with '-' it isn't interpreted as sh options.

	This was fixed in NetBSD back when the issue was under discussion
	(a year or so ago).

	The same for mailx (no idea if we need a change here or not).

	And again for ex nohup & time (ditto)

	asprintf() and vasprintf() are added (NetBSD has had them a long time). 

	Add M_1_SQRTPI M_SQRT3 M_SQRT1_3 M_EGAMMA & M_PHI	to <math.h>

	See the URL for more precise info, but as a rough idea for
	this message:

		M_1_SQRTPI		1/sqrt(pi)
		M_SQRT3		sqrt(3)
		M_SQRT1_3		1/sqrt(3)
		M_EGAMMA		[lower-case gamma], Euler-Mascheroni constant
		M_PHI		[lower-case phi], ( (1 + sqrt(5))/2 ),
				golden ratio constant

	NetBSD has none of those, someone who can calculate them properly
	(or look them up in a book, or something) should probably add them.

	Clarifications to the definition of how shell "here documents" are
	specified and processed (at least, to where they should be put,
	and what triggers them) making a whole set of potential bizarre
	cases become unspecified (ie: don't do that).

	Specify that the "sticky" bit (S_ISVTX) can be set with mkdir(2).

	clarify that only the final close of an fd for a socket destroys
	the socket, not just any close().

	Specify more precisely what open() flags should be used for
	fopen() with various options (including 'e' (close on exec) and
	'x' (O_EXCL).)   Without an implementation defined extra fopen()
	flag char, no additional open() mode bits, not specified, can be
	randomly added.

	similar for fdopen()

	Lots of changes (mostly relatively minor I think) to align
	POSIX Issue 8 with C17.

	On the output format of stty -g

	Addition of posix_devctl() - intended to be a portable ioctl()
	(and specified so it cam more or less just be a wrapper around

	I suspect we're going to need to add this one to libc

	In uudecode, '-' can mean stdout (I believe we do all this already).

	In BREs (Basic Regular Expressions) reserve \? \+ and \|
	(so implementations can make those mean something if they want,
	I assume).

Enough for today.    Note to self (this is meaningless to everyone else): 11404


ps: I am by no means sure that all of the make changes are included above.

Home | Main Index | Thread Index | Old Index