<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git, 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>Make 10.1.1 release</title>
<updated>2018-08-23T09:42:49Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-23T09:27:56Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=4b8805df373abebdf8e940b9511b2602640ff518'/>
<id>urn:sha1:4b8805df373abebdf8e940b9511b2602640ff518</id>
<content type='text'>
Includes two small bug fixes:

  - Commit 9b77511 ("Fix file descriptor leak for the top-level Kconfig
    file")

  - Commit d158fed ("Fix recursive 'source' error reporting")
</content>
</entry>
<entry>
<title>Exclude User-mode Linux from testing</title>
<updated>2018-08-23T09:42:49Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-23T09:25:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=b1c24c85794731a78c4847a4849f53307dfebacc'/>
<id>urn:sha1:b1c24c85794731a78c4847a4849f53307dfebacc</id>
<content type='text'>
This "architecture" has an unorthodox Kconfig setup that would require a
different testing setup.
</content>
</entry>
<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>Make 10.1.0 release</title>
<updated>2018-08-22T22:55:16Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-22T22:55:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=ed3fb61cea1c3c33c423690b768adbde7a0fad8c'/>
<id>urn:sha1:ed3fb61cea1c3c33c423690b768adbde7a0fad8c</id>
<content type='text'>
New features:

 - Commit 7dae988 ("Add a generic node iterator") adds a
   Kconfig.node_iter() helper generator for iterating through all menu
   nodes in the menu tree, in definition order. Optionally, symbols
   defined in multiple locations are only generated once. This generator
   is now used internally by write_config() as well.

   Suggested by Mitja Horvat (pinkfluid).

 - Commit d2c1430 ("Introduce Kconfig.unique_defined_syms and
   Kconfig.unique_choices") adds versions of
   Kconfig.defined_syms/choices that only include symbols and choices
   defined in multiple locations once, while still preserving definition
   order.

   This is almost always what you want when iterating through (just)
   symbols and choices. It removes set() hackery (where it's easy to
   accidentally mess up the order) and the like.

Fixes:

 - Commit 4ebc2aa ("Flag extra tokens after 'if'/'depends on'/'visible
   if' expressions") tightens up syntax checking so that extra trailing
   tokens after 'if', 'depends on', and 'visible if' expressions raise a
   syntax error, instead of being silently ignored. Oversight.
</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>
</feed>
