mal icon indicating copy to clipboard operation
mal copied to clipboard

An Implementation in Python with a Compiler

Open jcguu95 opened this issue 11 months ago • 1 comments

Hello Joel Martin! Thanks for your inspiring work! Based on your python implementation, I implemented a compiled version: python-compile. It passes all relevant tests (for step2 to stepA, regular and soft), and it is 16 times faster per the performance test suite.

[./mal]$ make "perf^python"
----------------------------------------------
Performance test for python:
Running: env STEP=stepA_mal MAL_IMPL=js python_MODE=python ../python/run ../tests/perf1.mal
Elapsed time: 1 msecs
Running: env STEP=stepA_mal MAL_IMPL=js python_MODE=python ../python/run ../tests/perf2.mal
Elapsed time: 4 msecs
Running: env STEP=stepA_mal MAL_IMPL=js python_MODE=python ../python/run ../tests/perf3.mal
iters over 10 seconds: 9311

[./mal]$ make "perf^python-compile"
----------------------------------------------
Performance test for python-compile:
Running: env STEP=stepA_mal MAL_IMPL=js ../python-compile/run ../tests/perf1.mal
Running: env STEP=stepA_mal MAL_IMPL=js ../python-compile/run ../tests/perf2.mal
Running: env STEP=stepA_mal MAL_IMPL=js ../python-compile/run ../tests/perf3.mal
iters over 10 seconds: 148519

Would you like to merge this, or would you rather keep this maintained separately? Please let me know.

Cheers, Jin

jcguu95 avatar Mar 20 '24 23:03 jcguu95

@jcguu95 If it can be restructured to fit the code layout of other implementations (https://github.com/kanaka/mal/blob/master/docs/FAQ.md#code_split) then I would be willing to consider merging it. Otherwise, if that's too complicated or unwieldy then keeping it separate is probably best. Although I would be happy to include a link to it in the top level README if you like in the "External Implementations" section.

kanaka avatar Aug 06 '24 19:08 kanaka