[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