lilypond-auto
[Top][All Lists]
Advanced

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

[Lilypond-auto] Issue 2449 in lilypond: Redesign stream event class repr


From: lilypond
Subject: [Lilypond-auto] Issue 2449 in lilypond: Redesign stream event class representation
Date: Thu, 29 Mar 2012 20:39:04 +0000

Status: Accepted
Owner: ----
Labels: Type-Defect

New issue 2449 by address@hidden: Redesign stream event class representation
http://code.google.com/p/lilypond/issues/detail?id=2449

With the current design, extending event classes is not feasible. Utterly broken is the approach in

commit 552df4791dc0ed890e92c8a37bd2676267ebd90f
Author: Mike Solomon <address@hidden>
Date:   Mon Oct 4 00:19:10 2010 +0100

    Add `define-event-class' and scheme spanner regtest


since it exposes non-local structures in its definition of define-event-class and is unsuitable for multiple-file compilations.

It was introduced as
Issue 1238:[PATCH] Extra check in define-event-class
<URL:http://code.google.com/p/lilypond/issues/detail?id=1238>

(never mind the misleading issue name) with the review
<URL:http://codereview.appspot.com/1867050>.

This needs to be done differently to confine extended event classes to one parser incarnation.

Since most of the involved functions and functionality don't have actual access to the parser, it is not feasible to use a parser variable for this purpose. Instead it would make sense to fold this into the layout definitions. If one takes a look at how grobdefinitions make it into the layout, it turns out that they are just inserted as initial grob properties, via a context modification in the global context.

To me it would appear to make sense to obliterate ancestor-lookup, at least its permanent use: it would seem reasonably straightforward to replace the symbol in "class" with the respective _list_ of symbols returned by ly:make-event-class.

One has to see what the best way to get it in there would be.





reply via email to

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