[all-commits] [llvm/llvm-project] e82f0a: [libc++][Take 2] Create a small DSL for defining L...

Louis Dionne via All-commits all-commits at lists.llvm.org
Tue Apr 28 07:05:30 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e82f0a598f86f952910fd80ad3b3d712479cb90a
      https://github.com/llvm/llvm-project/commit/e82f0a598f86f952910fd80ad3b3d712479cb90a
  Author: Louis Dionne <ldionne at apple.com>
  Date:   2020-04-28 (Tue, 28 Apr 2020)

  Changed paths:
    A libcxx/test/libcxx/selftest/dsl/dsl.sh.py
    A libcxx/test/libcxx/selftest/dsl/lit.local.cfg
    A libcxx/utils/libcxx/test/dsl.py

  Log Message:
  -----------
  [libc++][Take 2] Create a small DSL for defining Lit features and parameters

This allows defining Lit features that can be enabled or disabled based
on compiler support, and parameters that are passed on the command line.

The main benefits are:
- Feature detection is entirely based on the substitutions provided in
  the TestingConfig object, which is simpler and decouples it from the
  complicated compiler emulation infrastructure.
- The syntax is declarative, which makes it easy to see what features
  and parameters are accepted by the test suite. This is significantly
  less entangled than the current config.py logic.
- Since feature detection is based on substitutions, it works really
  well on top of the new format, and custom Lit configurations can be
  created easily without being based on `config.py`.

This commit is a reapplication of 6d58030c8c7d, which was reverted in
8f24c4b72f3e because it broke Python 3 support. This re-application
supports Python 3.

Differential Revision: https://reviews.llvm.org/D78381




More information about the All-commits mailing list