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 >>> 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 >>>> 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 >>>>> >>>>>