Mercurial > ~dholland > hg > ag > index.cgi
diff doc/admin/todo-small.txt @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/admin/todo-small.txt Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,148 @@ +Small todo items + +This file describes the smaller and more code-oriented things that +need to be done. + +------------------------------------------------------------ +POSSIBLE BUGS + + - AgStackStorage::~AgStackStorage (in support/agstack.cpp, near the +bottom) has a bogus delete call. See comment there. + + - There's some thread locking in a few places (one being +openfile.cpp, another being stacks.cpp) and most of it appears to be +pretty bogus. This should be cleaned up. (Note: the ICritSec class is +really a locking hook, not a lock; all ICritSec instances appear to be +connected to a single big global lock. How lame. Also, why do Windows +people insist on creating "critical section" objects? A critical +section is a piece of *code*.) Relatedly, rewrite/replace resource.h. + + - fence_ng in myalloc.cpp will probably blow up on non-intel +architectures. All of myalloc.cpp should probably be revamped. + + +------------------------------------------------------------ +CODE CLEANUP + + - There are quite a few uses of sprintf and vsprintf about. These +should be replaced with snprintf and vsnprintf. + + - Should fix up any code that warns when -fno-strict-aliasing is +turned off. + + - fix up the configuration parameters so they aren't all defined in +three places (config.h, config.cpp, and cf.syn) - maybe rig up some +code generation so they can be listed once. + + - fix or remove FindTabs class (currently in wdata.h); it copies the +string but doesn't use the copy. + +- Move things that don't need to be in header files into the +corresponding source files, to reduce crosstalk. + +- Figure out where to put PUREMARK instead of defining it separately +in key.cpp, ut.cpp, and ws.cpp. + + - void_token_type is an int and it very much looks like it ought to +be unsigned. + + - buildErrorMsg[] ought to belong to error.h. +(this should make ctrlpanel.cpp not need bpe3.h) + + - The templates in regismd.h have become quite disgusting with +apparently-now-required explicit template name qualification all over +everywhere. Fix. + +- AgAction::Kernel (in action.h), or most of it, should be a generic +RefCount object. + +- The key_words enum is declared in both bpe3.cpp and keyword.cpp, and +should be shared in a header file. It also looks like it *must* be the +same as the key_words enum declared in engine.cgs. + +- agstring.cpp shouldn't be including csexp.h +- bitmap.h shouldn't be including data.h +- windowreg.cpp shouldn't be using vaclgui files +- there are still some uses of "extern" in various cpp files +- extern char *string_base in dvplug.cpp +- in bpe3.cpp check header_write_error for consistent usage (is error + EOF or just nonzero?) +- how about condensing all the cut&pasted comparison code in agstring.cpp? +- in dspar.cpp, make ColorPair::setValue(char *) be const char * + +------------------------------------------------------------ +CODE + + - It should be possible to disable certain warnings on the agcl +command line. (e.g. unused tokens, conflicts resolved by precedence +rules, stuff like that.) + + - Add -v option to agcl to print the version. + + - It would be nice if the copyright notice in the About box linked to +the copy of the license in the help system. Right now, we can't do +that, because the About box isn't a help window and doesn't have help +links per se. + + - Figure out where to put agclib1 in the tree. Also figure out how to +maintain it separately without causing an administrative nightmare. + + - It would be nice if the about box listed the author, and it +doesn't. But I think it's going to need multiple tabs or something to +have room to do it nicely, and that's a hassle. (Nor is it worth doing +in the old UI.) + + +------------------------------------------------------------ +BUILD + + - Running the test suite under Wine causes diffs. These diffs appear +to be benign as of this writing, but it would be better for everyone +if they didn't happen at all. + + - Running the test suite under Wine requires an X display. Without +one, even agcl.exe doesn't work. It's not immediately clear why, but +it might not be all that hard to fix. + + - make depend crashes out if there are no *.d files. (Or, with the +IBM compiler, *.u files.) This won't happen in the ordinary course of +things, but if someone does "make distclean; make depend" it will. + + - If you build in the source dir, run the tests, and clean the tests, +tests/agcl/ffcalc/number.h, which would be needed by two of the ffcalc +variants to compile if they actually got compiled, gets erased. This +is unimportant, for now at least, but irritating. Probably the right +way to fix it is to revamp the test makefiles to know the exact output +files that should exist instead of using wildcards. + + - It would be nice to have the lint scripts stuff also test-compile +each header file on its own without any other material. Header files +are supposed to themselves include everything they depend on, but in +general this stops being true unless it's enforced. + + - While GNU make can't do successful parallel builds, BSD make could +be made to by use of .WAIT. Setting this up is not all that difficult +given a way to conditionally define $(WAIT) as .WAIT for BSD make and +empty for everyone else, and there are hacks that can be made to +accomplish that. + + +------------------------------------------------------------ +MANUAL AND DOCS + + - From one of the tex faqs: + : Courier is (as we all know, to our cost) freely available; a far more + : presentable monospace font is LuxiMono, which is also freely available. + : Monospace text in the typeset version of this FAQ uses LuxiMono, with + : the metrics and LaTeX support available on the archive. +http://www.tex.ac.uk/tex-archive/fonts/LuxiMono/ + + - Quite a few things in "sbb" (sbb-doc.txt et al.) are just plain +wrong. These should be fixed... but not until the various copies have +been reconciled and can be built from one master version. + + - "reserve keywords" is missing from Appendix A. + + - There should probably be a "bug reporting" topic in the help, and +it should maybe even have its own menu entry in the gui. +