Received: by 10.223.164.202 with SMTP id h10csp439532wrb; Thu, 9 Nov 2017 08:38:25 -0800 (PST) X-Google-Smtp-Source: ABhQp+TZ8LDKUDRc8mOo6Ebt4okeMKOgsFzWQaazrci2/x3iJ7n7327j22U0oe7EvrEGZ6VYl1DN X-Received: by 10.84.196.3 with SMTP id k3mr969035pld.237.1510245505514; Thu, 09 Nov 2017 08:38:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510245505; cv=none; d=google.com; s=arc-20160816; b=C4KEzG1UK6jzklDjTYwVeiwCn1PbL/z+0qUQBtmJrjiIdB/SHcd0BC0xm0wahg68Ku srLJNrLI4Yu9qoY++jNx5d/2ySat7+DsdD5NuY+A2WnMsJahQsr91QXL0syW60NXmZSZ rClvIHEXntHKdYiMlHk2Kjv8a8BqGb8vqR/yi7NPIL7g5PnYASEL6klI6BiPoLT32sI2 6w7WddgcUaiIzJaJZtGo2dM2IUAqhSn4WGT8djIsZA/YDaquG5T70blTUW0kOTv8/JBK U0dEhvYGJxwZxSn3+swZ7eVoRf/h8XbTW04SZwias8n2YRKKuObolnMhB20SL9tyZ2CK qf1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:subject:message-id:date:from :mime-version:dkim-signature:arc-authentication-results; bh=CxTGPUd3uq0AqDXC42g78cTAV0lVQyemR02bvgneXa8=; b=LjasOPcPJZMiCJ1EtzA+Y1l5nTvZAmQybkLwgjAmkICUlGKW636LwdZepBlV6YDYcp PXYd/zlx4FX3IoO/ALCGNJXDkkKcbwOe5P3klj7+clBTybp7Z36nSKfSGDbZ4Sk1mJYA EdX+J4Y1eST7QcM/BmqlIKkObIU7jkyEz+Rn7MV9ovt6pjNauY+O5wKRE8LwsnnVhmVN wEMyOrxaRsycDJom93ZGa4/gy+Y9h9ZsE5/KPxfU8NI1p9Ng57WBua67fCPU0SF7tt8I 8SOyimmwQ6f4WPN5YI06jmrJu2ZuPcuLaCYHQz5C4Lm29Jpe9ZFoTistqbDoWjApHmKx vlWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=cB9fy7El; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w15si6929092pgt.71.2017.11.09.08.38.14; Thu, 09 Nov 2017 08:38:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=cB9fy7El; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753439AbdKIQhX (ORCPT + 81 others); Thu, 9 Nov 2017 11:37:23 -0500 Received: from mail-ua0-f196.google.com ([209.85.217.196]:50383 "EHLO mail-ua0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753007AbdKIQhV (ORCPT ); Thu, 9 Nov 2017 11:37:21 -0500 Received: by mail-ua0-f196.google.com with SMTP id v27so4820422uav.7; Thu, 09 Nov 2017 08:37:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=CxTGPUd3uq0AqDXC42g78cTAV0lVQyemR02bvgneXa8=; b=cB9fy7Elbss3xbydR7M6x7kiypo2cAf7CG1Ba1rdWpK8B4QFVNGaRsEVDQxmkDH5VH pcbhGWHzY8lydYIpnadAfYRrBDTb2XS5CEXfh2k58CUpKNxMd5tW3fasFB7ds4QMrQlt ZaSMUtTJwMRCXN9MblzaKlqaS8FSr9HMhEvOYXJoDGO3A1sM62yc4QCGA/2jTMvXJeea 9fzWx4gvCv9locAE6jY5V0bl76+IQUmRJHNI3guSCSFt2UyXAPJruoC/WGF9BOOU7beR I7zh8hj027mLIj2B/cE5WmXbeaPi7vU9Ip6xN2sMvV0IqdCs8dxLmcUghdJCTpsGHdbe e6Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=CxTGPUd3uq0AqDXC42g78cTAV0lVQyemR02bvgneXa8=; b=m9wsvdXhWcf4MpzfIDE+HSRR+KlvHJ5xyuYlXtgjt8I20lM2Yt15DzlBGyZDWZFHzV 7ttve1JdVC3EpL9dEMyXQtpQukM+8c9MPhTnIQyxc5LU5jiuIAfzcNgnZTS9Boncfhx/ bM7VxytIXVIlpdty3xkOjSd+NuscVaX4xA+LuOz3+r7W/wtpRf5qxOxLIOYZPXeUV2Qs M1sOM3mMcOuKYPvTjJbJIqdSURP6CyUddg2pdezCahOWGjtprCil+YahntBt//X2hgqT r+qmDVKAsBtNTEqG+2Fqh6AadGH9q/uUw3kj9D7IpvkSCo0rt8w+Phlw7YQTB2JJGnSJ 5opQ== X-Gm-Message-State: AJaThX4NMjEW14X/8I6BNfSDDI8ipRCLxTfWalz1e751NVIO+khUzNNf U5ah0rVlQNslXPdf3FEd8LVNMvwNMfWM7ECASJKx1xy+/3s= X-Received: by 10.176.91.15 with SMTP id u15mr968416uae.77.1510245440228; Thu, 09 Nov 2017 08:37:20 -0800 (PST) MIME-Version: 1.0 Received: by 10.103.59.24 with HTTP; Thu, 9 Nov 2017 08:37:19 -0800 (PST) From: Ulf Magnusson Date: Thu, 9 Nov 2017 17:37:19 +0100 Message-ID: Subject: [ANNOUNCE] Kconfiglib 2: An improved, more general redesign To: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, corbet@lwn.net, Simon Glass , Masahiro Yamada , bruce.ashfield@windriver.com, Samuel Martin , ivan@espressif.com, dirk@gouders.net, yann.morin.1998@free.fr, randy.dunlap@oracle.com, mmarek@suse.cz, ziegler@cs.fau.de, dl@cs.fau.de, rothberg@cs.fau.de, soos.mate@gmail.com, bergert@chalmers.se, kconfig-sat@googlegroups.com, mikew@google.com, akpm@linux-foundation.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, A new, much-improved version 2 of Kconfiglib (https://github.com/ulfalizer/Kconfiglib) is out. I got tired of some old interface and design mistakes while working on adding implicit menu support, and decided to redo things the right way. For a summary of changes, see kconfiglib-2-changes.txt (https://github.com/ulfalizer/Kconfiglib/blob/master/kconfiglib-2-changes.txt). Highlights include direct access to the menu tree (including implicit menus) and direct access to symbol properties and their conditions. Expressions can be inspected directly and use a simple tuple-based format. The API has gotten more general and less clunky to use. See the kconfiglib.py module docstring (at the top of kconfiglib.py) for an introduction to some Kconfig/Kconfiglib concepts. Maybe some of it would be nice to have in kconfig-language.txt as well. It's now pretty easy to implement menuconfig-like functionality on top of Kconfiglib, like in the the following example/proof-of-concept (examples/menuconfig.py): ======== Example Kconfig configuration ======== [*] Enable loadable module support (MODULES) Bool and tristate symbols [*] Bool symbol (BOOL) [ ] Dependent bool symbol (BOOL_DEP) < > Dependent tristate symbol (TRI_DEP) [ ] First prompt (TWO_MENU_NODES) < > Tristate symbol (TRI) [ ] Second prompt (TWO_MENU_NODES) *** These are selected by TRI_DEP *** < > Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP) < > Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP) String, int, and hex symbols (foo) String symbol (STRING) (747) Int symbol (INT) (0xABC) Hex symbol (HEX) Various choices -*- Bool choice (BOOL_CHOICE) --> Bool choice sym 1 (BOOL_CHOICE_SYM_1) Bool choice sym 2 (BOOL_CHOICE_SYM_2) {M} Tristate choice (TRI_CHOICE) < > Tristate choice sym 1 (TRI_CHOICE_SYM_1) < > Tristate choice sym 2 (TRI_CHOICE_SYM_2) [ ] Optional bool choice (OPT_BOOL_CHOICE) Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): BOOL Value for BOOL (available: n, y): n ... Printing Kconfig objects now produces reparsable Kconfig output: >>> print(kconf.syms["MODULES"]) menuconfig MODULES bool prompt "Enable loadable module support" option modules help Kernel modules are small pieces of compiled code which can be inserted in the running kernel, rather than being permanently built into the kernel. You use the "modprobe" tool to add (and sometimes remove) them. If you say Y here, many parts of the kernel can be built as modules (by ... Cheers, Ulf From 1584176615470815113@xxx Wed Nov 15 23:29:10 +0000 2017 X-GM-THRID: 1581601012733938712 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread