<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/kconfiglib.py, branch v10.32.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.32.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v10.32.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-12-08T03:54:47Z</updated>
<entry>
<title>Preserve symlinks when writing .config.old files</title>
<updated>2018-12-08T03:54:47Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-08T03:47:52Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=78073d6674ce3250334d0f5177c9f8010e8d381c'/>
<id>urn:sha1:78073d6674ce3250334d0f5177c9f8010e8d381c</id>
<content type='text'>
if .config is a symlink, then the intention is probably to overwrite the
target, but rename()ing the symlink to .config.old interferes with that.

Use the shutil.copyfile() fallback instead if .config is a symlink.
</content>
</entry>
<entry>
<title>Make {load,write}_config(filename=None) implement the standard behavior</title>
<updated>2018-12-08T02:28:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-07T23:41:01Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6'/>
<id>urn:sha1:7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6</id>
<content type='text'>
Make the previously obligatory 'filename' argument to load_config() and
write_config() default to None, and have that implement the behavior
you'd usually want: read/write either KCONFIG_CONFIG or ".config" if
unset, and read the 'option defconfig_list' configuration file if
KCONFIG_CONFIG/".config" doesn't exist.

For load_config(), filename=None also allows the configuration file to
be missing without raising an error. load_config() returns True if a
local configuration file was loaded, which is useful to check in the
menuconfig (if no local configuration file exists, we always want to
prompt for saving the configuration when exiting).

Also add a 'verbose' argument (default True) to load_config() and
read_config() that makes them print which files were read/written in
filename=None mode.

Also generalize olddefconfig.py and oldconfig.py to not require there to
already be a local configuration file. This was a bit silly for
olddefconfig.py in particular.

Remove the examples/defconfig.py script. It's a duplicate of
olddefconfig.py.
</content>
</entry>
<entry>
<title>Save existing configuration to .&lt;filename&gt;.old in write_config()</title>
<updated>2018-12-07T23:14:42Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-07T22:24:39Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=166be7d7684b4bd309661603a35710e0ed752680'/>
<id>urn:sha1:166be7d7684b4bd309661603a35710e0ed752680</id>
<content type='text'>
Add a default-True 'save_old' flag to write_config(). If 'save_old' is
True and an existing configuration file is being overwritten, a copy of
the old configuration file is saved to .&lt;filename&gt;.old (e.g.
.config.old) in the same directory.

Errors are ignored, as the old configuration would usually just be a
nice-to-have, and not essential.

The same functionality could be added for minimal configuration files
and headers, but it's probably most useful for configuration files.
</content>
</entry>
<entry>
<title>Rename 'val_sym' to 'sym' in str_value()</title>
<updated>2018-12-07T21:48:50Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-02T15:46:27Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=3dd2a89ac1c009374fedb21352d65bb43e38d5a2'/>
<id>urn:sha1:3dd2a89ac1c009374fedb21352d65bb43e38d5a2</id>
<content type='text'>
Consistent with elsewhere.
</content>
</entry>
<entry>
<title>Remove _internal_error()</title>
<updated>2018-12-07T21:45:09Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-02T14:36:26Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=25539b429b5d832940c06ab84dd8b7964f3b4d1f'/>
<id>urn:sha1:25539b429b5d832940c06ab84dd8b7964f3b4d1f</id>
<content type='text'>
These type sanity checks have never hit once during development over the
years, and were inconsistently applied too. Remove them to simplify the
code.

Keep the InternalError exception for backwards compatibility, in case
something catches it.
</content>
</entry>
<entry>
<title>Flag removed symbols as changed in sync_deps()</title>
<updated>2018-12-01T16:29:29Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-01T16:15:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a4751b5d94e713b2206889a4aab54388df1ca33f'/>
<id>urn:sha1:a4751b5d94e713b2206889a4aab54388df1ca33f</id>
<content type='text'>
If a symbol is removed from a Kconfig file, it makes sense to flag it as
changed, so that things that still (probably accidentally) depend on it
get rebuilt.

Saw a patch for the C tools with the same effect floating around, so
might as well add it already. The C tools had other brokeness as well
though...
</content>
</entry>
<entry>
<title>Tighten up help text parsing</title>
<updated>2018-12-01T13:17:38Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-01T11:12:29Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a8d378d5fc027fef9d884bd4d89d5ca726383146'/>
<id>urn:sha1:a8d378d5fc027fef9d884bd4d89d5ca726383146</id>
<content type='text'>
Get rid of _indentation() and inline it into _parse_help(), adding some
simplifications and optimizations along the way.

Saves a few % of parsing of time. Help text parsing is surprisingly hot.
</content>
</entry>
<entry>
<title>Reorder some tuples to put y first</title>
<updated>2018-11-26T04:44:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-26T02:43:31Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=bb7044cb39af5659c082bd74b45734dca64824c5'/>
<id>urn:sha1:bb7044cb39af5659c082bd74b45734dca64824c5</id>
<content type='text'>
CONFIG_FOO=y and 'default y' and the like are more common than the n
versions, so test for them first.

Turning the tuples into sets would be even better on Python 3, as it
optimizes sets with constant keys into a LOAD_CONST, but it has a
performance penalty on Python 2.
</content>
</entry>
<entry>
<title>Speed up more token membership tests</title>
<updated>2018-11-26T04:42:13Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-25T15:07:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=120f551b8bf9a6c35a9a97d5c7551bff66dc78bb'/>
<id>urn:sha1:120f551b8bf9a6c35a9a97d5c7551bff66dc78bb</id>
<content type='text'>
Similar change to commit 4b23936 ("Speed up some token tests"), just for
more tests.

This especially helps for the "not a property line" case in
_parse_properties(), which checks against all the cases.

Saves 2-3% of parsing time together with the earlier change.
</content>
</entry>
<entry>
<title>Whitespace nit</title>
<updated>2018-11-25T01:52:19Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-25T01:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=010425856a3e56ece63aea7e7824e63e24a33d96'/>
<id>urn:sha1:010425856a3e56ece63aea7e7824e63e24a33d96</id>
<content type='text'>
</content>
</entry>
</feed>
