Improve Python tree-shaking

This commit is contained in:
Justine Tunney 2021-09-06 19:24:10 -07:00
parent 5bb2275788
commit 4f41f2184d
169 changed files with 4182 additions and 2411 deletions

View file

@ -45,8 +45,161 @@
#include "third_party/python/Include/tupleobject.h"
#include "third_party/python/Include/unicodeobject.h"
#include "third_party/python/Include/warnings.h"
#include "third_party/python/Include/yoink.h"
/* clang-format off */
PYTHON_PROVIDE("builtins.ArithmeticError");
PYTHON_PROVIDE("builtins.AssertionError");
PYTHON_PROVIDE("builtins.AttributeError");
PYTHON_PROVIDE("builtins.BaseException");
PYTHON_PROVIDE("builtins.BlockingIOError");
PYTHON_PROVIDE("builtins.BrokenPipeError");
PYTHON_PROVIDE("builtins.BufferError");
PYTHON_PROVIDE("builtins.BytesWarning");
PYTHON_PROVIDE("builtins.ChildProcessError");
PYTHON_PROVIDE("builtins.ConnectionAbortedError");
PYTHON_PROVIDE("builtins.ConnectionError");
PYTHON_PROVIDE("builtins.ConnectionRefusedError");
PYTHON_PROVIDE("builtins.ConnectionResetError");
PYTHON_PROVIDE("builtins.DeprecationWarning");
PYTHON_PROVIDE("builtins.EOFError");
PYTHON_PROVIDE("builtins.Ellipsis");
PYTHON_PROVIDE("builtins.EnvironmentError");
PYTHON_PROVIDE("builtins.Exception");
PYTHON_PROVIDE("builtins.False");
PYTHON_PROVIDE("builtins.FileExistsError");
PYTHON_PROVIDE("builtins.FileNotFoundError");
PYTHON_PROVIDE("builtins.FloatingPointError");
PYTHON_PROVIDE("builtins.FutureWarning");
PYTHON_PROVIDE("builtins.GeneratorExit");
PYTHON_PROVIDE("builtins.IOError");
PYTHON_PROVIDE("builtins.ImportError");
PYTHON_PROVIDE("builtins.ImportWarning");
PYTHON_PROVIDE("builtins.IndentationError");
PYTHON_PROVIDE("builtins.IndexError");
PYTHON_PROVIDE("builtins.InterruptedError");
PYTHON_PROVIDE("builtins.IsADirectoryError");
PYTHON_PROVIDE("builtins.KeyError");
PYTHON_PROVIDE("builtins.KeyboardInterrupt");
PYTHON_PROVIDE("builtins.LookupError");
PYTHON_PROVIDE("builtins.MemoryError");
PYTHON_PROVIDE("builtins.ModuleNotFoundError");
PYTHON_PROVIDE("builtins.NameError");
PYTHON_PROVIDE("builtins.None");
PYTHON_PROVIDE("builtins.NotADirectoryError");
PYTHON_PROVIDE("builtins.NotImplemented");
PYTHON_PROVIDE("builtins.NotImplementedError");
PYTHON_PROVIDE("builtins.OSError");
PYTHON_PROVIDE("builtins.OverflowError");
PYTHON_PROVIDE("builtins.PendingDeprecationWarning");
PYTHON_PROVIDE("builtins.PermissionError");
PYTHON_PROVIDE("builtins.ProcessLookupError");
PYTHON_PROVIDE("builtins.RecursionError");
PYTHON_PROVIDE("builtins.ReferenceError");
PYTHON_PROVIDE("builtins.ResourceWarning");
PYTHON_PROVIDE("builtins.RuntimeError");
PYTHON_PROVIDE("builtins.RuntimeWarning");
PYTHON_PROVIDE("builtins.StopAsyncIteration");
PYTHON_PROVIDE("builtins.StopIteration");
PYTHON_PROVIDE("builtins.SyntaxError");
PYTHON_PROVIDE("builtins.SyntaxWarning");
PYTHON_PROVIDE("builtins.SystemError");
PYTHON_PROVIDE("builtins.SystemExit");
PYTHON_PROVIDE("builtins.TabError");
PYTHON_PROVIDE("builtins.TimeoutError");
PYTHON_PROVIDE("builtins.True");
PYTHON_PROVIDE("builtins.TypeError");
PYTHON_PROVIDE("builtins.UnboundLocalError");
PYTHON_PROVIDE("builtins.UnicodeDecodeError");
PYTHON_PROVIDE("builtins.UnicodeEncodeError");
PYTHON_PROVIDE("builtins.UnicodeError");
PYTHON_PROVIDE("builtins.UnicodeTranslateError");
PYTHON_PROVIDE("builtins.UnicodeWarning");
PYTHON_PROVIDE("builtins.UserWarning");
PYTHON_PROVIDE("builtins.ValueError");
PYTHON_PROVIDE("builtins.Warning");
PYTHON_PROVIDE("builtins.ZeroDivisionError");
PYTHON_PROVIDE("builtins.__build_class__");
PYTHON_PROVIDE("builtins.__debug__");
PYTHON_PROVIDE("builtins.__doc__");
PYTHON_PROVIDE("builtins.__import__");
PYTHON_PROVIDE("builtins.__loader__");
PYTHON_PROVIDE("builtins.__name__");
PYTHON_PROVIDE("builtins.__package__");
PYTHON_PROVIDE("builtins.__spec__");
PYTHON_PROVIDE("builtins.abs");
PYTHON_PROVIDE("builtins.all");
PYTHON_PROVIDE("builtins.any");
PYTHON_PROVIDE("builtins.ascii");
PYTHON_PROVIDE("builtins.bin");
PYTHON_PROVIDE("builtins.bool");
PYTHON_PROVIDE("builtins.bytearray");
PYTHON_PROVIDE("builtins.bytes");
PYTHON_PROVIDE("builtins.callable");
PYTHON_PROVIDE("builtins.chr");
PYTHON_PROVIDE("builtins.classmethod");
PYTHON_PROVIDE("builtins.compile");
PYTHON_PROVIDE("builtins.complex");
PYTHON_PROVIDE("builtins.copyright");
PYTHON_PROVIDE("builtins.credits");
PYTHON_PROVIDE("builtins.delattr");
PYTHON_PROVIDE("builtins.dict");
PYTHON_PROVIDE("builtins.dir");
PYTHON_PROVIDE("builtins.divmod");
PYTHON_PROVIDE("builtins.enumerate");
PYTHON_PROVIDE("builtins.eval");
PYTHON_PROVIDE("builtins.exec");
PYTHON_PROVIDE("builtins.exit");
PYTHON_PROVIDE("builtins.filter");
PYTHON_PROVIDE("builtins.float");
PYTHON_PROVIDE("builtins.format");
PYTHON_PROVIDE("builtins.frozenset");
PYTHON_PROVIDE("builtins.getattr");
PYTHON_PROVIDE("builtins.globals");
PYTHON_PROVIDE("builtins.hasattr");
PYTHON_PROVIDE("builtins.hash");
PYTHON_PROVIDE("builtins.help");
PYTHON_PROVIDE("builtins.hex");
PYTHON_PROVIDE("builtins.id");
PYTHON_PROVIDE("builtins.input");
PYTHON_PROVIDE("builtins.int");
PYTHON_PROVIDE("builtins.isinstance");
PYTHON_PROVIDE("builtins.issubclass");
PYTHON_PROVIDE("builtins.iter");
PYTHON_PROVIDE("builtins.len");
PYTHON_PROVIDE("builtins.license");
PYTHON_PROVIDE("builtins.list");
PYTHON_PROVIDE("builtins.locals");
PYTHON_PROVIDE("builtins.map");
PYTHON_PROVIDE("builtins.max");
PYTHON_PROVIDE("builtins.memoryview");
PYTHON_PROVIDE("builtins.min");
PYTHON_PROVIDE("builtins.next");
PYTHON_PROVIDE("builtins.object");
PYTHON_PROVIDE("builtins.oct");
PYTHON_PROVIDE("builtins.open");
PYTHON_PROVIDE("builtins.ord");
PYTHON_PROVIDE("builtins.pow");
PYTHON_PROVIDE("builtins.print");
PYTHON_PROVIDE("builtins.property");
PYTHON_PROVIDE("builtins.quit");
PYTHON_PROVIDE("builtins.range");
PYTHON_PROVIDE("builtins.repr");
PYTHON_PROVIDE("builtins.reversed");
PYTHON_PROVIDE("builtins.round");
PYTHON_PROVIDE("builtins.set");
PYTHON_PROVIDE("builtins.setattr");
PYTHON_PROVIDE("builtins.slice");
PYTHON_PROVIDE("builtins.sorted");
PYTHON_PROVIDE("builtins.staticmethod");
PYTHON_PROVIDE("builtins.str");
PYTHON_PROVIDE("builtins.sum");
PYTHON_PROVIDE("builtins.super");
PYTHON_PROVIDE("builtins.tuple");
PYTHON_PROVIDE("builtins.type");
PYTHON_PROVIDE("builtins.vars");
PYTHON_PROVIDE("builtins.zip");
/* Built-in functions */
/* The default encoding used by the platform file system APIs

View file

@ -4,6 +4,7 @@
Python 3
https://docs.python.org/3/license.html │
*/
#include "libc/stdio/stdio.h"
#include "third_party/python/Include/abstract.h"
#include "third_party/python/Include/bytesobject.h"
#include "third_party/python/Include/ceval.h"

View file

@ -37,6 +37,25 @@
/* clang-format off */
PYTHON_PROVIDE("_imp");
PYTHON_PROVIDE("_imp.__doc__");
PYTHON_PROVIDE("_imp.__loader__");
PYTHON_PROVIDE("_imp.__name__");
PYTHON_PROVIDE("_imp.__package__");
PYTHON_PROVIDE("_imp.__spec__");
PYTHON_PROVIDE("_imp._fix_co_filename");
PYTHON_PROVIDE("_imp.acquire_lock");
PYTHON_PROVIDE("_imp.create_builtin");
PYTHON_PROVIDE("_imp.create_dynamic");
PYTHON_PROVIDE("_imp.exec_builtin");
PYTHON_PROVIDE("_imp.exec_dynamic");
PYTHON_PROVIDE("_imp.extension_suffixes");
PYTHON_PROVIDE("_imp.get_frozen_object");
PYTHON_PROVIDE("_imp.init_frozen");
PYTHON_PROVIDE("_imp.is_builtin");
PYTHON_PROVIDE("_imp.is_frozen");
PYTHON_PROVIDE("_imp.is_frozen_package");
PYTHON_PROVIDE("_imp.lock_held");
PYTHON_PROVIDE("_imp.release_lock");
#define CACHEDIR "__pycache__"

View file

@ -43,9 +43,91 @@
#include "third_party/python/Include/traceback.h"
#include "third_party/python/Include/unicodeobject.h"
#include "third_party/python/Include/warnings.h"
#include "third_party/python/Include/yoink.h"
#include "third_party/python/pyconfig.h"
/* clang-format off */
PYTHON_PROVIDE("sys");
PYTHON_PROVIDE("sys.__displayhook__");
PYTHON_PROVIDE("sys.__doc__");
PYTHON_PROVIDE("sys.__excepthook__");
PYTHON_PROVIDE("sys.__interactivehook__");
PYTHON_PROVIDE("sys.__loader__");
PYTHON_PROVIDE("sys.__name__");
PYTHON_PROVIDE("sys.__package__");
PYTHON_PROVIDE("sys.__spec__");
PYTHON_PROVIDE("sys.__stderr__");
PYTHON_PROVIDE("sys.__stdin__");
PYTHON_PROVIDE("sys.__stdout__");
PYTHON_PROVIDE("sys._clear_type_cache");
PYTHON_PROVIDE("sys._current_frames");
PYTHON_PROVIDE("sys._debugmallocstats");
PYTHON_PROVIDE("sys._getframe");
PYTHON_PROVIDE("sys._git");
PYTHON_PROVIDE("sys._home");
PYTHON_PROVIDE("sys._xoptions");
PYTHON_PROVIDE("sys.abiflags");
PYTHON_PROVIDE("sys.api_version");
PYTHON_PROVIDE("sys.argv");
PYTHON_PROVIDE("sys.base_exec_prefix");
PYTHON_PROVIDE("sys.base_prefix");
PYTHON_PROVIDE("sys.builtin_module_names");
PYTHON_PROVIDE("sys.byteorder");
PYTHON_PROVIDE("sys.call_tracing");
PYTHON_PROVIDE("sys.callstats");
PYTHON_PROVIDE("sys.copyright");
PYTHON_PROVIDE("sys.displayhook");
PYTHON_PROVIDE("sys.dont_write_bytecode");
PYTHON_PROVIDE("sys.exc_info");
PYTHON_PROVIDE("sys.excepthook");
PYTHON_PROVIDE("sys.exec_prefix");
PYTHON_PROVIDE("sys.executable");
PYTHON_PROVIDE("sys.exit");
PYTHON_PROVIDE("sys.flags");
PYTHON_PROVIDE("sys.float_info");
PYTHON_PROVIDE("sys.float_repr_style");
PYTHON_PROVIDE("sys.get_asyncgen_hooks");
PYTHON_PROVIDE("sys.get_coroutine_wrapper");
PYTHON_PROVIDE("sys.getallocatedblocks");
PYTHON_PROVIDE("sys.getcheckinterval");
PYTHON_PROVIDE("sys.getdefaultencoding");
PYTHON_PROVIDE("sys.getdlopenflags");
PYTHON_PROVIDE("sys.getfilesystemencodeerrors");
PYTHON_PROVIDE("sys.getfilesystemencoding");
PYTHON_PROVIDE("sys.getprofile");
PYTHON_PROVIDE("sys.getrecursionlimit");
PYTHON_PROVIDE("sys.getrefcount");
PYTHON_PROVIDE("sys.getsizeof");
PYTHON_PROVIDE("sys.gettrace");
PYTHON_PROVIDE("sys.hash_info");
PYTHON_PROVIDE("sys.hexversion");
PYTHON_PROVIDE("sys.implementation");
PYTHON_PROVIDE("sys.int_info");
PYTHON_PROVIDE("sys.intern");
PYTHON_PROVIDE("sys.is_finalizing");
PYTHON_PROVIDE("sys.maxsize");
PYTHON_PROVIDE("sys.maxunicode");
PYTHON_PROVIDE("sys.meta_path");
PYTHON_PROVIDE("sys.modules");
PYTHON_PROVIDE("sys.path");
PYTHON_PROVIDE("sys.path_hooks");
PYTHON_PROVIDE("sys.path_importer_cache");
PYTHON_PROVIDE("sys.platform");
PYTHON_PROVIDE("sys.prefix");
PYTHON_PROVIDE("sys.set_asyncgen_hooks");
PYTHON_PROVIDE("sys.set_coroutine_wrapper");
PYTHON_PROVIDE("sys.setcheckinterval");
PYTHON_PROVIDE("sys.setdlopenflags");
PYTHON_PROVIDE("sys.setprofile");
PYTHON_PROVIDE("sys.setrecursionlimit");
PYTHON_PROVIDE("sys.settrace");
PYTHON_PROVIDE("sys.stderr");
PYTHON_PROVIDE("sys.stdin");
PYTHON_PROVIDE("sys.stdout");
PYTHON_PROVIDE("sys.version");
PYTHON_PROVIDE("sys.version_info");
PYTHON_PROVIDE("sys.warnoptions");
_Py_IDENTIFIER(_);
_Py_IDENTIFIER(__sizeof__);
_Py_IDENTIFIER(buffer);