• Kirill Smelkov's avatar
    bigfile/py: Stop using Plan9 C extensions · bf44905b
    Kirill Smelkov authored
    Starting from 5755a6b3 (Basic setup.py / Makefile to build/install/sdist
    stuff + bigfile.so skeleton) and 35eb95c2 (bigfile: Python wrapper
    around virtual memory subsystem) we were using Plan9 C extensions[1] for
    simple inheritance. Those extensions are supported by GCC with
    -fplan9-extensions option. However that option is supported only for C,
    while for C++ it does not work at all with error produced by the compiler
    on Plan9 syntax.
    
    Soon we'll need to add another extension - written in C++ - to
    wendelin.core . This extension will be providing client side of WCFS and
    integrating that with virtmem. In that extension we'll need to use
    _bigfile data structures - in particular we'll need to use PyBigFile and
    extend it with another `cdef class` children written in Cython/C++.
    
    This patch prepares for that: first stop using Plan9 C extensions in
    _bigfile py module data structures and adapt the code correspondingly.
    In the next patch we'll move those data structures into an .h file.
    
    We don't drop -fplan9-extensions from setup.py, because Plan9-style
    inheritance continues to be used internally by virtmem - e.g. in
    ram_shmfs.c and friends.
    
    A bit pity to drop that good stuff, but given that we'll need to use C++
    for WCFS client for other good stuff provided by pygolang[2], it is a
    reasonable compromise.
    
    [1] http://9p.io/sys/doc/comp.html  "Extensions" section
    [2] https://pypi.org/project/pygolang
    bf44905b
_bigfile.c 40.7 KB