So I pulled guile-2.9.1(beta) today, and gave it a spin. Looks good/great! One bug -- some crazy multithreading bug, reported as #33641
My use case: guile calling C++ code, which calls guile, which calls C, ad nauseum. I have some 133 unit tests, of which maybe 3/4ths tweak guile in some way. All but the multi-threading pass, so happy! Some comments about performance in this crazy-quilt mixed environment. Most of code, both guile and C/C++ is fairly "thin", not doing a whole lot, before transitioning into the other language. Thus, the performance is dominated by the cost of the switch. There are two different switches: from C++ to guile, and from guile to C++. For the first, I'm seeing a rate of about 30K switches/sec C++ into guile (and back, this includes the return). Calls going the other way are about 800K switches/sec from guile into C++ (this also includes the return). This is on a 2014-vintage machine. Clearly a big difference between the two. Many years ago, I profiled this, but don't recall the results. The profile did not reveal anything I could control very much or at all. Thus, In this scenario, I don't really expect the gnu lightning bytecode to affect performance very much; I'm mostly bottlnecked in the switching of environments. FWIW, I'm seeing speedups of 1x to 1.5x for interpreted mode, and 1.3x to 2x for compiled code. Don't read too much into these numbers: They're crazy mixes of calls going in both directions. But still, that's really quite good, all things considered! -- Linas I cc'ed both guile-user and guile-devel; I'm not subscribed to guile-devel, but also I did not see a 2.9.1-beta announce on guile-user! -- cassette tapes - analog TV - film cameras - you