prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Slow startup when Hy is installed from a wheel
  Testing the new release of 0.16.0, I see that startup is much slower when installing from the wheel than from the source distribution or directly from the repository. Likewise for older Hy releases. Even when I make sure the `__pycache__`s are included in the wheel and I can see they're installed. Either there's something wonky with my system, or wheel installation doesn't play nicely with premade byte-compiled files.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `setup.py`
  Content:
  ```
  1 #!/usr/bin/env python
  2 
  3 import os
  4 
  5 import fastentrypoints  # Monkey-patches setuptools.
  6 from get_version import __version__
  7 from setuptools import find_packages, setup
  8 
  9 os.chdir(os.path.split(os.path.abspath(__file__))[0])
  10 
  11 PKG = "hy"
  12 
  13 long_description = """Hy is a Python <--> Lisp layer. It helps
  14 make things work nicer, and lets Python and the Hy lisp variant play
  15 nice together. """
  16 
  17 setup(
  18     name=PKG,
  19     version=__version__,
  20     install_requires=[
  21         "funcparserlib ~= 1.0",
  22         "colorama",
  23         'astor>=0.8 ; python_version < "3.9"',
  24     ],
  25     python_requires=">= 3.7, < 3.11",
  26     entry_points={
  27         "console_scripts": [
  28             "hy = hy.cmdline:hy_main",
  29             "hy3 = hy.cmdline:hy_main",
  30             "hyc = hy.cmdline:hyc_main",
  31             "hyc3 = hy.cmdline:hyc_main",
  32             "hy2py = hy.cmdline:hy2py_main",
  33             "hy2py3 = hy.cmdline:hy2py_main",
  34         ]
  35     },
  36     packages=find_packages(exclude=["tests*"]),
  37     package_data={
  38         "hy": ["*.hy", "__pycache__/*"],
  39         "hy.contrib": ["*.hy", "__pycache__/*"],
  40         "hy.core": ["*.hy", "__pycache__/*"],
  41         "hy.extra": ["*.hy", "__pycache__/*"],
  42     },
  43     data_files=[("get_version", ["get_version.py"])],
  44     author="Paul Tagliamonte",
  45     author_email="tag@pault.ag",
  46     long_description=long_description,
  47     description="Lisp and Python love each other.",
  48     license="Expat",
  49     url="http://hylang.org/",
  50     platforms=["any"],
  51     classifiers=[
  52         "Development Status :: 4 - Beta",
  53         "Intended Audience :: Developers",
  54         "License :: DFSG approved",
  55         "License :: OSI Approved :: MIT License",  # Really "Expat". Ugh.
  56         "Operating System :: OS Independent",
  57         "Programming Language :: Lisp",
  58         "Programming Language :: Python",
  59         "Programming Language :: Python :: 3",
  60         "Programming Language :: Python :: 3.7",
  61         "Programming Language :: Python :: 3.8",
  62         "Programming Language :: Python :: 3.9",
  63         "Programming Language :: Python :: 3.10",
  64         "Topic :: Software Development :: Code Generators",
  65         "Topic :: Software Development :: Compilers",
  66         "Topic :: Software Development :: Libraries",
  67     ],
  68     project_urls={
  69         "Documentation": "https://docs.hylang.org/",
  70         "Source": "https://github.com/hylang/hy",
  71     },
  72 )
  73
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -5,6 +5,7 @@
   import fastentrypoints  # Monkey-patches setuptools.
   from get_version import __version__
   from setuptools import find_packages, setup
  +from setuptools.command.install import install
   
   os.chdir(os.path.split(os.path.abspath(__file__))[0])
   
  @@ -14,14 +15,34 @@
   make things work nicer, and lets Python and the Hy lisp variant play
   nice together. """
   
  +
  +class install(install):
  +    def run(self):
  +        super().run()
  +        import py_compile
  +        from glob import glob
  +
  +        import hy  # for compile hooks
  +
  +        for path in glob(os.path.join(self.install_lib, "**/*.hy"), recursive=True):
  +            py_compile.compile(
  +                path, invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH
  +            )
  +
  +
  +# both setup_requires and install_requires
  +# since we need to compile .hy files during setup
  +requires = [
  +    "funcparserlib ~= 1.0",
  +    "colorama",
  +    'astor>=0.8 ; python_version < "3.9"',
  +]
  +
   setup(
       name=PKG,
       version=__version__,
  -    install_requires=[
  -        "funcparserlib ~= 1.0",
  -        "colorama",
  -        'astor>=0.8 ; python_version < "3.9"',
  -    ],
  +    setup_requires=requires,
  +    install_requires=requires,
       python_requires=">= 3.7, < 3.11",
       entry_points={
           "console_scripts": [
  @@ -35,10 +56,7 @@
       },
       packages=find_packages(exclude=["tests*"]),
       package_data={
  -        "hy": ["*.hy", "__pycache__/*"],
  -        "hy.contrib": ["*.hy", "__pycache__/*"],
  -        "hy.core": ["*.hy", "__pycache__/*"],
  -        "hy.extra": ["*.hy", "__pycache__/*"],
  +        "": ["*.hy"],
       },
       data_files=[("get_version", ["get_version.py"])],
       author="Paul Tagliamonte",
  @@ -69,4 +87,7 @@
           "Documentation": "https://docs.hylang.org/",
           "Source": "https://github.com/hylang/hy",
       },
  +    cmdclass={
  +        "install": install,
  +    },
   )
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -5,6 +5,7 @@\n import fastentrypoints  # Monkey-patches setuptools.\n from get_version import __version__\n from setuptools import find_packages, setup\n+from setuptools.command.install import install\n \n os.chdir(os.path.split(os.path.abspath(__file__))[0])\n \n@@ -14,14 +15,34 @@\n make things work nicer, and lets Python and the Hy lisp variant play\n nice together. \"\"\"\n \n+\n+class install(install):\n+    def run(self):\n+        super().run()\n+        import py_compile\n+        from glob import glob\n+\n+        import hy  # for compile hooks\n+\n+        for path in glob(os.path.join(self.install_lib, \"**/*.hy\"), recursive=True):\n+            py_compile.compile(\n+                path, invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH\n+            )\n+\n+\n+# both setup_requires and install_requires\n+# since we need to compile .hy files during setup\n+requires = [\n+    \"funcparserlib ~= 1.0\",\n+    \"colorama\",\n+    'astor>=0.8 ; python_version < \"3.9\"',\n+]\n+\n setup(\n     name=PKG,\n     version=__version__,\n-    install_requires=[\n-        \"funcparserlib ~= 1.0\",\n-        \"colorama\",\n-        'astor>=0.8 ; python_version < \"3.9\"',\n-    ],\n+    setup_requires=requires,\n+    install_requires=requires,\n     python_requires=\">= 3.7, < 3.11\",\n     entry_points={\n         \"console_scripts\": [\n@@ -35,10 +56,7 @@\n     },\n     packages=find_packages(exclude=[\"tests*\"]),\n     package_data={\n-        \"hy\": [\"*.hy\", \"__pycache__/*\"],\n-        \"hy.contrib\": [\"*.hy\", \"__pycache__/*\"],\n-        \"hy.core\": [\"*.hy\", \"__pycache__/*\"],\n-        \"hy.extra\": [\"*.hy\", \"__pycache__/*\"],\n+        \"\": [\"*.hy\"],\n     },\n     data_files=[(\"get_version\", [\"get_version.py\"])],\n     author=\"Paul Tagliamonte\",\n@@ -69,4 +87,7 @@\n         \"Documentation\": \"https://docs.hylang.org/\",\n         \"Source\": \"https://github.com/hylang/hy\",\n     },\n+    cmdclass={\n+        \"install\": install,\n+    },\n )\n", "issue": "Slow startup when Hy is installed from a wheel\nTesting the new release of 0.16.0, I see that startup is much slower when installing from the wheel than from the source distribution or directly from the repository. Likewise for older Hy releases. Even when I make sure the `__pycache__`s are included in the wheel and I can see they're installed. Either there's something wonky with my system, or wheel installation doesn't play nicely with premade byte-compiled files.\n", "before_files": [{"content": "#!/usr/bin/env python\n\nimport os\n\nimport fastentrypoints  # Monkey-patches setuptools.\nfrom get_version import __version__\nfrom setuptools import find_packages, setup\n\nos.chdir(os.path.split(os.path.abspath(__file__))[0])\n\nPKG = \"hy\"\n\nlong_description = \"\"\"Hy is a Python <--> Lisp layer. It helps\nmake things work nicer, and lets Python and the Hy lisp variant play\nnice together. \"\"\"\n\nsetup(\n    name=PKG,\n    version=__version__,\n    install_requires=[\n        \"funcparserlib ~= 1.0\",\n        \"colorama\",\n        'astor>=0.8 ; python_version < \"3.9\"',\n    ],\n    python_requires=\">= 3.7, < 3.11\",\n    entry_points={\n        \"console_scripts\": [\n            \"hy = hy.cmdline:hy_main\",\n            \"hy3 = hy.cmdline:hy_main\",\n            \"hyc = hy.cmdline:hyc_main\",\n            \"hyc3 = hy.cmdline:hyc_main\",\n            \"hy2py = hy.cmdline:hy2py_main\",\n            \"hy2py3 = hy.cmdline:hy2py_main\",\n        ]\n    },\n    packages=find_packages(exclude=[\"tests*\"]),\n    package_data={\n        \"hy\": [\"*.hy\", \"__pycache__/*\"],\n        \"hy.contrib\": [\"*.hy\", \"__pycache__/*\"],\n        \"hy.core\": [\"*.hy\", \"__pycache__/*\"],\n        \"hy.extra\": [\"*.hy\", \"__pycache__/*\"],\n    },\n    data_files=[(\"get_version\", [\"get_version.py\"])],\n    author=\"Paul Tagliamonte\",\n    author_email=\"tag@pault.ag\",\n    long_description=long_description,\n    description=\"Lisp and Python love each other.\",\n    license=\"Expat\",\n    url=\"http://hylang.org/\",\n    platforms=[\"any\"],\n    classifiers=[\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"License :: DFSG approved\",\n        \"License :: OSI Approved :: MIT License\",  # Really \"Expat\". Ugh.\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Lisp\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Topic :: Software Development :: Code Generators\",\n        \"Topic :: Software Development :: Compilers\",\n        \"Topic :: Software Development :: Libraries\",\n    ],\n    project_urls={\n        \"Documentation\": \"https://docs.hylang.org/\",\n        \"Source\": \"https://github.com/hylang/hy\",\n    },\n)\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\nimport os\n\nimport fastentrypoints  # Monkey-patches setuptools.\nfrom get_version import __version__\nfrom setuptools import find_packages, setup\nfrom setuptools.command.install import install\n\nos.chdir(os.path.split(os.path.abspath(__file__))[0])\n\nPKG = \"hy\"\n\nlong_description = \"\"\"Hy is a Python <--> Lisp layer. It helps\nmake things work nicer, and lets Python and the Hy lisp variant play\nnice together. \"\"\"\n\n\nclass install(install):\n    def run(self):\n        super().run()\n        import py_compile\n        from glob import glob\n\n        import hy  # for compile hooks\n\n        for path in glob(os.path.join(self.install_lib, \"**/*.hy\"), recursive=True):\n            py_compile.compile(\n                path, invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH\n            )\n\n\n# both setup_requires and install_requires\n# since we need to compile .hy files during setup\nrequires = [\n    \"funcparserlib ~= 1.0\",\n    \"colorama\",\n    'astor>=0.8 ; python_version < \"3.9\"',\n]\n\nsetup(\n    name=PKG,\n    version=__version__,\n    setup_requires=requires,\n    install_requires=requires,\n    python_requires=\">= 3.7, < 3.11\",\n    entry_points={\n        \"console_scripts\": [\n            \"hy = hy.cmdline:hy_main\",\n            \"hy3 = hy.cmdline:hy_main\",\n            \"hyc = hy.cmdline:hyc_main\",\n            \"hyc3 = hy.cmdline:hyc_main\",\n            \"hy2py = hy.cmdline:hy2py_main\",\n            \"hy2py3 = hy.cmdline:hy2py_main\",\n        ]\n    },\n    packages=find_packages(exclude=[\"tests*\"]),\n    package_data={\n        \"\": [\"*.hy\"],\n    },\n    data_files=[(\"get_version\", [\"get_version.py\"])],\n    author=\"Paul Tagliamonte\",\n    author_email=\"tag@pault.ag\",\n    long_description=long_description,\n    description=\"Lisp and Python love each other.\",\n    license=\"Expat\",\n    url=\"http://hylang.org/\",\n    platforms=[\"any\"],\n    classifiers=[\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"License :: DFSG approved\",\n        \"License :: OSI Approved :: MIT License\",  # Really \"Expat\". Ugh.\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Lisp\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Topic :: Software Development :: Code Generators\",\n        \"Topic :: Software Development :: Compilers\",\n        \"Topic :: Software Development :: Libraries\",\n    ],\n    project_urls={\n        \"Documentation\": \"https://docs.hylang.org/\",\n        \"Source\": \"https://github.com/hylang/hy\",\n    },\n    cmdclass={\n        \"install\": install,\n    },\n)\n", "path": "setup.py"}]}