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.
+