Mail Archives: geda-user/2016/11/18/03:24:36
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
- Raw text -