X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Tue, 25 Aug 2015 05:56:41 +0200 (CEST) X-X-Sender: igor2 AT igor2priv To: "al davis (ad252 AT freeelectron DOT net) [via geda-user AT delorie DOT com]" X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu" From: gedau AT igor2 DOT repo DOT hu Subject: off-topic: daydreaming about modularization (was: Re: [geda-user] Buttons for automation (obligatory grab at our shared 3rd rail) Re: [geda-user] Antifork) In-Reply-To: <201508242052.28189.ad252@freeelectron.net> Message-ID: References: <6B8DDCCF-0E84-43DC-94A3-89CE0E56F0ED AT noqsi DOT com> <201508242052 DOT 28189 DOT ad252 AT freeelectron DOT net> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) 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 Mon, 24 Aug 2015, al davis (ad252 AT freeelectron DOT net) [via geda-user AT delorie DOT com] wrote: > Gschem and PCB both need to "fork" to rearchitect to use plugins > like gnucap does. Wow. Didn't expect this to come around. I fully agree on this. My GPMI project, that now adds scripting to pcb-rnd is actually a framework not about scripting, but about converting things into loadable/linkable plugins. Script support is just a side effect (coded as plugins...) pcb has a nice plugin system too, for HIDs. It makes some parts of pcb modular and replacable, but the does not allow splitting up the core into plugins. I was considering a pcb-gpmi-rewrite fork some years ago, really moving everything out into plugins but I didn't start it because of the sheer amount of work to be done. Currently pcb-rnd is the original design with the gpmi part being optional, implemented as a pcb-plugin. It's a suboptimal solution, but it was something I could achieve in finite time. While hacking random parts of pcb-rnd, I figured some parts of the core would have to be improved or even rewritten. Mostly because they implement a not-generic-enough model of the world (I agree with John on this one: building simple objects from a set of few, simple atoms then even more complex objects from the simple objects is the way). I think the code modularization effort doesn't make sense without this sort of model modularization step. Yes, this would mean new file formats (but not sql or sqlite for me, that's for sure). Then all the burried/blind vias, text on footprint, etc. would be supported. It's not mainly a question of a file format, it's mainly the question of the internal representation. The file format is just an interface to that. However.... It's pure daydreaming. If I had a year off and very strong drive to do it, I'd do it. But I don't have a year off. The drive is low too: even with the clumsy modelling John likes to keep bashing pcb for, it works surprisingly well in practice. Even with some features like blind admittedly vias missing. Even if the silk layers are "+2" hacks all around the code. Regards, Igor2