delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/11/18/03:24:36

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: <alpine.DEB.2.00.1611180846390.7286@igor2priv>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019