[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Python-on-guile
From: |
Mikael Djurfeldt |
Subject: |
Re: Python-on-guile |
Date: |
Sun, 25 Apr 2021 10:20:24 +0200 |
Nice!
I guess it would be nice if "continue" *could* be compiled efficiently.
And, as you indicate, perhaps that would amount to efficiently compiling
let/ec.
Best regards,
Mikael
On Sat, Apr 24, 2021 at 5:19 PM Stefan Israelsson Tampe <
stefan.itampe@gmail.com> wrote:
> Guile is 3x faster then fastest python-on-guile which is 2x faster then
> python3 Cpython
>
> attached is a guile corresponding program.
>
> On Sat, Apr 24, 2021 at 4:41 PM Stefan Israelsson Tampe <
> stefan.itampe@gmail.com> wrote:
>
>> To note is that 'continue' is killing performance for python-on-guile
>> programs, so by changing the
>> code to not use continue lead to python-on-guile running twice the speed
>> of python3. The reason is that
>> the while loop is used as
>> (while (...)
>> (let/ec continue
>> ...))
>>
>> And the let/ec is probably not optimally compiled. Python-on-guile will
>> check the loop for continue usage and if not then it will skip the let/ec.
>>
>> I attached the code not using continue
>>
>> On Sat, Apr 24, 2021 at 2:59 PM Stefan Israelsson Tampe <
>> stefan.itampe@gmail.com> wrote:
>>
>>> Actually changing in (language python compile),
>>>
>>> (define (letec f)
>>> (let/ec x (f x))))
>>>
>>> To
>>>
>>> (define-syntax-rule (letec f)
>>> (let/ec x (f x))))
>>>
>>> Actually lead to similar speeds as python3.
>>>
>>>
>>>
>>> On Sat, Apr 24, 2021 at 1:26 PM Stefan Israelsson Tampe <
>>> stefan.itampe@gmail.com> wrote:
>>>
>>>> Pro tip, when running this on guile the scheme code that it compilse to
>>>> is located in log.txt.
>>>> If you ,opt the resulting code in a guile session you might be able to
>>>> pinpoint issues that
>>>> delays the code execution.
>>>>
>>>> On Sat, Apr 24, 2021 at 12:04 PM Mikael Djurfeldt <mikael@djurfeldt.com>
>>>> wrote:
>>>>
>>>>> (I should perhaps add that my script doesn't benchmark the object
>>>>> system but rather loops, conditionals and integer arithmetic.)
>>>>>
>>>>> Den fre 23 apr. 2021 17:00Mikael Djurfeldt <mikael@djurfeldt.com>
>>>>> skrev:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Yesterday, Andy committed new code to the compiler, some of which
>>>>>> concerned skipping some arity checking.
>>>>>>
>>>>>> Also, Stefan meanwhile committed something called "reworked object
>>>>>> system" to his python-on-guile.
>>>>>>
>>>>>> Sorry for coming with unspecific information (don't have time to
>>>>>> track down the details) but I noticed that my benchmark script written in
>>>>>> Python, and which computes the 20:th Ramanujan number, now runs 60%
>>>>>> faster
>>>>>> than before these changes.
>>>>>>
>>>>>> This means that python-on-guile running on guile3 master executes
>>>>>> python code only 2.6 times slower than the CPython python3 interpreter
>>>>>> itself. :-)
>>>>>>
>>>>>> Have a nice weekend all,
>>>>>> Mikael
>>>>>>
>>>>>>
- Python-on-guile, Mikael Djurfeldt, 2021/04/23
- Re: Python-on-guile, Zelphir Kaltstahl, 2021/04/23
- Re: Python-on-guile, Linus Björnstam, 2021/04/23
- Re: Python-on-guile, Matt Wette, 2021/04/23
- Re: Python-on-guile, Mikael Djurfeldt, 2021/04/24
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/24
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/24
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/24
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/24
- Re: Python-on-guile,
Mikael Djurfeldt <=
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/25
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/25
- Re: Python-on-guile, Dr. Arne Babenhauserheide, 2021/04/25
- Re: Python-on-guile, Vivien Kraus, 2021/04/25
- Re: Python-on-guile, Stefan Israelsson Tampe, 2021/04/25
- Re: Python-on-guile, Nala Ginrut, 2021/04/27