<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/kconfiglib.py, branch v10.1.1</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.1.1</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.1.1'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-08-23T09:42:49Z</updated>
<entry>
<title>Fix recursive 'source' error reporting</title>
<updated>2018-08-23T09:42:49Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-23T08:45:42Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=3aca83eaf20f5e278b6d260cb255e6a9385590db'/>
<id>urn:sha1:3aca83eaf20f5e278b6d260cb255e6a9385590db</id>
<content type='text'>
The recursive 'source' detection was still fine, but the error reporting
had broken due a missed variable renaming.

The test suite didn't catch it, because a different type of KconfigError
was raised instead, due to a separate error in the test suite (need to
include tests/Krecursive{1,2}, since paths are relative to $srctree).

Fix the variable name and tighten up the tests to check that the
KconfigError message is the one we except. Tighten up the dependency
loop detection tests in the same way too.
</content>
</entry>
<entry>
<title>Fix file descriptor leak for the top-level Kconfig file</title>
<updated>2018-08-22T23:49:29Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-22T23:49:29Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=9b7751103e7985c9184b41d89d8454249ed36875'/>
<id>urn:sha1:9b7751103e7985c9184b41d89d8454249ed36875</id>
<content type='text'>
Needs to be close()d. The other Kconfig files are close()d in
_leave_file().

Could drop the reference somehow too, but an explicit close() is best
for PyPy, which doesn't do reference counting.
</content>
</entry>
<entry>
<title>Flag extra tokens after 'if'/'depends on'/'visible if' expressions</title>
<updated>2018-08-22T22:51:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-22T22:22:10Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=4ebc2aa72f41a9c5739ee8a8ad89bdfa0a489a2d'/>
<id>urn:sha1:4ebc2aa72f41a9c5739ee8a8ad89bdfa0a489a2d</id>
<content type='text'>
Extra trailing tokens after 'if &lt;expr&gt;', 'depends on &lt;expr&gt;', and
'visible if &lt;expr&gt;' now trigger syntax errors instead of being ignored.
Oversight.

This indirectly makes Kconfig.eval_expr() detect extra trailing tokens
as well.
</content>
</entry>
<entry>
<title>Add a generic node iterator</title>
<updated>2018-08-22T21:57:17Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-22T20:08:06Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7dae98803a6fc5d08041d1387e2e0d83fc0eb0ed'/>
<id>urn:sha1:7dae98803a6fc5d08041d1387e2e0d83fc0eb0ed</id>
<content type='text'>
Suggested by Mitja Horvat (pinkfluid) in
https://github.com/ulfalizer/Kconfiglib/pull/50.

Kconfig.node_iter() iterates through all menu nodes in the menu tree in
Kconfig order. This saves scripts the trouble of implementing their own
tree walking code.

Have node_iter() take a 'unique_syms' flag that can be enabled to only
include symbols defined in multiple locations once. This is often what
you want when generating output (and is used by write_config()). Order
is still preserved.

Piggyback a fix to a syntax error test comment. Parsing has been
tightened up now.
</content>
</entry>
<entry>
<title>Introduce Kconfig.unique_defined_syms and Kconfig.unique_choices</title>
<updated>2018-08-22T18:05:11Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-22T00:25:20Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=d2c1430c91c574dc0dfd84f3652c8d9af8c77568'/>
<id>urn:sha1:d2c1430c91c574dc0dfd84f3652c8d9af8c77568</id>
<content type='text'>
These are the same as Kconfig.defined_syms and Kconfig.choices, except
duplicates are removed. Kconfig order is still preserved.

This is almost always what you want when iterating through symbols and
choices, as it potentially saves work, avoids generating duplicates when
writing output, and still preserves Kconfig order for readability.

The old attributes will be kept for backwards compatibility (maybe
there's some rare cases where they could be useful too). They're created
internally anyway.
</content>
</entry>
<entry>
<title>Merge Symbol._checked and Symbol._written</title>
<updated>2018-08-21T19:17:45Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-21T18:55:29Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a3252f620fad970bbe8b7470401a04ee4225193e'/>
<id>urn:sha1:a3252f620fad970bbe8b7470401a04ee4225193e</id>
<content type='text'>
These are never used at the same time, and Symbol._visited is a good
name for both.

Gets rid of an internal attribute.
</content>
</entry>
<entry>
<title>Handle multiple definition locations in a nicer way</title>
<updated>2018-08-21T18:45:27Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-21T17:48:22Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=67e890cc9d926213fbec93afb3ee14e6c24f9a50'/>
<id>urn:sha1:67e890cc9d926213fbec93afb3ee14e6c24f9a50</id>
<content type='text'>
Instead of precalculating a set() to get unique symbols, precalculate a
list with any duplicates from multiple definition locations removed, and
preserve the order of the symbols within it.

This makes it possible to get rid of the Symbol._written shenanigans in
functions that only need to iterate through unique symbols in sorted
order, which is all of them except write_config() (because it needs to
walk the entire menu tree).
</content>
</entry>
<entry>
<title>Make auto.conf symbol order match .config symbol order</title>
<updated>2018-08-21T14:36:28Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-21T14:31:37Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=5a9c3573460e4003bde46efa0edc2e0fb627a1fe'/>
<id>urn:sha1:5a9c3573460e4003bde46efa0edc2e0fb627a1fe</id>
<content type='text'>
Not likely that you'd need to inspect it, since it's more of an
implementation detail of incremental builds, but it doesn't hurt.
</content>
</entry>
<entry>
<title>Make header symbol order match .config symbol order again</title>
<updated>2018-08-21T13:19:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-21T12:08:55Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=d78c293c41351256f76fb2fa27e72e399b130e4f'/>
<id>urn:sha1:d78c293c41351256f76fb2fa27e72e399b130e4f</id>
<content type='text'>
I accidentally broke this when I added the _defined_syms_set
optimization. No semantic difference, but having the order match is more
readable.
</content>
</entry>
<entry>
<title>Refactor write_config() a bit</title>
<updated>2018-08-21T12:26:37Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-21T11:02:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=db6cb68b74bc3a9f88f802a0f32613f95df7b854'/>
<id>urn:sha1:db6cb68b74bc3a9f88f802a0f32613f95df7b854</id>
<content type='text'>
Since the 'top_node' menu node itself is skipped, we can start from
there and move the tree walk to the beginning of the loop. For an empty
configuration (top_node.list set to None) the tree walk immediately
discovers that there are no more nodes and returns.
</content>
</entry>
</feed>
