Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.112
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
Python-3.10.14 /
Tools /
c-analyzer /
Delete
Unzip
Name
Size
Permission
Date
Action
c_analyzer
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
c_common
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
c_parser
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
cpython
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
README
1.88
KB
-rw-r--r--
2024-03-19 22:46
TODO
96.69
KB
-rw-r--r--
2024-03-19 22:46
c-analyzer.py
195
B
-rw-r--r--
2024-03-19 22:46
check-c-globals.py
838
B
-rw-r--r--
2024-03-19 22:46
must-resolve.sh
2.36
KB
-rwxr-xr-x
2024-03-19 22:46
Save
Rename
#!/usr/bin/env bash # Any PyObject exposed via the public API is problematic since it must # be made per-interpreter. This involves the following: # # singletons: # - None # - True # - False # - NotImplemented # - Ellipsis # PyTypeObject: # - PyExc* [97] # - static types [81] # # In the non-stable API we could use #defines to do the conversion # transparently (though Py_None is perhaps problematic for performance # reasons). However, we can't take that approach with the stable API. # That means we must find all functions (& macros) in the stable API # (and probably the full public API, for sanity sake) and adjust them. # This will involve internally converting from the public object to the # corresponding per-interpreter object. # # Note that the only place this solution fails is with direct pointer # equality checks with the public objects. # XXX What about saying that the stable API is not sub-interpreter # compatible? function run_capi() { ./python Tools/c-analyzer/c-analyzer.py capi \ --no-progress \ --group-by kind \ --func --inline --macro \ --no-show-empty \ --ignore '<must-resolve.ignored>' \ $@ } echo '' echo '#################################################' echo '# All API' echo '#################################################' run_capi --format summary Include/*.h Include/cpython/*.h run_capi --format table Include/*.h Include/cpython/*.h echo '' echo '' echo '#################################################' echo '# stable API' echo '#################################################' echo '' echo '# public:' run_capi --format summary --public --no-show-empty Include/*.h echo '' echo '# private:' run_capi --format summary --private --no-show-empty Include/*.h echo '' run_capi --format full -v Include/*.h #run_capi --format full -v --public Include/*.h #run_capi --format full -v --private Include/*.h echo '' echo '#################################################' echo '# cpython API' echo '#################################################' echo '' echo '# public:' run_capi --format summary --public --no-show-empty Include/cpython/*.h echo '' echo '# private:' run_capi --format summary --private --no-show-empty Include/cpython/*.h echo '' run_capi --format full -v Include/cpython/*.h #run_capi --format full -v --public Include/cpython/*.h #run_capi --format full -v --private Include/cpython/*.h