lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Status of Guile 2.0 Support (Next Debian release won't ship guile-1.


From: David Kastrup
Subject: Re: Status of Guile 2.0 Support (Next Debian release won't ship guile-1.8)
Date: Sun, 21 Sep 2014 21:20:07 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Don Armstrong <address@hidden> writes:

> Could you point me at a list of guile 2.0 bugs which are affecting
> lilypond? Having that list handy would help me convince the guile
> maintainer (and also Debian's release managers and security) that
> there were valid reasons to keep guile 1.8 for another release of
> Debian.

At the current point of time I cannot point to anything that I consider
beyond workaround.  There are a number of stunners (for a recent one,
check out <URL:http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18495>) that
make it likely that no application really uses the C APIs for
interfacing data into GUILE all that much.

GUILE2 also has reverted to using the Boehm garbage collector.  Let me
quote from its FAQ at <URL:http://www.hboehm.info/gc/faq.html>:

    If my heap uses 2 GB on a 32-bit machine, won't every other integer
    or other random data be misinterpreted as a pointer by the
    collector? Thus won't way too much memory be retained?

    Maybe. Probably, if the collector is used purely conservatively,
    with no pointer layout information (such as use of
    GC_MALLOC_ATOMIC).

    With a gigabyte heap, you are clearly much better off on a 64-bit
    machine. Empirical evidence seems to suggest that some such
    applications work on a 32-bit machine, and others don't perform
    acceptably.

LilyPond is a large application, and obviously lots of people are
running 32bit systems (I am one of them).  Some people are running
LilyPond on large files: if the garbage collector goes out of commission
on those files, they won't be happy.

I am currently in the situation that when starting the regtests with
10 processes, the processes crash one by one, with the last one lasting
a bit over a minute.

Several of those crashes look like being garbage collection related
(basically, memory is freed in spite of being still in use, actually the
opposite of the situation described in the FAQ), and very hard to debug.

It's not clear how long I'll take to wear down the bugs.  Half of them
are other things that go "ugh", like GUILE being of the opinion it knows
how to deal with various character encodings, reinterpreting strings as
byte streams and vice versa in situations where it does not make sense.

I'll probably have to tell GUILE "everything is in Latin-1" as a first
approach which will, of course, lead to its own share of problems.  To
be fair, most of them are already in GUILE1.  But at least they are
reasonably well-understood, as opposed to what GUILE2 does.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]