[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] local groups, use as archive



On 16 Feb 2001, Matthias Andree wrote:

> phil hunt <philh@xxxxxxxxxxxxxxxxxxxxxx> writes:
> 
> > > That's an implementation issue. The overall code quality in leafnode is
> > > not good, particularly, error detection and propagation leave much to
> > > desire.
> > 
> > I find the leafnode code hard to read; C functions spanning hundreds
> > of lines are not to my taste.
> 
> Not to mine either, and it's not used securely, as macro assemblers such
> as C :*) seldomly are. Seriously, the ANSI-C libraries encourage unsafe
> programming, and some old APIs are really broken (gets - fixed buffer,
> no length limiting possible; fgets - does not report back the count of
> characters read, so you can't tell \0 from \n; string handling)

And before we had snprintf(), sprintf() had buffer lengthy problems.
 
> > Two I've used -- Agent and Turnpike -- both use proprietary formats.
> > Another one, KA9Q for DOS, used what look like a mailbox format 
> > (though that program is hardly ever used now).
> 
> Ok, so an archive might be an option in leafnode later on. However, I'd
> really like to clean things up and get the cruft out, if it's not
> happening for 2.0, it's never happening...

I think this is probably accurate. I'd like to see the leafnode code
cleaned up. 
 
> I'm wondering if switching to C++ would buy us anything, because it
> would require reworking all APIs and group libraries functions and data
> structures into classes, but I'm not feeling like spinning of yet
> another leafnode derivative to try it, I don't have the time to do it;

If there was a group effort to do this, I'd be happy to lend a hand.

> and then again, a rewrite from scratch might be much cleaner, and
> Cornelius is not there at the moment to comment, and I presume he might
> not be too inclined to switch. C++ would bring some portability issues,

Would it? What?

My understanding is that gcc is portable, and runs on lots of platforms.

> and with some real passing around of classes, it gets a space and
> performance issue as well.

This depends entirely on how well-coded it is. Well-written C++ shouldn't
require any more resources performance-wise than well-written C.

> It might be like working around broken old
> STL,

If the STL isn't very good, we could always write container classes local
to leafnode; they aren't that difficult to do. (Which reminds me, I've
got a string/stream library to clean up and publish).

> working around old compilers and things, which would then
> compensate the advantages somewhat.

Would it not be possible to specify gcc as the compiler? Or use a
subset of C++ (e.g. no templates or exceptions) that gets round some
of the problems.

Leafnode could probably be re-written in Python quite
quickly; unfortunately performance would be too slow, I think.

-- 
***** Phil Hunt ***** 
"An unforseen issue has arisen with your computer. Don't worry your silly 
little head about what has gone wrong; here's a pretty animation of a 
paperclip to look at instead."
         -- Windows2007 error message



-- 
leafnode-list@xxxxxxxxxxxxxxxxxxxxxxxxxxxx -- mailing list for leafnode
To unsubscribe, send mail with "unsubscribe" in the subject to the list