Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • pypy pypy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 676
    • Issues 676
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 13
    • Merge requests 13
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

April 05-07 - Mercurial Paris Conference 2023 - One day of workshop dedicated to Heptapod and Mercurial usage and workflow. There are still places available for both workshops and talks!

  • PyPyPyPy
  • pypypypy
  • Issues
  • #3706
Closed
Open
Issue created Mar 18, 2022 by Matti Picus@mattipOwner

Adopt PEP 3123 strict-aliasing in the definition of PyVarObject/PyObject/PyTypeObject

Building scipy now uses c++ -Wall ... which breaks on PyPy with -Wstrict-aliasing because our definitions in cpyext_object.h differ from CPython. They have adopted PEP 3123 and changed the definitions to

    typedef long Py_ssize_t;

    typedef struct _object {
        Py_ssize_t ob_refcnt;
        Py_ssize_t ob_pypy_link;
        struct _typeobject *ob_type;
    } PyObject;

    typedef struct  _varobject {
        Py_ssize_t ob_refcnt;
        Py_ssize_t ob_pypy_link;
        struct _typeobject *ob_type;
    } PyVarObject;


    typedef struct _typeobject {
        PyVarObject ob_base;
    } PyTypeObject;

    #define PyObject_VAR_HEAD PyVarObject ob_base;
    #define PyObject_HEAD     PyObject ob_base;

This breaks rpython/tool/cparser/cts.py with an error about ForwardReference. I am adding a failing test and trying to find the problem, help is welcome.

This is blocking the v7.3.9 release

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking