<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/README.rst, branch v4.2.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v4.2.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v4.2.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-04-07T01:32:22Z</updated>
<entry>
<title>Make 4.2.0 release</title>
<updated>2018-04-07T01:32:22Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-04-07T01:32:22Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=0d267db1e40cddfc3196bf499dad0c5d59e51661'/>
<id>urn:sha1:0d267db1e40cddfc3196bf499dad0c5d59e51661</id>
<content type='text'>
New features and improvements:

 - 7245bad ("Parenthesize &amp;&amp; expressions within || expressions")
   makes expressions more readable.

 - 2259d35 ("Generalize is_menuconfig to non-symbol items")
   can simplify menuconfig implementations.

 - c7ac6f8 ("Add parent deps to the right in _T_IF") makes parent
   dependencies consistently appear on the right in expressions, with
   the outermost parent dependency the furthest to the right.

New warnings:

 - 7ba79ca ("Warn if user (.config) value is outside of 'range'")

 - 225ec4b ("Warn if a choice symbol is selected or implied")

Some obscure false positive warnings for named choices were fixed too.
This came up in
https://github.com/zephyrproject-rtos/zephyr/issues/6948.

 - e8408a0 ("Move sanity checking to after _finalize_tree()")
</content>
</entry>
<entry>
<title>Add kconfig.py from Zephyr as a real-world example</title>
<updated>2018-03-20T16:16:17Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-20T16:16:17Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=424e95d371990f5f7a8a9b6d7f31351b8d3f6ed8'/>
<id>urn:sha1:424e95d371990f5f7a8a9b6d7f31351b8d3f6ed8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add print_config_tree.py example script (#42)</title>
<updated>2018-03-18T21:01:21Z</updated>
<author>
<name>Ricardo F</name>
<email>rfrail3@users.noreply.github.com</email>
</author>
<published>2018-03-18T21:01:21Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=ef6fca713ce44bf5577ae348a3de092e1df0aa1c'/>
<id>urn:sha1:ef6fca713ce44bf5577ae348a3de092e1df0aa1c</id>
<content type='text'>
Works like menuconfig.py, but just dumps the tree, with a specified
.config file as base. Handy for diffing.</content>
</entry>
<entry>
<title>Make 4.1.0 release</title>
<updated>2018-03-17T15:21:30Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-17T15:04:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=47b05501d9dd3852102a0493534890b85f832ab9'/>
<id>urn:sha1:47b05501d9dd3852102a0493534890b85f832ab9</id>
<content type='text'>
Only adds daac69d ("Add a globbing source statement").
'gource' doubles as an include-if-exists function.
</content>
</entry>
<entry>
<title>Link to pymenuconfig</title>
<updated>2018-03-16T10:24:51Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-16T10:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=71e1b54f4d8e2eb8a3c8703db731425bd5fe2e7e'/>
<id>urn:sha1:71e1b54f4d8e2eb8a3c8703db731425bd5fe2e7e</id>
<content type='text'>
A menuconfig implementation built on top of Kconfiglib using TkInter.</content>
</entry>
<entry>
<title>Mention rsource and gsource in README</title>
<updated>2018-03-13T04:26:02Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-13T04:26:02Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=3a94565c4bc80ba82012a164c00fa3a0b7e6d891'/>
<id>urn:sha1:3a94565c4bc80ba82012a164c00fa3a0b7e6d891</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix broken formatting</title>
<updated>2018-03-11T08:00:33Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-11T08:00:33Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=af2935913650dd0517666dcf8a0d4e68f8d62e34'/>
<id>urn:sha1:af2935913650dd0517666dcf8a0d4e68f8d62e34</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make 4.0.0 release</title>
<updated>2018-03-11T07:11:56Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-11T07:11:56Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=44f782723b71e4eb4661e61cc6f887aefe00898e'/>
<id>urn:sha1:44f782723b71e4eb4661e61cc6f887aefe00898e</id>
<content type='text'>
Includes a small API behavior change, hence the major version bump:

 - db63301 ("Return "" for unwritten symbols in Symbol.config_string")

New features:

 - Support for incremental builds using the same scheme as the
   include/config/ directory in the C tools. See the new
   Kconfig.sync_deps() function and commit 378dedc ("Add support for
   incremental builds").

 - Minimal configuration (defconfig) writing, generating identical files
   to the C implementation. See commit 652f11b ("Add minimal
   configuration file generation support").

   The C 'make savedefconfig' implementation is currently broken in
   obscure cases involving tristate choices (due to broken invalidation
   code), so the tests are disabled for now. I have a patch for the C
   implementation that I will submit.

Fixes:

 - user_value wasn't set for choice symbols set to y via load_config()
   with replace=True. Fixed by commit 0bd841d ("Properly remember y user
   values for choice symbols"). Didn't affect correctness, only the API.

Other changes:

 - 778ec47 ("Only write '# CONFIG_FOO is not set' for visible symbols")
   mirrors a change I made to the C tools.

 - bbe3ae9 ("Do not write the defconfig_list symbol to .config") mirrors
   another change made to the C tools.

 - Misc. refactoring and cleanup.
</content>
</entry>
<entry>
<title>Add minimal configuration file generation support</title>
<updated>2018-03-11T06:29:19Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-05T19:10:01Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=652f11b60f7b738440fe0e919d4de0c188e80395'/>
<id>urn:sha1:652f11b60f7b738440fe0e919d4de0c188e80395</id>
<content type='text'>
Works like 'make savedefconfig' in the C tools. Call it
write_min_config() rather than write_defconfig() to be a bit more
explicit.

Add a test similar to test_defconfig that compares Kconfiglib minimal
configuration output against the C implementation, for all defconfig
files.

Disable the tests for now. The C tools have a bug that causes an
incorrect configuration to be generated for tristate choices in some
cases. They will be re-enabled once those are fixed.
</content>
</entry>
<entry>
<title>Only write '# CONFIG_FOO is not set' for visible symbols</title>
<updated>2018-03-01T07:23:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-03-01T06:22:50Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=778ec47def04cb4812a5f594c7fa41d71f4b6124'/>
<id>urn:sha1:778ec47def04cb4812a5f594c7fa41d71f4b6124</id>
<content type='text'>
This mirrors a change I made to the C tools, which is now in linux-next:
https://www.spinics.net/lists/linux-kbuild/msg17074.html.

Add a note to the README to make it clear that the test suite now needs
to be run against recent kernels in order to pass.

Copy-pasted commit message from the C tools commit below:

=== Background ===

 - Visible n-valued bool/tristate symbols generate a
   '# CONFIG_FOO is not set' line in the .config file. The idea is to
   remember the user selection without having to set a Makefile
   variable. Having n correspond to the variable being undefined in the
   Makefiles makes for easy CONFIG_* tests.

 - Invisible n-valued bool/tristate symbols normally do not generate a
   '# CONFIG_FOO is not set' line, because user values from .config
   files have no effect on invisible symbols anyway.

Currently, there is one exception to this rule: Any bool/tristate symbol
that gets the value n through a 'default' property generates a
'# CONFIG_FOO is not set' line, even if the symbol is invisible.

Note that this only applies to explicitly given defaults, and not when
the symbol implicitly defaults to n (like bool/tristate symbols without
'default' properties do).

This is inconsistent, and seems redundant:

  - As mentioned, the '# CONFIG_FOO is not set' won't affect the symbol
    once the .config is read back in.

  - Even if the symbol is invisible at first but becomes visible later,
    there shouldn't be any harm in recalculating the default value
    rather than viewing the '# CONFIG_FOO is not set' as a previous
    user value of n.

=== Changes ===

Change sym_calc_value() to only set SYMBOL_WRITE (write to .config) for
non-n-valued 'default' properties.

Note that SYMBOL_WRITE is always set for visible symbols regardless of whether
they have 'default' properties or not, so this change only affects invisible
symbols.

This reduces the size of the x86 .config on my system by about 1% (due
to removed '# CONFIG_FOO is not set' entries).

One side effect of (and the main motivation for) this change is making
the following two definitions behave exactly the same:

        config FOO
                bool

        config FOO
                bool
                default n

With this change, neither of these will generate a
'# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied).
That might make it clearer to people that a bare 'default n' is
redundant.

This change only affects generated .config files and not autoconf.h:
autoconf.h only includes #defines for non-n bool/tristate symbols.

=== Testing ===

The following testing was done with the x86 Kconfigs:

 - .config files generated before and after the change were compared to
   verify that the only difference is some '# CONFIG_FOO is not set'
   entries disappearing. A couple of these were inspected manually, and
   most turned out to be from redundant 'default n/def_bool n'
   properties.

 - The generated include/generated/autoconf.h was compared before and
   after the change and verified to be identical.

 - As a sanity check, the same modification was done to Kconfiglib.
   The Kconfiglib test suite was then run to check for any mismatches
   against the output of the C implementation.
</content>
</entry>
</feed>
