X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Fri, 18 Nov 2016 09:24:34 +0100 (CET) X-X-Sender: igor2 AT igor2priv To: 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 cc: pcb-rnd AT list DOT repo DOT hu Subject: [geda-user] [pcb-rnd] Test sprint and cleanups Message-ID: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Reply-To: geda-user AT delorie DOT com Hi all, hereby I invite you to the next pcb-rnd test sprint which will be held on 26th Saturday (+- you timezone): http://repo.hu/cgi-bin/pcb-rnd-people.cgi?event=tsprint3 Context in time: http://www.repo.hu/cgi-bin/pcb-rnd-people.cgi?cmd=timeline We are going to test the result of the major code cleaning that took place in pcb-rnd in the past 2 weeks: 1. I've reorganized core from operation-centric to object-type-centric The old code had remove.c (move.c, copy.c, etc.) that knew how to remove lines, arcs, elements, etc.; the new code has obj_line.c, obj_arc.c, obj_elem.c, each knows how to do all operations on that one given object type. This will allow us to change and extend existing objects more easily and to add new object types. Long term this will also allow us to have new object types registered by optional plugins. This also opens the possibility of a real object model cleanup, e.g. elements that can contain anything a board can contain, maybe font could support arcs and polygons. All the endless, annual threads about this topic would turn into actual code. If you are iterested in the object extension or want to have new objects, join the project as an user/tester or developer/contributor. 2. I've renamed (most) public symbols to have pcb_ or PCB_ prefix. I've also unified naming conventions and renamed a few oddly named symbols to get the code more readable, e.g. element's "nameonpcb" to "refdes". On the way doing 1., I also managed to remove most of the "largish collection of random things" headers that were included by most source files, e.g. global.h, misc.h. This led to losing some of the "everything is connected to everything else" structure of the core. Islands of standalone features that are not depending on all the rest of the code started to emerge. These will allow us to split up core even more, providing a set of smaller pcb-rnd-libraries that can be used by other software. The first, lowest level library would include the unit handling and string <-> coord conversion, including pcb_get_value() and pcb_printf(). All this without pulling in all the of the code (arcs, polys, etc.). This lib might be useful even outside of the PCB domain. I plan to reuse these libraries in gsch2pcb-rnd and later in cschem. 3. along the way I've identified and removed some dead code, out-of-date comments, removed a lot of #includes as inter-dependencies got reduced. Regards, Igor2