X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Wed, 7 Sep 2016 13:22:15 +0200 (CEST) From: Roland Lutz To: "Vladimir Zhbanov (vzhbanov AT gmail DOT com) [via geda-user AT delorie DOT com]" Subject: [geda-user] Attribute namespaces (was: Can an attribute be attached to text for later inclusion in gnetlist backend?) In-Reply-To: <20160906213426.GA10224@localhost.localdomain> Message-ID: References: <20160823053301 DOT 865f671a1b40b5a422e59ce7 AT gmail DOT com> <20160824185818 DOT GD14293 AT localhost DOT localdomain> <20160831221409 DOT GA2585 AT localhost DOT localdomain> <20160906213426 DOT GA10224 AT localhost DOT localdomain> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed 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 On Wed, 7 Sep 2016, Vladimir Zhbanov (vzhbanov AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > Having been thinking before of all the ambiguous attribute names we have > in geda where each gnetlist backend has its own vision on their use, now > I think every one of them being non-compatible with others should have a > different backend-specific name. Say, you cannot use the same toplevel > entity/module definition for vhdl, verilog and spice. I've been thinking about that, too. Prefixing attributes with the "problem domain" they're used for has several advantages: first, it would solve the old problem with re-using attributes, like "pinseq" being used by both the netlister itself (for slotting) and the SPICE backends, and the much-overloaded "device" attribute. Second, given that there's no exhaustive attribute list for gEDA, it would make it more obvious where the information in a particular attribute actually goes. Backends which share a "problem domain" should probably access the same attributes (e.g., the 'bom', 'bom2', 'partslist1', 'partslist2', and 'partslist3' backends), so I suggest using attribute "namespaces" which backends can share or not share as appropriate: spice:pinseq spice:model-name bom:device bom:nobom pcb:footprint In order to avoid breaking older schematics, backends would obviously have to probe for the legacy attribute names, too (though it may be possible to hide this in the API).