X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com From: Christian Riggenbach To: geda-user AT delorie DOT com Subject: Re: [geda-user] Using Lua to safely read configuration and layout files (program attached) Date: Sun, 08 Feb 2015 12:47:39 +0100 Message-ID: <3709636.NVszrDDjOR@jasum> User-Agent: KMail/4.14.4 (Linux/3.18.4-1-ARCH; KDE/4.14.4; x86_64; ; ) In-Reply-To: <20150208003842.63db8a55@jive> References: <32380475 DOT xlWdxyhFd9 AT jasum> <20150208003842 DOT 63db8a55 AT jive> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" 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 Sunday 08 February 2015 00.38:42 you wrote: > I wouldn't use ANY scripts in the PCB or sch file. That would make life > very hard. I think the approach of Jason White to prohibit the execution of scripts in the loading stage is great. No loops, ifs or other constructs, just tables with function-"pointers". > I'd use to parse the data in a > file. This is the task to be done, just don't overcomplicate the solution. I > would be happy if it was Lua, but we could roll our own language and > parser. I wouldn't write another custom parser. I would harness the power of an existing parser and define a couple of functions like schematics.line(), schematics.pin() etc. to define the data. Then some middlelayer to generate the netlist. Now you have all the data with a simple interface. With a object oriented aproach, you could also define a object for the attributes like the coordinates, refdes etc. with proper recursion (define in the symbol, overwrite in the instance) for free. Embedding the symbols would be a mater of defining them in the header, so you could have selfcontained schematics with a "schematic-globaly" editable instance. Also serialising the data in lua is relatively easy, there are different preexisting modules out there. To write another with custom logic like alphabetic sorting with the refdes, or top left to bottom right for free lines and nets should be possible. If you use an versioning system for the schematics today, you get a mess of chopped "gibberish" now, as the normal line based patches are not human readable. > If there is something we can do, it doesn't mean we must do it. Yeah, absolutely. I'm just brainstorming ;) I'm no fanboy of lua, but with an standartised, scriptable data format, adding a custom netlister or other small housekeeping jobs like autonumbering, autoslotting should be straightforward. My dream would be a console in gschem (or standalone) for executing our own scriptlets directly on the life data. -- mit freundlichem Gruss Christian Riggenbach