Make the expression code a little nicer and fix bugs found
[pspp-builds.git] / TODO
diff --git a/TODO b/TODO
index 2b06c1262544bbf276326f4fb43eb014ad7721b3..1048b6c0d32f9fdf2373d3bd0391e573e7185005 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,32 @@
-Time-stamp: <2004-03-14 21:37:40 blp>
+Time-stamp: <2004-03-26 00:07:35 blp>
+
+What Ben's working on now.
+--------------------------
+
+Procedures need to be able to make multiple passes.
+
+Write a better descriptive stats evaluator based on NR two-pass technique,
+revise all existing code to use it.
+
+Update q2c input format description.
+
+Rewrite output subsystem, break into multiple processes.
+
+CROSSTABS needs to be re-examined.
 
 TODO
 ----
 
+The expression tests need tests for XDATE and a few others, see
+tests/xforms/expressions.sh comments for details.
+
+Expressions need random distribution functions.
+
+There needs to be another layer onto the lexer, which should probably be
+entirely rewritten anyway.  The lexer needs to read entire *commands* at a
+time, not just a *line* at a time.  It also needs to support arbitrary putback,
+probably by just backing up the "current position" in the command buffer.
+
 Scratch variables should not be available for use following TEMPORARY.
 
 Details of N OF CASES, SAMPLE, FILTER, PROCESS IF, TEMPORARY, etc., need to be
@@ -16,8 +40,6 @@ In debug mode hash table code should verify that collisions are reasonably low.
 
 Use posix_fadvise(POSIX_FADV_SEQUENTIAL) where available.
 
-random.c should not know about set_seed.
-
 Use AFM files instead of Groff font files, and include AFMs for our default
 fonts with the distribution.
 
@@ -73,11 +95,6 @@ Eliminate private data in struct variable through use of pointers.
 
 Fix som_columns().
 
-There needs to be another layer onto the lexer, which should probably be
-entirely rewritten anyway.  The lexer needs to read entire *commands* at a
-time, not just a *line* at a time.  This would vastly simplify the
-(yet-to-be-implemented) logging mechanism and other stuff as well.
-
 Has glob.c been pared down enough?
 
 Improve interactivity of output by allowing a `commit' function for a page.
@@ -352,10 +369,10 @@ For each case we read from the input program:
 
 Ugly cases:
 
-LAG records cases in step 4.
+LAG records cases in step 3.
 
 AGGREGATE: When output goes to an external file, this is just an ordinary
-procedure.  When output goes to the active file, step 4 should be skipped,
+procedure.  When output goes to the active file, step 3 should be skipped,
 because AGGREGATE creates its own case sink and writes to it in step 7.  Also,
 TEMPORARY has no effect and we just cancel it.  Regardless of direction of
 output, we should not implement AGGREGATE through a transformation because that
@@ -373,7 +390,7 @@ FLIP:
 
 MATCH FILES: Similar to AGGREGATE.  This is a procedure.  When the active file
 is used for input, it reads the active file; otherwise, it just cancels all the
-transformations and deletes the original active file.  Step 4 should be
+transformations and deletes the original active file.  Step 3 should be
 skipped, because MATCH FILES creates its own case sink and writes to it in step
 7.  TEMPORARY is not allowed.