From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Linas Vepstas Newsgroups: gmane.lisp.guile.devel,gmane.lisp.guile.user Subject: guile-2.9.1 impressions Date: Wed, 5 Dec 2018 21:56:28 -0600 Message-ID: Reply-To: linasvepstas@gmail.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: blaine.gmane.org 1544068512 32666 195.159.176.226 (6 Dec 2018 03:55:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 6 Dec 2018 03:55:12 +0000 (UTC) To: Guile User , Guile Development Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Dec 06 04:55:07 2018 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gUkkk-0008OD-Rb for guile-devel@m.gmane.org; Thu, 06 Dec 2018 04:55:06 +0100 Original-Received: from localhost ([::1]:38712 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gUkmr-0005oq-G8 for guile-devel@m.gmane.org; Wed, 05 Dec 2018 22:57:17 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50521) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gUkmL-0005ny-I0 for guile-devel@gnu.org; Wed, 05 Dec 2018 22:56:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gUkmK-000877-HT for guile-devel@gnu.org; Wed, 05 Dec 2018 22:56:45 -0500 Original-Received: from mail-it1-x12c.google.com ([2607:f8b0:4864:20::12c]:52711) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gUkmI-000852-CX; Wed, 05 Dec 2018 22:56:42 -0500 Original-Received: by mail-it1-x12c.google.com with SMTP id g76so5132811itg.2; Wed, 05 Dec 2018 19:56:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:reply-to:from:date:message-id:subject:to; bh=njiyPLcDpamurrp60UR638GBMax3v3JBevQi4M/vHw8=; b=AvsRoQZFwSLIHFxobnD6WpCkJx9gulteeqqzLphMV91/1Pdls5vztu+AToLn3Ov3RI ke3SXqnBKGFTvDxMm6DS95aWlm4yMlV5V2tlfySvLebm/GsYRsD5DpiWQTtEnCaN4MkO ZAPKVCcyyJXuCXuM9taiLwnZdic9I7ycLuK3JLzq+74oHtBolKyNkso5/ZuCP+hfqZfj jPUeUhJopB0Mp8VrxXz8FjdBIUT1GdwWdFGS98NYsEfBbgoi+k9RZXbksf+UsPXI92vD LzAaefcb6+emTgiuF3Q5vVkrFRwMx5XN+EYsCR16v8acKnwQLhGZk5vLPq94FolJfx8E 9zjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:from:date:message-id :subject:to; bh=njiyPLcDpamurrp60UR638GBMax3v3JBevQi4M/vHw8=; b=rHZDebwzpV5OOTthMxSVNeI89c0GjYdnm7pnaAgSxnw05W78paaWN06+pFCdIYitCQ rLJVh1XvZsb9LxT/th0npHJk27rANYloek9AH1BRBPGnHPFMEqEdeEmFjl9aqyCvE2kW 2QKXwBqAmIhdMk/VccYjFQgVGTSD8ULIM5+cPae6YIYAXQeb4efRwH6DMamB9zD9av+K UsmiFJkQE6EsvTD57lkO6dJ3/OtPN6/owVsxJ2vHrNq19h/BTCcr7qFX0wb3hDuC/YQ2 n8Tl+A5ki0m7lUjCUFush3+prNMH7pBKQJMgDD+6qApM2SNfBK1VIaGBKx/aDX5JAe+K sz6A== X-Gm-Message-State: AA+aEWb9pVHH83ygMf0d8IMOraR/1X+mzcrzogQQhDERrtTrTgvuOY8v D273ybLg8EpOEYab57oCAFD4syUN/6D+LjNSiSyKXTx6 X-Google-Smtp-Source: AFSGD/UrzQCbpM63uHSNwg4rkDeVjT4yBCFkO8BKBIrHXui2LBTXwVwT7TRzMGIrpmeL+rrouJzQI1RRNLLUZ7Vcbzo= X-Received: by 2002:a05:660c:81a:: with SMTP id j26mr17664894itk.70.1544068601607; Wed, 05 Dec 2018 19:56:41 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::12c X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:19770 gmane.lisp.guile.user:15026 Archived-At: 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