[Scons-dev] dropping "recognized but ignored" args?
Mats Wichmann
mats at wichmann.us
Sat Sep 28 15:47:35 EDT 2019
Just so this had an airing somewhere other than on Discord...
SCons manpage makes some mention of being like other tools:
"In general, scons supports the same command-line options as GNU make,
and many of those supported by cons."
there may have been some early effort to have it look a bit like Make,
which seems rather pointless now, everybody knows (and the FAQ and other
places often actually say) "scons is not make". And comparisons to
cons, besides a brief historical nod, seem useless, scons' own materials
point out cons is unmaintained/abandoned since 2001.
I'd like to drop mentions comparing to those tools in this way.
Further, I'd like to suggest dropping - or if we want to be really
pedantic, first deprecating (turning their use to a warning) then
dropping, the set of options that are recognized but ignored because
people might somehow use them due to familiarly with make - there just
seems no real reason now. And maybe some of those option letters might
be useful for something else later? I clipped the piece that sets these
up, which was also posted in the discord channel when I first mentioned
this:
op.add_option("-b", "-d", "-e", "-m", "-S", "-t", "-w",
"--environment-overrides",
"--no-keep-going",
"--no-print-directory",
"--print-directory",
"--stop",
"--touch",
action="callback", callback=opt_ignore,
help="Ignored for compatibility.")
Thoughts?
There's another set that are in some sense reserved - they're defined,
issue a warning, and otherwise do nothing. I have much less of a strong
opinion about these, but they are included here for completeness. Some
of these could actually be useful at some point.
# Options from Make and Cons classic that we do not yet support,
# but which we may support someday and whose (potential) meanings
# we don't want to change. These all get a "the -X option is not
# yet implemented" message and don't show up in the help output.
op.add_option('-l', '--load-average', '--max-load', nargs=1, type="float",
# help="Don't start multiple jobs unless load is below "
op.add_option('--list-actions',
# help="Don't build; list files and build actions."
op.add_option('--list-derived',
# help="Don't build; list files that would be built."
op.add_option('--list-where',
# help="Don't build; list files and where defined."
op.add_option('-o', '--old-file', '--assume-old', nargs=1, type="string",
# help = "Consider FILE to be old; don't rebuild it."
op.add_option('--override', nargs=1, type="string",
# help="Override variables as specified in FILE."
op.add_option('-p',
# help="Print internal environments/objects."
op.add_option('-r', '-R', '--no-builtin-rules', '--no-builtin-variables',
# help="Clear default environments and variables."
op.add_option('--write-filenames', nargs=1, type="string",
# help="Write all filenames examined into FILE."
op.add_option('-W', '--new-file', '--assume-new', '--what-if', nargs=1,
type="string",
# help="Consider FILE to be changed."
op.add_option('--warn-undefined-variables',
# help="Warn when an undefined variable is referenced."
More information about the Scons-dev
mailing list