Cython 3.1.0a1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- Cython/Build/BuildExecutable.py +169 -0
- Cython/Build/Cache.py +199 -0
- Cython/Build/Cythonize.py +250 -0
- Cython/Build/Dependencies.py +1275 -0
- Cython/Build/Distutils.py +1 -0
- Cython/Build/Inline.py +342 -0
- Cython/Build/IpythonMagic.py +560 -0
- Cython/Build/Tests/TestCyCache.py +119 -0
- Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
- Cython/Build/Tests/TestDependencies.py +133 -0
- Cython/Build/Tests/TestInline.py +112 -0
- Cython/Build/Tests/TestIpythonMagic.py +287 -0
- Cython/Build/Tests/TestRecythonize.py +212 -0
- Cython/Build/Tests/TestStripLiterals.py +155 -0
- Cython/Build/Tests/__init__.py +1 -0
- Cython/Build/__init__.py +8 -0
- Cython/CodeWriter.py +811 -0
- Cython/Compiler/AnalysedTreeTransforms.py +97 -0
- Cython/Compiler/Annotate.py +326 -0
- Cython/Compiler/AutoDocTransforms.py +314 -0
- Cython/Compiler/Buffer.py +680 -0
- Cython/Compiler/Builtin.py +862 -0
- Cython/Compiler/CmdLine.py +243 -0
- Cython/Compiler/Code.pxd +145 -0
- Cython/Compiler/Code.py +3328 -0
- Cython/Compiler/CodeGeneration.py +33 -0
- Cython/Compiler/CythonScope.py +179 -0
- Cython/Compiler/Dataclass.py +868 -0
- Cython/Compiler/DebugFlags.py +21 -0
- Cython/Compiler/Errors.py +295 -0
- Cython/Compiler/ExprNodes.py +15051 -0
- Cython/Compiler/FlowControl.pxd +97 -0
- Cython/Compiler/FlowControl.py +1438 -0
- Cython/Compiler/FusedNode.py +998 -0
- Cython/Compiler/Future.py +16 -0
- Cython/Compiler/Interpreter.py +57 -0
- Cython/Compiler/Lexicon.py +340 -0
- Cython/Compiler/LineTable.py +114 -0
- Cython/Compiler/Main.py +779 -0
- Cython/Compiler/MatchCaseNodes.py +259 -0
- Cython/Compiler/MemoryView.py +860 -0
- Cython/Compiler/ModuleNode.py +4065 -0
- Cython/Compiler/Naming.py +369 -0
- Cython/Compiler/Nodes.py +10557 -0
- Cython/Compiler/Optimize.py +5269 -0
- Cython/Compiler/Options.py +828 -0
- Cython/Compiler/ParseTreeTransforms.pxd +78 -0
- Cython/Compiler/ParseTreeTransforms.py +4441 -0
- Cython/Compiler/Parsing.pxd +9 -0
- Cython/Compiler/Parsing.py +4797 -0
- Cython/Compiler/Pipeline.py +425 -0
- Cython/Compiler/PyrexTypes.py +5572 -0
- Cython/Compiler/Pythran.py +223 -0
- Cython/Compiler/Scanning.pxd +40 -0
- Cython/Compiler/Scanning.py +574 -0
- Cython/Compiler/StringEncoding.py +347 -0
- Cython/Compiler/Symtab.py +2998 -0
- Cython/Compiler/Tests/TestBuffer.py +105 -0
- Cython/Compiler/Tests/TestBuiltin.py +72 -0
- Cython/Compiler/Tests/TestCmdLine.py +573 -0
- Cython/Compiler/Tests/TestCode.py +86 -0
- Cython/Compiler/Tests/TestFlowControl.py +65 -0
- Cython/Compiler/Tests/TestGrammar.py +202 -0
- Cython/Compiler/Tests/TestMemView.py +71 -0
- Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
- Cython/Compiler/Tests/TestScanning.py +134 -0
- Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
- Cython/Compiler/Tests/TestStringEncoding.py +33 -0
- Cython/Compiler/Tests/TestTreeFragment.py +63 -0
- Cython/Compiler/Tests/TestTreePath.py +93 -0
- Cython/Compiler/Tests/TestTypes.py +75 -0
- Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
- Cython/Compiler/Tests/TestVisitor.py +61 -0
- Cython/Compiler/Tests/Utils.py +36 -0
- Cython/Compiler/Tests/__init__.py +1 -0
- Cython/Compiler/TreeFragment.py +278 -0
- Cython/Compiler/TreePath.py +290 -0
- Cython/Compiler/TypeInference.py +584 -0
- Cython/Compiler/TypeSlots.py +1181 -0
- Cython/Compiler/UFuncs.py +311 -0
- Cython/Compiler/UtilNodes.py +387 -0
- Cython/Compiler/UtilityCode.py +274 -0
- Cython/Compiler/Version.py +8 -0
- Cython/Compiler/Visitor.pxd +53 -0
- Cython/Compiler/Visitor.py +861 -0
- Cython/Compiler/__init__.py +1 -0
- Cython/Coverage.py +443 -0
- Cython/Debugger/Cygdb.py +179 -0
- Cython/Debugger/DebugWriter.py +82 -0
- Cython/Debugger/Tests/TestLibCython.py +275 -0
- Cython/Debugger/Tests/__init__.py +1 -0
- Cython/Debugger/Tests/cfuncs.c +8 -0
- Cython/Debugger/Tests/codefile +49 -0
- Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
- Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
- Cython/Debugger/__init__.py +1 -0
- Cython/Debugger/libcython.py +1549 -0
- Cython/Debugger/libpython.py +2821 -0
- Cython/Debugging.py +20 -0
- Cython/Distutils/__init__.py +2 -0
- Cython/Distutils/build_ext.py +137 -0
- Cython/Distutils/extension.py +96 -0
- Cython/Distutils/old_build_ext.py +351 -0
- Cython/Includes/cpython/__init__.pxd +173 -0
- Cython/Includes/cpython/array.pxd +174 -0
- Cython/Includes/cpython/bool.pxd +37 -0
- Cython/Includes/cpython/buffer.pxd +112 -0
- Cython/Includes/cpython/bytearray.pxd +33 -0
- Cython/Includes/cpython/bytes.pxd +200 -0
- Cython/Includes/cpython/cellobject.pxd +35 -0
- Cython/Includes/cpython/ceval.pxd +8 -0
- Cython/Includes/cpython/codecs.pxd +121 -0
- Cython/Includes/cpython/complex.pxd +55 -0
- Cython/Includes/cpython/contextvars.pxd +141 -0
- Cython/Includes/cpython/conversion.pxd +36 -0
- Cython/Includes/cpython/datetime.pxd +384 -0
- Cython/Includes/cpython/descr.pxd +26 -0
- Cython/Includes/cpython/dict.pxd +187 -0
- Cython/Includes/cpython/exc.pxd +263 -0
- Cython/Includes/cpython/fileobject.pxd +57 -0
- Cython/Includes/cpython/float.pxd +47 -0
- Cython/Includes/cpython/function.pxd +65 -0
- Cython/Includes/cpython/genobject.pxd +25 -0
- Cython/Includes/cpython/getargs.pxd +12 -0
- Cython/Includes/cpython/instance.pxd +25 -0
- Cython/Includes/cpython/iterator.pxd +36 -0
- Cython/Includes/cpython/iterobject.pxd +24 -0
- Cython/Includes/cpython/list.pxd +92 -0
- Cython/Includes/cpython/long.pxd +149 -0
- Cython/Includes/cpython/longintrepr.pxd +19 -0
- Cython/Includes/cpython/mapping.pxd +63 -0
- Cython/Includes/cpython/marshal.pxd +66 -0
- Cython/Includes/cpython/mem.pxd +120 -0
- Cython/Includes/cpython/memoryview.pxd +50 -0
- Cython/Includes/cpython/method.pxd +49 -0
- Cython/Includes/cpython/module.pxd +208 -0
- Cython/Includes/cpython/number.pxd +258 -0
- Cython/Includes/cpython/object.pxd +433 -0
- Cython/Includes/cpython/pycapsule.pxd +143 -0
- Cython/Includes/cpython/pylifecycle.pxd +68 -0
- Cython/Includes/cpython/pyport.pxd +8 -0
- Cython/Includes/cpython/pystate.pxd +95 -0
- Cython/Includes/cpython/pythread.pxd +53 -0
- Cython/Includes/cpython/ref.pxd +67 -0
- Cython/Includes/cpython/sequence.pxd +134 -0
- Cython/Includes/cpython/set.pxd +119 -0
- Cython/Includes/cpython/slice.pxd +70 -0
- Cython/Includes/cpython/time.pxd +129 -0
- Cython/Includes/cpython/tuple.pxd +72 -0
- Cython/Includes/cpython/type.pxd +53 -0
- Cython/Includes/cpython/unicode.pxd +639 -0
- Cython/Includes/cpython/version.pxd +32 -0
- Cython/Includes/cpython/weakref.pxd +42 -0
- Cython/Includes/libc/__init__.pxd +1 -0
- Cython/Includes/libc/complex.pxd +35 -0
- Cython/Includes/libc/errno.pxd +127 -0
- Cython/Includes/libc/float.pxd +43 -0
- Cython/Includes/libc/limits.pxd +28 -0
- Cython/Includes/libc/locale.pxd +46 -0
- Cython/Includes/libc/math.pxd +209 -0
- Cython/Includes/libc/setjmp.pxd +10 -0
- Cython/Includes/libc/signal.pxd +64 -0
- Cython/Includes/libc/stddef.pxd +9 -0
- Cython/Includes/libc/stdint.pxd +105 -0
- Cython/Includes/libc/stdio.pxd +80 -0
- Cython/Includes/libc/stdlib.pxd +72 -0
- Cython/Includes/libc/string.pxd +50 -0
- Cython/Includes/libc/time.pxd +47 -0
- Cython/Includes/libcpp/__init__.pxd +4 -0
- Cython/Includes/libcpp/algorithm.pxd +320 -0
- Cython/Includes/libcpp/any.pxd +16 -0
- Cython/Includes/libcpp/atomic.pxd +59 -0
- Cython/Includes/libcpp/bit.pxd +29 -0
- Cython/Includes/libcpp/cast.pxd +12 -0
- Cython/Includes/libcpp/cmath.pxd +518 -0
- Cython/Includes/libcpp/complex.pxd +106 -0
- Cython/Includes/libcpp/deque.pxd +165 -0
- Cython/Includes/libcpp/execution.pxd +15 -0
- Cython/Includes/libcpp/forward_list.pxd +63 -0
- Cython/Includes/libcpp/functional.pxd +26 -0
- Cython/Includes/libcpp/iterator.pxd +34 -0
- Cython/Includes/libcpp/limits.pxd +61 -0
- Cython/Includes/libcpp/list.pxd +117 -0
- Cython/Includes/libcpp/map.pxd +252 -0
- Cython/Includes/libcpp/memory.pxd +115 -0
- Cython/Includes/libcpp/numbers.pxd +15 -0
- Cython/Includes/libcpp/numeric.pxd +131 -0
- Cython/Includes/libcpp/optional.pxd +34 -0
- Cython/Includes/libcpp/pair.pxd +1 -0
- Cython/Includes/libcpp/queue.pxd +25 -0
- Cython/Includes/libcpp/random.pxd +166 -0
- Cython/Includes/libcpp/set.pxd +228 -0
- Cython/Includes/libcpp/stack.pxd +11 -0
- Cython/Includes/libcpp/string.pxd +333 -0
- Cython/Includes/libcpp/typeindex.pxd +15 -0
- Cython/Includes/libcpp/typeinfo.pxd +10 -0
- Cython/Includes/libcpp/unordered_map.pxd +193 -0
- Cython/Includes/libcpp/unordered_set.pxd +152 -0
- Cython/Includes/libcpp/utility.pxd +30 -0
- Cython/Includes/libcpp/vector.pxd +167 -0
- Cython/Includes/openmp.pxd +50 -0
- Cython/Includes/posix/__init__.pxd +1 -0
- Cython/Includes/posix/dlfcn.pxd +14 -0
- Cython/Includes/posix/fcntl.pxd +86 -0
- Cython/Includes/posix/ioctl.pxd +4 -0
- Cython/Includes/posix/mman.pxd +101 -0
- Cython/Includes/posix/resource.pxd +57 -0
- Cython/Includes/posix/select.pxd +21 -0
- Cython/Includes/posix/signal.pxd +73 -0
- Cython/Includes/posix/stat.pxd +98 -0
- Cython/Includes/posix/stdio.pxd +37 -0
- Cython/Includes/posix/stdlib.pxd +29 -0
- Cython/Includes/posix/strings.pxd +9 -0
- Cython/Includes/posix/time.pxd +71 -0
- Cython/Includes/posix/types.pxd +30 -0
- Cython/Includes/posix/uio.pxd +26 -0
- Cython/Includes/posix/unistd.pxd +271 -0
- Cython/Includes/posix/wait.pxd +38 -0
- Cython/Plex/Actions.pxd +24 -0
- Cython/Plex/Actions.py +119 -0
- Cython/Plex/DFA.pxd +14 -0
- Cython/Plex/DFA.py +164 -0
- Cython/Plex/Errors.py +48 -0
- Cython/Plex/Lexicons.py +178 -0
- Cython/Plex/Machines.pxd +36 -0
- Cython/Plex/Machines.py +238 -0
- Cython/Plex/Regexps.py +539 -0
- Cython/Plex/Scanners.pxd +47 -0
- Cython/Plex/Scanners.py +360 -0
- Cython/Plex/Transitions.pxd +14 -0
- Cython/Plex/Transitions.py +239 -0
- Cython/Plex/__init__.py +34 -0
- Cython/Runtime/__init__.py +1 -0
- Cython/Runtime/refnanny.pyx +261 -0
- Cython/Shadow.py +656 -0
- Cython/Shadow.pyi +521 -0
- Cython/StringIOTree.py +170 -0
- Cython/Tempita/__init__.py +4 -0
- Cython/Tempita/_looper.py +154 -0
- Cython/Tempita/_tempita.py +1091 -0
- Cython/TestUtils.py +417 -0
- Cython/Tests/TestCodeWriter.py +128 -0
- Cython/Tests/TestCythonUtils.py +202 -0
- Cython/Tests/TestJediTyper.py +223 -0
- Cython/Tests/TestShadow.py +114 -0
- Cython/Tests/TestStringIOTree.py +67 -0
- Cython/Tests/TestTestUtils.py +90 -0
- Cython/Tests/__init__.py +1 -0
- Cython/Tests/xmlrunner.py +390 -0
- Cython/Utility/AsyncGen.c +1263 -0
- Cython/Utility/Buffer.c +875 -0
- Cython/Utility/Builtins.c +660 -0
- Cython/Utility/CConvert.pyx +134 -0
- Cython/Utility/CMath.c +95 -0
- Cython/Utility/CommonStructures.c +139 -0
- Cython/Utility/Complex.c +378 -0
- Cython/Utility/Coroutine.c +2413 -0
- Cython/Utility/CpdefEnums.pyx +108 -0
- Cython/Utility/CppConvert.pyx +279 -0
- Cython/Utility/CppSupport.cpp +133 -0
- Cython/Utility/CythonFunction.c +1851 -0
- Cython/Utility/Dataclasses.c +185 -0
- Cython/Utility/Dataclasses.py +112 -0
- Cython/Utility/Embed.c +125 -0
- Cython/Utility/Exceptions.c +1017 -0
- Cython/Utility/ExtensionTypes.c +797 -0
- Cython/Utility/FunctionArguments.c +573 -0
- Cython/Utility/ImportExport.c +912 -0
- Cython/Utility/MemoryView.pyx +1478 -0
- Cython/Utility/MemoryView_C.c +992 -0
- Cython/Utility/ModuleSetupCode.c +2501 -0
- Cython/Utility/NumpyImportArray.c +46 -0
- Cython/Utility/ObjectHandling.c +3054 -0
- Cython/Utility/Optimize.c +1533 -0
- Cython/Utility/Overflow.c +404 -0
- Cython/Utility/Printing.c +86 -0
- Cython/Utility/Profile.c +660 -0
- Cython/Utility/StringTools.c +1206 -0
- Cython/Utility/TestCyUtilityLoader.pyx +8 -0
- Cython/Utility/TestCythonScope.pyx +75 -0
- Cython/Utility/TestUtilityLoader.c +12 -0
- Cython/Utility/TypeConversion.c +1329 -0
- Cython/Utility/UFuncs.pyx +50 -0
- Cython/Utility/UFuncs_C.c +89 -0
- Cython/Utility/__init__.py +28 -0
- Cython/Utility/arrayarray.h +143 -0
- Cython/Utils.py +687 -0
- Cython/__init__.py +10 -0
- Cython/__init__.pyi +7 -0
- Cython/py.typed +0 -0
- Cython-3.1.0a1.dist-info/COPYING.txt +19 -0
- Cython-3.1.0a1.dist-info/LICENSE.txt +176 -0
- Cython-3.1.0a1.dist-info/METADATA +67 -0
- Cython-3.1.0a1.dist-info/RECORD +301 -0
- Cython-3.1.0a1.dist-info/WHEEL +5 -0
- Cython-3.1.0a1.dist-info/entry_points.txt +4 -0
- Cython-3.1.0a1.dist-info/top_level.txt +3 -0
- cython.py +29 -0
- pyximport/__init__.py +4 -0
- pyximport/pyxbuild.py +160 -0
- pyximport/pyximport.py +482 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
from .utility cimport pair
|
|
2
|
+
|
|
3
|
+
cdef extern from "<unordered_set>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass unordered_set[T,HASH=*,PRED=*,ALLOCATOR=*]:
|
|
5
|
+
ctypedef T value_type
|
|
6
|
+
|
|
7
|
+
# these should really be allocator_type.size_type and
|
|
8
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
9
|
+
# but cython doesn't support deferred access on template arguments
|
|
10
|
+
ctypedef size_t size_type
|
|
11
|
+
ctypedef ptrdiff_t difference_type
|
|
12
|
+
|
|
13
|
+
cppclass const_iterator
|
|
14
|
+
cppclass iterator:
|
|
15
|
+
iterator() except +
|
|
16
|
+
iterator(iterator&) except +
|
|
17
|
+
value_type& operator*()
|
|
18
|
+
iterator operator++()
|
|
19
|
+
iterator operator--()
|
|
20
|
+
iterator operator++(int)
|
|
21
|
+
iterator operator--(int)
|
|
22
|
+
bint operator==(iterator)
|
|
23
|
+
bint operator==(const_iterator)
|
|
24
|
+
bint operator!=(iterator)
|
|
25
|
+
bint operator!=(const_iterator)
|
|
26
|
+
cppclass const_iterator:
|
|
27
|
+
const_iterator() except +
|
|
28
|
+
const_iterator(iterator&) except +
|
|
29
|
+
operator=(iterator&) except +
|
|
30
|
+
const value_type& operator*()
|
|
31
|
+
const_iterator operator++()
|
|
32
|
+
const_iterator operator--()
|
|
33
|
+
const_iterator operator++(int)
|
|
34
|
+
const_iterator operator--(int)
|
|
35
|
+
bint operator==(iterator)
|
|
36
|
+
bint operator==(const_iterator)
|
|
37
|
+
bint operator!=(iterator)
|
|
38
|
+
bint operator!=(const_iterator)
|
|
39
|
+
|
|
40
|
+
unordered_set() except +
|
|
41
|
+
unordered_set(unordered_set&) except +
|
|
42
|
+
#unordered_set& operator=(unordered_set&)
|
|
43
|
+
bint operator==(unordered_set&, unordered_set&)
|
|
44
|
+
bint operator!=(unordered_set&, unordered_set&)
|
|
45
|
+
iterator begin()
|
|
46
|
+
const_iterator const_begin "begin"()
|
|
47
|
+
const_iterator cbegin()
|
|
48
|
+
void clear()
|
|
49
|
+
size_t count(const T&)
|
|
50
|
+
bint empty()
|
|
51
|
+
iterator end()
|
|
52
|
+
const_iterator const_end "end"()
|
|
53
|
+
const_iterator cend()
|
|
54
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
55
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
56
|
+
iterator erase(iterator)
|
|
57
|
+
iterator const_erase "erase"(const_iterator)
|
|
58
|
+
iterator erase(const_iterator, const_iterator)
|
|
59
|
+
size_t erase(const T&)
|
|
60
|
+
iterator find(const T&)
|
|
61
|
+
const_iterator const_find "find"(const T&)
|
|
62
|
+
pair[iterator, bint] insert(const T&) except +
|
|
63
|
+
iterator insert(const_iterator, const T&) except +
|
|
64
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
65
|
+
size_t max_size()
|
|
66
|
+
size_t size()
|
|
67
|
+
void swap(unordered_set&)
|
|
68
|
+
#value_compare value_comp()
|
|
69
|
+
void max_load_factor(float)
|
|
70
|
+
float max_load_factor()
|
|
71
|
+
float load_factor()
|
|
72
|
+
void rehash(size_t)
|
|
73
|
+
void reserve(size_t)
|
|
74
|
+
size_t bucket_count()
|
|
75
|
+
size_t max_bucket_count()
|
|
76
|
+
size_t bucket_size(size_t)
|
|
77
|
+
size_t bucket(const T&)
|
|
78
|
+
# C++20
|
|
79
|
+
bint contains(const T&)
|
|
80
|
+
|
|
81
|
+
cdef cppclass unordered_multiset[T,HASH=*,PRED=*,ALLOCATOR=*]:
|
|
82
|
+
ctypedef T value_type
|
|
83
|
+
|
|
84
|
+
# these should really be allocator_type.size_type and
|
|
85
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
86
|
+
# but cython doesn't support deferred access on template arguments
|
|
87
|
+
ctypedef size_t size_type
|
|
88
|
+
ctypedef ptrdiff_t difference_type
|
|
89
|
+
|
|
90
|
+
cppclass const_iterator
|
|
91
|
+
cppclass iterator:
|
|
92
|
+
iterator() except +
|
|
93
|
+
iterator(iterator&) except +
|
|
94
|
+
value_type& operator*()
|
|
95
|
+
iterator operator++()
|
|
96
|
+
iterator operator++(int)
|
|
97
|
+
bint operator==(iterator)
|
|
98
|
+
bint operator==(const_iterator)
|
|
99
|
+
bint operator!=(iterator)
|
|
100
|
+
bint operator!=(const_iterator)
|
|
101
|
+
cppclass const_iterator:
|
|
102
|
+
const_iterator() except +
|
|
103
|
+
const_iterator(iterator&) except +
|
|
104
|
+
operator=(iterator&) except +
|
|
105
|
+
const value_type& operator*()
|
|
106
|
+
const_iterator operator++()
|
|
107
|
+
const_iterator operator++(int)
|
|
108
|
+
bint operator==(iterator)
|
|
109
|
+
bint operator==(const_iterator)
|
|
110
|
+
bint operator!=(iterator)
|
|
111
|
+
bint operator!=(const_iterator)
|
|
112
|
+
|
|
113
|
+
unordered_multiset() except +
|
|
114
|
+
unordered_multiset(unordered_multiset&) except +
|
|
115
|
+
#unordered_multiset& operator=(unordered_multiset&)
|
|
116
|
+
bint operator==(unordered_multiset&, unordered_multiset&)
|
|
117
|
+
bint operator!=(unordered_multiset&, unordered_multiset&)
|
|
118
|
+
iterator begin()
|
|
119
|
+
const_iterator const_begin "begin"()
|
|
120
|
+
const_iterator cbegin()
|
|
121
|
+
void clear()
|
|
122
|
+
size_t count(const T&)
|
|
123
|
+
bint empty()
|
|
124
|
+
iterator end()
|
|
125
|
+
const_iterator const_end "end"()
|
|
126
|
+
const_iterator cend()
|
|
127
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
128
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
129
|
+
iterator erase(iterator)
|
|
130
|
+
iterator const_erase "erase"(const_iterator)
|
|
131
|
+
iterator erase(const_iterator, const_iterator)
|
|
132
|
+
size_t erase(const T&)
|
|
133
|
+
iterator find(const T&)
|
|
134
|
+
const_iterator const_find "find"(const T&)
|
|
135
|
+
iterator insert(const T&) except +
|
|
136
|
+
iterator insert(const_iterator, const T&) except +
|
|
137
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
138
|
+
size_t max_size()
|
|
139
|
+
size_t size()
|
|
140
|
+
void swap(unordered_multiset&)
|
|
141
|
+
#value_compare value_comp()
|
|
142
|
+
void max_load_factor(float)
|
|
143
|
+
float max_load_factor()
|
|
144
|
+
float load_factor()
|
|
145
|
+
void rehash(size_t)
|
|
146
|
+
void reserve(size_t)
|
|
147
|
+
size_t bucket_count()
|
|
148
|
+
size_t max_bucket_count()
|
|
149
|
+
size_t bucket_size(size_t)
|
|
150
|
+
size_t bucket(const T&)
|
|
151
|
+
# C++20
|
|
152
|
+
bint contains(const T&)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
cdef extern from "<utility>" namespace "std" nogil:
|
|
2
|
+
cdef cppclass pair[T, U]:
|
|
3
|
+
ctypedef T first_type
|
|
4
|
+
ctypedef U second_type
|
|
5
|
+
T first
|
|
6
|
+
U second
|
|
7
|
+
pair() except +
|
|
8
|
+
pair(pair&) except +
|
|
9
|
+
pair(T&, U&) except +
|
|
10
|
+
bint operator==(pair&, pair&)
|
|
11
|
+
bint operator!=(pair&, pair&)
|
|
12
|
+
bint operator<(pair&, pair&)
|
|
13
|
+
bint operator>(pair&, pair&)
|
|
14
|
+
bint operator<=(pair&, pair&)
|
|
15
|
+
bint operator>=(pair&, pair&)
|
|
16
|
+
|
|
17
|
+
cdef extern from * namespace "cython_std" nogil:
|
|
18
|
+
"""
|
|
19
|
+
#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
|
|
20
|
+
// move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
|
|
21
|
+
#include <type_traits>
|
|
22
|
+
|
|
23
|
+
namespace cython_std {
|
|
24
|
+
template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
|
|
25
|
+
template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#endif
|
|
29
|
+
"""
|
|
30
|
+
cdef T move[T](T)
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
cdef extern from "<vector>" namespace "std" nogil:
|
|
2
|
+
cdef cppclass vector[T,ALLOCATOR=*]:
|
|
3
|
+
ctypedef T value_type
|
|
4
|
+
ctypedef ALLOCATOR allocator_type
|
|
5
|
+
|
|
6
|
+
# these should really be allocator_type.size_type and
|
|
7
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
8
|
+
# but cython doesn't support deferred access on template arguments
|
|
9
|
+
ctypedef size_t size_type
|
|
10
|
+
ctypedef ptrdiff_t difference_type
|
|
11
|
+
|
|
12
|
+
cppclass const_iterator
|
|
13
|
+
cppclass iterator:
|
|
14
|
+
iterator() except +
|
|
15
|
+
iterator(iterator&) except +
|
|
16
|
+
T& operator*()
|
|
17
|
+
iterator operator++()
|
|
18
|
+
iterator operator--()
|
|
19
|
+
iterator operator++(int)
|
|
20
|
+
iterator operator--(int)
|
|
21
|
+
iterator operator+(size_type)
|
|
22
|
+
iterator operator-(size_type)
|
|
23
|
+
difference_type operator-(iterator)
|
|
24
|
+
difference_type operator-(const_iterator)
|
|
25
|
+
bint operator==(iterator)
|
|
26
|
+
bint operator==(const_iterator)
|
|
27
|
+
bint operator!=(iterator)
|
|
28
|
+
bint operator!=(const_iterator)
|
|
29
|
+
bint operator<(iterator)
|
|
30
|
+
bint operator<(const_iterator)
|
|
31
|
+
bint operator>(iterator)
|
|
32
|
+
bint operator>(const_iterator)
|
|
33
|
+
bint operator<=(iterator)
|
|
34
|
+
bint operator<=(const_iterator)
|
|
35
|
+
bint operator>=(iterator)
|
|
36
|
+
bint operator>=(const_iterator)
|
|
37
|
+
cppclass const_iterator:
|
|
38
|
+
const_iterator() except +
|
|
39
|
+
const_iterator(iterator&) except +
|
|
40
|
+
const_iterator(const_iterator&) except +
|
|
41
|
+
operator=(iterator&) except +
|
|
42
|
+
const T& operator*()
|
|
43
|
+
const_iterator operator++()
|
|
44
|
+
const_iterator operator--()
|
|
45
|
+
const_iterator operator++(int)
|
|
46
|
+
const_iterator operator--(int)
|
|
47
|
+
const_iterator operator+(size_type)
|
|
48
|
+
const_iterator operator-(size_type)
|
|
49
|
+
difference_type operator-(iterator)
|
|
50
|
+
difference_type operator-(const_iterator)
|
|
51
|
+
bint operator==(iterator)
|
|
52
|
+
bint operator==(const_iterator)
|
|
53
|
+
bint operator!=(iterator)
|
|
54
|
+
bint operator!=(const_iterator)
|
|
55
|
+
bint operator<(iterator)
|
|
56
|
+
bint operator<(const_iterator)
|
|
57
|
+
bint operator>(iterator)
|
|
58
|
+
bint operator>(const_iterator)
|
|
59
|
+
bint operator<=(iterator)
|
|
60
|
+
bint operator<=(const_iterator)
|
|
61
|
+
bint operator>=(iterator)
|
|
62
|
+
bint operator>=(const_iterator)
|
|
63
|
+
|
|
64
|
+
cppclass const_reverse_iterator
|
|
65
|
+
cppclass reverse_iterator:
|
|
66
|
+
reverse_iterator() except +
|
|
67
|
+
reverse_iterator(reverse_iterator&) except +
|
|
68
|
+
T& operator*()
|
|
69
|
+
reverse_iterator operator++()
|
|
70
|
+
reverse_iterator operator--()
|
|
71
|
+
reverse_iterator operator++(int)
|
|
72
|
+
reverse_iterator operator--(int)
|
|
73
|
+
reverse_iterator operator+(size_type)
|
|
74
|
+
reverse_iterator operator-(size_type)
|
|
75
|
+
difference_type operator-(iterator)
|
|
76
|
+
difference_type operator-(const_iterator)
|
|
77
|
+
bint operator==(reverse_iterator)
|
|
78
|
+
bint operator==(const_reverse_iterator)
|
|
79
|
+
bint operator!=(reverse_iterator)
|
|
80
|
+
bint operator!=(const_reverse_iterator)
|
|
81
|
+
bint operator<(reverse_iterator)
|
|
82
|
+
bint operator<(const_reverse_iterator)
|
|
83
|
+
bint operator>(reverse_iterator)
|
|
84
|
+
bint operator>(const_reverse_iterator)
|
|
85
|
+
bint operator<=(reverse_iterator)
|
|
86
|
+
bint operator<=(const_reverse_iterator)
|
|
87
|
+
bint operator>=(reverse_iterator)
|
|
88
|
+
bint operator>=(const_reverse_iterator)
|
|
89
|
+
cppclass const_reverse_iterator:
|
|
90
|
+
const_reverse_iterator() except +
|
|
91
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
92
|
+
operator=(reverse_iterator&) except +
|
|
93
|
+
const T& operator*()
|
|
94
|
+
const_reverse_iterator operator++()
|
|
95
|
+
const_reverse_iterator operator--()
|
|
96
|
+
const_reverse_iterator operator++(int)
|
|
97
|
+
const_reverse_iterator operator--(int)
|
|
98
|
+
const_reverse_iterator operator+(size_type)
|
|
99
|
+
const_reverse_iterator operator-(size_type)
|
|
100
|
+
difference_type operator-(iterator)
|
|
101
|
+
difference_type operator-(const_iterator)
|
|
102
|
+
bint operator==(reverse_iterator)
|
|
103
|
+
bint operator==(const_reverse_iterator)
|
|
104
|
+
bint operator!=(reverse_iterator)
|
|
105
|
+
bint operator!=(const_reverse_iterator)
|
|
106
|
+
bint operator<(reverse_iterator)
|
|
107
|
+
bint operator<(const_reverse_iterator)
|
|
108
|
+
bint operator>(reverse_iterator)
|
|
109
|
+
bint operator>(const_reverse_iterator)
|
|
110
|
+
bint operator<=(reverse_iterator)
|
|
111
|
+
bint operator<=(const_reverse_iterator)
|
|
112
|
+
bint operator>=(reverse_iterator)
|
|
113
|
+
bint operator>=(const_reverse_iterator)
|
|
114
|
+
|
|
115
|
+
vector() except +
|
|
116
|
+
vector(vector&) except +
|
|
117
|
+
vector(size_type) except +
|
|
118
|
+
vector(size_type, T&) except +
|
|
119
|
+
#vector[InputIt](InputIt, InputIt)
|
|
120
|
+
T& operator[](size_type)
|
|
121
|
+
#vector& operator=(vector&)
|
|
122
|
+
bint operator==(vector&, vector&)
|
|
123
|
+
bint operator!=(vector&, vector&)
|
|
124
|
+
bint operator<(vector&, vector&)
|
|
125
|
+
bint operator>(vector&, vector&)
|
|
126
|
+
bint operator<=(vector&, vector&)
|
|
127
|
+
bint operator>=(vector&, vector&)
|
|
128
|
+
void assign(size_type, const T&)
|
|
129
|
+
void assign[InputIt](InputIt, InputIt) except +
|
|
130
|
+
T& at(size_type) except +
|
|
131
|
+
T& back()
|
|
132
|
+
iterator begin()
|
|
133
|
+
const_iterator const_begin "begin"()
|
|
134
|
+
const_iterator cbegin()
|
|
135
|
+
size_type capacity()
|
|
136
|
+
void clear()
|
|
137
|
+
bint empty()
|
|
138
|
+
iterator end()
|
|
139
|
+
const_iterator const_end "end"()
|
|
140
|
+
const_iterator cend()
|
|
141
|
+
iterator erase(iterator)
|
|
142
|
+
iterator erase(iterator, iterator)
|
|
143
|
+
T& front()
|
|
144
|
+
iterator insert(iterator, const T&) except +
|
|
145
|
+
iterator insert(iterator, size_type, const T&) except +
|
|
146
|
+
iterator insert[InputIt](iterator, InputIt, InputIt) except +
|
|
147
|
+
size_type max_size()
|
|
148
|
+
void pop_back()
|
|
149
|
+
void push_back(T&) except +
|
|
150
|
+
reverse_iterator rbegin()
|
|
151
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
152
|
+
const_reverse_iterator crbegin()
|
|
153
|
+
reverse_iterator rend()
|
|
154
|
+
const_reverse_iterator const_rend "rend"()
|
|
155
|
+
const_reverse_iterator crend()
|
|
156
|
+
void reserve(size_type) except +
|
|
157
|
+
void resize(size_type) except +
|
|
158
|
+
void resize(size_type, T&) except +
|
|
159
|
+
size_type size()
|
|
160
|
+
void swap(vector&)
|
|
161
|
+
|
|
162
|
+
# C++11 methods
|
|
163
|
+
T* data()
|
|
164
|
+
const T* const_data "data"()
|
|
165
|
+
void shrink_to_fit() except +
|
|
166
|
+
iterator emplace(const_iterator, ...) except +
|
|
167
|
+
T& emplace_back(...) except +
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
cdef extern from "<omp.h>":
|
|
2
|
+
ctypedef struct omp_lock_t:
|
|
3
|
+
pass
|
|
4
|
+
ctypedef struct omp_nest_lock_t:
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
ctypedef enum omp_sched_t:
|
|
8
|
+
omp_sched_static = 1,
|
|
9
|
+
omp_sched_dynamic = 2,
|
|
10
|
+
omp_sched_guided = 3,
|
|
11
|
+
omp_sched_auto = 4
|
|
12
|
+
|
|
13
|
+
extern void omp_set_num_threads(int) nogil
|
|
14
|
+
extern int omp_get_num_threads() nogil
|
|
15
|
+
extern int omp_get_max_threads() nogil
|
|
16
|
+
extern int omp_get_thread_num() nogil
|
|
17
|
+
extern int omp_get_num_procs() nogil
|
|
18
|
+
|
|
19
|
+
extern int omp_in_parallel() nogil
|
|
20
|
+
|
|
21
|
+
extern void omp_set_dynamic(int) nogil
|
|
22
|
+
extern int omp_get_dynamic() nogil
|
|
23
|
+
|
|
24
|
+
extern void omp_set_nested(int) nogil
|
|
25
|
+
extern int omp_get_nested() nogil
|
|
26
|
+
|
|
27
|
+
extern void omp_init_lock(omp_lock_t *) nogil
|
|
28
|
+
extern void omp_destroy_lock(omp_lock_t *) nogil
|
|
29
|
+
extern void omp_set_lock(omp_lock_t *) nogil
|
|
30
|
+
extern void omp_unset_lock(omp_lock_t *) nogil
|
|
31
|
+
extern int omp_test_lock(omp_lock_t *) nogil
|
|
32
|
+
|
|
33
|
+
extern void omp_init_nest_lock(omp_nest_lock_t *) nogil
|
|
34
|
+
extern void omp_destroy_nest_lock(omp_nest_lock_t *) nogil
|
|
35
|
+
extern void omp_set_nest_lock(omp_nest_lock_t *) nogil
|
|
36
|
+
extern void omp_unset_nest_lock(omp_nest_lock_t *) nogil
|
|
37
|
+
extern int omp_test_nest_lock(omp_nest_lock_t *) nogil
|
|
38
|
+
|
|
39
|
+
extern double omp_get_wtime() nogil
|
|
40
|
+
extern double omp_get_wtick() nogil
|
|
41
|
+
|
|
42
|
+
void omp_set_schedule(omp_sched_t, int) nogil
|
|
43
|
+
void omp_get_schedule(omp_sched_t *, int *) nogil
|
|
44
|
+
int omp_get_thread_limit() nogil
|
|
45
|
+
void omp_set_max_active_levels(int) nogil
|
|
46
|
+
int omp_get_max_active_levels() nogil
|
|
47
|
+
int omp_get_level() nogil
|
|
48
|
+
int omp_get_ancestor_thread_num(int) nogil
|
|
49
|
+
int omp_get_team_size(int) nogil
|
|
50
|
+
int omp_get_active_level() nogil
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# empty file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# POSIX dynamic linking/loading interface.
|
|
2
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dlfcn.h.html
|
|
3
|
+
|
|
4
|
+
cdef extern from "<dlfcn.h>" nogil:
|
|
5
|
+
void *dlopen(const char *, int)
|
|
6
|
+
char *dlerror()
|
|
7
|
+
void *dlsym(void *, const char *)
|
|
8
|
+
int dlclose(void *)
|
|
9
|
+
|
|
10
|
+
enum:
|
|
11
|
+
RTLD_LAZY
|
|
12
|
+
RTLD_NOW
|
|
13
|
+
RTLD_GLOBAL
|
|
14
|
+
RTLD_LOCAL
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html
|
|
2
|
+
|
|
3
|
+
from posix.types cimport mode_t, off_t, pid_t
|
|
4
|
+
|
|
5
|
+
cdef extern from "<fcntl.h>" nogil:
|
|
6
|
+
|
|
7
|
+
enum: F_DUPFD
|
|
8
|
+
enum: F_DUPFD_CLOEXEC
|
|
9
|
+
enum: F_GETFD
|
|
10
|
+
enum: F_SETFD
|
|
11
|
+
enum: F_GETFL
|
|
12
|
+
enum: F_SETFL
|
|
13
|
+
enum: F_GETLK
|
|
14
|
+
enum: F_SETLK
|
|
15
|
+
enum: F_SETLKW
|
|
16
|
+
enum: F_GETOWN
|
|
17
|
+
enum: F_SETOWN
|
|
18
|
+
|
|
19
|
+
enum: FD_CLOEXEC
|
|
20
|
+
|
|
21
|
+
enum: F_RDLCK
|
|
22
|
+
enum: F_UNLCK
|
|
23
|
+
enum: F_WRLCK
|
|
24
|
+
|
|
25
|
+
enum: SEEK_SET
|
|
26
|
+
enum: SEEK_CUR
|
|
27
|
+
enum: SEEK_END
|
|
28
|
+
|
|
29
|
+
enum: O_CLOEXEC
|
|
30
|
+
enum: O_CREAT
|
|
31
|
+
enum: O_DIRECT
|
|
32
|
+
enum: O_DIRECTORY
|
|
33
|
+
enum: O_EXCL
|
|
34
|
+
enum: O_NOCTTY
|
|
35
|
+
enum: O_TRUNC
|
|
36
|
+
enum: O_TTY_INIT
|
|
37
|
+
|
|
38
|
+
enum: O_APPEND
|
|
39
|
+
enum: O_DSYNC
|
|
40
|
+
enum: O_NONBLOCK
|
|
41
|
+
enum: O_RSYNC
|
|
42
|
+
enum: O_SYNC
|
|
43
|
+
|
|
44
|
+
enum: O_ACCMODE # O_RDONLY|O_WRONLY|O_RDWR
|
|
45
|
+
|
|
46
|
+
enum: O_EXEC
|
|
47
|
+
enum: O_RDONLY
|
|
48
|
+
enum: O_WRONLY
|
|
49
|
+
enum: O_RDWR
|
|
50
|
+
enum: O_SEARCH
|
|
51
|
+
|
|
52
|
+
enum: AT_FDCWD
|
|
53
|
+
enum: AT_EACCESS
|
|
54
|
+
enum: AT_SYMLINK_NOFOLLOW
|
|
55
|
+
enum: AT_SYMLINK_FOLLOW
|
|
56
|
+
enum: AT_REMOVEDIR
|
|
57
|
+
|
|
58
|
+
enum: S_IFMT
|
|
59
|
+
enum: S_IFBLK
|
|
60
|
+
enum: S_IFCHR
|
|
61
|
+
enum: S_IFIFO
|
|
62
|
+
enum: S_IFREG
|
|
63
|
+
enum: S_IFDIR
|
|
64
|
+
enum: S_IFLNK
|
|
65
|
+
enum: S_IFSOCK
|
|
66
|
+
|
|
67
|
+
enum: POSIX_FADV_DONTNEED
|
|
68
|
+
enum: POSIX_FADV_NOREUSE
|
|
69
|
+
enum: POSIX_FADV_NORMAL
|
|
70
|
+
enum: POSIX_FADV_RANDOM
|
|
71
|
+
enum: POSIX_FADV_SEQUENTIAL
|
|
72
|
+
enum: POSIX_FADV_WILLNEED
|
|
73
|
+
|
|
74
|
+
struct flock:
|
|
75
|
+
short l_type
|
|
76
|
+
short l_whence
|
|
77
|
+
off_t l_start
|
|
78
|
+
off_t l_len
|
|
79
|
+
pid_t l_pid
|
|
80
|
+
|
|
81
|
+
int creat(const char *, mode_t)
|
|
82
|
+
int fcntl(int, int, ...)
|
|
83
|
+
int open(const char *, int, ...)
|
|
84
|
+
int openat(int, const char *, int, ...)
|
|
85
|
+
int posix_fadvise(int, off_t, off_t, int)
|
|
86
|
+
int posix_fallocate(int, off_t, off_t)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_mman.h.html
|
|
2
|
+
# https://man7.org/linux/man-pages/man2/mmap.2.html
|
|
3
|
+
# https://www.freebsd.org/cgi/man.cgi?query=mmap&sektion=2
|
|
4
|
+
|
|
5
|
+
from posix.types cimport off_t, mode_t
|
|
6
|
+
|
|
7
|
+
cdef extern from "<sys/mman.h>" nogil:
|
|
8
|
+
enum: PROT_EXEC # protection bits for mmap/mprotect
|
|
9
|
+
enum: PROT_READ
|
|
10
|
+
enum: PROT_WRITE
|
|
11
|
+
enum: PROT_NONE
|
|
12
|
+
|
|
13
|
+
enum: MAP_PRIVATE # flag bits for mmap
|
|
14
|
+
enum: MAP_SHARED
|
|
15
|
+
enum: MAP_FIXED
|
|
16
|
+
enum: MAP_ANON # These three are not in POSIX, but are
|
|
17
|
+
enum: MAP_ANONYMOUS # fairly common in spelling/semantics
|
|
18
|
+
enum: MAP_STACK
|
|
19
|
+
|
|
20
|
+
enum: MAP_LOCKED # Typically available only on Linux
|
|
21
|
+
enum: MAP_HUGETLB
|
|
22
|
+
enum: MAP_POPULATE
|
|
23
|
+
enum: MAP_NORESERVE
|
|
24
|
+
enum: MAP_GROWSDOWN
|
|
25
|
+
|
|
26
|
+
enum: MAP_NOCORE # Typically available only on BSD
|
|
27
|
+
enum: MAP_NOSYNC
|
|
28
|
+
|
|
29
|
+
void *MAP_FAILED
|
|
30
|
+
|
|
31
|
+
void *mmap(void *addr, size_t Len, int prot, int flags, int fd, off_t off)
|
|
32
|
+
int munmap(void *addr, size_t Len)
|
|
33
|
+
int mprotect(void *addr, size_t Len, int prot)
|
|
34
|
+
|
|
35
|
+
enum: MS_ASYNC
|
|
36
|
+
enum: MS_SYNC
|
|
37
|
+
enum: MS_INVALIDATE
|
|
38
|
+
int msync(void *addr, size_t Len, int flags)
|
|
39
|
+
|
|
40
|
+
enum: POSIX_MADV_NORMAL # POSIX advice flags
|
|
41
|
+
enum: POSIX_MADV_SEQUENTIAL
|
|
42
|
+
enum: POSIX_MADV_RANDOM
|
|
43
|
+
enum: POSIX_MADV_WILLNEED
|
|
44
|
+
enum: POSIX_MADV_DONTNEED
|
|
45
|
+
int posix_madvise(void *addr, size_t Len, int advice)
|
|
46
|
+
|
|
47
|
+
enum: MCL_CURRENT
|
|
48
|
+
enum: MCL_FUTURE
|
|
49
|
+
int mlock(const void *addr, size_t Len)
|
|
50
|
+
int munlock(const void *addr, size_t Len)
|
|
51
|
+
int mlockall(int flags)
|
|
52
|
+
int munlockall()
|
|
53
|
+
# Linux-specific
|
|
54
|
+
enum: MLOCK_ONFAULT
|
|
55
|
+
enum: MCL_ONFAULT
|
|
56
|
+
int mlock2(const void *addr, size_t len, int flags)
|
|
57
|
+
|
|
58
|
+
int shm_open(const char *name, int oflag, mode_t mode)
|
|
59
|
+
int shm_unlink(const char *name)
|
|
60
|
+
|
|
61
|
+
# often available
|
|
62
|
+
enum: MADV_NORMAL # pre-POSIX advice flags; should translate 1-1 to POSIX_*
|
|
63
|
+
enum: MADV_RANDOM # but in practice it is not always the same.
|
|
64
|
+
enum: MADV_SEQUENTIAL
|
|
65
|
+
enum: MADV_WILLNEED
|
|
66
|
+
enum: MADV_DONTNEED
|
|
67
|
+
enum: MADV_REMOVE # other pre-POSIX advice flags; often available
|
|
68
|
+
enum: MADV_DONTFORK
|
|
69
|
+
enum: MADV_DOFORK
|
|
70
|
+
enum: MADV_HWPOISON
|
|
71
|
+
enum: MADV_MERGEABLE,
|
|
72
|
+
enum: MADV_UNMERGEABLE
|
|
73
|
+
enum: MADV_SOFT_OFFLINE
|
|
74
|
+
enum: MADV_HUGEPAGE
|
|
75
|
+
enum: MADV_NOHUGEPAGE
|
|
76
|
+
enum: MADV_DONTDUMP
|
|
77
|
+
enum: MADV_DODUMP
|
|
78
|
+
enum: MADV_FREE
|
|
79
|
+
enum: MADV_WIPEONFORK
|
|
80
|
+
enum: MADV_KEEPONFORK
|
|
81
|
+
int madvise(void *addr, size_t Len, int advice)
|
|
82
|
+
|
|
83
|
+
# sometimes available
|
|
84
|
+
int mincore(void *addr, size_t Len, unsigned char *vec)
|
|
85
|
+
|
|
86
|
+
# These two are Linux specific but sometimes very efficient
|
|
87
|
+
void *mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...)
|
|
88
|
+
int remap_file_pages(void *addr, size_t Len, int prot,
|
|
89
|
+
size_t pgoff, int flags)
|
|
90
|
+
|
|
91
|
+
# The rare but standardized typed memory option
|
|
92
|
+
enum: POSIX_TYPED_MEM_ALLOCATE
|
|
93
|
+
enum: POSIX_TYPED_MEM_ALLOCATE_CONTIG
|
|
94
|
+
enum: POSIX_TYPED_MEM_MAP_ALLOCATABLE
|
|
95
|
+
int posix_typed_mem_open(const char *name, int oflag, int tflag)
|
|
96
|
+
int posix_mem_offset(const void *addr, size_t Len, off_t *off,
|
|
97
|
+
size_t *contig_len, int *fildes)
|
|
98
|
+
|
|
99
|
+
cdef struct posix_typed_mem_info:
|
|
100
|
+
size_t posix_tmi_length
|
|
101
|
+
int posix_typed_mem_get_info(int fildes, posix_typed_mem_info *info)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_resource.h.html
|
|
2
|
+
# https://man7.org/linux/man-pages/man2/getrusage.2.html
|
|
3
|
+
|
|
4
|
+
from posix.time cimport timeval
|
|
5
|
+
from posix.types cimport id_t
|
|
6
|
+
|
|
7
|
+
cdef extern from "<sys/resource.h>" nogil:
|
|
8
|
+
|
|
9
|
+
enum: PRIO_PROCESS
|
|
10
|
+
enum: PRIO_PGRP
|
|
11
|
+
enum: PRIO_USER
|
|
12
|
+
|
|
13
|
+
enum: RLIM_INFINITY
|
|
14
|
+
enum: RLIM_SAVED_MAX
|
|
15
|
+
enum: RLIM_SAVED_CUR
|
|
16
|
+
|
|
17
|
+
enum: RUSAGE_SELF
|
|
18
|
+
enum: RUSAGE_CHILDREN
|
|
19
|
+
|
|
20
|
+
enum: RLIMIT_CORE
|
|
21
|
+
enum: RLIMIT_CPU
|
|
22
|
+
enum: RLIMIT_DATA
|
|
23
|
+
enum: RLIMIT_FSIZE
|
|
24
|
+
enum: RLIMIT_NOFILE
|
|
25
|
+
enum: RLIMIT_STACK
|
|
26
|
+
enum: RLIMIT_AS
|
|
27
|
+
|
|
28
|
+
ctypedef unsigned long rlim_t
|
|
29
|
+
|
|
30
|
+
cdef struct rlimit:
|
|
31
|
+
rlim_t rlim_cur
|
|
32
|
+
rlim_t rlim_max
|
|
33
|
+
|
|
34
|
+
cdef struct rusage:
|
|
35
|
+
timeval ru_utime
|
|
36
|
+
timeval ru_stime
|
|
37
|
+
# Linux-specific
|
|
38
|
+
long ru_maxrss
|
|
39
|
+
long ru_ixrss
|
|
40
|
+
long ru_idrss
|
|
41
|
+
long ru_isrss
|
|
42
|
+
long ru_minflt
|
|
43
|
+
long ru_majflt
|
|
44
|
+
long ru_nswap
|
|
45
|
+
long ru_inblock
|
|
46
|
+
long ru_oublock
|
|
47
|
+
long ru_msgsnd
|
|
48
|
+
long ru_msgrcv
|
|
49
|
+
long ru_nsignals
|
|
50
|
+
long ru_nvcsw
|
|
51
|
+
long ru_nivcsw
|
|
52
|
+
|
|
53
|
+
int getpriority(int, id_t)
|
|
54
|
+
int getrlimit(int, rlimit *)
|
|
55
|
+
int getrusage(int, rusage *)
|
|
56
|
+
int setpriority(int, id_t, int)
|
|
57
|
+
int setrlimit(int, const rlimit *)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_select.h.html
|
|
2
|
+
|
|
3
|
+
from .types cimport sigset_t
|
|
4
|
+
from .time cimport timeval, timespec
|
|
5
|
+
|
|
6
|
+
cdef extern from "<sys/select.h>" nogil:
|
|
7
|
+
ctypedef struct fd_set:
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
int FD_SETSIZE
|
|
11
|
+
void FD_SET(int, fd_set*)
|
|
12
|
+
void FD_CLR(int, fd_set*)
|
|
13
|
+
bint FD_ISSET(int, fd_set*)
|
|
14
|
+
void FD_ZERO(fd_set*)
|
|
15
|
+
|
|
16
|
+
int select(int nfds, fd_set *readfds, fd_set *writefds,
|
|
17
|
+
fd_set *exceptfds, timeval *timeout)
|
|
18
|
+
|
|
19
|
+
int pselect(int nfds, fd_set *readfds, fd_set *writefds,
|
|
20
|
+
fd_set *exceptfds, const timespec *timeout,
|
|
21
|
+
const sigset_t *sigmask)
|