<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/kconfiglib.py, branch v10.7.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.7.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.7.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-09-08T17:33:47Z</updated>
<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>
<entry>
<title>Improve menu structure for promptless choices</title>
<updated>2018-08-26T01:04:30Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-26T00:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=ddfd5df84b4b7871ea16d76e233c11c8b45738d9'/>
<id>urn:sha1:ddfd5df84b4b7871ea16d76e233c11c8b45738d9</id>
<content type='text'>
Promptless choices can appear "legitimately" if you define a named
choice in multiple locations to add on some symbols (which is broken in
the C tools though).

Prior to this fix, the promptless choice would get flattened, with the
choice symbols appearing in the same menu as the (invisible) choice.
This looks confusing.

Skip flattening promptless choices to fix it.
</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>
</feed>
