head 1.52; access; symbols pkgsrc-2026Q1:1.52.0.4 pkgsrc-2026Q1-base:1.52 pkgsrc-2025Q4:1.52.0.2 pkgsrc-2025Q4-base:1.52 pkgsrc-2025Q3:1.51.0.10 pkgsrc-2025Q3-base:1.51 pkgsrc-2025Q2:1.51.0.8 pkgsrc-2025Q2-base:1.51 pkgsrc-2025Q1:1.51.0.6 pkgsrc-2025Q1-base:1.51 pkgsrc-2024Q4:1.51.0.4 pkgsrc-2024Q4-base:1.51 pkgsrc-2024Q3:1.51.0.2 pkgsrc-2024Q3-base:1.51 pkgsrc-2024Q2:1.49.0.4 pkgsrc-2024Q2-base:1.49 pkgsrc-2024Q1:1.49.0.2 pkgsrc-2024Q1-base:1.49 pkgsrc-2023Q4:1.48.0.2 pkgsrc-2023Q4-base:1.48 pkgsrc-2023Q3:1.47.0.10 pkgsrc-2023Q3-base:1.47 pkgsrc-2023Q2:1.47.0.8 pkgsrc-2023Q2-base:1.47 pkgsrc-2023Q1:1.47.0.6 pkgsrc-2023Q1-base:1.47 pkgsrc-2022Q4:1.47.0.4 pkgsrc-2022Q4-base:1.47 pkgsrc-2022Q3:1.47.0.2 pkgsrc-2022Q3-base:1.47 pkgsrc-2022Q2:1.46.0.6 pkgsrc-2022Q2-base:1.46 pkgsrc-2022Q1:1.46.0.4 pkgsrc-2022Q1-base:1.46 pkgsrc-2021Q4:1.46.0.2 pkgsrc-2021Q4-base:1.46 pkgsrc-2021Q3:1.43.0.2 pkgsrc-2021Q3-base:1.43 pkgsrc-2021Q2:1.42.0.4 pkgsrc-2021Q2-base:1.42 pkgsrc-2021Q1:1.42.0.2 pkgsrc-2021Q1-base:1.42 pkgsrc-2020Q4:1.41.0.2 pkgsrc-2020Q4-base:1.41 pkgsrc-2020Q3:1.39.0.2 pkgsrc-2020Q3-base:1.39 pkgsrc-2020Q2:1.37.0.4 pkgsrc-2020Q2-base:1.37 pkgsrc-2020Q1:1.37.0.2 pkgsrc-2020Q1-base:1.37 pkgsrc-2019Q4:1.36.0.4 pkgsrc-2019Q4-base:1.36 pkgsrc-2019Q3:1.33.0.4 pkgsrc-2019Q3-base:1.33 pkgsrc-2019Q2:1.33.0.2 pkgsrc-2019Q2-base:1.33 pkgsrc-2019Q1:1.32.0.2 pkgsrc-2019Q1-base:1.32 pkgsrc-2018Q4:1.30.0.8 pkgsrc-2018Q4-base:1.30 pkgsrc-2018Q3:1.30.0.6 pkgsrc-2018Q3-base:1.30 pkgsrc-2018Q2:1.30.0.4 pkgsrc-2018Q2-base:1.30 pkgsrc-2018Q1:1.30.0.2 pkgsrc-2018Q1-base:1.30 pkgsrc-2017Q4:1.27.0.2 pkgsrc-2017Q4-base:1.27 pkgsrc-2017Q3:1.24.0.4 pkgsrc-2017Q3-base:1.24 pkgsrc-2017Q2:1.23.0.2 pkgsrc-2017Q2-base:1.23 pkgsrc-2017Q1:1.22.0.4 pkgsrc-2017Q1-base:1.22 pkgsrc-2016Q4:1.22.0.2 pkgsrc-2016Q4-base:1.22 pkgsrc-2016Q3:1.21.0.2 pkgsrc-2016Q3-base:1.21 pkgsrc-2016Q2:1.18.0.2 pkgsrc-2016Q2-base:1.18 pkgsrc-2016Q1:1.17.0.2 pkgsrc-2016Q1-base:1.17 pkgsrc-2015Q4:1.14.0.2 pkgsrc-2015Q4-base:1.14 pkgsrc-2015Q3:1.10.0.2 pkgsrc-2015Q3-base:1.10 pkgsrc-2015Q2:1.9.0.2 pkgsrc-2015Q2-base:1.9 pkgsrc-2015Q1:1.6.0.2 pkgsrc-2015Q1-base:1.6 pkgsrc-2014Q4:1.4.0.4 pkgsrc-2014Q4-base:1.4 pkgsrc-2014Q3:1.4.0.2 pkgsrc-2014Q3-base:1.4 pkgsrc-2014Q2:1.3.0.2 pkgsrc-2014Q2-base:1.3 pkgsrc-2014Q1:1.2.0.4 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.2 pkgsrc-2013Q4-base:1.2; locks; strict; comment @# @; 1.52 date 2025.09.21.15.31.05; author wiz; state Exp; branches; next 1.51; commitid tQGLcogbOgKUXAbG; 1.51 date 2024.09.06.13.48.57; author adam; state Exp; branches; next 1.50; commitid Sm6UwVL4ZD55CKoF; 1.50 date 2024.08.11.06.51.09; author wiz; state Exp; branches; next 1.49; commitid 7bYCp448P3PE8nlF; 1.49 date 2024.03.19.10.49.46; author nia; state Exp; branches; next 1.48; commitid waQocizRYbrn7L2F; 1.48 date 2023.10.04.21.51.44; author adam; state Exp; branches; next 1.47; commitid ilu8LPllnnvl9mHE; 1.47 date 2022.07.01.17.10.46; author adam; state Exp; branches; next 1.46; commitid qEcpuosy78VFndKD; 1.46 date 2021.12.10.08.59.09; author adam; state Exp; branches; next 1.45; commitid COD4vnEugC4yb5kD; 1.45 date 2021.10.26.10.18.17; author nia; state Exp; branches; next 1.44; commitid XMBRkrafc79x2jeD; 1.44 date 2021.10.07.13.43.01; author nia; state Exp; branches; next 1.43; commitid TK9Y8OXA04EYMSbD; 1.43 date 2021.07.09.20.20.27; author adam; state Exp; branches; next 1.42; commitid BZZp77oc83c9Ul0D; 1.42 date 2021.02.16.20.41.09; author adam; state Exp; branches; next 1.41; commitid h88k7D9PKHDiCYHC; 1.41 date 2020.11.25.11.34.39; author adam; state Exp; branches; next 1.40; commitid olUjrtJo4CtUfgxC; 1.40 date 2020.09.29.12.03.20; author adam; state Exp; branches; next 1.39; commitid qEYuBlQKA8cGfWpC; 1.39 date 2020.08.24.11.08.14; author adam; state Exp; branches; next 1.38; commitid IpfSTkcG4xlw6jlC; 1.38 date 2020.07.27.17.28.05; author adam; state Exp; branches; next 1.37; commitid N7XdSiJThtRz6KhC; 1.37 date 2020.03.04.18.27.28; author adam; state Exp; branches; next 1.36; commitid PbXZamcCoKTV57ZB; 1.36 date 2019.11.06.17.24.50; author adam; state Exp; branches; next 1.35; commitid uXvRMBp3eKPBzOJB; 1.35 date 2019.10.25.10.21.35; author adam; state Exp; branches; next 1.34; commitid KzA8kjq9LBd9CeIB; 1.34 date 2019.10.16.08.12.08; author adam; state Exp; branches; next 1.33; commitid RQi2gsOSaCEGb4HB; 1.33 date 2019.04.26.15.14.31; author adam; state Exp; branches; next 1.32; commitid k9t3hgufBpNs5SkB; 1.32 date 2019.02.28.08.51.00; author adam; state Exp; branches; next 1.31; commitid l2N0jGKNxnpyNvdB; 1.31 date 2019.02.16.23.37.23; author adam; state Exp; branches; next 1.30; commitid VnsNSibp10sn53cB; 1.30 date 2018.03.01.07.59.54; author adam; state Exp; branches; next 1.29; commitid YbarWSYV32SkdJsA; 1.29 date 2018.01.14.11.09.17; author adam; state Exp; branches; next 1.28; commitid RbRZRlk0g3E1KPmA; 1.28 date 2018.01.12.12.26.00; author adam; state Exp; branches; next 1.27; commitid FdRpUCwQHqloeAmA; 1.27 date 2017.10.10.07.44.12; author adam; state Exp; branches; next 1.26; commitid 0hGLlmPFOev5HtaA; 1.26 date 2017.10.05.12.18.21; author adam; state Exp; branches; next 1.25; commitid EA5JNpZwayD3nR9A; 1.25 date 2017.09.30.13.09.47; author adam; state Exp; branches; next 1.24; commitid kOVXplFQEluxOd9A; 1.24 date 2017.07.03.18.17.45; author joerg; state Exp; branches; next 1.23; commitid WUAmxrhUeYSInOXz; 1.23 date 2017.04.05.15.54.26; author wiz; state Exp; branches; next 1.22; commitid 064YAsEZSVYWrmMz; 1.22 date 2016.11.14.14.31.18; author wiz; state Exp; branches; next 1.21; commitid 2LIJ8zSo1kpoy6uz; 1.21 date 2016.09.22.06.44.09; author wiz; state Exp; branches; next 1.20; commitid 5PRWmLpjWIDIFfnz; 1.20 date 2016.09.18.22.05.57; author wiz; state Exp; branches; next 1.19; commitid P78ZI44SXJI0UOmz; 1.19 date 2016.09.12.07.57.41; author wiz; state Exp; branches; next 1.18; commitid oxFzvjMyb0mUoYlz; 1.18 date 2016.04.24.09.37.29; author wiz; state Exp; branches; next 1.17; commitid LnDwpQIkMo97uR3z; 1.17 date 2016.02.14.10.50.12; author wiz; state Exp; branches; next 1.16; commitid Zu56BPP82pSD8SUy; 1.16 date 2016.01.18.22.55.13; author wiz; state Exp; branches; next 1.15; commitid pXnRtULPfwfa1tRy; 1.15 date 2015.12.27.22.36.51; author wiz; state Exp; branches; next 1.14; commitid DMscOpjbu8nHCDOy; 1.14 date 2015.11.23.00.07.13; author wiz; state Exp; branches; next 1.13; commitid b90xDHtEBUNtf9Ky; 1.13 date 2015.11.04.17.41.17; author agc; state Exp; branches; next 1.12; commitid hfmLKMF6xJUQGNHy; 1.12 date 2015.11.03.03.29.05; author agc; state Exp; branches; next 1.11; commitid XagoUgdES8g2ZAHy; 1.11 date 2015.10.25.09.50.36; author wiz; state Exp; branches; next 1.10; commitid 72ORnxIAZmnoptGy; 1.10 date 2015.08.30.14.42.03; author wiz; state Exp; branches; next 1.9; commitid vtVMiiw8oRBZOizy; 1.9 date 2015.06.14.16.24.45; author wiz; state Exp; branches; next 1.8; commitid Wx21WIupmhIGRppy; 1.8 date 2015.05.31.13.09.51; author wiz; state Exp; branches; next 1.7; commitid oI28KCErUGoIeBny; 1.7 date 2015.05.28.07.06.32; author wiz; state Exp; branches; next 1.6; commitid f1sLY1UYA9M3kbny; 1.6 date 2015.03.15.21.08.00; author wiz; state Exp; branches; next 1.5; commitid QiMlD4pLiV8dmKdy; 1.5 date 2015.03.09.08.11.54; author wiz; state Exp; branches; next 1.4; commitid fO1RlAZtHh7UfUcy; 1.4 date 2014.07.22.09.50.41; author wiz; state Exp; branches; next 1.3; commitid ldaLNIWhaPm9cmJx; 1.3 date 2014.03.31.08.30.31; author wiz; state Exp; branches; next 1.2; commitid Dw8nLGArkHWQnPux; 1.2 date 2013.11.26.14.04.49; author wiz; state Exp; branches; next 1.1; commitid oMHgPc6cAWQEfNex; 1.1 date 2013.09.30.17.19.59; author wiz; state Exp; branches; next ; commitid dr6yaWn6Ndieau7x; desc @@ 1.52 log @py-cffi: update to 2.0.0. Added support for free threaded CPython (3.14t+ only). (#178) Note that the free-threaded build does not yet support building extensions with the limited API, so you must set py_limited_api=False when building extensions for the free-threaded build. CPython 3.13t is not currently supported due to differences in sync primitive behavior from 3.14t that result in segfaults. Added support for Python 3.14. (#177) Dropped support for Python 3.8. @ text @$NetBSD: distinfo,v 1.51 2024/09/06 13:48:57 adam Exp $ BLAKE2s (cffi-2.0.0.tar.gz) = 09670f4f74a5b2913287ea21197d0e07642ec3f497c913a4a91c8c297e0d57a4 SHA512 (cffi-2.0.0.tar.gz) = a8bf705e626f6b5858cc20e9044a23fd653d155e2a2d4cb59f1eed00ef13ebd92d5a2f07738c66b361cb24d863786d4379dcd9c176250b546fbd45758e51d4f4 Size (cffi-2.0.0.tar.gz) = 523588 bytes SHA1 (patch-setup.py) = 5d31edc3a7787f04f4e4f18fc4deb25daf338401 SHA1 (patch-testing_cffi0_test__verify.py) = 91e903aa6aa89f997aba1578cb9452e6ac160f50 SHA1 (patch-testing_cffi1_test__verify1.py) = 72d564ff8422bc1c8ed8b7058fb95ca669b69529 @ 1.51 log @py-cffi: updated to 1.17.1 v1.17.1 * Fix failing ``distutils.msvc9compiler`` imports under Windows * ``ffibuilder.emit_python_code()`` and ``ffibuiler.emit_c_code()`` accept file-like objects * ``ffiplatform`` calls are bypassed by ``ffibuilder.emit_python_code()`` and ``ffibuilder.emit_c_code()`` @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.50 2024/08/11 06:51:09 wiz Exp $ d3 3 a5 3 BLAKE2s (cffi-1.17.1.tar.gz) = 9e933dffa27eed92df37c76f9dc24238a77ea6bab6ffb2120833c99cf6dfeed3 SHA512 (cffi-1.17.1.tar.gz) = 907129891d56351ca5cb885aae62334ad432321826d6eddfaa32195b4c7b7689a80333e6d14d0aab479a646aba148b9852c0815b80344dfffa4f183a5e74372c Size (cffi-1.17.1.tar.gz) = 516621 bytes @ 1.50 log @py-cffi: update to 1.17.0. Add support for Python 3.13. In API mode, when you get a function from a C library by writing fn = lib.myfunc, you get an object of a special type for performance reasons, instead of a . Before version 1.17 you could only call such objects. You could write ffi.addressof(lib, “myfunc”) in order to get a real object, based on the idea that in these cases in C you’d usually write &myfunc instead of myfunc. In version 1.17, the special object lib.myfunc can now be passed in many places where CFFI expects a regular object. For example, you can now pass it as a callback to a C function call, or write it inside a C structure field of the correct pointer-to-function type, or use ffi.cast() or ffi.typeof() on it. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.49 2024/03/19 10:49:46 nia Exp $ d3 3 a5 3 BLAKE2s (cffi-1.17.0.tar.gz) = f52fe87fb04b4fb2c4dd1eba819a098b359d891ea7c415631c6fc81ece0218a0 SHA512 (cffi-1.17.0.tar.gz) = 8516abe177c2acfc31ede401287956cc4dc486b26ed9c4752811be71dc6bc94af3adf1f1f685a94e7242f052b74768bfbbb30ce41a3c23b9259c91449347566e Size (cffi-1.17.0.tar.gz) = 516073 bytes @ 1.49 log @py-cffi: Do not attempt to peek past pkg-config on Darwin/FreeBSD @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.48 2023/10/04 21:51:44 adam Exp $ d3 3 a5 3 BLAKE2s (cffi-1.16.0.tar.gz) = 9573f137415a07450c7403bd50d5335cd101f538567b9ada700cc00ed88eeff6 SHA512 (cffi-1.16.0.tar.gz) = fd2588115092202aa9289c9d4e0a0b3e264b5e9ec1dc192950f31aeb412fd9f9d4e5c96a3f9c6762987b58ccc1e229f2012ddda89211797104df672d8ed51152 Size (cffi-1.16.0.tar.gz) = 512873 bytes @ 1.48 log @py-cffi: updated to 1.16.0 v1.16.0 * Add support for Python 3.12. With the removal of ``distutils`` from Python 3.12, projects using CFFI features that depend on ``distutils`` at runtime must add a dependency on ``setuptools`` to function under Python 3.12+. CFFI does not declare a runtime ``setuptools`` requirement to avoid an unnecessary dependency for projects that do not require it. * Drop support for end-of-life Python versions (2.7, 3.6, 3.7). * Add support for PEP517 builds; ``setuptools`` is now a required build dependency. * Declare ``python_requires`` metadata for Python 3.8+. This allows unsupported Pythons to continue using previously released sdists and wheels. * Move project source under ``src/``; a more standard layout that also enables CI to more easily catch packaging errors. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.47 2022/07/01 17:10:46 adam Exp $ d6 1 @ 1.47 log @py-cffi: updated to 1.15.1 v1.15.1 ======= * If you call `ffi.embedding_api()` but don't write any `extern "Python"` function there, then the resulting C code would fail an assert. Fixed. * Updated Windows/arm64 embedded libffi static lib to v3.4.2, and scripted to ease future updates (thanks Niyas Sait!) @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.46 2021/12/10 08:59:09 adam Exp $ d3 3 a5 3 BLAKE2s (cffi-1.15.1.tar.gz) = 7407a99480cab9e973f7a8f82c0995a7639f2bd59cf5cfc6b10235a27aa2e5e6 SHA512 (cffi-1.15.1.tar.gz) = e99cafcb029076abc29e435b490fa0573ee2856f4051b7ca8a5b38cd125d56dd9dae8b189f59ceb3d728a675da8ee83239e09e19f8b0feeddea4b186ab5173a5 Size (cffi-1.15.1.tar.gz) = 508501 bytes @ 1.46 log @py-cffi: updated to 1.15.0 v1.15.0 ======= * Fixed MANIFEST.in to include missing file for Windows arm64 support * Fixed Linux wheel build to use gcc default ISA for libffi * Updated setup.py Python trove specifiers to currently-tested Python versions * CPython 3.10 support (including wheels) * MacOS arm64 support (including wheels) * Initial Windows arm64 support * Misc. doc and test updates @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.45 2021/10/26 10:18:17 nia Exp $ d3 3 a5 3 BLAKE2s (cffi-1.15.0.tar.gz) = 3b15958ed924503574125fc08153b53019d59935dfd2dbe659f2ff02dd1764ca SHA512 (cffi-1.15.0.tar.gz) = ee83efde6f77f4a0c5889088c4c208ed7b9071fe06dfc16a8d2396de07f78fe859e1e39866760198a9d700f3b7359e8715e8a3e4907feb81d3fc4b8dd0dbaca1 Size (cffi-1.15.0.tar.gz) = 484058 bytes @ 1.45 log @archivers: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes Could not be committed due to merge conflict: devel/py-traitlets/distinfo The following distfiles were unfetchable (note: some may be only fetched conditionally): ./devel/pvs/distinfo pvs-3.2-solaris.tgz ./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.44 2021/10/07 13:43:01 nia Exp $ d3 3 a5 3 BLAKE2s (cffi-1.14.6.tar.gz) = e848782ee6cf3cdf2dce076a8e3ce35d6eb85976d9c9c6d565f9356c50396482 SHA512 (cffi-1.14.6.tar.gz) = 30a8b25b74921a90a1fa96d05de1f25437d0fbbf73b7de0bb9ce22dfcaccbd78376b605525fe970212221d3e598357a9b1da420bfbd1a3e513263ed2b789e813 Size (cffi-1.14.6.tar.gz) = 475744 bytes @ 1.44 log @devel: Remove SHA1 hashes for distfiles @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.43 2021/07/09 20:20:27 adam Exp $ d3 1 a3 1 RMD160 (cffi-1.14.6.tar.gz) = 02a34fb6f526cb05d42d840db29e27ba0c8b0d0e @ 1.43 log @py-cffi: updated to 1.14.6 v1.14.6 Test fixes for CPython 3.10.0b3 Support for sys.unraisablehook() on Python >= 3.8 Fix two minor memory leaks (thanks Sebastian!) Like many projects that had an IRC channel on freenode, we moved it to irc.libera.chat. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.42 2021/02/16 20:41:09 adam Exp $ a2 1 SHA1 (cffi-1.14.6.tar.gz) = 35bb24955834ecb5b7173e625fa95b02d638fcfd @ 1.42 log @py-cffi: updated to 1.14.5 v1.14.5 Source fix for old gcc versions This and future releases should include wheels on more platforms, thanks to our new release managers Matt and Matt! @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.41 2020/11/25 11:34:39 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.5.tar.gz) = 21cdeccd7b7b121d35eae1b8e91d78f9ec83da98 RMD160 (cffi-1.14.5.tar.gz) = 38225f668aa57d7ec7e3756843ba1dfdf27494d3 SHA512 (cffi-1.14.5.tar.gz) = 7428b3f6e4ee9f3b91011e43304dd63e5cc48479120ae58298c646c1ec1f5c24525d5f08655a7fed70c5fad7ae0c2e0539e512b5fa49d2bc57669c4ab703cc2a Size (cffi-1.14.5.tar.gz) = 475055 bytes @ 1.41 log @py-cffi: updated to 1.14.4 1.14.4: Unknown changes @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.40 2020/09/29 12:03:20 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.4.tar.gz) = 45bd57a0903a2d63b93461e096c5d291875a457b RMD160 (cffi-1.14.4.tar.gz) = 585002edbc970ac5ec7f592bb873cc7c415b9b31 SHA512 (cffi-1.14.4.tar.gz) = b2c54a805ead93c5dd8531d7f0f7e4b44be8f07bfcb1af2f19eb6d325b4e846cae23f16a5bcc777ba019d1213f013611614ade798e195f5b4f6b7904c9cb6e3a Size (cffi-1.14.4.tar.gz) = 471302 bytes @ 1.40 log @py-cffi: updated to 1.14.3 1.14.3: Unknown changes @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.39 2020/08/24 11:08:14 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.3.tar.gz) = 7199374653c1927e8d3c523b6498b149acdb6f7e RMD160 (cffi-1.14.3.tar.gz) = 6ef9450556045a4705b47480b4d53a114e97ded6 SHA512 (cffi-1.14.3.tar.gz) = 1eedd27df1b6743d1ace3cc036c6c46e800872705e8ec1e40d190b93a1b5ad759cdb8b9936bf6d70bed63476ea213f5a90b3a3b82db0a8d4d0e29654fb60154f Size (cffi-1.14.3.tar.gz) = 470804 bytes @ 1.39 log @py-cffi: updated to 1.14.2 v1.14.2 ======= * CPython 3 on Windows: we again try to compile with ``Py_LIMITED_API`` by default. This flag is not added if you run the compilation with CPython 3.4, as it only works with CPython >= 3.5, but by now this version of Python is quite old (and we no longer distribute cffi wheels for it). This may require that you upgrade ``virtualenv`` (requires version 16 or newer) or at least copy manually ``python3.dll`` into your existing virtualenvs. For distributing wheels with your cffi modules, you may also need to upgrade ``wheel`` to the just-released version 0.35. You can manually disable ``Py_LIMITED_API`` by calling ``ffi.set_source(..., py_limited_api=False)``. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.38 2020/07/27 17:28:05 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.2.tar.gz) = 6d2f277d1f1e3d9a09fc5df4bfcea63229e8e8d1 RMD160 (cffi-1.14.2.tar.gz) = e6ed5c4f230f18353bf17ad70fc0fd023b3941c6 SHA512 (cffi-1.14.2.tar.gz) = 8b2c7f08d002f308628e594599244f0e25748fbb90e0c501b0344ec21059ef6cfb2c15953f59211d8875687eb34616081fac6d41b9af88f512f29f9f8bd571a7 Size (cffi-1.14.2.tar.gz) = 470737 bytes @ 1.38 log @py-cffi: updated to 1.14.1 v1.14.1 ======= * CFFI source code is now `hosted on Heptapod`_. * Improved support for ``typedef int my_array_t[...];`` with an explicit dot-dot-dot in API mode * Windows (32 and 64 bits): multiple fixes for ABI-mode call to functions that return a structure. * Experimental support for MacOS 11 on aarch64. * and a few other minor changes and bug fixes. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.37 2020/03/04 18:27:28 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.1.tar.gz) = 7b067fdb46d184f6bfdadc11732df6f0340e553d RMD160 (cffi-1.14.1.tar.gz) = dd19a93d6dbd70bbe026483a61313bdb5dae52df SHA512 (cffi-1.14.1.tar.gz) = bf000904e3d1ece122f49b8c166636c67987e9bf2e34b613d8e013692ed319581f393cd9570d7f050e5c492a8bc1c4cb5bb56eb50c68f9feea973c1e56c951c0 Size (cffi-1.14.1.tar.gz) = 468070 bytes @ 1.37 log @py-cffi: updated to 1.14.0 v1.14 ffi.dlopen() can now be called with a handle (as a void *) to an already-opened C library. CPython only: fixed a stack overflow issue for calls like lib.myfunc([large list]). If the function is declared as taking a float * argument, for example, then the array is temporarily converted into a C array of floats—however, the code used to use alloca() for this temporary storage, no matter how large. This is now fixed. The fix concerns all modes: in-line/out-of-line API/ABI. Also note that your API-mode C extension modules need to be regenerated with cffi 1.14 in order to get the fix; i.e. for API mode, the fix is in the generated C sources. (The C sources generated from cffi 1.14 should also work when running in a different environment in which we have an older version of cffi. Also, this change makes no difference on PyPy.) As a workaround that works on all versions of cffi, you can write lib.myfunc(ffi.new("float[]", [large list])), which is equivalent but explicity builds the intermediate array as a regular Python object on the heap. fixed a memory leak inside ffi.getwinerror() on CPython 3.x. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.36 2019/11/06 17:24:50 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.14.0.tar.gz) = 2a8f05a7d51d77ef1e641cb359a54e4d8fa019cb RMD160 (cffi-1.14.0.tar.gz) = b1066beff2bfde3a90e2487fea2ab5f4b3186e83 SHA512 (cffi-1.14.0.tar.gz) = 4c5451eeede1d48a8f4b40e25b845ad1863b8bf3bd39624e6c693c2800d89a13efedc4c43b37e317a035613bffc2e3fd5f7e583c46cb283cb5cb930356f86253 Size (cffi-1.14.0.tar.gz) = 463065 bytes @ 1.36 log @py-cffi: updated to 1.13.2 v1.13.2 * re-release because the Linux wheels came with an attached version of libffi that was very old and buggy @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.35 2019/10/25 10:21:35 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.13.2.tar.gz) = ad94c1b64570ec3016a945d4b226d527de81f9b9 RMD160 (cffi-1.13.2.tar.gz) = 3d91aa9a982c25f76ce2afec0e7f3a89a9846160 SHA512 (cffi-1.13.2.tar.gz) = 2c57d9c06c39e95498a54408dc39940427190f3c03e1b8f1a3584140db08a5775dd12e6e67b03093429c130af579d01519b0fc868b99ba7a530068ed22d38522 Size (cffi-1.13.2.tar.gz) = 460243 bytes @ 1.35 log @py-cffi: updated to 1.13.1 v1.13.1 * deprecate the way to declare in cdef() a global variable with only void *foo;. You should always use a storage class, like extern void *foo; or maybe static void *foo;. These are all equivalent for the purposes of cdef(), but the reason for deprecating the bare version is that (as far as I know) it would always be mistake in a real C header. * fix the regression RuntimeError: found a situation in which we try to build a type recursively. * fixed issue 427 where a multithreading mistake in the embedding logic initialization code would cause deadlocks on CPython 3.7. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.34 2019/10/16 08:12:08 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.13.1.tar.gz) = 678dad3a3102ebcbeab8f5f132968afa444f6a54 RMD160 (cffi-1.13.1.tar.gz) = 39b6baf1b90f5586ef3e76a020e9caaeab68b101 SHA512 (cffi-1.13.1.tar.gz) = a8be3837bf6c130a80644d27078b2a482a0e3e41aab326b5a3770a30245e9bfff2f6ee3f4ed4c5cdda1e0119a4494fe95c694461f875c162ccb3ce0ca419c6f0 Size (cffi-1.13.1.tar.gz) = 460208 bytes @ 1.34 log @py-cffi: updated to 1.13.0 v1.13 * ffi.from_buffer("type *", ..) is now supported, in addition to "type[]". You can then write p.field to access the items, instead of only p[0].field. Be careful that no bounds checking is performed, so p[n] might access data out of bounds. * fix for structs containing unnamed bitfields like int : 1;. * when calling cdata of "function pointer" type, give a RuntimeError instead of a crash if the pointer happens to be NULL * support some more binary operations between constants in enum definitions * silence a warning incorrectly emitted if you use a quote in a preprocessor line * detect a corner case that would throw the C code into an infinite recursion, with ffi.cdef("""struct X { void(*fnptr)(struct X); };""") @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.33 2019/04/26 15:14:31 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.13.0.tar.gz) = 75977bbad8ea8c15f2c34edde5efcf39462ea43e RMD160 (cffi-1.13.0.tar.gz) = a11648941b7ddec69e9370698b7102bf775968b6 SHA512 (cffi-1.13.0.tar.gz) = bde7e166a670d217101a9471256cdc6e6ce5001badf036f0b86cf5029280482b956df2565559fd592528954a470a625390ec2d60228cd9b29b11ffbcdf728844 Size (cffi-1.13.0.tar.gz) = 459345 bytes @ 1.33 log @py-cffi: updated to 1.12.3 v1.12.3 * Fix for nested struct types that end in a var-sized array. * Add support for using U and L characters at the end of integer constants in ffi.cdef(). * More 3.8 fixes. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.32 2019/02/28 08:51:00 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.12.3.tar.gz) = ccc49cf31bc3f4248f45b9ec83685e4e8090a9fa RMD160 (cffi-1.12.3.tar.gz) = 1f7293861c23d2e7426d2eff038f85ac9a34db53 SHA512 (cffi-1.12.3.tar.gz) = 9070f5cfe543c9261a79f995548899c3e7539ee20f562ba91a4a909887745bd28448b0e38241031d6b2ab87286fd0ec91768b8bf6577716427612d41b0ed3b93 Size (cffi-1.12.3.tar.gz) = 456340 bytes @ 1.32 log @py-cffi: updated to 1.12.2 v1.12.2 * Added temporary workaround to compile on CPython 3.8.0a2. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.31 2019/02/16 23:37:23 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.12.2.tar.gz) = 5f579d4980cbcc8aac592721f714ef6a64370ab1 RMD160 (cffi-1.12.2.tar.gz) = b3a0deac9f6125cd368a34153821224636e3022e SHA512 (cffi-1.12.2.tar.gz) = af4fe47cf5d6f1126222898365cfa21e9f11d0e71b87d869014dbb37af30dca9ddf50c989030d0f610f50e8099e8dfd08a688d8c3629abbcc4f0294f5f91b817 Size (cffi-1.12.2.tar.gz) = 453893 bytes @ 1.31 log @py-cffi: updated to 1.12.1 v1.12.1 CPython 3 on Windows: we again no longer compile with Py_LIMITED_API by default because such modules still cannot be used with virtualenv. The problem is that it doesn’t work in CPython <= 3.4, and for technical reason we can’t enable this flag automatically based on the version of Python. Like before, Issue 350 mentions a workaround if you still want the Py_LIMITED_API flag and either you are not concerned about virtualenv or you are sure your module will not be used on CPython <= 3.4: pass define_macros=[("Py_LIMITED_API", None)] to the ffibuilder.set_source() call. v1.12 Direct support for pkg-config. ffi.from_buffer() takes a new optional first argument that gives the array type of the result. It also takes an optional keyword argument require_writable to refuse read-only Python buffers. ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released at known times, either by using the with keyword or by calling the new ffi.release(). Windows, CPython 3.x: cffi modules are linked with python3.dll again. This makes them independant on the exact CPython version, like they are on other platforms. It requires virtualenv 16.0.0. Accept an expression like ffi.new("int[4]", p) if p is itself another cdata int[4]. CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix CPython: if a thread is started from C and then runs Python code (with callbacks or with the embedding solution), then previous versions of cffi would contain possible crashes and/or memory leaks. Hopefully, this has been fixed. Support for ffi.cdef(..., pack=N) where N is a power of two. Means to emulate #pragma pack(N) on MSVC. Also, the default on Windows is now pack=8, like on MSVC. This might make a difference in corner cases, although I can’t think of one in the context of CFFI. The old way ffi.cdef(..., packed=True) remains and is equivalent to pack=1 (saying e.g. that fields like int should be aligned to 1 byte instead of 4). @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.30 2018/03/01 07:59:54 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.12.1.tar.gz) = b4d8d74a22d0574cb056502daa2c377898f0a910 RMD160 (cffi-1.12.1.tar.gz) = 74d3643f37c0687501bf6f546bea0cfdd4798fa4 SHA512 (cffi-1.12.1.tar.gz) = 1863ad26d730d629e1397ba155bebd3f9edc881d661fda5301a5acb080c8e006925317c1b092f054c46834d693c437d6e91a687f379c9ab029223a9a159eaf48 Size (cffi-1.12.1.tar.gz) = 453584 bytes @ 1.30 log @py-cffi: updated to 1.11.5 v1.11.5 * Issue 357_: fix ffi.emit_python_code() which generated a buggy Python file if you are using a struct with an anonymous union field or vice-versa. * Windows: ffi.dlopen() should now handle unicode filenames. * ABI mode: implemented ffi.dlclose() for the in-line case (it used to be present only in the out-of-line case). * Fixed a corner case for setup.py install --record=xx --root=yy with an out-of-line ABI module. Also fixed Issue 345_. * More hacks on Windows for running CFFI's own setup.py. * Issue 358_: in embedding, to protect against (the rare case of) Python initialization from several threads in parallel, we have to use a spin-lock. On CPython 3 it is worse because it might spin-lock for a long time (execution of Py_InitializeEx()). Sadly, recent changes to CPython make that solution needed on CPython 2 too. * CPython 3 on Windows: we no longer compile with Py_LIMITED_API by default because such modules cannot be used with virtualenv. Issue 350_ mentions a workaround if you still want that and are not concerned about virtualenv: pass a define_macros=[("Py_LIMITED_API", None)] to the ffibuilder.set_source() call. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.29 2018/01/14 11:09:17 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.11.5.tar.gz) = 1686e6689a691414d3d22626c837adeee3996dd9 RMD160 (cffi-1.11.5.tar.gz) = d2dc3bae37502af50f756b2705d388777e7a541d SHA512 (cffi-1.11.5.tar.gz) = 6770d5293cfd7405e733d60c96655641b5bcc5878fc66a737f4a8308f465d459ee0e3fcaa47893d8f57fb195e5534dd7e4728c868f33d7e657688f45e1fb1880 Size (cffi-1.11.5.tar.gz) = 438498 bytes @ 1.29 log @py-cffi: updated to 1.11.4 v1.11.4: * Windows: reverted linking with python3.dll, because virtualenv does not make this DLL available to virtual environments for now. On Windows only, the C extension modules created by cffi follow for now the standard naming scheme foo.cp36-win32.pyd, to make it clear that they are regular CPython modules depending on python36.dll. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.28 2018/01/12 12:26:00 adam Exp $ d3 6 a8 6 SHA1 (cffi-1.11.4.tar.gz) = d0c4f7d4b6af4c438a17b2f2334f2aa5ff7cc4db RMD160 (cffi-1.11.4.tar.gz) = 6c84f2ac4a6c90f070f511e440ca6c3ed05763de SHA512 (cffi-1.11.4.tar.gz) = 184572ab8c1f7a72f00084c23894efe1691aa20f9e822a3f7184ebbed16e757586ac47e7f1d12dd7b14b4322bf5b88e35465dc3bc8b0caf0dc8e2b626a52615e Size (cffi-1.11.4.tar.gz) = 436857 bytes SHA1 (patch-testing_cffi0_test__verify.py) = 9097ed364176f968d8c5084e1bc3d3d368d92714 SHA1 (patch-testing_cffi1_test__verify1.py) = 64a0c7073a446dd4ca7cd97086646959ad4fad08 @ 1.28 log @py-cffi: updated to 1.11.3 v1.11.3 Fix on CPython 3.x: reading the attributes __loader__ or __spec__ from the cffi-generated lib modules gave a buggy SystemError. (These attributes are always None, and provided only to help compatibility with tools that expect them in all modules.) More Windows fixes: workaround for MSVC not supporting large literal strings in C code (from ffi.embedding_init_code(large_string)); and an issue with Py_LIMITED_API linking with python35.dll/python36.dll instead of python3.dll. Small documentation improvements. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.27 2017/10/10 07:44:12 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.11.3.tar.gz) = d38617a59d4aa0149861d17c0e497665b1e811ee RMD160 (cffi-1.11.3.tar.gz) = 8c7bbe2ea085926eb6c7d39e6ee20b38f757acba SHA512 (cffi-1.11.3.tar.gz) = aa9a939e44ba09df88304a001d75d858d12f9c7c14560a5146fe7ab928075f17df2309fb5400652cfb7225879e253f1720400b636eb5b50d0113e7bb83e74b5f Size (cffi-1.11.3.tar.gz) = 436359 bytes @ 1.27 log @py-cffi: update to 1.11.2 v1.11.2 Fix Windows issue with managing the thread-state on CPython 3.0 to 3.5 @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.26 2017/10/05 12:18:21 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.11.2.tar.gz) = 04d2df85eb1921630b4f9206886737eb37200c19 RMD160 (cffi-1.11.2.tar.gz) = 3db6391bfea5e142aa3c2431090e1b1da95d099b SHA512 (cffi-1.11.2.tar.gz) = 8ccd8988bb6b4beb760abe5d8cac7cbf65a7dcfad5a535343e5961912751f426fdf6e602a983430e6aa9f56f2f623855b0cfb5ed8e5294a95d122866a4533eda Size (cffi-1.11.2.tar.gz) = 435142 bytes @ 1.26 log @py-cffi: update to 1.11.1 v1.11.1 Fix tests, remove deprecated C API usage Fix (hack) for 3.6.0/3.6.1/3.6.2 giving incompatible binary extensions Fix for 3.7.0a1+ @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.25 2017/09/30 13:09:47 adam Exp $ d3 4 a6 4 SHA1 (cffi-1.11.1.tar.gz) = f3a61a3b53b482a7d05704344e0f055d4672fa01 RMD160 (cffi-1.11.1.tar.gz) = d0c461814d4d80bfb5f353a62d93d6d3c8a7e0dd SHA512 (cffi-1.11.1.tar.gz) = eae71eae3136bde3e37c61724d5dc786b649d0f6546259e7072e4552fe0c73f7021f22a2f5fc941bbad10955ef6a11f0ec3f6e05346a25e69512b8ce254ad437 Size (cffi-1.11.1.tar.gz) = 435135 bytes @ 1.25 log @py-cffi: update to 1.11.0 v1.11 Support the modern standard types char16_t and char32_t. These work like wchar_t: they represent one unicode character, or when used as charN_t * or charN_t[] they represent a unicode string. The difference with wchar_t is that they have a known, fixed size. They should work at all places that used to work with wchar_t (please report an issue if I missed something). Note that with set_source(), you need to make sure that these types are actually defined by the C source you provide (if used in cdef()). Support the C99 types float _Complex and double _Complex. Note that libffi doesn’t support them, which means that in the ABI mode you still cannot call C functions that take complex numbers directly as arguments or return type. Fixed a rare race condition when creating multiple FFI instances from multiple threads. (Note that you aren’t meant to create many FFI instances: in inline mode, you should write ffi = cffi.FFI() at module level just after import cffi; and in out-of-line mode you don’t instantiate FFI explicitly at all.) Windows: using callbacks can be messy because the CFFI internal error messages show up to stderr—but stderr goes nowhere in many applications. This makes it particularly hard to get started with the embedding mode. (Once you get started, you can at least use @@ffi.def_extern(onerror=...) and send the error logs where it makes sense for your application, or record them in log files, and so on.) So what is new in CFFI is that now, on Windows CFFI will try to open a non-modal MessageBox (in addition to sending raw messages to stderr). The MessageBox is only visible if the process stays alive: typically, console applications that crash close immediately, but that is also the situation where stderr should be visible anyway. Progress on support for callbacks in NetBSD. Functions returning booleans would in some case still return 0 or 1 instead of False or True. Fixed. ffi.gc() now takes an optional third parameter, which gives an estimate of the size (in bytes) of the object. So far, this is only used by PyPy, to make the next GC occur more quickly (issue 320). In the future, this might have an effect on CPython too (provided the CPython issue 31105 is addressed). Add a note to the documentation: the ABI mode gives function objects that are slower to call than the API mode does. For some reason it is often thought to be faster. It is not! @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.24 2017/07/03 18:17:45 joerg Exp $ d3 4 a6 4 SHA1 (cffi-1.11.0.tar.gz) = 93cb5aaf152e19f9d4082a723aa2396e9cd5d93f RMD160 (cffi-1.11.0.tar.gz) = 76dc6345a24be4c292af0db0b9660a6632d63048 SHA512 (cffi-1.11.0.tar.gz) = 907af351de6f45a8d6e34dcd29b17d77425c6c513a1310570dd6e63921f3631946336350b0c3dcdab9f0bb799dfc41aa85ed0e0657c9c310c434c5aa2a7881ac Size (cffi-1.11.0.tar.gz) = 434283 bytes @ 1.24 log @Use libffi's closure handling based on code from the upstream branch. Adjust test cases to not use alloca.h on NetBSD. Use a temporary directory under WRKDIR and allow C++ when test builds are requested. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.23 2017/04/05 15:54:26 wiz Exp $ d3 4 a6 5 SHA1 (cffi-1.10.0.tar.gz) = 8484aba03d1e64367d3110c0e36c1ed052b43f12 RMD160 (cffi-1.10.0.tar.gz) = 8bcdd03716d70fed5a7c25fd0371572356b36aab SHA512 (cffi-1.10.0.tar.gz) = 02c9987c44698708dcb7e0aa17637df6b15f81732dc25b03e54563ca5664a817863b87daf7a782a62c7b6150388cdca858ef496a975ab289c86f05e5492465ef Size (cffi-1.10.0.tar.gz) = 418131 bytes SHA1 (patch-c___cffi__backend.c) = e06cb7fd3eef875ba1176ba8ac9d7c1cad229ccf @ 1.23 log @Updated py-cffi to 1.10.0. v1.10 Issue #295: use calloc() directly instead of PyObject_Malloc()+memset() to handle ffi.new() with a default allocator. Speeds up ffi.new(large-array) where most of the time you never touch most of the array. Some OS/X build fixes (“only with Xcode but without CLT”). Improve a couple of error messages: when getting mismatched versions of cffi and its backend; and when calling functions which cannot be called with libffi because an argument is a struct that is “too complicated” (and not a struct pointer, which always works). Add support for some unusual compilers (non-msvc, non-gcc, non-icc, non-clang) Implemented the remaining cases for ffi.from_buffer. Now all buffer/memoryview objects can be passed. The one remaining check is against passing unicode strings in Python 2. (They support the buffer interface, but that gives the raw bytes behind the UTF16/UCS4 storage, which is most of the times not what you expect. In Python 3 this has been fixed and the unicode strings don’t support the memoryview interface any more.) The C type _Bool or bool now converts to a Python boolean when reading, instead of the content of the byte as an integer. The potential incompatibility here is what occurs if the byte contains a value different from 0 and 1. Previously, it would just return it; with this change, CFFI raises an exception in this case. But this case means “undefined behavior” in C; if you really have to interface with a library relying on this, don’t use bool in the CFFI side. Also, it is still valid to use a byte string as initializer for a bool[], but now it must only contain \x00 or \x01. As an aside, ffi.string() no longer works on bool[] (but it never made much sense, as this function stops at the first zero). ffi.buffer is now the name of cffi’s buffer type, and ffi.buffer() works like before but is the constructor of that type. ffi.addressof(lib, "name") now works also in in-line mode, not only in out-of-line mode. This is useful for taking the address of global variables. Issue #255: cdata objects of a primitive type (integers, floats, char) are now compared and ordered by value. For example, compares equal to 42 and compares equal to b'A'. Unlike C, does not compare equal to ffi.cast("unsigned int", -1): it compares smaller, because -1 < 4294967295. PyPy: ffi.new() and ffi.new_allocator()() did not record “memory pressure”, causing the GC to run too infrequently if you call ffi.new() very often and/or with large arrays. Fixed in PyPy 5.7. Support in ffi.cdef() for numeric expressions with + or -. Assumes that there is no overflow; it should be fixed first before we add more general support for arbitrary arithmetic on constants. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.22 2016/11/14 14:31:18 wiz Exp $ d7 3 a9 1 SHA1 (patch-c_malloc__closure.h) = d169a2ebdf899b5b67a714a068749ce25087be8a @ 1.22 log @Updated py-cffi to 1.9.1. v1.9 Structs with variable-sized arrays as their last field: now we track the length of the array after ffi.new() is called, just like we always tracked the length of ffi.new("int[]", 42). This lets us detect out-of-range accesses to array items. This also lets us display a better repr(), and have the total size returned by ffi.sizeof() and ffi.buffer(). Previously both functions would return a result based on the size of the declared structure type, with an assumed empty array. (Thanks andrew for starting this refactoring.) Add support in cdef()/set_source() for unspecified-length arrays in typedefs: typedef int foo_t[...];. It was already supported for global variables or structure fields. I turned in v1.8 a warning from cffi/model.py into an error: 'enum xxx' has no values explicitly defined: refusing to guess which integer type it is meant to be (unsigned/signed, int/long). Now Im turning it back to a warning again; it seems that guessing that the enum has size int is a 99%-safe bet. (But not 100%, so it stays as a warning.) Fix leaks in the code handling FILE * arguments. In CPython 3 there is a remaining issue that is hard to fix: if you pass a Python file object to a FILE * argument, then os.dup() is used and the new file descriptor is only closed when the GC reclaims the Python file objectand not at the earlier time when you call close(), which only closes the original file descriptor. If this is an issue, you should avoid this automatic convertion of Python file objects: instead, explicitly manipulate file descriptors and call fdopen() from C (...via cffi). @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.21 2016/09/22 06:44:09 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.9.1.tar.gz) = 16265a4b305d433fb9089b19278502e904b0cb43 RMD160 (cffi-1.9.1.tar.gz) = 0521145fc517fc308462acb10cba0551a7f6b524 SHA512 (cffi-1.9.1.tar.gz) = 6e76f181b6b7b760a14ad70338edd104a8b8e2eac5680e336d3868e0bd031a1665608e29a65dc0c56806afb8a8c03811586f151f3acef11e54e60c1bfcf902e3 Size (cffi-1.9.1.tar.gz) = 407108 bytes @ 1.21 log @Add patch to distinfo and bump PKGREVISION for it. ('make test' still fails with mprotect enabled.) @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.20 2016/09/18 22:05:57 wiz Exp $ d3 5 a7 5 SHA1 (cffi-1.8.3.tar.gz) = 2a5be10205bf3f6b21070a71ee2546d838868172 RMD160 (cffi-1.8.3.tar.gz) = e13f80925e01699719788a82f8926069084a1d2f SHA512 (cffi-1.8.3.tar.gz) = a5a5f62c9d8607a8477abc2c2c53dcbe2aa4cf964b0592d4db349cd35a199e69a84d6cf160973fb5ee736607fa6a41314e8ff0d84bef2ffe16c08f6071c15222 Size (cffi-1.8.3.tar.gz) = 403766 bytes SHA1 (patch-c_malloc__closure.h) = 491dea2d7e118705cb6ee6b6329fd72180d6f48b @ 1.20 log @Updated py-cffi to 1.8.3. v1.8.3 ====== * When passing a ``void *`` argument to a function with a different pointer type, or vice-versa, the cast occurs automatically, like in C. The same occurs for initialization with ``ffi.new()`` and a few other places. However, I thought that ``char *`` had the same property---but I was mistaken. In C you get the usual warning if you try to give a ``char *`` to a ``char **`` argument, for example. Sorry about the confusion. This has been fixed in CFFI by giving for now a warning, too. It will turn into an error in a future version. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.19 2016/09/12 07:57:41 wiz Exp $ d7 1 @ 1.19 log @Updated py-cffi to 1.8.2. Tests don't run on MPROTECT enabled systems, and I haven't found the magic to fix that. CFFI 1.8.2 has been released. (Versions 1.8 and 1.8.1 are only inside PyPy 5.4.0 and 5.4.1, which have been released recently.) Two main changes: * On CPython 3.x, the C extension modules generated by cffi (not cffi itself!) are now using CPython's official "limited C API". This means that the same compiled .so/.dll should work without recompilation on any version >= 3.2. The name produced by distutils is still version-specific. To get the version-independent name, you can rename it manually to ``NAME.abi3.so``, or use the very recent setuptools 26. * ffi.from_buffer() can now be used on byte strings, getting the ``char *`` address of the C string directly. This was not allowed because PyPy couldn't support it---we can make the string non-movable, but the blocker was that the strings in PyPy are not zero-terminated! So from PyPy 5.4 all strings are allocated with space for one extra character---an extremely minor overhead---and we write a zero at the end when ffi.from_buffer() is called. Similarly, when we call ``lib.func("abc")``, PyPy would always make a copy of the string because the original wasn't zero-terminated; now neither PyPy nor CPython need to duplicate the string. 1.7.0 cffi 1.7 has been released. (It corresponds to the version that was released with PyPy 5.3.) In the main news, the following are now supported: * ffi.gc(p, None) * bool(ffi.cast("primitive type", x)) * ffi.from_buffer(bytearray-object) * C++: "_Bool undefined" fixed * help(lib), help(lib.myfunc) @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.18 2016/04/24 09:37:29 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.8.2.tar.gz) = 9d2722ba9241b232b980bb9243e12451513a8000 RMD160 (cffi-1.8.2.tar.gz) = df4939e7fdda0f6d1230f89eaa451fb24be78162 SHA512 (cffi-1.8.2.tar.gz) = a7bbb8735cf4b36510b6953db26af2428725d589fedae05693f39c77b84567bdefd6e3dc1e5c6deef94e617ceb4bf6bf92379e76fd3732d73a19e8a39a3d06ed Size (cffi-1.8.2.tar.gz) = 403191 bytes @ 1.18 log @Updated py35-cffi to 1.6.0. v1.6 ==== * `ffi.list_types()`_ * `ffi.unpack()`_ * `extern "Python+C"`_ * in API mode, ``lib.foo.__doc__`` contains the C signature now. On CPython you can say ``help(lib.foo)``, but for some reason ``help(lib)`` (or ``help(lib.foo)`` on PyPy) is still useless; I haven't yet figured out the hacks needed to convince ``pydoc`` to show more. (You can use ``dir(lib)`` but it is not most helpful.) * Yet another attempt at robustness of ``ffi.def_extern()`` against CPython's interpreter shutdown logic. .. _`ffi.list_types()`: ref.html#ffi-list-types .. _`ffi.unpack()`: ref.html#ffi-unpack .. _`extern "Python+C"`: using.html#extern-python-c XXX: standard download URL doesn't work?! copied to ftp.netbsd.org manually @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.17 2016/02/14 10:50:12 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.6.0.tar.gz) = 3161ff5d1e791e86f95de258c93371dff9941c4d RMD160 (cffi-1.6.0.tar.gz) = becdee1ee5ede69d556c44dfd3b4c3e0284d00a6 SHA512 (cffi-1.6.0.tar.gz) = 95dc7fbca624b5474ff0182ff6e1d1c6b8b34ad19c4c22cabf847f7be6c47dc32a96b23165da1c28438a46a1e9f681341fe8b7304ba5618744c595c4ae364466 Size (cffi-1.6.0.tar.gz) = 397024 bytes @ 1.17 log @Update py-cffi to 1.5.2. v1.5.2 ====== * Fix 1.5.1 for Python 2.6. v1.5.1 ====== * A few installation-time tweaks (thanks Stefano!) * Issue #245: Win32: ``__stdcall`` was never generated for ``extern "Python"`` functions * Issue #246: trying to be more robust against CPython's fragile interpreter shutdown logic @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.16 2016/01/18 22:55:13 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.5.2.tar.gz) = 5239b3aa4f67eed3559c09778096ecd4faeca876 RMD160 (cffi-1.5.2.tar.gz) = 012cc3b9a4d630a256d5771ec98b179b3bc7b1eb SHA512 (cffi-1.5.2.tar.gz) = 3c707db85032bc13287beec0211d85a7b9f9dfcb87844adba3a86b23211acd495e88072ec23f22e7c7626d25cadd5b9843c34255d4080eefb171020ad0a2d552 Size (cffi-1.5.2.tar.gz) = 388793 bytes @ 1.16 log @Update py-cffi to 1.5.0: v1.5.0 ====== * Support for `using CFFI for embedding`__. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.15 2015/12/27 22:36:51 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.5.0.tar.gz) = fd21011ba2a3cab627001b52c69fd7274517e549 RMD160 (cffi-1.5.0.tar.gz) = b5c11e9f8285b1739134db5193e4d8550b812930 SHA512 (cffi-1.5.0.tar.gz) = 229b1472a54d2758ed39340a9b9d87b7d4b9d562cdb0b64276d013f11f8499c67db12e8818a3b1ff5ec0f30818a95f4c54939839d240b9545aaf4728f01c3429 Size (cffi-1.5.0.tar.gz) = 385496 bytes @ 1.15 log @Update py-cffi to 1.4.2: v1.4.2 ====== Nothing changed from v1.4.1. v1.4.1 ====== * Fix the compilation failure of cffi on CPython 3.5.0. (3.5.1 works; some detail changed that makes some underscore-starting macros disappear from view of extension modules, and I worked around it, thinking it changed in all 3.5 versions---but no: it was only in 3.5.1.) v1.4.0 ====== * A `better way to do callbacks`__ has been added (faster and more portable, and usually cleaner). It is a mechanism for the out-of-line API mode that replaces the dynamic creation of callback objects (i.e. C functions that invoke Python) with the static declaration in ``cdef()`` of which callbacks are needed. This is more C-like, in that you have to structure your code around the idea that you get a fixed number of function pointers, instead of creating them on-the-fly. * ``ffi.compile()`` now takes an optional ``verbose`` argument. When ``True``, distutils prints the calls to the compiler. * ``ffi.compile()`` used to fail if given ``sources`` with a path that includes ``".."``. Fixed. * ``ffi.init_once()`` added. See docs__. * ``dir(lib)`` now works on libs returned by ``ffi.dlopen()`` too. * Cleaned up and modernized the content of the ``demo`` subdirectory in the sources (thanks matti!). * ``ffi.new_handle()`` is now guaranteed to return unique ``void *`` values, even if called twice on the same object. Previously, in that case, CPython would return two ``cdata`` objects with the same ``void *`` value. This change is useful to add and remove handles from a global dict (or set) without worrying about duplicates. It already used to work like that on PyPy. *This change can break code that used to work on CPython by relying on the object to be kept alive by other means than keeping the result of ffi.new_handle() alive.* (The corresponding `warning in the docs`__ of ``ffi.new_handle()`` has been here since v0.8!) .. __: using.html#extern-python .. __: using.html#initonce .. __: using.html#ffi-new-handle @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.14 2015/11/23 00:07:13 wiz Exp $ d3 4 a6 4 SHA1 (cffi-1.4.2.tar.gz) = 76cff6f1ff5bfb2b9c6c8e2cfa8bf90b5c944394 RMD160 (cffi-1.4.2.tar.gz) = 434d612e4d3acf906e77cbfc4af53299319ce2b3 SHA512 (cffi-1.4.2.tar.gz) = cdb265c4ae390b6498fab34a2f0920ee6eca65e6b543dfb92a0e64825bcef26e8bd4c9f1f43a15e7696128f38026e467fcdda057e00e939311a465b2b585fc34 Size (cffi-1.4.2.tar.gz) = 365490 bytes @ 1.14 log @Update py-cffi to 1.3.1. Changes not found. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.13 2015/11/04 17:41:17 agc Exp $ d3 4 a6 4 SHA1 (cffi-1.3.1.tar.gz) = a9a73358a0a22c18d301728f040cc380eb997dc1 RMD160 (cffi-1.3.1.tar.gz) = 904b017de00d2990377f90b9869e2449fdea00a9 SHA512 (cffi-1.3.1.tar.gz) = b89fe1b98a2e1492e05a9e69407104a5d5057dbe2730852fb91fae1db66751d35db53186d2f03dc950eb10dd9cecc83e44eb3e6954381dfd80d79519c7938288 Size (cffi-1.3.1.tar.gz) = 351300 bytes @ 1.13 log @Remove duplicate SHA512 digests that crept in. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.12 2015/11/03 03:29:05 agc Exp $ d3 4 a6 4 SHA1 (cffi-1.3.0.tar.gz) = 54a0b2dbbc2f5d99131aa337e217b636652641a9 RMD160 (cffi-1.3.0.tar.gz) = d9197750f2f2f8914a95c60d70cc160736030e04 SHA512 (cffi-1.3.0.tar.gz) = 2ea789d67782b2f23501bea4480f42f79e312d047e2d8c777aab8113400cfa136585aa92c0a51608a0da35cd6734bc24914fcccfc5bbdad3041aad2e9f784400 Size (cffi-1.3.0.tar.gz) = 347342 bytes @ 1.12 log @Add SHA512 digests for distfiles for devel category Issues found with existing distfiles: distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip distfiles/fortran-utils-1.1.tar.gz distfiles/ivykis-0.39.tar.gz distfiles/enum-1.11.tar.gz distfiles/pvs-3.2-libraries.tgz distfiles/pvs-3.2-linux.tgz distfiles/pvs-3.2-solaris.tgz distfiles/pvs-3.2-system.tgz No changes made to these distinfo files. Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.11 2015/10/25 09:50:36 wiz Exp $ a5 1 SHA512 (cffi-1.3.0.tar.gz) = 2ea789d67782b2f23501bea4480f42f79e312d047e2d8c777aab8113400cfa136585aa92c0a51608a0da35cd6734bc24914fcccfc5bbdad3041aad2e9f784400 @ 1.11 log @Update py-cffi to 1.3.0: v1.3.0 ====== * Added `ffi.memmove()`_. * Pull request #64: out-of-line API mode: we can now declare floating-point types with ``typedef float... foo_t;``. This only works if ``foo_t`` is a float or a double, not ``long double``. * Issue #217: fix possible unaligned pointer manipulation, which crashes on some architectures (64-bit, non-x86). * Issues #64 and #126: when using ``set_source()`` or ``verify()``, the ``const`` and ``restrict`` keywords are copied from the cdef to the generated C code; this fixes warnings by the C compiler. It also fixes corner cases like ``typedef const int T; T a;`` which would previously not consider ``a`` as a constant. (The cdata objects themselves are never ``const``.) * Win32: support for ``__stdcall``. For callbacks and function pointers; regular C functions still don't need to have their `calling convention`_ declared. * Windows: CPython 2.7 distutils doesn't work with Microsoft's official Visual Studio for Python, and I'm told this is `not a bug`__. For ffi.compile(), we `removed a workaround`__ that was inside cffi but which had unwanted side-effects. Try saying ``import setuptools`` first, which patches distutils... .. _`ffi.memmove()`: using.html#memmove .. __: https://bugs.python.org/issue23246 .. __: https://bitbucket.org/cffi/cffi/pull-requests/65/remove-_hack_at_distutils-which-imports/diff .. _`calling convention`: using.html#windows-calling-conventions @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.10 2015/08/30 14:42:03 wiz Exp $ d6 1 @ 1.10 log @Update to 1.2.1: v1.2.1 Nothing changed from v1.2.0. v1.2.0 Out-of-line mode: int a[][...]; can be used to declare a structure field or global variable which is, simultaneously, of total length unknown to the C compiler (the a[] part) and each element is itself an array of N integers, where the value of N is known to the C compiler (the int and [...] parts around it). Similarly, int a[5][...]; is supported (but probably less useful: remember that in C it means int (a[5])[...];). PyPy: the lib.some_function objects were missing the attributes __name__, __module__ and __doc__ that are expected e.g. by some decorators-management functions from functools. Out-of-line API mode: you can now do from _example.lib import x to import the name x from _example.lib, even though the lib object is not a standard module object. (Also works in from _example.lib import *, but this is even more of a hack and will fail if lib happens to declare a name called __all__. Note that * excludes the global variables; only the functions and constants make sense to import like this.) lib.__dict__ works again and gives you a copy of the dictassuming that lib has got no symbol called precisely __dict__. (In general, it is safer to use dir(lib).) Out-of-line API mode: global variables are now fetched on demand at every access. It fixes issue #212 (Windows DLL variables), and also allows variables that are defined as dynamic macros (like errno) or __thread -local variables. (This change might also tighten the C compilers check on the variables type.) Issue #209: dereferencing NULL pointers now raises RuntimeError instead of segfaulting. Meant as a debugging aid. The check is only for NULL: if you dereference random or dead pointers you might still get segfaults. Issue #152: callbacks: added an argument ffi.callback(..., onerror=...). If the main callback function raises an exception and onerror is provided, then onerror(exception, exc_value, traceback) is called. This is similar to writing a try: except: in the main callback function, but in some cases (e.g. a signal) an exception can occur at the very start of the callback functionbefore it had time to enter the try: except: block. Issue #115: added ffi.new_allocator(), which officializes support for alternative allocators. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.9 2015/06/14 16:24:45 wiz Exp $ d3 4 a6 3 SHA1 (cffi-1.2.1.tar.gz) = f7ed014ff1602a8e81073f5356b4cafbc3f5dce1 RMD160 (cffi-1.2.1.tar.gz) = 3629cda4d6252a356ceb1b66f78a7aed5fbcec88 Size (cffi-1.2.1.tar.gz) = 335778 bytes @ 1.9 log @Update to 1.1.2: 1.1.2 ===== * ``ffi.gc()``: fixed a race condition in multithreaded programs introduced in 1.1.1 1.1.1 ===== * Out-of-line mode: ``ffi.string()``, ``ffi.buffer()`` and ``ffi.getwinerror()`` didn't accept their arguments as keyword arguments, unlike their in-line mode equivalent. (It worked in PyPy.) * Out-of-line ABI mode: documented a restriction__ of ``ffi.dlopen()`` when compared to the in-line mode. * ``ffi.gc()``: when called several times with equal pointers, it was accidentally registering only the last destructor, or even none at all depending on details. (It was correctly registering all of them only in PyPy, and only with the out-of-line FFIs.) .. __: cdef.html#dlopen-note @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.8 2015/05/31 13:09:51 wiz Exp $ d3 3 a5 3 SHA1 (cffi-1.1.2.tar.gz) = 6d6203bf7d390560ac50943da4a3d2c96ab29756 RMD160 (cffi-1.1.2.tar.gz) = d3a138b528a25f7ad3abc125a35b3f656a9291f7 Size (cffi-1.1.2.tar.gz) = 326758 bytes @ 1.8 log @Update to 1.1.0: 1.1.0 ===== * Out-of-line API mode: we can now declare integer types with ``typedef int... foo_t;``. The exact size and signness of ``foo_t`` is figured out by the compiler. * Out-of-line API mode: we can now declare multidimensional arrays (as fields or as globals) with ``int n[...][...]``. Before, only the outermost dimension would support the ``...`` syntax. * Out-of-line ABI mode: we now support any constant declaration, instead of only integers whose value is given in the cdef. Such "new" constants, i.e. either non-integers or without a value given in the cdef, must correspond to actual symbols in the lib. At runtime they are looked up the first time we access them. This is useful if the library defines ``extern const sometype somename;``. * ``ffi.addressof(lib, "func_name")`` now returns a regular cdata object of type "pointer to function". You can use it on any function from a library in API mode (in ABI mode, all functions are already regular cdata objects). To support this, you need to recompile your cffi modules. * Issue #198: in API mode, if you declare constants of a ``struct`` type, what you saw from lib.CONSTANT was corrupted. * Issue #196: ``ffi.set_source("package._ffi", None)`` would incorrectly generate the Python source to ``package._ffi.py`` instead of ``package/_ffi.py``. Also fixed: in some cases, if the C file was in ``build/foo.c``, the .o file would be put in ``build/build/foo.o``. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.7 2015/05/28 07:06:32 wiz Exp $ d3 3 a5 3 SHA1 (cffi-1.1.0.tar.gz) = 7c36b783156eaf985b35a56c43f3eecac37e262c RMD160 (cffi-1.1.0.tar.gz) = abae9d0c46f4db94b06dd6f9036d1ace9c21c366 Size (cffi-1.1.0.tar.gz) = 323962 bytes @ 1.7 log @Update to 1.0.3: 1.0.3 Same as 1.0.2, apart from doc and test fixes on some platforms. 1.0.2 Variadic C functions (ending in a ... argument) were not supported in the out-of-line ABI mode. This was a bug-there was even a (non-working) example doing exactly that! 1.0.1 ffi.set_source() crashed if passed a sources=[..] argument. Fixed by chrippa on pull request #60. Issue #193: if we use a struct between the first cdef() where it is declared and another cdef() where its fields are defined, then this definition was ignored. Enums were buggy if you used too many ... in their definition. 1.0.0 The main news item is out-of-line module generation: for ABI level, with ffi.dlopen() for API level, which used to be with ffi.verify(), now deprecated @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.6 2015/03/15 21:08:00 wiz Exp $ d3 3 a5 3 SHA1 (cffi-1.0.3.tar.gz) = af4484ec231710368455ad18644ce3b0c28c7c85 RMD160 (cffi-1.0.3.tar.gz) = 4f533b9bdc30b69cc16cbb45f36bf591446a4e61 Size (cffi-1.0.3.tar.gz) = 317372 bytes @ 1.6 log @Update to 0.9.2: I pushed release 0.9.2 out of the door with mostly just this fix: https://bitbucket.org/cffi/cffi/issue/187/inconsistencies-in-ffifrom_buffer ffi.from_buffer() was incorrectly accepting objects of type 'memoryview' containing strings, which was not intended --- it works only on CPython, not PyPy, and it is documented that it should not work. Additionally, still on CPython, ffi.from_buffer() was incorrectly rejecting objects of type 'buffer' pointing to read-only objects, say read-only numpy arrays. (Insert here the usual rant against the internal mess of buffer and memoryview objects.) @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.5 2015/03/09 08:11:54 wiz Exp $ d3 3 a5 3 SHA1 (cffi-0.9.2.tar.gz) = 7cfc992699ef8b65d6300c04f3efad00bd2a6cba RMD160 (cffi-0.9.2.tar.gz) = e974258700148f68ab80ef6dda20d8fb260c6642 Size (cffi-0.9.2.tar.gz) = 209160 bytes @ 1.5 log @Update to 0.9.1: 0.9.1 CFFI 0.9.1 was released today. This is a bugfix release that only concerns versions of CPython 3.4 older than last August, on non-Windows platforms. 0.9 CFFI 0.9.0 was released today. The readthedocs.org page is still missing a "release 0.9" tag, which I'll add as soon as its admin pages are back online. I hope everything else is in order. The documentation can be seen at http://cffi.readthedocs.org/en/latest/ . There are a number of small new features in this release; for more details, search for "version 0.9" on that page. Note that PyPy 2.5.0 includes a version of CFFI that is mislabelled as "0.8.6"; it is actually close to 0.9. I'll try to make sure that the next PyPy release matches exactly a CFFI release. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.4 2014/07/22 09:50:41 wiz Exp $ d3 3 a5 3 SHA1 (cffi-0.9.1.tar.gz) = 6a1b297ee7108803f54bb6333cf1e5630a193756 RMD160 (cffi-0.9.1.tar.gz) = ea3888bcd062f635c098c9bb7c146000e89a0323 Size (cffi-0.9.1.tar.gz) = 207931 bytes @ 1.4 log @Update to 0.8.6: changes not found. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.3 2014/03/31 08:30:31 wiz Exp $ d3 3 a5 3 SHA1 (cffi-0.8.6.tar.gz) = 4e82390201e6f30e9df8a91cd176df19b8f2d547 RMD160 (cffi-0.8.6.tar.gz) = 409886f82464865cd1e68e86aa4344b08aec2406 Size (cffi-0.8.6.tar.gz) = 196835 bytes @ 1.3 log @Update to 0.8.2: Changes not found. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.2 2013/11/26 14:04:49 wiz Exp $ d3 3 a5 3 SHA1 (cffi-0.8.2.tar.gz) = 75a6c433664a7a38d4d03cecbdc72cef4c3cceac RMD160 (cffi-0.8.2.tar.gz) = 6fd9f926099c92f72e259f4d6a5f05533da92ad8 Size (cffi-0.8.2.tar.gz) = 197622 bytes @ 1.2 log @Update to 0.8.1, changes not found. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.1 2013/09/30 17:19:59 wiz Exp $ d3 3 a5 3 SHA1 (cffi-0.8.1.tar.gz) = d46b7cf92956fa01d9f8e0a8d3c7e2005ae40893 RMD160 (cffi-0.8.1.tar.gz) = 641653d4a998cce52a192315fc86f078ff4999ce Size (cffi-0.8.1.tar.gz) = 195206 bytes @ 1.1 log @Import py27-cffi-0.7.2 as devel/py-cffi. Foreign Function Interface for Python calling C code. The aim of this project is to provide a convenient and reliable way of calling C code from Python. The interface is based on LuaJIT's FFI and follows a few principles: o The goal is to call C code from Python. You should be able to do so without learning a 3rd language: every alternative requires you to learn their own language (Cython, SWIG) or API (ctypes). So we tried to assume that you know Python and C and minimize the extra bits of API that you need to learn. o Keep all the Python-related logic in Python so that you don't need to write much C code. o Work either at the level of the ABI (Application Binary Interface) or the API (Application Programming Interface). Usually, C libraries have a specified C API but often not an ABI. o We try to be complete. For now some C99 constructs are not supported, but all C89 should be, including macros. o We attempt to support both PyPy and CPython, with a reasonable path for other Python implementations like IronPython and Jython. o Note that this project is not about embedding executable C code in Python, unlike Weave. This is about calling existing C libraries from Python. @ text @d1 1 a1 1 $NetBSD$ d3 3 a5 3 SHA1 (cffi-0.7.2.tar.gz) = e2277124f88039a9969e54fd3cc2aa6afbdea1b5 RMD160 (cffi-0.7.2.tar.gz) = 0a2f415104ab044d4745c996fee217a8591e2b12 Size (cffi-0.7.2.tar.gz) = 175579 bytes @