Skip to content

PyPy hard-codes the dlls and sos installed into a virtualenv #2260

Description

@mattip

What's the problem this feature will solve?
In the pypy-specific create/via_global_ref/builtin/pypy/common sources() function the super class calls cls._add_shared_libs(interpreter), which is implemented in each of [PyPy2, PyPy3] times [Windows, Posix]. In each of these 4 implementations, the class method explicitly lists the files it expects to find.

This is too restrictive and leads to churn when PyPy wants to change something.

Describe the solution you'd like
CPython3Windows uses a more flexible cls.include_dll_and_pyd which uses Path.iterdir to find all the relevant files. I think on CPython, Posix symlink is always used, so the problem is avoided?

For an upcoming py3.9 I am toying with changing the dll name from libpypy3-c.dll to libpypy3.9-c.dll. Testing creating a virtualenv is failing. PRs #2218, #2141, #1103 would have been avoided if specific dll/so naming was avoided.

Alternative Solutions

I could just continue making PRs to add to the hard-coded list

Additional context

Thanks! If this seems like a desired direction I can open a PR

Metadata

Metadata

Assignees

No one assigned

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions