comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:13d2b8934445
1 Small todo items
2
3 This file describes the smaller and more code-oriented things that
4 need to be done.
5
6 ------------------------------------------------------------
7 POSSIBLE BUGS
8
9 - AgStackStorage::~AgStackStorage (in support/agstack.cpp, near the
10 bottom) has a bogus delete call. See comment there.
11
12 - There's some thread locking in a few places (one being
13 openfile.cpp, another being stacks.cpp) and most of it appears to be
14 pretty bogus. This should be cleaned up. (Note: the ICritSec class is
15 really a locking hook, not a lock; all ICritSec instances appear to be
16 connected to a single big global lock. How lame. Also, why do Windows
17 people insist on creating "critical section" objects? A critical
18 section is a piece of *code*.) Relatedly, rewrite/replace resource.h.
19
20 - fence_ng in myalloc.cpp will probably blow up on non-intel
21 architectures. All of myalloc.cpp should probably be revamped.
22
23
24 ------------------------------------------------------------
25 CODE CLEANUP
26
27 - There are quite a few uses of sprintf and vsprintf about. These
28 should be replaced with snprintf and vsnprintf.
29
30 - Should fix up any code that warns when -fno-strict-aliasing is
31 turned off.
32
33 - fix up the configuration parameters so they aren't all defined in
34 three places (config.h, config.cpp, and cf.syn) - maybe rig up some
35 code generation so they can be listed once.
36
37 - fix or remove FindTabs class (currently in wdata.h); it copies the
38 string but doesn't use the copy.
39
40 - Move things that don't need to be in header files into the
41 corresponding source files, to reduce crosstalk.
42
43 - Figure out where to put PUREMARK instead of defining it separately
44 in key.cpp, ut.cpp, and ws.cpp.
45
46 - void_token_type is an int and it very much looks like it ought to
47 be unsigned.
48
49 - buildErrorMsg[] ought to belong to error.h.
50 (this should make ctrlpanel.cpp not need bpe3.h)
51
52 - The templates in regismd.h have become quite disgusting with
53 apparently-now-required explicit template name qualification all over
54 everywhere. Fix.
55
56 - AgAction::Kernel (in action.h), or most of it, should be a generic
57 RefCount object.
58
59 - The key_words enum is declared in both bpe3.cpp and keyword.cpp, and
60 should be shared in a header file. It also looks like it *must* be the
61 same as the key_words enum declared in engine.cgs.
62
63 - agstring.cpp shouldn't be including csexp.h
64 - bitmap.h shouldn't be including data.h
65 - windowreg.cpp shouldn't be using vaclgui files
66 - there are still some uses of "extern" in various cpp files
67 - extern char *string_base in dvplug.cpp
68 - in bpe3.cpp check header_write_error for consistent usage (is error
69 EOF or just nonzero?)
70 - how about condensing all the cut&pasted comparison code in agstring.cpp?
71 - in dspar.cpp, make ColorPair::setValue(char *) be const char *
72
73 ------------------------------------------------------------
74 CODE
75
76 - It should be possible to disable certain warnings on the agcl
77 command line. (e.g. unused tokens, conflicts resolved by precedence
78 rules, stuff like that.)
79
80 - Add -v option to agcl to print the version.
81
82 - It would be nice if the copyright notice in the About box linked to
83 the copy of the license in the help system. Right now, we can't do
84 that, because the About box isn't a help window and doesn't have help
85 links per se.
86
87 - Figure out where to put agclib1 in the tree. Also figure out how to
88 maintain it separately without causing an administrative nightmare.
89
90 - It would be nice if the about box listed the author, and it
91 doesn't. But I think it's going to need multiple tabs or something to
92 have room to do it nicely, and that's a hassle. (Nor is it worth doing
93 in the old UI.)
94
95
96 ------------------------------------------------------------
97 BUILD
98
99 - Running the test suite under Wine causes diffs. These diffs appear
100 to be benign as of this writing, but it would be better for everyone
101 if they didn't happen at all.
102
103 - Running the test suite under Wine requires an X display. Without
104 one, even agcl.exe doesn't work. It's not immediately clear why, but
105 it might not be all that hard to fix.
106
107 - make depend crashes out if there are no *.d files. (Or, with the
108 IBM compiler, *.u files.) This won't happen in the ordinary course of
109 things, but if someone does "make distclean; make depend" it will.
110
111 - If you build in the source dir, run the tests, and clean the tests,
112 tests/agcl/ffcalc/number.h, which would be needed by two of the ffcalc
113 variants to compile if they actually got compiled, gets erased. This
114 is unimportant, for now at least, but irritating. Probably the right
115 way to fix it is to revamp the test makefiles to know the exact output
116 files that should exist instead of using wildcards.
117
118 - It would be nice to have the lint scripts stuff also test-compile
119 each header file on its own without any other material. Header files
120 are supposed to themselves include everything they depend on, but in
121 general this stops being true unless it's enforced.
122
123 - While GNU make can't do successful parallel builds, BSD make could
124 be made to by use of .WAIT. Setting this up is not all that difficult
125 given a way to conditionally define $(WAIT) as .WAIT for BSD make and
126 empty for everyone else, and there are hacks that can be made to
127 accomplish that.
128
129
130 ------------------------------------------------------------
131 MANUAL AND DOCS
132
133 - From one of the tex faqs:
134 : Courier is (as we all know, to our cost) freely available; a far more
135 : presentable monospace font is LuxiMono, which is also freely available.
136 : Monospace text in the typeset version of this FAQ uses LuxiMono, with
137 : the metrics and LaTeX support available on the archive.
138 http://www.tex.ac.uk/tex-archive/fonts/LuxiMono/
139
140 - Quite a few things in "sbb" (sbb-doc.txt et al.) are just plain
141 wrong. These should be fixed... but not until the various copies have
142 been reconciled and can be built from one master version.
143
144 - "reserve keywords" is missing from Appendix A.
145
146 - There should probably be a "bug reporting" topic in the help, and
147 it should maybe even have its own menu entry in the gui.
148