OK, though I've been pretty distracted I'm still moving towards a beta release for the SmallC lib. I want to be able to freeze the interface so that there will be backwards compatibility from any further versions.
ESR recently made a blog post about "Defect Attractors" -- design features that are easily misused or otherwise sort-of encourage bugs. As you can imagine, shims from one language to another (say, an assembly ROM API to a C lib...:) are big offenders here, if only because the mindset of the "hidden" language still tends to be visible in the interface and that's jarring. I've been thinking about this, and one function in particular keeps jumping to my mind. prsnam(). The current prototype is prsnam(char *s, int i) parses a file.do filename into the FILNAM system variable as FILE DO s=filename i=length of filename. And I see a Defect Attractor here! If a proper C function wants to know the length of a string it calls freaking strlen() on it. It does not expect the caller to do its job for it. So I propose to replace it with prsnam(char *s) that will call strlen() itself, making the interface a little simpler and removing a Defect Attractor. Any thoughts? Willard -- Willard Goosey [email protected] Socorro, New Mexico, USA I search my heart and find Cimmeria, land of Darkness and the Night. -- R.E. Howard
