On Fri, 2008-12-19 at 21:22 -0800, Edward Hennessy wrote:
> On Dec 18, 2008, at 7:16 AM, Peter Clifton wrote:
> >
> > Each file we compile takes a certain overhead of time. For  
> > collecting a
> > few simple routines such as m_*_shortest_distance(), I'd prefer to see
> > one new file, m_gemetry.c rather than several small files. Having lots
> > of very small files also makes navigating and editing the source  
> > harder
> > in some cases.
> 
> I can see m_box.c and m_circle.c gaining functions over time.  If so,  
> keeping them in separate files increases each module's cohesion.   
> Keeping the function name's prefix the same as the base filename seems  
> to follow a convention in the code.  Also, having the function name's  
> prefix associated with the first parameter ("this") also seems to  
> follow a convention in the code.  These two conventions have made  
> navigating the code relatively easy for me.

Ok, I'll put those back. (I was just about to push some changes out).

Join me on #geda at irc.seul.org?

> I don't mind which way this goes, but so far, the changes I've been  
> asked to make to my patches are inconsistent.  I've been asked to use  
> glib numeric constants instead of C constants, then use C fundamental  
> types instead if glib types.

I'm going to duck out of any debate here. As you point out, that is a
bit contradictory. I don't know why we're avoiding C constants, nor for
that matter why glib defines gdouble etc..

> Is eliminating libgeda's dependency on glib really a requirement?

No, that was probably a dumb reason to choose. However, conventions I
see in other such libraries is to avoid exposing types which are
dependant on the platform. GLib is a fairly decent portability layer
which we use a lot in libgeda, so no - it won't be going away any time
soon.

> > What about altering the prototype of the o_shortest_distance()  
> > routine:
> >
> > +double shortest_distance (OBJECT *object, int x, int y, int  
> > override_solid)
> 
> This would eliminate the other switch statement.  A definite  
> improvement.

Cool, I've implemented that.

> Also, I would create a wrapper function so the override_solid  
> parameter is not exposed in the public interface.  The parameter  
> causes specialized behavior required internally by libgeda, so hiding  
> it from the public interface seems appropriate.

Could do, but I wouldn't bother. 

> (Off the subject:  I've created switch statements where cases were in  
> numerical order with no gaps, and the GNU compiler optimized it to a  
> jump table.  I was amazed.  I've never seen that with any other  
> compiler.)

That's pretty keen of it! Does that behaviour depend on the ordering of
case statements?

> The functions in m_box.c and m_circle.c are more generic.  The  
> proposed function prototype in o_basic.c would be specialized for  
> object selection.  If libgeda gets used for more applications in the  
> future, it is probably better to keep the functions on the generic side.

Ok, I'll put them back before I push.

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



_______________________________________________
geda-dev mailing list
geda-dev@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to