<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/kconfiglib.py, branch v10.21.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.21.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.21.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-11-07T04:59:20Z</updated>
<entry>
<title>Add a fast path for string parsing</title>
<updated>2018-11-07T04:59:20Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-07T04:31:58Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=41c271b8cbe19e45809a0a9d3f5426bc0b664e29'/>
<id>urn:sha1:41c271b8cbe19e45809a0a9d3f5426bc0b664e29</id>
<content type='text'>
For strings with no $ or \ in them (99.86% of all strings in the Linux
x86 Kconfigs), we can just find() the matching quote directly.

Saves a few % of tokenization time.
</content>
</entry>
<entry>
<title>Comment nit</title>
<updated>2018-11-06T11:43:17Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-06T11:43:17Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=8c989618c9cb10ae8e140c081d1633371f1758fb'/>
<id>urn:sha1:8c989618c9cb10ae8e140c081d1633371f1758fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Always strip trailing whitespace in 'MenuNode.help' and __str__()</title>
<updated>2018-11-06T10:48:42Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-06T10:16:28Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7992519be5d59a69dc71f43ec2f34c5594afdb14'/>
<id>urn:sha1:7992519be5d59a69dc71f43ec2f34c5594afdb14</id>
<content type='text'>
Previously, you could get either one or two newlines at the end of
MenuNode.help and the various __str__() methods, though this wasn't
documented.

Always stripping trailing whitespace is cleaner e.g. when using print(),
which automatically appends a trailing newline, and makes things
consistent.

Hopefully nothing relied on the old undocumented behavior. It's fine for
genrest.py at least.
</content>
</entry>
<entry>
<title>Whitespace nit</title>
<updated>2018-11-06T09:35:25Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-05T03:25:53Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=9c9f0c884366ff1f0acc00e430f0eeb1b4391658'/>
<id>urn:sha1:9c9f0c884366ff1f0acc00e430f0eeb1b4391658</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make UNKNOWN falsy</title>
<updated>2018-11-03T20:12:06Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-03T19:42:19Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=041a3de1e2d2399f338ec9a5ea4d07736adb9ad3'/>
<id>urn:sha1:041a3de1e2d2399f338ec9a5ea4d07736adb9ad3</id>
<content type='text'>
Set UNKNOWN (representing 'no type') to 0, which is falsy, to simplify
some checks.

Also reorder some dictionary keys for consistency.
</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>Don't show backtraces for expected exceptions in tools</title>
<updated>2018-11-01T02:21:09Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>foo@bar.com</email>
</author>
<published>2018-11-01T01:48:30Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=8be38f27788239739619db86b6e5270ef7905511'/>
<id>urn:sha1:8be38f27788239739619db86b6e5270ef7905511</id>
<content type='text'>
KconfigError and IOError are part of normal operation and don't indicate
a problem with the library itself. Catch and print them in
standard_kconfig() and sys.exit(), to avoid spammy backtraces from e.g.
menuconfig.py when Kconfig files don't exist or have errors.
</content>
</entry>
<entry>
<title>Refactor _remove_ifs()</title>
<updated>2018-11-01T00:18:38Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-31T03:18:41Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=d30b55043c4c771cdabf42847cf718a93cf86ab8'/>
<id>urn:sha1:d30b55043c4c771cdabf42847cf718a93cf86ab8</id>
<content type='text'>
Can get away with a single variable by assigning node.list earlier, and
save a tiny bit of work with a chained assignment.

Also clarify what the tricky Python chained assignments correspond to,
where it matters.
</content>
</entry>
<entry>
<title>Make errno/strerror/filename available on IOError</title>
<updated>2018-10-30T23:02:43Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-30T22:57:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=14603c0fed58ebbd137b39b1be2d645d5152716b'/>
<id>urn:sha1:14603c0fed58ebbd137b39b1be2d645d5152716b</id>
<content type='text'>
An error reporting flaw was that most raised IOErrors got their
errno/strerror/filename fields stripped, due to wanting to show a custom
messages. The problem was that adding back 'errno' and 'strerror' made
IOError.__str__() always return a fixed string
("[Errno &lt;errno&gt;] &lt;strerror&gt;"), ignoring any custom message.

This is friendly to users, but unfriendly to scripts (the menuconfig had
a workaround). Make things friendly to both by raising an internal
subclass of IOError instead, that preserves errno/strerror/filename but
prints a custom message. The exception can then still be caught as
IOError/OSError by scripts.
</content>
</entry>
<entry>
<title>Simplify _INIT_SRCTREE_NOTE definition</title>
<updated>2018-10-30T22:02:20Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-30T22:00:20Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=ac5ac5f8ada90e3b41b998bd715497be4109b3ab'/>
<id>urn:sha1:ac5ac5f8ada90e3b41b998bd715497be4109b3ab</id>
<content type='text'>
</content>
</entry>
</feed>
