Jeff Collins wrote: > > The approach I've taken for removing "features" (like float objects): > 1) removes the feature with WITHOUT_XXX #ifdef/#endif decorations, > where XXX denotes the removable feature (configurable in config.h) > 2) preserves the python API: builtin functions, C API, PyArg_Parse, > print format specifiers, etc., raise MissingFeatureError if > attempts are made to use them. Of course, the API associated > with the removed feature is no longer present. > 3) protects the reduced VM: all reads (via marshal, compile, etc.) > involving source/compiled python code will fail with > a MissingFeatureError if the reduced VM doesn't support it. > 4) does not yet support a MissingFeatureError in the tokenizer > if, say, 2.2 (for removed floats) is entered on the python > command line. This instead results in a SyntaxError > indicating a problem with the decimal point. It appears that > another error token would have to be added to support > this error. Wouldn't it be simpler to replace the parts in question with dummy replacements ? The dummies could then raise appropriate exceptions as needed. This would work for float, complex and Unicode objects which all have a defined API. The advantage of this approach is that you don't need to maintain separate patches for these parts (which is a pain) and that you can provide drop-in archives which are easy to install: simply unzip over the full source tree and recompile. > Of course, I may have missed something, but if the above appears to be > a reasonable approach, I can supply patches (at least for floats and > complexes) for further discussion. In the longer term, it would be > helpful if developers would follow this (or a similar agreed upon > approach) when adding new features. This would reduce the burden of > maintaining python for small embedded platforms. -- Marc-Andre Lemburg ______________________________________________________________________ Business: http://www.lemburg.com/ Python Pages: http://www.lemburg.com/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4