From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: David Kastrup Newsgroups: gmane.lisp.guile.user Subject: Re: GNU Guile 2.1.7 released (beta) Date: Tue, 28 Feb 2017 10:38:35 +0100 Organization: Organization?!? Message-ID: <877f4ahcys.fsf@fencepost.gnu.org> References: <87y3x3zt6v.fsf@pobox.com> <87tw7kviu6.fsf@pobox.com> <87k28fmqhu.fsf@web.de> <8760jwvnql.fsf@pobox.com> <87y3wqpvgs.fsf@pobox.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1488274872 14564 195.159.176.226 (28 Feb 2017 09:41:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 28 Feb 2017 09:41:12 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Feb 28 10:41:04 2017 Return-path: Envelope-to: guile-user@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 1cieHD-0002Mg-8r for guile-user@m.gmane.org; Tue, 28 Feb 2017 10:40:59 +0100 Original-Received: from localhost ([::1]:59716 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cieHG-0001rf-5R for guile-user@m.gmane.org; Tue, 28 Feb 2017 04:41:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51704) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cieFM-0000io-Ij for guile-user@gnu.org; Tue, 28 Feb 2017 04:39:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cieFJ-0003H8-Co for guile-user@gnu.org; Tue, 28 Feb 2017 04:39:04 -0500 Original-Received: from [195.159.176.226] (port=45579 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cieFJ-0003Gt-6R for guile-user@gnu.org; Tue, 28 Feb 2017 04:39:01 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1cieF5-0006uw-W9 for guile-user@gnu.org; Tue, 28 Feb 2017 10:38:47 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 93 Original-X-Complaints-To: usenet@blaine.gmane.org X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw Cancel-Lock: sha1:FUXrNht6WhY3gqdJER1k+kyReME= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13356 Archived-At: Andy Wingo writes: > On Tue 28 Feb 2017 00:00, Thomas Morley writes: > >> The main problems/TODOs are listed here (same for guile-2.0.13 and 2.1.7): >> https://ao2.it/tmp/lilypond-guile2/TODO >> With no warranty for completeness. >> >> Let me pick some of them: >> (1) >> lilypond filename_名字.ly >> returns >> fatal error: failed files: "filename_??????.ly" > > Interesting, I would have thought that there would be a difference > between 2.0.13 and 2.1.7 due to GUILE_INSTALL_LOCALE; I assume you are > in a UTF-8 locale and that file name is UTF-8? > >> (2) >> Floating point numbers are different in some decimal digits. >> Possible impact on spacing in a regression-test for utf-8. > > If you have more details on the floating-point issue, they are very > welcome :) > >> (3) >> Most imortant for users: >> LilyPond slowed down dramatically. Today I tested a huge file: >> >> lilypond 2.19.52 with guile-1.8 >> >> real 9m8.229s >> user 6m41.156s >> sys 0m11.940s >> >> lilypond 2.19.56 with guile-2.1.7 >> >> real 48m45.225s >> user 65m43.252s >> sys 0m6.320s > > Do you have Guile 2.0 numbers as well? > > I understand that Lilypond uses the "local-eval" facility a lot for > embedded Scheme. It doesn't use it at all. > This is a facility that was indeed faster in 1.8. I would expect that > 2.1.7 would be faster than 2.0, if that were the case, as 2.1.7's > evaluator is faster. Hard to say, though. That interface does not > get a lot of speed attention. We could take a look and see what we > can do. I guess we need some profiling first. Moot. What used to be done with local-eval before we had to come up with a replacement (at that time, it did not appear like the facility would be available until the migration to Guile 2.0 was completed) is a lambda capture: the _forms_ that would have been used in local-eval are already with some reliability determinable at the time the environment is captured, so instead of capturing the local environment, the forms to be evaluated later are captured as individual lambda functions in that environment. The feature implemented in this manner is the #{ ... #} construct for embedding LilyPond. It is used extensively but not likely in performance-critical contexts. Regular read and eval, however, is used a lot during the parsing of files and startup of LilyPond. But at least under Guile-1.8, the parsing and preprocessing took up a rather small part of the overall runtime (in the order of 15% or so), so it is unlikely to be responsible for the bulk of the slowdown. My personal guess is that the largest performance impact at the moment will be due to an absence of generation and installation of .go files. Since .go files are target-dependent (if I am not mistaken) and LilyPond is cross-compiled for a number of architectures with different byte orders and type sizes, it seems tricky to get this under wraps. The next largest performance impact will be redecoding issues. > Can you run lilypond under callgrind under 1.8 and 2.1.7 and attach the > generated callgrind.out.PID for each run? Run like this: > > valgrind --tool=callgrind --num-callers=20 lilypond foo.ly > > Thanks, > > Andy -- David Kastrup