<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/tests, branch v10.32.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.32.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.32.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-12-08T02:28:52Z</updated>
<entry>
<title>Make {load,write}_config(filename=None) implement the standard behavior</title>
<updated>2018-12-08T02:28:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-07T23:41:01Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6'/>
<id>urn:sha1:7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6</id>
<content type='text'>
Make the previously obligatory 'filename' argument to load_config() and
write_config() default to None, and have that implement the behavior
you'd usually want: read/write either KCONFIG_CONFIG or ".config" if
unset, and read the 'option defconfig_list' configuration file if
KCONFIG_CONFIG/".config" doesn't exist.

For load_config(), filename=None also allows the configuration file to
be missing without raising an error. load_config() returns True if a
local configuration file was loaded, which is useful to check in the
menuconfig (if no local configuration file exists, we always want to
prompt for saving the configuration when exiting).

Also add a 'verbose' argument (default True) to load_config() and
read_config() that makes them print which files were read/written in
filename=None mode.

Also generalize olddefconfig.py and oldconfig.py to not require there to
already be a local configuration file. This was a bit silly for
olddefconfig.py in particular.

Remove the examples/defconfig.py script. It's a duplicate of
olddefconfig.py.
</content>
</entry>
<entry>
<title>Fix removal of multiple consecutive 'if' nodes</title>
<updated>2018-11-02T02:52:46Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-02T01:35:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=0e6cd82908f5c649e15e6a63ad77a94f627449d2'/>
<id>urn:sha1:0e6cd82908f5c649e15e6a63ad77a94f627449d2</id>
<content type='text'>
Despite 'if' nodes being flattened before 'if' removal, consecutive 'if'
nodes can still show up for code like the following:

  ...

  if X
  endif

  if X
  endif

  ...

_remove_ifs() failed to remove the second 'if' node, leading to a crash
e.g. when turning on show-all mode in the menuconfig in a menu with such
code (due to the unexpected 'if' node).

Stuff like the above could potentially result from 'osource's with no
matches, though I just spotted the error while looking over the code.

Fix the 'if' removal logic to properly handle consecutive 'if' nodes.
</content>
</entry>
<entry>
<title>Support enabling the assignment-to-undef. symbol warning via the environment</title>
<updated>2018-10-26T21:34:18Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-26T20:23:27Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=699fd81bf3a67606396035697357c5665dcd68af'/>
<id>urn:sha1:699fd81bf3a67606396035697357c5665dcd68af</id>
<content type='text'>
This makes it possible to enable it for the bundled tools, by setting
KCONFIG_WARN_UNDEF_ASSIGN=y. Previously, the code had to be modified to
call Kconfig.enable_undef_warnings().

Also rename KCONFIG_STRICT to KCONFIG_WARN_UNDEF, for consistency. Keep
supporting KCONFIG_STRICT as an alias for backwards compatibility.
</content>
</entry>
<entry>
<title>Make Kconfig.choices match its description</title>
<updated>2018-10-16T05:35:53Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-16T04:58:54Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=98af94da6a9ef81c8e2c56fbf60741fa8d2a2dd1'/>
<id>urn:sha1:98af94da6a9ef81c8e2c56fbf60741fa8d2a2dd1</id>
<content type='text'>
Kconfig.choices has accidentally been identical to
Kconfig.unique_choices all along, because named choices defined in
multiple locations (which are pretty obscure) were only added once.

Fix Kconfig.choices to match its description. This simplifies the code a
bit too.

Kconfig.unique_choices is usually what you want.
</content>
</entry>
<entry>
<title>Refactor parsing to get rid of _saved_line</title>
<updated>2018-09-29T16:08:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-29T14:27:21Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=c1dcaa3ccbb263f021157f2aebd185c6388c28a1'/>
<id>urn:sha1:c1dcaa3ccbb263f021157f2aebd185c6388c28a1</id>
<content type='text'>
Handle the line-after-help-text case specially, which allows _has_tokens
(renamed to _reuse_tokens) to be used as the unget mechanism for help
texts as well, leaving _saved_line unused. Move the _reuse_tokens check
into _next_line().

This makes _parse_block() as straightforward as _parse_properties(), and
simplifies _parse_properties() a tiny bit too by getting rid of the
'_tokens_i = -1' assignment.
</content>
</entry>
<entry>
<title>Fix formatting nit in user-defined Python function tests</title>
<updated>2018-09-23T18:22:30Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-23T18:20:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a3f37faed0aaa024fa6354a429ace427a6dc807c'/>
<id>urn:sha1:a3f37faed0aaa024fa6354a429ace427a6dc807c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for user-defined Python preprocessor functions</title>
<updated>2018-09-23T15:31:20Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-20T11:33:59Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=6156041560c75831e003202b790ab3f435bbb388'/>
<id>urn:sha1:6156041560c75831e003202b790ab3f435bbb388</id>
<content type='text'>
Allow preprocessor functions to be defined in Python by putting a module
called 'kconfigfunctions' into sys.path. Internally, this simply adds
the functions to the predefined functions in Kconfig._functions.

User-defined Python functions make it simple to integrate information
from existing Python tools into Kconfig, e.g. to have Kconfig symbols
depend on hardware information stored in some other format. This might
be used to get device tree information into Kconfig in Zephyr.

Piggyback module docstring documentation for some extensions that were
previously only mentioned in the README.
</content>
</entry>
<entry>
<title>Allow macro expansion within symbol names</title>
<updated>2018-09-04T18:49:21Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-04T16:05:28Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a092257a49ed7850913cf53e474f4c8dd175c94b'/>
<id>urn:sha1:a092257a49ed7850913cf53e474f4c8dd175c94b</id>
<content type='text'>
The C implementation supports this (though it's undocumented, and unused
to far).

This can be used e.g. to dynamically instatiate symbols from template
files:

Kconfig.template:

    config $(subsys)_LOG
	bool "Enable logging for $(subsys)"
	depends on $(subsys)_HAS_LOG

    ... other stuff dependent on $(subsys)

Elsewhere:

    subsys = FOO
    source "Kconfig.template"

    subsys = BAR
    source "Kconfig.template"

Pretty sure this can easily be abused, but it should be supported at
least.
</content>
</entry>
<entry>
<title>Add a Kconfig.env_vars attribute that lists env. variables</title>
<updated>2018-08-25T18:32:34Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-25T18:07:05Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=932d0f7b8a69bdcac5d945de600ce6be807aeff7'/>
<id>urn:sha1:932d0f7b8a69bdcac5d945de600ce6be807aeff7</id>
<content type='text'>
Kconfig.env_vars is a set() with the names of all environment variables
referenced in the configuration.

Can be used e.g. for custom incremental build implementations, though
sync_deps() already indirectly catches any relevant changes to
environment variables.
</content>
</entry>
<entry>
<title>Show include paths in menuconfig symbol information</title>
<updated>2018-08-23T23:01:36Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-23T00:43:00Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=13884e934ec8eda928234c6506ae27f0334ec31b'/>
<id>urn:sha1:13884e934ec8eda928234c6506ae27f0334ec31b</id>
<content type='text'>
Add a MenuNode.include_path attribute that holds a tuple of
(filename, linenr) tuples, giving the locations of the 'source'
statements via which the node's Kconfig file was included, starting from
the top-level Kconfig file.

Use MenuNode.include_path to give the include path for symbols and other
items in the help display in the menuconfig interface. This is useful
for figuring out how Kconfig files are organized, and when reorganizing
things.
</content>
</entry>
</feed>
