René's URL Explorer Experiment


Title: CTypes test failed, complex double problem · Issue #125206 · python/cpython · GitHub

Open Graph Title: CTypes test failed, complex double problem · Issue #125206 · python/cpython

X Title: CTypes test failed, complex double problem · Issue #125206 · python/cpython

Description: Bug report Bug description: Python binary has been built in the standard way: ./configure --with-pydebug && make -j But test_ctypes fails: -> % ./python -m unittest -v test.test_ctypes.test_libc.LibTest.test_csqrt test_csqrt (test.test_c...

Open Graph Description: Bug report Bug description: Python binary has been built in the standard way: ./configure --with-pydebug && make -j But test_ctypes fails: -> % ./python -m unittest -v test.test_ctypes.test_libc.Li...

X Description: Bug report Bug description: Python binary has been built in the standard way: ./configure --with-pydebug && make -j But test_ctypes fails: -> % ./python -m unittest -v test.test_ctypes.t...

Opengraph URL: https://github.com/python/cpython/issues/125206

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"CTypes test failed, complex double problem","articleBody":"# Bug report\r\n\r\n### Bug description:\r\n\r\nPython binary has been built in the standard way:\r\n```\r\n./configure --with-pydebug \u0026\u0026 make -j\r\n```\r\n\r\nBut test_ctypes fails:\r\n```\r\n-\u003e % ./python -m unittest -v test.test_ctypes.test_libc.LibTest.test_csqrt \r\ntest_csqrt (test.test_ctypes.test_libc.LibTest.test_csqrt) ... FAIL\r\n\r\n======================================================================\r\nFAIL: test_csqrt (test.test_ctypes.test_libc.LibTest.test_csqrt)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n  File \"/home/mikhail.efimov/projects/cpython/Lib/test/test_ctypes/test_libc.py\", line 30, in test_csqrt\r\n    self.assertEqual(lib.my_csqrt(4), 2+0j)\r\n    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\r\nAssertionError: (5e-324+6.95324111713477e-310j) != (2+0j)\r\n\r\n----------------------------------------------------------------------\r\nRan 1 test in 0.001s\r\n\r\nFAILED (failures=1)\r\n```\r\n\r\nSystem:\r\n```\r\n-\u003e % cat /etc/issue\r\nDebian GNU/Linux 10 \\n \\l\r\n```\r\n\r\nGCC:\r\n```\r\n-\u003e % gcc -v\r\nUsing built-in specs.\r\nCOLLECT_GCC=gcc\r\nCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper\r\nOFFLOAD_TARGET_NAMES=nvptx-none\r\nOFFLOAD_TARGET_DEFAULT=1\r\nTarget: x86_64-linux-gnu\r\nConfigured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu\r\nThread model: posix\r\ngcc version 8.3.0 (Debian 8.3.0-6) \r\n```\r\n\r\nI've tried to fix it by myself but the result has not been achieved in a reasonable amount of time.\r\nThere is a simple test I've provided:\r\n```\r\n-\u003e % cat test_csqrt.c\r\n#include \u003ccomplex.h\u003e\r\n#include \u003cstdio.h\u003e\r\n\r\nint complex my_csqrt(double complex a)\r\n{\r\n    double complex z1 = a;\r\n    double complex z2 = csqrt(a);\r\n    printf(\"my_csqrt (%.10f%+.10fi) = %.10f%+.10fi\\n\",\r\n        creal(z1), cimag(z1), creal(z2), cimag(z2));\r\n    return 0;\r\n}\r\n\r\nint main() {\r\n    my_csqrt(4.0);\r\n    my_csqrt(4.0+4.0j);\r\n    my_csqrt(-1+0.01j);\r\n    my_csqrt(-1-0.01j);\r\n    return 0;\r\n}\r\n```\r\n\r\n```\r\n-\u003e % gcc -lm test_csqrt.c -o test_csqrt \u0026\u0026 ./test_csqrt\r\nmy_csqrt (4.0000000000+0.0000000000i) = 2.0000000000+0.0000000000i\r\nmy_csqrt (4.0000000000+4.0000000000i) = 2.1973682269+0.9101797211i\r\nmy_csqrt (-1.0000000000+0.0100000000i) = 0.0049999375+1.0000124996i\r\nmy_csqrt (-1.0000000000-0.0100000000i) = 0.0049999375-1.0000124996i\r\n```\r\n\r\nSo, it's not a problem in my libc version.\r\n\r\nMoreover, this problem can be reproduced with standard libm.so (/lib/x86_64-linux-gnu/libm-2.28.so):\r\n```\r\n-\u003e % cat ctypes_fix/test.py      \r\nimport ctypes\r\nlibm = ctypes.CDLL('libm.so.6')\r\nlibm.clog.restype = ctypes.c_double_complex\r\nlibm.clog.argtypes = ctypes.c_double_complex,\r\nclog_5 = libm.clog(5.0)\r\nclog_1000_2j = libm.clog(1000.0+2j)\r\nprint(f\"{clog_5=}\")\r\nprint(f\"{clog_1000_2j=}\")\r\n```\r\n```\r\n-\u003e % ./python ctypes_fix/test.py\r\nclog_5=(5e-324+6.9529453382261e-310j)\r\nclog_1000_2j=(5e-324+6.9529453382261e-310j)\r\n```\r\n\r\nIMHO, some problem lies in using ctypes.c_double_complex as an argument and return value types.\r\nFYI, with double argtype and restype clog works like classical double log:\r\n\r\n```\r\n-\u003e % cat ctypes_fix/test2.py   \r\nimport ctypes\r\nlibm = ctypes.CDLL('libm.so.6')\r\nlibm.clog.restype = ctypes.c_double\r\nlibm.clog.argtypes = ctypes.c_double,\r\nclog_5 = libm.clog(5.0)\r\nclog_1000 = libm.clog(1000.0)\r\nprint(f\"{clog_5=}\")\r\nprint(f\"{clog_1000=}\")\r\n```\r\n```\r\n-\u003e % ./python ctypes_fix/test2.py\r\nclog_5=1.6094379124341003\r\nclog_1000=6.907755278982137\r\n```\r\n\r\n### CPython versions tested on:\r\n\r\nCPython main branch\r\n\r\n### Operating systems tested on:\r\n\r\nLinux\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-125322\n* gh-126104\n* gh-132865\n* gh-135932\n* gh-135973\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/efimov-mikhail","@type":"Person","name":"efimov-mikhail"},"datePublished":"2024-10-09T18:34:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":10},"url":"https://github.com/125206/cpython/issues/125206"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:9218312d-f197-0161-e43d-57b4814f77da
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idE52C:2A6D10:B77E20:EBCE0D:696AFB9E
html-safe-nonce1083e790bb3390e4bd1dd9a48696de577071d9975dc0740c1c0bbb5e6a191f80
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNTJDOjJBNkQxMDpCNzdFMjA6RUJDRTBEOjY5NkFGQjlFIiwidmlzaXRvcl9pZCI6IjkyMTQyOTk2MzE5MTI4NjY4NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacc5f9bfa22612364462fc624bb2ca43e925dc276088fa8145bfca3e6348775949
hovercard-subject-tagissue:2576643483
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/125206/issue_layout
twitter:imagehttps://opengraph.githubassets.com/354bda095d0339911cb537d4d666966e4ad2269758ad0a31b916d894241cdd6f/python/cpython/issues/125206
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/354bda095d0339911cb537d4d666966e4ad2269758ad0a31b916d894241cdd6f/python/cpython/issues/125206
og:image:altBug report Bug description: Python binary has been built in the standard way: ./configure --with-pydebug && make -j But test_ctypes fails: -> % ./python -m unittest -v test.test_ctypes.test_libc.Li...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameefimov-mikhail
hostnamegithub.com
expected-hostnamegithub.com
None5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d
turbo-cache-controlno-preview
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release82560a55c6b2054555076f46e683151ee28a19bc
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/issues/125206#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F125206
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F125206
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/issues/125206
Reloadhttps://github.com/python/cpython/issues/125206
Reloadhttps://github.com/python/cpython/issues/125206
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/issues/125206
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/issues/125206
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/125206
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/125206
CTypes test failed, complex double problemhttps://github.com/python/cpython/issues/125206#top
testsTests in the Lib/test dirhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22tests%22
topic-ctypeshttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22topic-ctypes%22
type-bugAn unexpected behavior, bug, or errorhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-bug%22
https://github.com/efimov-mikhail
https://github.com/efimov-mikhail
efimov-mikhailhttps://github.com/efimov-mikhail
on Oct 9, 2024https://github.com/python/cpython/issues/125206#issue-2576643483
gh-125206: Bug in ctypes with old libffi is fixed #125322https://github.com/python/cpython/pull/125322
gh-125206: Correct detection of complex numbers support in libffi #126104https://github.com/python/cpython/pull/126104
gh-125206: don't use CMPLX in configure test #132865https://github.com/python/cpython/pull/132865
gh-125206: Make _Py_FFI_SUPPORT_C_COMPLEX private #135932https://github.com/python/cpython/pull/135932
[3.14] gh-125206: Make _Py_FFI_SUPPORT_C_COMPLEX private (GH-135932) #135973https://github.com/python/cpython/pull/135973
testsTests in the Lib/test dirhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22tests%22
topic-ctypeshttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22topic-ctypes%22
type-bugAn unexpected behavior, bug, or errorhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-bug%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.