Recommendations on porting Python to D

mw mingwu at gmail.com
Fri Jul 12 18:07:50 UTC 2024


On Friday, 3 May 2024 at 17:38:10 UTC, Chris Piker wrote:
> On Thursday, 25 April 2024 at 16:57:53 UTC, mw wrote:
>> On Wednesday, 24 April 2024 at 22:07:41 UTC, Chris Piker wrote:
>>
>>> Python-AST to D source converter may already exist?
>>
>> https://github.com/joortcom/eiffel_rename/tree/main/yi
>>
>> A rudimentary converter from (extended) Python to D. Maybe you 
>> can use it as a starting point.
>
> Thanks for the suggestions.  I put the question aside for a 
> bit, but yesterday ran across a python transpiler here:
>
>   https://github.com/py2many/py2many
>
> It already has support for C++, Go and others.  Since I have 
> mountains of python code created over many years, maybe it 
> would be worth contributing to this project out of self 
> interest.
>
> Can you take a look at py2many and see what you think about it? 
>  Getting D on the support list might be good.

Hi,

I have made basic py2many.pyd work at language/syntax level in my 
dlang fork:

https://github.com/mw66/py2many/tree/dlang

The following examples works now:

https://github.com/mw66/py2many/tree/dlang/tests/expected

py2many/ 13:56:23$ ls ./tests/expected/*.d
./tests/expected/bubble_sort.d
./tests/expected/cls.d
./tests/expected/fib.d
./tests/expected/import_tests.d
./tests/expected/classes.d
./tests/expected/dict.d
./tests/expected/hello_world.d
./tests/expected/nested_dict.d


I haven't created PR to be merged into the main branch, since 
it's better to pass all the tests.

All the remaining work is to make Python's specific feature (e.g. 
async), library (e.g. complex number, NamedTemporaryFile) work in 
D. There are many things need to be done, if you have time, you 
can pick up from my fork, and work from there. (E.g. you can 
create PR to my branch, and when everything is ready, we submit 
to the main py2many all together).


HTH.



More information about the Digitalmars-d-learn mailing list