IronLanguages / IronLanguages/ironpython3

Idea: quick'n'dirty Python 3.6 support

Open
#1,418 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
2.8k
Forks
316
Avg merge
1d 9h
Merged PRs (30d)
1

Description

Python 3.4 is really old. The oldest version still widely supported is 3.6. This makes it difficult, for example, to use IronPython with packages from PyPI and other more modern code. IronPython3 already supports many of the newer features (e.g. f-strings), but cannot claim to be 3.6 until it can at least parse Python 3.6 source code without a SyntaxError.

The idea is to add minimal parser support for async/await so they do not cause a SyntaxError. In the mean time, it can produce a placeholder coroutine object that raises an exception if actually used. It should be OK for an alpha version to have partial support and it will instantly be more useful than Python 3.4 as there are many useful packages that do not require async support. Full async support can be added later on whatever schedule you already had planned.

The parser should also support PEP 526 variable type annotations without raising SyntaxError. The annotations can be simply discarded. Porting the new standard library modules should be relatively straightforward. The pathlib module will require adding support for the fspath() in the core.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin by locating the parser entry point and any tests covering syntax errors for newer Python constructs. The requested scope includes minimal async/await and PEP 526 annotation parsing, plus pathlib fspath support and standard-library ports; completion would require addressing these separate compatibility areas.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, python
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.