X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f Date: Tue, 8 Dec 2015 15:19:24 -0500 Message-Id: <201512082019.tB8KJOlP030874@envy.delorie.com> From: DJ Delorie To: geda-user AT delorie DOT com In-reply-to: <20151208205451.bb2478f8722e1a885822689d@gmail.com> (geda-user AT delorie DOT com) Subject: Re: [geda-user] gsch2pcb after refdes-renum? (If implemented syncronization detail) References: <56658683 DOT 401 AT envinsci DOT co DOT uk> <20151207153821 DOT c2ac19e6f24b1776a3595e4a AT gmail DOT com> <20151208091411 DOT c8968b0bedb705765529176c AT gmail DOT com> <201512081819 DOT tB8IJBrt022764 AT envy DOT delorie DOT com> <20151208205451 DOT bb2478f8722e1a885822689d AT gmail DOT com> Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > Changes compare schematic file with pcb file so it is done manually > and I guess it is fine like this. For idempotent changes applying > them more than once make no difference. What we have now breaks down in a simple case. Consider: we want to rename U1, U2, and U3 to be U2, U3, and U1 (note the cyclic dependency). ExecuteScript() would have something like this: Rename(U1,U2) Rename(U2,U3) Rename(U3,U1) There is no "correct" order to do these in, but even if the script is smart enough to use a temporary name for one of the symbols, or pcb was smart enough to know old vs new names, running the script twice would "rotate" the names again. Hence, my position that something other than refdes is needed to identify "this symbol" or "that gate". Tracking the lifetime of a symbol so you can refer to "the one I used back when" is the trick part I was asking about. If we really want to cleanly support simple operations like "rename a part" we need to change gaf's dependency on the name identifying "the part", and start treating the refdes like any other generic attribute.