lilypond-user
[Top][All Lists]
Advanced

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

Re: Lilypond lobbying?


From: David Kastrup
Subject: Re: Lilypond lobbying?
Date: Thu, 25 Aug 2011 14:59:09 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Jan Nieuwenhuizen <address@hidden> writes:

> David Kastrup writes:
>
>>> - develop a GUI fro easy tweaking
>>
>> That would be interesting.
>
> Plug: http://lilypond.org/schikkers-list/

It links to a Lilypond report with a non-existing link.  One can go to
the general Lilypond report page and click on the direct article link in
order to get an SQL error.

Anyway, I guess Schikker's list would become more interesting if
Lilypond was able to save the typesetting and layout optimization state
at the start of a page.  Which is point of contradictory since the
actual start of page is determined in colloboration with global
optimization following afterwards, so one can go for reasonably frequent
snapshots instead.

Now here is one way to do this in a ridiculously primitive manner:
decide on a refresh time you consider tolerable.  Start a lilypond
process, and a timer task that fires a timer signal with the refresh
rate.  When the timer fires, fork the process, suspend the child, record
all open file positions, and continue with the process.

Now if you edit the main source file and say refresh, take the position
of the first change in the file and look up the last suspended child
that has not yet seen the changed file position, throw away all
suspended children after that child, fork a new one and let the
compilation commence from where you left off.

Of course this requires that Lilypond does most of the hard processing
while reading the input, and produces output as soon as it can.

And one should likely check what one can do to let guile help more with
fork's copy-on-write page semantics than it likely does (I can imagine
that the average garbage collection is not particularly
copy-on-write-friendly).

-- 
David Kastrup




reply via email to

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