summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-01-25Mention that Windows support has been triedUlf Magnusson
2018-01-25Make 2.5.0 releasev2.5.0Ulf Magnusson
- 955ea4 ("Support <, > relational operators with tristates") adds a small recent feature from upstream. Haven't even seen any relational operators besides = and != being used yet I think. - 8d7235 ("Tighten up regexes") cleans up and optimizes the regexes used during parsing and .config reading a bit.
2018-01-25Comment nitUlf Magnusson
2018-01-25Tighten up regexesUlf Magnusson
- Match the simpler strchr()y .config parsing done by the C implementation - Spell out \w as [a-zA-Z0-9_]. Easier to verify. - Use ASCII mode for Python 3 to be consistent with Python 2, where it's already the default. \s no longer matches obscure Unicode stuff. This also speeds up regex matching during parsing by about 15% on Python 3, increasing parsing performance by a few %. Looks like there's a tiny improvement for Python 2 as well.
2018-01-25Support <, > relational operators with tristatesUlf Magnusson
Mirrors 9059a3493ef ("kconfig: fix relational operators for bool and tristate symbols") in the C implementation.
2018-01-24Mention the reltest scriptUlf Magnusson
2018-01-24Make 2.4.0 releasev2.4.0Ulf Magnusson
Just has b82ea0a ("Enable universal newlines mode for Python 2").
2018-01-24Enable universal newlines mode for Python 2Ulf Magnusson
Use the "U" flag to open() rather than io.open() to avoid a ~14% parsing performance hit. See comment.
2018-01-24Make 2.3.0 releasev2.3.0Ulf Magnusson
Just adds a new warning: 0087b40 ("Warn if a symbol with unsatisfied deps is selected")
2018-01-24Warn if a symbol with unsatisfied deps is selectedUlf Magnusson
Mirrors a warning in the C implementation. Make it a bit more informative and simpler to decode for people who aren't super familiar with Kconfig. The warning is printed when/if the symbol is evaluated, e.g. when writing a .config or C header or accessing Symbol.str/tri_value. It is not printed if the symbol value has already been calculated and is cached and up-to-date, which avoids warning spam. Example: config Y_SYMBOL_1 def_bool y config Y_SYMBOL_2 def_bool y config SELECTED bool depends on !Y_SYMBOL_1 config SELECTING_1 def_bool y select SELECTED # Skipped in warning, because n config SELECTING_2 def_bool n select SELECTED config SELECTING_3 def_bool y select SELECTED if Y_SYMBOL_1 depends on Y_SYMBOL_2 # Defined in multiple locations config SELECTING_3 Generated warning: warning: SELECTED (defined at Kconfig:7) has unsatisfied direct dependencies (!Y_SYMBOL_1), but is currently being selected by the following symbols: SELECTING_3 (value: y, defined at Kconfig:20, Kconfig:26), with direct dependencies "y" (value: y) and select condition Y_SYMBOL_1 && Y_SYMBOL_2 (value: y) SELECTING_1 (value: y, defined at Kconfig:11), with direct dependencies "y" (value: y) Real-world example from test suite: warning: NOT_COHERENT_CACHE (defined at arch/powerpc/platforms/Kconfig.cputype:381) has unsatisfied direct dependencies (4xx || PPC_8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON), but is currently being selected by the following symbols: AMIGAONE (value: y, defined at arch/powerpc/platforms/amigaone/Kconfig:2), with direct dependencies 6xx && BROKEN_ON_SMP (value: y) and select condition 6xx && BROKEN_ON_SMP (value: y)
2018-01-23Mention loading of multiple .config filesUlf Magnusson
2018-01-22Make 2.2.4 releasev2.2.4Ulf Magnusson
Small docstring improvements: - 1c37079 ("Add more detail to the write_config() docstring") - 121d4a7 ("Add more detail to the write_autoconf() docstring") - 27fbded ("Fix outdated comments referencing user_str/tri_value") - e01cb49 ("Mention user_value in the load_config() docstring") - ed32010 ("Add some more detail to the module docstring") Code nit: - 532b561 ("Simplify escape()")
2018-01-22Add some more detail to the module docstringUlf Magnusson
Clarify how to fetch help texts and prompts, mention the no-prompt warning.
2018-01-22Simplify escape()Ulf Magnusson
The fancy regex isn't really justified. Much faster with replace() too, though this is an unlikely hotspot. Could have used a \g<0> backreference to refer to the entire match instead of using a capturing group too. Hadn't discovered that. Add some selftests for escape() and unescape() too.
2018-01-22Mention user_value in the load_config() docstringUlf Magnusson
Can be handy to check which symbols got set, like merge_config.py does.
2018-01-22Fix outdated comments referencing user_str/tri_valueUlf Magnusson
Ended up with just user_value in the end before releasing Kconfiglib 2.
2018-01-22Add more detail to the write_autoconf() docstringUlf Magnusson
Same order as for .config files.
2018-01-22Add more detail to the write_config() docstringUlf Magnusson
Can be handy to know that the order of the assignments matches the Kconfig files.
2018-01-21Whitespace nitsUlf Magnusson
2018-01-21Linkify test suiteUlf Magnusson
2018-01-20Make 2.2.3 releasev2.2.3Ulf Magnusson
Parsing performance improvements related to help texts: - c800f70 ("Simplify _deindent()") - 707204a ("Get rid of _next_help_line()") - f0a87cc ("Micro-optimize _T_HELP parsing") Also includes various code nits. Brings 'make scriptconfig' with allyesconfig.py down to 1.3 seconds, including the 'make' overhead.
2018-01-20Getting fasterUlf Magnusson
2018-01-20Micro-optimize _T_HELP parsingUlf Magnusson
Shaves a few % more from _parse_properties().
2018-01-20Get rid of _next_help_line()Ulf Magnusson
Speeds things up a bit further. Rework the unget handling to save the ungotten line directly instead of using a flag. Add some help texts to tests/Klocation to make sure the line number is updated properly for those.
2018-01-19Simplify loop in _T_HELPUlf Magnusson
Bit easier to read.
2018-01-19Always rstrip() when dedentingUlf Magnusson
Factors out some code and makes the logic a bit more transparent. It's only used for help text lines.
2018-01-19Rearrange _T_HELP codeUlf Magnusson
Bit clearer.
2018-01-19Simplify _deindent()Ulf Magnusson
Old code. Can't remember why it kept lines shorter than the indent as-is instead of clearing them, but it's pointless for help texts, which is the only place where _deindent() is used. s[n:] is safe even if n >= len(s). Help text parsing is pretty hot code too, so every bit helps.
2018-01-18Mention how invalidation is avoided for constant symbolsUlf Magnusson
2018-01-18Make 2.2.2 releasev2.2.2Ulf Magnusson
- 97c7501 ("Fix 'source "missing"' error message for Python 3") makes the hint re. environment variables display properly for Python 3 when a sourced file can't be opened. - 8574dc5 ("Make PyPI's README formatter happy") makes PyPI format the README properly.
2018-01-18Fix 'source "missing"' error message for Python 3Ulf Magnusson
IOError() generates an OSError in Python 3.6. OSError does not have a 'message' attribute, which caused the following error when trying to add the hint re. environment variables (the rest of the message was still displayed): AttributeError: 'OSError' object has no attribute 'message' Use str(exception) instead, which seems to work for both Python 2 and Python 3.
2018-01-18Make PyPI's README formatter happyUlf Magnusson
No longer displayed as an unformatted blob of text.
2018-01-18Make 2.2.1 releasev2.2.1Ulf Magnusson
- 7dc5b74 ("Detect recursive 'source' and print backtrace") makes debugging recursive 'source's a bit easier. - Various minor code nits.
2018-01-18Use absolute link for kconfiglib-2-changes.txtUlf Magnusson
Try to unbreak PyPI display.
2018-01-18Use absolute links in READMEUlf Magnusson
See if this unbreaks the display on PyPI.
2018-01-18Clarify when symbols get the default n valueUlf Magnusson
"Active user value" might have been a bit unclear. The symbol needs to be visible.
2018-01-18Rearrange _T_(MENU)CONFIG parsing codeUlf Magnusson
Bit neater.
2018-01-17Fix some typosUlf Magnusson
2018-01-17Improve recursive 'source' testUlf Magnusson
Check for incorrect exceptions instead of propagating them, and get rid of the flag.
2018-01-17Detect recursive 'source' and print backtraceUlf Magnusson
Easier to debug than a RecursionError. Point out in the exception message that a common cause is environment variables not being set correctly.
2018-01-16Move _rec_invalidate_if_has_prompt() to after _rec_invalidate()Ulf Magnusson
2018-01-16Roll invalidation logic into _is_user_assignable()Ulf Magnusson
And rename it to _rec_invalidate_if_has_prompt(). Always used in this way in practice.
2018-01-16Make 2.2.0 releasev2.2.0Ulf Magnusson
- 94c63de ("Support disabling warnings for redundant assignments") adds support for disabling warnings in the case where a symbol is assigned more than once within a .config file but always assigned the same value. Contributed by Sebastian Bøe. - Various other minor code nits.
2018-01-16_tokenize() non-constant symbol parsing style nitUlf Magnusson
Saves a tiny bit of bytecode too.
2018-01-16Kconfiglib is easier to modify tooUlf Magnusson
2018-01-16Fix lying implementation commentsUlf Magnusson
Implicit submenus are created after parsing, in _finalize_tree(), so the parent can never be a symbol in _parse_block().
2018-01-16Get TRI_TO_STR from Kconfiglib in test suiteUlf Magnusson
Old code.
2018-01-16Reset _tokens_i just once in _tokenize()Ulf Magnusson
It's set to -1 in every return path, so we can just do it at the beginning instead.
2018-01-16Update copyright year in licenseUlf Magnusson
2018-01-16Do not optimize promptless choice symbolsUlf Magnusson
Choice symbols without prompts are pointless and probably nonexistent in practice, so it's a bit silly to run the no-prompt optimization for them. Piggyback copyright year update.