Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-39160 Align the verbs, grammar and defaults for `./configure --help` #17747

Merged
merged 4 commits into from Jan 14, 2020

Conversation

@tonybaloney
Copy link
Contributor

tonybaloney commented Dec 30, 2019

Updated version based on principles:

  • Should not specify --with(out)-xyz in help string, it's implied by default
  • Sentences should start with lowercase (as autoconf generates the builtin string with lower case)
  • --with-xyx=VALUE will be described as "overriding"
  • --with-xyz will be described as "enabling" said feature
  • Mac flags should have the same descriptions as what is in Mac/README.rst
  • Default value should be in brackets (if known)
  • Enumerated options should be shown as =VAL1|VAL2 or [=VAL1|VAL2] if optional
 Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-universalsdk[=SDKDIR]
                          create a universal binary build. SDKDIR specifies
                          which macOS SDK should be used to perform the build,
                          see Mac/README.rst. (default is no)
  --enable-framework[=INSTALLDIR]
                          create a Python.framework rather than a traditional
                          Unix install. optional INSTALLDIR specifies the
                          installation path. see Mac/README.rst (default is
                          no)
  --enable-shared         enable building a shared Python library (default is
                          no)
  --enable-profiling      enable C-level code profiling with gprof (default is
                          no)
  --enable-optimizations  enable expensive, stable optimizations (PGO, etc.)
                          (default is no)
  --enable-loadable-sqlite-extensions
                          support loadable extensions in _sqlite module, see
                          Doc/library/sqlite3.rst (default is no)
  --enable-ipv6           enable ipv6 (with ipv4) support, see
                          Doc/library/socket.rst (default is yes if supported)
  --enable-big-digits[=15|30]
                          use big digits (30 or 15 bits) for Python longs
                          (default is no)]

 Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-universal-archs=ARCH
                          specify the kind of universal binary that should be
                          created. this option is only valid when
                          --enable-universalsdk is set; options are:
                          ("32-bit", "64-bit", "3-way", "intel", "intel-32",
                          "intel-64", or "all") see Mac/README.rst
  --with-framework-name=FRAMEWORK
                          specify the name for the python framework on macOS
                          only valid when --enable-framework is set. see
                          Mac/README.rst (default is 'Python')
  --with-cxx-main[=COMPILER]
                          compile main() and link Python executable with C++
                          compiler specified in COMPILER (default is $CXX)
  --with-suffix=SUFFIX    set executable suffix to SUFFIX (default is '.exe')
  --with-pydebug          build with Py_DEBUG defined (default is no)
  --with-trace-refs       enable tracing references for debugging purpose
                          (default is no)
  --with-assertions       build with C assertions enabled (default is no)
  --with-lto              enable Link-Time-Optimization in any build (default
                          is no)
  --with-hash-algorithm=[fnv|siphash24]
                          select hash algorithm for use in Python/pyhash.c
                          (default is SipHash24)
  --with-address-sanitizer
                          enable AddressSanitizer memory allocation
                          controller, 'asan' (default is no)
  --with-memory-sanitizer enable MemorySanitizer memory allocation controller,
                          'msan' (default is no)
  --with-undefined-behavior-sanitizer
                          enable UndefinedBehaviorSanitizer memory allocation
                          controller, 'ubsan' (default is no)
  --with-libs='lib1 ...'  link against additional libs (default is no)
  --with-system-expat     build pyexpat module using an installed system expat
                          library, see Doc/library/pyexpat.rst (default is no)
  --with-system-ffi       build _ctypes module using an installed ffi library,
                          see Doc/library/ctypes.rst (default is system
                          dependant)
  --with-system-libmpdec  build _decimal module using an installed libmpdec
                          library, see Doc/library/decimal.rst (default is no)
  --with-tcltk-includes='-I...'
                          override search for Tcl and Tk include files
  --with-tcltk-libs='-L...'
                          override search for Tcl and Tk libs
  --with-dbmliborder=db1:db2:...
                          override order to check db backends for dbm. valid
                          value is a colon separated string with the backend
                          names `ndbm', `gdbm' and `bdb'.
  --with-doc-strings      enable documentation strings (default is yes)
  --with-pymalloc         enable specialized mallocs (default is yes)
  --with-c-locale-coercion
                          enable C locale coercion to a UTF-8 based locale
                          (default is yes)
  --with-valgrind         enable Valgrind support (default is no)
  --with-dtrace           enable DTrace support (default is no)
  --with-libm=STRING      override libm math library to STRING (default is
                          system dependant)
  --with-libc=STRING      override libc C library to STRING (default is system
                          dependant)
  --with-computed-gotos   enable computed gotos in evaluation loop (enabled by
                          default on supported compilers)
  --with-ensurepip[=install|upgrade|no]
                          "install" or "upgrade" using bundled pip (default is
                          upgrade)
  --with-openssl=DIR      override root of the OpenSSL directory to DIR
  --with-ssl-default-suites=[python|openssl|STRING]
                          override default cipher suites string, python: use
                          Python's preferred selection (default), openssl:
                          leave OpenSSL's defaults untouched, STRING: use a
                          custom string, PROTOCOL_SSLv2 ignores the setting,
                          see Doc/library/ssl.rst

https://bugs.python.org/issue39160

@tonybaloney

This comment has been minimized.

Copy link
Contributor Author

tonybaloney commented Dec 30, 2019

Also requesting review from @Yhg1s (if the expert index is up to date). Although this doesn't change any behaviours in autoconf

@pablogsal pablogsal requested a review from Yhg1s Dec 30, 2019
@ned-deily ned-deily self-requested a review Dec 30, 2019
Unix install. optional INSTALLDIR specifies the
installation path. see Mac/README.rst (default is
no)
--enable-shared enable building a shared Python library (default is

This comment has been minimized.

Copy link
@tonybaloney

tonybaloney Dec 30, 2019

Author Contributor

As a follow on. This needs more documentation somewhere, it's only referenced in the release notes

configure Outdated Show resolved Hide resolved
enable C locale coercion to a UTF-8 based locale
(default is yes)
--with-valgrind enable Valgrind support (default is no)
--with-dtrace enable DTrace support (default is no)

This comment has been minimized.

Copy link
@tonybaloney

tonybaloney Dec 30, 2019

Author Contributor

I think the dtrace support also needs documenting somewhere, it's a really useful feature when you know how to use it. It's not mentioned in the profiling section of docs

configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
m4/ax_check_openssl.m4 Show resolved Hide resolved
@bedevere-bot

This comment has been minimized.

Copy link

bedevere-bot commented Dec 30, 2019

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

tonybaloney added 2 commits Dec 30, 2019
…efaults
@tonybaloney

This comment has been minimized.

Copy link
Contributor Author

tonybaloney commented Dec 30, 2019

I have made the requested changes; please review again

@bedevere-bot

This comment has been minimized.

Copy link

bedevere-bot commented Dec 30, 2019

Thanks for making the requested changes!

@Yhg1s: please review the changes made to this pull request.

@bedevere-bot bedevere-bot requested a review from Yhg1s Dec 30, 2019
@Yhg1s
Yhg1s approved these changes Jan 2, 2020
Copy link
Member

Yhg1s left a comment

@ned-deily should review the framework help strings, since I don't know much about that.

AS_HELP_STRING([--with-cxx-main=<compiler>],
[compile main() and link python executable with C++ compiler]),
AS_HELP_STRING([--with-cxx-main@<:@=COMPILER@:>@],
[compile main() and link Python executable with C++ compiler specified in COMPILER (default is $CXX)]),

This comment has been minimized.

Copy link
@Yhg1s

Yhg1s Jan 2, 2020

Member

This is a little misleading: the default is not to link with CXX at all, although the default value when passing --with-cxx-main is indeed CXX. (As an aside, I don't think this option is useful anymore; I believe it was only necessary with gcc 2.95, perhaps only on some platforms.)

@tonybaloney

This comment has been minimized.

Copy link
Contributor Author

tonybaloney commented Jan 3, 2020

thanks, @Yhg1s, the framework help strings are copied from mac/README

Copy link
Member

ned-deily left a comment

Looks good to me. It's a nice improvement, thanks! I'm going to merge the PR as it stands. If you want to follow up on the suggestions for additional changes, let's open another PR for that.

@ned-deily ned-deily merged commit 2de064e into python:master Jan 14, 2020
9 checks passed
9 checks passed
Docs
Details
Windows (x86)
Details
Windows (x64)
Details
macOS
Details
Ubuntu
Details
Azure Pipelines PR #20191230.31 succeeded
Details
bedevere/issue-number Issue number 39160 found
Details
bedevere/news News entry found in Misc/NEWS.d
continuous-integration/travis-ci/pr The Travis CI build passed
Details
petdance added a commit to petdance/cpython that referenced this pull request Jan 17, 2020
petdance added a commit to petdance/cpython that referenced this pull request Jan 17, 2020
petdance added a commit to petdance/cpython that referenced this pull request Jan 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.