<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi all,<div class=""><br class=""></div><div class="">&nbsp;I would like to give an update on the work of porting TeXmacs to S7. Currently it seems to work well and I'm not aware of serious bugs, but I've still to reorganise the changes and test it more. You can find it here:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/mgubi/texmacs/tree/s7/src" class="">https://github.com/mgubi/texmacs/tree/s7/src</a></div><div class=""><br class=""></div><div class="">in the README.md file you find also some results of running some r7rs benchmarks against S7 and Guile 1.8, Guile 3.0.4. Based on them I still expect to be able to have better performance of TeXmacs/S7 vs. TeXmacs/Guile1.8. Currenlty the startup time is 4x faster, but compiling the full user manual (~120 pages) takes 20 sec for S7 and 15 sec for Guile 1.8.&nbsp;</div><div class=""><br class=""></div><div class="">Best,</div><div class="">Max</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 2. Jan 2021, at 17:13, Massimiliano Gubinelli &lt;<a href="mailto:m.gubinelli@gmail.com" class="">m.gubinelli@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Glad to be of help. :)<br class=""><br class="">I've made some progress on my side. I was looking at the way c_function_is_ok works and I noticed that globally defined symbols have a preferred treatment, so I modified tm-define in order to introduce the new bindings in (rootlet) and not in *texmacs-module* (a sublet of rootlet) and it indeed improved the runtime of menu-expand of 10x, bringing back usual performance of TeXmacs. So it seems there is some hope :)<br class=""><br class="">Guile 1.8 runs the tm-defined (fib 30) test in 1770 msec while S7 now runs it in 227 msec. Strangely however Guile 1.8 can run a typical menu-expand invocation in 3 msec while S7 now runs it in 94 msec, so there seems to be still a gap somewhere. <br class=""><br class="">It is a pity however that I have to pollute the rootlet with all my symbols. I would have liked to keep them in a sublet. Is there any way one can introduce some caching to improve symbol lookup in function application?<br class=""><br class="">Best<br class="">Max<br class=""><br class=""><br class=""><blockquote type="cite" class="">On 2. Jan 2021, at 00:57, <a href="mailto:bil@ccrma.stanford.edu" class="">bil@ccrma.stanford.edu</a> &lt;<a href="mailto:bil@ccrma.Stanford.EDU" class="">bil@ccrma.Stanford.EDU</a>&gt; wrote:<br class=""><br class=""><blockquote type="cite" class="">(define fib (lambda args #f))<br class="">(set! fib (lambda (n) (if (&lt; n 2) n (+ (fib (- n 1)) (fib (- n 2))))))<br class=""></blockquote><br class="">argh -- that tickles a bug in s7 -- change it to<br class="">(define fib (lambda (n) #f)) then the set!, and s7<br class="">stupidly uses the old version of fib in the lambda body!<br class="">I can't believe I never noticed this. &nbsp;Thanks!<br class=""><br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></div></body></html>