mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 05:42:29 +00:00
Reduce header complexity
- Remove most __ASSEMBLER__ __LINKER__ ifdefs - Rename libc/intrin/bits.h to libc/serialize.h - Block pthread cancelation in fchmodat() polyfill - Remove `clang-format off` statements in third_party
This commit is contained in:
parent
96f979dfc5
commit
fa20edc44d
3057 changed files with 410 additions and 4398 deletions
3
third_party/python/Include/Python-ast.h
generated
vendored
3
third_party/python/Include/Python-ast.h
generated
vendored
|
@ -1,9 +1,7 @@
|
|||
#ifndef COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_PYTHON_AST_H_
|
||||
#define COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_PYTHON_AST_H_
|
||||
#include "third_party/python/Include/asdl.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
/* File automatically generated by Parser/asdl_c.py. */
|
||||
|
||||
typedef struct _mod *mod_ty;
|
||||
|
@ -641,5 +639,4 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
|
|||
int PyAST_Check(PyObject* obj);
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_PYTHON_AST_H_ */
|
||||
|
|
1
third_party/python/Include/Python.h
vendored
1
third_party/python/Include/Python.h
vendored
|
@ -1,6 +1,5 @@
|
|||
#ifndef Py_PYTHON_H
|
||||
#define Py_PYTHON_H
|
||||
/* clang-format off */
|
||||
|
||||
/*
|
||||
* PYTHON DIAMOND DEPENDENCY HEADER
|
||||
|
|
1
third_party/python/Include/accu.h
vendored
1
third_party/python/Include/accu.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_ACCU_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#undef small /* defined by some Windows headers */
|
||||
|
||||
|
|
1
third_party/python/Include/asdl.h
vendored
1
third_party/python/Include/asdl.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_ASDL_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyarena.h"
|
||||
/* clang-format off */
|
||||
|
||||
typedef PyObject * identifier;
|
||||
typedef PyObject * string;
|
||||
|
|
1
third_party/python/Include/ast.h
vendored
1
third_party/python/Include/ast.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/node.h"
|
||||
#include "third_party/python/Include/pythonrun.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern int foo;
|
||||
int PyAST_Validate(mod_ty);
|
||||
|
|
1
third_party/python/Include/bitset.h
vendored
1
third_party/python/Include/bitset.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_BITSET_H
|
||||
#include "third_party/python/Include/pgenheaders.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define BYTE char
|
||||
|
||||
|
|
1
third_party/python/Include/bltinmodule.h
vendored
1
third_party/python/Include/bltinmodule.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_BLTINMODULE_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern PyTypeObject PyFilter_Type;
|
||||
extern PyTypeObject PyMap_Type;
|
||||
|
|
1
third_party/python/Include/boolobject.h
vendored
1
third_party/python/Include/boolobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_BOOLOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern PyTypeObject PyBool_Type;
|
||||
|
||||
|
|
1
third_party/python/Include/bytearrayobject.h
vendored
1
third_party/python/Include/bytearrayobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "libc/assert.h"
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Type PyByteArrayObject represents a mutable array of bytes.
|
||||
* The Python API is that of a sequence;
|
||||
|
|
1
third_party/python/Include/bytes_methods.h
vendored
1
third_party/python/Include/bytes_methods.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_BYTES_CTYPE_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pymacro.h"
|
||||
/* clang-format off */
|
||||
|
||||
/*
|
||||
* The internal implementation behind PyBytes (bytes) and PyByteArray (bytearray)
|
||||
|
|
1
third_party/python/Include/bytesobject.h
vendored
1
third_party/python/Include/bytesobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_BYTESOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/*
|
||||
Type PyBytesObject represents a character string. An extra zero byte is
|
||||
|
|
1
third_party/python/Include/cellobject.h
vendored
1
third_party/python/Include/cellobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_CELLOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
|
|
1
third_party/python/Include/ceval.h
vendored
1
third_party/python/Include/ceval.h
vendored
|
@ -8,7 +8,6 @@
|
|||
#include "third_party/python/Include/pystate.h"
|
||||
#include "third_party/python/Include/pythonrun.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Interface to random parts in ceval.c */
|
||||
|
||||
|
|
1
third_party/python/Include/classobject.h
vendored
1
third_party/python/Include/classobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_CLASSOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
|
|
1
third_party/python/Include/codecs.h
vendored
1
third_party/python/Include/codecs.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_CODECREGISTRY_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* ------------------------------------------------------------------------
|
||||
|
||||
|
|
1
third_party/python/Include/compile.h
vendored
1
third_party/python/Include/compile.h
vendored
|
@ -10,7 +10,6 @@ COSMOPOLITAN_C_START_
|
|||
#define Py_eval_input 258
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
/* clang-format off */
|
||||
|
||||
/* Public interface */
|
||||
struct _node; /* Declare the existence of this type */
|
||||
|
|
1
third_party/python/Include/complexobject.h
vendored
1
third_party/python/Include/complexobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
typedef struct {
|
||||
|
|
1
third_party/python/Include/datetime.h
vendored
1
third_party/python/Include/datetime.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define DATETIME_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
|
||||
/* Fields are packed into successive bytes, each viewed as unsigned and
|
||||
|
|
1
third_party/python/Include/descrobject.h
vendored
1
third_party/python/Include/descrobject.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef PyObject *(*getter)(PyObject *, void *);
|
||||
typedef int (*setter)(PyObject *, PyObject *, void *);
|
||||
|
|
1
third_party/python/Include/dictobject.h
vendored
1
third_party/python/Include/dictobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_DICTOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Dictionary object type -- mapping from hashable object to object */
|
||||
|
||||
|
|
1
third_party/python/Include/dtoa.h
vendored
1
third_party/python/Include/dtoa.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_LIMITED_API
|
||||
#ifndef PY_NO_SHORT_FLOAT_REPR
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
double _Py_dg_strtod(const char *str, char **ptr);
|
||||
char * _Py_dg_dtoa(double d, int mode, int ndigits,
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#define DYNAMIC_ANNOTATIONS_ENABLED 0
|
||||
#endif
|
||||
#if DYNAMIC_ANNOTATIONS_ENABLED != 0
|
||||
/* clang-format off */
|
||||
|
||||
/* Copyright (c) 2008-2009, Google Inc.
|
||||
* All rights reserved.
|
||||
|
|
1
third_party/python/Include/enumobject.h
vendored
1
third_party/python/Include/enumobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_ENUMOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern PyTypeObject PyEnum_Type;
|
||||
extern PyTypeObject PyReversed_Type;
|
||||
|
|
1
third_party/python/Include/errcode.h
vendored
1
third_party/python/Include/errcode.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_ERRCODE_H
|
||||
#define Py_ERRCODE_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
|
||||
/* Error codes passed around between file input, tokenizer, parser and
|
||||
|
|
1
third_party/python/Include/eval.h
vendored
1
third_party/python/Include/eval.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_EVAL_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
PyObject * PyEval_EvalCode(PyObject *, PyObject *, PyObject *);
|
||||
|
||||
|
|
2
third_party/python/Include/ezprint.h
vendored
2
third_party/python/Include/ezprint.h
vendored
|
@ -6,7 +6,6 @@
|
|||
#include "third_party/python/Include/bytesobject.h"
|
||||
#include "third_party/python/Include/pyerrors.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
static void EzPrint(PyObject *x, const char *s) {
|
||||
|
@ -34,5 +33,4 @@ static void EzPrint(PyObject *x, const char *s) {
|
|||
#define EZPRINT(x) EzPrint(x, #x)
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_EZPRINT_H_ */
|
||||
|
|
1
third_party/python/Include/fileobject.h
vendored
1
third_party/python/Include/fileobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_FILEOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define PY_STDIOTEXTMODE "b"
|
||||
|
||||
|
|
1
third_party/python/Include/fileutils.h
vendored
1
third_party/python/Include/fileutils.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "libc/calls/struct/stat.h"
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
|
||||
wchar_t * Py_DecodeLocale(
|
||||
|
|
1
third_party/python/Include/floatobject.h
vendored
1
third_party/python/Include/floatobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
typedef struct {
|
||||
|
|
1
third_party/python/Include/frameobject.h
vendored
1
third_party/python/Include/frameobject.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pystate.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct {
|
||||
int b_type; /* what kind of block this is */
|
||||
|
|
1
third_party/python/Include/funcobject.h
vendored
1
third_party/python/Include/funcobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_FUNCOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Function objects and code objects should not be confused with each other:
|
||||
*
|
||||
|
|
1
third_party/python/Include/genobject.h
vendored
1
third_party/python/Include/genobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_GENOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
struct _frame; /* Avoid including frameobject.h */
|
||||
|
||||
|
|
1
third_party/python/Include/graminit.h
generated
vendored
1
third_party/python/Include/graminit.h
generated
vendored
|
@ -1,4 +1,3 @@
|
|||
/* clang-format off */
|
||||
/* Generated by Parser/pgen */
|
||||
|
||||
#define single_input 256
|
||||
|
|
1
third_party/python/Include/grammar.h
vendored
1
third_party/python/Include/grammar.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "libc/stdio/stdio.h"
|
||||
#include "third_party/python/Include/bitset.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* A label of an arc */
|
||||
typedef struct {
|
||||
|
|
1
third_party/python/Include/import.h
vendored
1
third_party/python/Include/import.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_IMPORT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
void _PyImportZip_Init(void);
|
||||
|
|
1
third_party/python/Include/intrcheck.h
vendored
1
third_party/python/Include/intrcheck.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_INTRCHECK_H
|
||||
#define Py_INTRCHECK_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
int PyOS_InterruptOccurred(void);
|
||||
void PyOS_InitInterrupts(void);
|
||||
|
|
1
third_party/python/Include/iterobject.h
vendored
1
third_party/python/Include/iterobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_ITEROBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern PyTypeObject PySeqIter_Type;
|
||||
extern PyTypeObject PyCallIter_Type;
|
||||
|
|
1
third_party/python/Include/listobject.h
vendored
1
third_party/python/Include/listobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_LISTOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* List object interface
|
||||
|
||||
|
|
1
third_party/python/Include/longintrepr.h
vendored
1
third_party/python/Include/longintrepr.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* This is published for the benefit of "friends" marshal.c and _decimal.c. */
|
||||
|
||||
|
|
1
third_party/python/Include/longobject.h
vendored
1
third_party/python/Include/longobject.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Long (arbitrary precision) integer object interface */
|
||||
|
||||
|
|
1
third_party/python/Include/marshal.h
vendored
1
third_party/python/Include/marshal.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_MARSHAL_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define Py_MARSHAL_VERSION 4
|
||||
|
||||
|
|
1
third_party/python/Include/memoryobject.h
vendored
1
third_party/python/Include/memoryobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_MEMORYOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
extern PyTypeObject _PyManagedBuffer_Type;
|
||||
|
|
1
third_party/python/Include/metagrammar.h
vendored
1
third_party/python/Include/metagrammar.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_METAGRAMMAR_H
|
||||
#define Py_METAGRAMMAR_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define MSTART 256
|
||||
#define RULE 257
|
||||
|
|
1
third_party/python/Include/methodobject.h
vendored
1
third_party/python/Include/methodobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* This is about the type 'builtin_function_or_method',
|
||||
not Python methods in user-defined classes. See classobject.h
|
||||
|
|
1
third_party/python/Include/modsupport.h
vendored
1
third_party/python/Include/modsupport.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* If PY_SSIZE_T_CLEAN is defined, each functions treats #-specifier
|
||||
to mean Py_ssize_t */
|
||||
|
|
1
third_party/python/Include/moduleobject.h
vendored
1
third_party/python/Include/moduleobject.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/methodobject.h"
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
extern PyTypeObject PyModule_Type;
|
||||
|
||||
|
|
1
third_party/python/Include/namespaceobject.h
vendored
1
third_party/python/Include/namespaceobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define NAMESPACEOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
extern PyTypeObject _PyNamespace_Type;
|
||||
|
|
1
third_party/python/Include/node.h
vendored
1
third_party/python/Include/node.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_NODE_H
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct _node {
|
||||
short n_type;
|
||||
|
|
1
third_party/python/Include/object.h
vendored
1
third_party/python/Include/object.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/op.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Object and type object interface */
|
||||
|
||||
|
|
1
third_party/python/Include/objimpl.h
vendored
1
third_party/python/Include/objimpl.h
vendored
|
@ -7,7 +7,6 @@
|
|||
#include "third_party/python/Include/pymem.h"
|
||||
#include "third_party/python/Include/tupleobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
void * PyObject_Malloc(size_t);
|
||||
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
|
||||
|
|
1
third_party/python/Include/odictobject.h
vendored
1
third_party/python/Include/odictobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_ODICTOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* OrderedDict */
|
||||
/* This API is optional and mostly redundant. */
|
||||
|
|
1
third_party/python/Include/opcode.h
generated
vendored
1
third_party/python/Include/opcode.h
generated
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_OPCODE_H
|
||||
#include "third_party/python/Include/op.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
/* Auto-generated by Tools/scripts/generate_opcode_h.py */
|
||||
|
||||
/* Instruction opcodes for compiled code */
|
||||
|
|
1
third_party/python/Include/osmodule.h
vendored
1
third_party/python/Include/osmodule.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_OSMODULE_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
|
||||
PyObject * PyOS_FSPath(PyObject *path);
|
||||
|
|
1
third_party/python/Include/parsetok.h
vendored
1
third_party/python/Include/parsetok.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/node.h"
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct {
|
||||
int error;
|
||||
|
|
1
third_party/python/Include/patchlevel.h
vendored
1
third_party/python/Include/patchlevel.h
vendored
|
@ -1,4 +1,3 @@
|
|||
/* clang-format off */
|
||||
|
||||
/* Python version identification scheme.
|
||||
|
||||
|
|
1
third_party/python/Include/pgen.h
vendored
1
third_party/python/Include/pgen.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_PGEN_H
|
||||
#include "third_party/python/Include/grammar.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Parser generator interface */
|
||||
|
||||
|
|
1
third_party/python/Include/pgenheaders.h
vendored
1
third_party/python/Include/pgenheaders.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_PGENHEADERS_H
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
void PySys_WriteStdout(const char *format, ...)
|
||||
Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
|
||||
|
|
1
third_party/python/Include/py_curses.h
vendored
1
third_party/python/Include/py_curses.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_CURSES_H
|
||||
#define Py_CURSES_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
/* clang-format off */
|
||||
|
||||
#if !defined(HAVE_CURSES_IS_PAD) && defined(WINDOW_HAS_FLAGS)
|
||||
/* The following definition is necessary for ncurses 5.7; without it,
|
||||
|
|
1
third_party/python/Include/pyarena.h
vendored
1
third_party/python/Include/pyarena.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#define Py_PYARENA_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct _arena PyArena;
|
||||
|
||||
|
|
1
third_party/python/Include/pyatomic.h
vendored
1
third_party/python/Include/pyatomic.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "libc/assert.h"
|
||||
#include "third_party/python/Include/dynamic_annotations.h"
|
||||
#include "third_party/python/pyconfig.h"
|
||||
/* clang-format off */
|
||||
|
||||
/* This is modeled after the atomics interface from C1x, according to
|
||||
* the draft at
|
||||
|
|
1
third_party/python/Include/pycapsule.h
vendored
1
third_party/python/Include/pycapsule.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_CAPSULE_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Capsule objects let you wrap a C "void *" pointer in a Python
|
||||
object. They're a way of passing data through the Python interpreter
|
||||
|
|
1
third_party/python/Include/pydebug.h
vendored
1
third_party/python/Include/pydebug.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#ifndef Py_PYDEBUG_H
|
||||
#define Py_PYDEBUG_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
#include "libc/runtime/runtime.h"
|
||||
|
||||
/* These global variable are defined in pylifecycle.c */
|
||||
|
|
1
third_party/python/Include/pyerrors.h
vendored
1
third_party/python/Include/pyerrors.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
/* PyException_HEAD defines the initial segment of every exception class. */
|
||||
|
|
3
third_party/python/Include/pyexpat.h
vendored
3
third_party/python/Include/pyexpat.h
vendored
|
@ -2,9 +2,7 @@
|
|||
#define COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_PYEXPAT_H_
|
||||
#include "third_party/python/Modules/expat/expat.h"
|
||||
#include "third_party/python/Modules/expat/expat_external.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
|
||||
#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
|
||||
|
@ -58,5 +56,4 @@ struct PyExpat_CAPI
|
|||
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_PYEXPAT_H_ */
|
||||
|
|
1
third_party/python/Include/pyfpe.h
vendored
1
third_party/python/Include/pyfpe.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_PYFPE_H
|
||||
#define Py_PYFPE_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
#ifdef WANT_SIGFPE_HANDLER
|
||||
extern jmp_buf PyFPE_jbuf;
|
||||
extern int PyFPE_counter;
|
||||
|
|
1
third_party/python/Include/pygetopt.h
vendored
1
third_party/python/Include/pygetopt.h
vendored
|
@ -1,7 +1,6 @@
|
|||
#ifndef Py_PYGETOPT_H
|
||||
#define Py_PYGETOPT_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
extern int _PyOS_opterr;
|
||||
|
|
1
third_party/python/Include/pyhash.h
vendored
1
third_party/python/Include/pyhash.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_HASH_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Helpers for hash functions */
|
||||
#ifndef Py_LIMITED_API
|
||||
|
|
1
third_party/python/Include/pylifecycle.h
vendored
1
third_party/python/Include/pylifecycle.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pystate.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
void Py_SetProgramName(wchar_t *);
|
||||
wchar_t * Py_GetProgramName(void);
|
||||
|
|
1
third_party/python/Include/pymacro.h
vendored
1
third_party/python/Include/pymacro.h
vendored
|
@ -1,6 +1,5 @@
|
|||
#ifndef Py_PYMACRO_H
|
||||
#define Py_PYMACRO_H
|
||||
/* clang-format off */
|
||||
|
||||
/* Minimum value between x and y */
|
||||
#define Py_MIN(x, y) (((x) > (y)) ? (y) : (x))
|
||||
|
|
1
third_party/python/Include/pymath.h
vendored
1
third_party/python/Include/pymath.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_PYMATH_H
|
||||
#include "libc/math.h"
|
||||
#include "third_party/python/pyconfig.h"
|
||||
/* clang-format off */
|
||||
|
||||
/**************************************************************************
|
||||
Symbols and macros to supply platform-independent interfaces to mathematical
|
||||
|
|
1
third_party/python/Include/pymem.h
vendored
1
third_party/python/Include/pymem.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Debug-mode build with pymalloc implies PYMALLOC_DEBUG.
|
||||
* PYMALLOC_DEBUG is in error if pymalloc is not in use.
|
||||
|
|
1
third_party/python/Include/pyport.h
vendored
1
third_party/python/Include/pyport.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "libc/limits.h"
|
||||
#include "third_party/python/Include/pymath.h"
|
||||
#include "third_party/python/pyconfig.h"
|
||||
/* clang-format off */
|
||||
|
||||
#define HAVE_LONG_LONG 1
|
||||
#define PY_LONG_LONG long long
|
||||
|
|
1
third_party/python/Include/pystate.h
vendored
1
third_party/python/Include/pystate.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyatomic.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* This limitation is for performance and simplicity. If needed it can be
|
||||
removed (with effort). */
|
||||
|
|
1
third_party/python/Include/pystrcmp.h
vendored
1
third_party/python/Include/pystrcmp.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_STRCMP_H
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
int PyOS_mystrnicmp(const char *, const char *, Py_ssize_t);
|
||||
int PyOS_mystricmp(const char *, const char *);
|
||||
|
|
1
third_party/python/Include/pystrhex.h
vendored
1
third_party/python/Include/pystrhex.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_STRHEX_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
/* Returns a str() containing the hex representation of argbuf. */
|
||||
|
|
1
third_party/python/Include/pystrtod.h
vendored
1
third_party/python/Include/pystrtod.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_STRTOD_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
double PyOS_string_to_double(const char *str,
|
||||
char **endptr,
|
||||
|
|
1
third_party/python/Include/pythonrun.h
vendored
1
third_party/python/Include/pythonrun.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/pyarena.h"
|
||||
#include "third_party/python/Include/pystate.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \
|
||||
CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \
|
||||
|
|
1
third_party/python/Include/pythread.h
vendored
1
third_party/python/Include/pythread.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_PYTHREAD_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef void *PyThread_type_lock;
|
||||
typedef void *PyThread_type_sema;
|
||||
|
|
1
third_party/python/Include/rangeobject.h
vendored
1
third_party/python/Include/rangeobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_RANGEOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/*
|
||||
A range object represents an integer range. This is an immutable object;
|
||||
|
|
1
third_party/python/Include/setobject.h
vendored
1
third_party/python/Include/setobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_SETOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
|
||||
|
|
1
third_party/python/Include/sliceobject.h
vendored
1
third_party/python/Include/sliceobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_SLICEOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* The unique ellipsis object "..." */
|
||||
|
||||
|
|
1
third_party/python/Include/structmember.h
vendored
1
third_party/python/Include/structmember.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_STRUCTMEMBER_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* Interface to map C struct members to Python object attributes */
|
||||
|
||||
|
|
1
third_party/python/Include/structseq.h
vendored
1
third_party/python/Include/structseq.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/tupleobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct PyStructSequence_Field {
|
||||
char *name;
|
||||
|
|
1
third_party/python/Include/symtable.h
vendored
1
third_party/python/Include/symtable.h
vendored
|
@ -5,7 +5,6 @@
|
|||
#include "third_party/python/Include/compile.h"
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef enum _block_type { FunctionBlock, ClassBlock, ModuleBlock }
|
||||
_Py_block_ty;
|
||||
|
|
1
third_party/python/Include/sysmodule.h
vendored
1
third_party/python/Include/sysmodule.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pyport.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
PyObject * PySys_GetObject(const char *);
|
||||
int PySys_SetObject(const char *, PyObject *);
|
||||
|
|
1
third_party/python/Include/token.h
vendored
1
third_party/python/Include/token.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#ifndef Py_TOKEN_H
|
||||
#define Py_TOKEN_H
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */
|
||||
|
||||
|
|
1
third_party/python/Include/traceback.h
vendored
1
third_party/python/Include/traceback.h
vendored
|
@ -3,7 +3,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pystate.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
struct _frame;
|
||||
|
||||
|
|
1
third_party/python/Include/tupleobject.h
vendored
1
third_party/python/Include/tupleobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_TUPLEOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/*
|
||||
Another generally useful object type is a tuple of object pointers.
|
||||
|
|
1
third_party/python/Include/typeslots.h
vendored
1
third_party/python/Include/typeslots.h
vendored
|
@ -1,4 +1,3 @@
|
|||
/* clang-format off */
|
||||
/* Do not renumber the file; these numbers are part of the stable ABI. */
|
||||
/* Disabled, see #10181 */
|
||||
#undef Py_bf_getbuffer
|
||||
|
|
1
third_party/python/Include/ucnhash.h
vendored
1
third_party/python/Include/ucnhash.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
/* revised ucnhash CAPI interface (exported through a "wrapper") */
|
||||
|
||||
|
|
1
third_party/python/Include/unicodeobject.h
vendored
1
third_party/python/Include/unicodeobject.h
vendored
|
@ -4,7 +4,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/pyconfig.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
#define Py_USING_UNICODE
|
||||
|
||||
|
|
1
third_party/python/Include/weakrefobject.h
vendored
1
third_party/python/Include/weakrefobject.h
vendored
|
@ -2,7 +2,6 @@
|
|||
#define Py_WEAKREFOBJECT_H
|
||||
#include "third_party/python/Include/object.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
/* clang-format off */
|
||||
|
||||
typedef struct _PyWeakReference PyWeakReference;
|
||||
|
||||
|
|
1
third_party/python/Modules/_asynciomodule.c
vendored
1
third_party/python/Modules/_asynciomodule.c
vendored
|
@ -21,7 +21,6 @@
|
|||
#include "third_party/python/Include/structmember.h"
|
||||
#include "third_party/python/Include/traceback.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_asyncio");
|
||||
PYTHON_PROVIDE("_asyncio.Future");
|
||||
|
|
1
third_party/python/Modules/_bisectmodule.c
vendored
1
third_party/python/Modules/_bisectmodule.c
vendored
|
@ -13,7 +13,6 @@
|
|||
#include "third_party/python/Include/pyerrors.h"
|
||||
#include "third_party/python/Include/pymacro.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_bisect");
|
||||
PYTHON_PROVIDE("_bisect.bisect");
|
||||
|
|
1
third_party/python/Modules/_bz2module.c
vendored
1
third_party/python/Modules/_bz2module.c
vendored
|
@ -18,7 +18,6 @@
|
|||
#include "third_party/python/Include/pythread.h"
|
||||
#include "third_party/python/Include/structmember.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_bz2");
|
||||
PYTHON_PROVIDE("_bz2.BZ2Compressor");
|
||||
|
|
1
third_party/python/Modules/_codecsmodule.c
vendored
1
third_party/python/Modules/_codecsmodule.c
vendored
|
@ -16,7 +16,6 @@
|
|||
#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("_codecs");
|
||||
PYTHON_PROVIDE("_codecs._forget_codec");
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include "third_party/python/Include/pymem.h"
|
||||
#include "third_party/python/Include/structmember.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_collections");
|
||||
PYTHON_PROVIDE("_collections.OrderedDict");
|
||||
|
|
1
third_party/python/Modules/_cryptmodule.c
vendored
1
third_party/python/Modules/_cryptmodule.c
vendored
|
@ -8,7 +8,6 @@
|
|||
#include "third_party/python/Include/object.h"
|
||||
#include "third_party/python/Include/pymacro.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_crypt");
|
||||
PYTHON_PROVIDE("_crypt.crypt");
|
||||
|
|
1
third_party/python/Modules/_csv.c
vendored
1
third_party/python/Modules/_csv.c
vendored
|
@ -18,7 +18,6 @@
|
|||
#include "third_party/python/Include/structmember.h"
|
||||
#include "third_party/python/Include/unicodeobject.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_csv");
|
||||
PYTHON_PROVIDE("_csv.Dialect");
|
||||
|
|
1
third_party/python/Modules/_datetimemodule.c
vendored
1
third_party/python/Modules/_datetimemodule.c
vendored
|
@ -25,7 +25,6 @@
|
|||
#include "third_party/python/Include/structmember.h"
|
||||
#include "third_party/python/Include/tupleobject.h"
|
||||
#include "third_party/python/Include/yoink.h"
|
||||
/* clang-format off */
|
||||
|
||||
PYTHON_PROVIDE("_datetime");
|
||||
PYTHON_PROVIDE("_datetime.MAXYEAR");
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue