<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/kconfiglib.py, branch v10.8.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.8.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.8.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-09-23T15:31:20Z</updated>
<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>Remove unused variable reported by flake8</title>
<updated>2018-09-19T03:53:31Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-19T03:47:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=f832115f1431fb3cee06cfb19095923096c1a0ae'/>
<id>urn:sha1:f832115f1431fb3cee06cfb19095923096c1a0ae</id>
<content type='text'>
Also remove some redundant backslashes within brackets.
</content>
</entry>
<entry>
<title>Clean up kernel Makefile patch and add new targets</title>
<updated>2018-09-08T17:33:47Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-08T15:25:51Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=374f48873424f9167f508a53a80f3ea1c2d41c46'/>
<id>urn:sha1:374f48873424f9167f508a53a80f3ea1c2d41c46</id>
<content type='text'>
Add two new targets:

 - 'make kmenuconfig' runs the menuconfig interface

 - 'make dumpvarsconfig' lists all referenced environment variables
   together with their values (assuming they used the preprocessor
   syntax)

Remove the 'kconfiglibtestconfig' target, which is no longer used.

Also clean up the target definitions. The joys of ancient code.
</content>
</entry>
<entry>
<title>Clean up _expand_name() comments</title>
<updated>2018-09-05T10:19:39Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-05T10:18:26Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=2be02fac785272e3bcea2cef619954535dc9abe0'/>
<id>urn:sha1:2be02fac785272e3bcea2cef619954535dc9abe0</id>
<content type='text'>
Some grammar, some copy-paste errors ('string' should be 'name').
</content>
</entry>
<entry>
<title>Fix outdated comment re. $() yielding non-const symbols</title>
<updated>2018-09-04T19:35:16Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-04T19:35:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=0591946c28107001f4c5ca725405b8c2270be0dd'/>
<id>urn:sha1:0591946c28107001f4c5ca725405b8c2270be0dd</id>
<content type='text'>
This is handled earlier in _tokenize() now.
</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>Test symbolic constants with 'is (not)'</title>
<updated>2018-09-03T10:32:20Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-03T08:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=ef5358e8b8174716470b00691fba9946b7d307ce'/>
<id>urn:sha1:ef5358e8b8174716470b00691fba9946b7d307ce</id>
<content type='text'>
Saves a few % of total parsing time, and probably some evaluation time
too. Microbenchmarking on Python 3 shows that 'is' is about 30% faster
than '==' for comparing integers on my machine.

This is safe even without assuming Python's small-integer optimization
(which caches objects for small integers, guaranteeing that small
integer literals always refer to the same object): We always refer to
symbolic constants using their symbolic names (_T_*, etc.), so they're
guaranteed to always refer to the same integer objects anyway.

This optimization is safe for client code too, unless you get some
unlikely situation where (1) there is no small-integer optimization, (2)
expressions get pickled and unpickled or the like, which would be unsafe
across Kconfiglib versions anyway, and (3) the client code tests
symbolic constants with 'is' instead of '==' (which isn't advertised as
safe, and a bad idea in general when pickling is involved). That's
probably too obscure to worry about.
</content>
</entry>
<entry>
<title>Allow user values on 'option env' symbols</title>
<updated>2018-08-30T07:13:22Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-30T06:37:59Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=66832138bfb0e82190b55fb410104d969cbc829b'/>
<id>urn:sha1:66832138bfb0e82190b55fb410104d969cbc829b</id>
<content type='text'>
Gets rid of a check, doesn't hurt. The check was added before
'option env' was changed to just add a 'default' under the hood.

Note: New Kconfig code doesn't need 'option env'. Environment variables
are now expanded directly, including in the C tools. 'option env' is
only maintained for backwards compatibility.
</content>
</entry>
<entry>
<title>Improve the running-without-Makefile-patch documentation</title>
<updated>2018-08-29T02:40:18Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-29T02:40:18Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=0ed2ba06ce4b8f22420ecf15dc36476382b8fa02'/>
<id>urn:sha1:0ed2ba06ce4b8f22420ecf15dc36476382b8fa02</id>
<content type='text'>
 - Include an updated list of environment variables, with sample values

 - Give a method for listing all referenced environment variables, via
   Kconfig.env_vars

 - Remove the note that says that Kconfiglib will warn if an unset
   environment variable is referenced. It's not true anymore with the
   preprocessor, which silently expands unset variables to the empty
   string.

   Not setting essential environment variables causes obvious errors at
   least.
</content>
</entry>
<entry>
<title>_check_undef_syms() nit</title>
<updated>2018-08-29T00:18:32Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-29T00:18:32Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=98416f6b65152d6bbc107c625c65b7239cff20f7'/>
<id>urn:sha1:98416f6b65152d6bbc107c625c65b7239cff20f7</id>
<content type='text'>
Factor out the call to the iterator.
</content>
</entry>
</feed>
