X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp-builds.git;a=blobdiff_plain;f=TODO;h=4889f5d0cbfa02952501e880e9a7f5baae6048c9;hp=6d2850d4b602fcb135aa48f40dcb5a80b2cfd880;hb=HEAD;hpb=de881ed979f2a6c382589b9d54d485ad88323821 diff --git a/TODO b/TODO index 6d2850d4..4889f5d0 100644 --- a/TODO +++ b/TODO @@ -1,31 +1,9 @@ -Time-stamp: <2006-05-05 22:56:48 blp> - -Procedure processing: - -* Should not need temporary casefile in the common case. - -* The "split" variants should not dump the splits to the output file - automatically. There is no need for the procedure code to talk to the output - manager. - -* LAG need not be as much of a special case. - -* Push PROCESS IF, FILTER, N OF CASES out of procedure.c. - -* Change sources into state machines? +Time-stamp: <2006-12-17 18:45:35 blp> Get rid of need for GNU diff in `make check'. -Format specifier code needs to be rewritten for lowered crappiness. - CROSSTABS needs to be re-examined. -RANK, which is needed for the Wilcoxon signed-rank statistic, Mann-Whitney U, -Kruskal-Wallis on NPAR TESTS and for Spearman and the Johnkheere trend test (in -other procedures). - -Add NOT_REACHED() macro. - Scratch variables should not be available for use following TEMPORARY. Check our results against the NIST StRD benchmark results at @@ -80,122 +58,6 @@ whatever) for it. Then read the /FILE and use the index to match to each case. OTOH, if the /TABLE is too large, then do it the old way, complaining if either file is not sorted on key. ----------------------------------------------------------------------- -Statistical procedures: - -For each case we read from the input program: - -1. Execute permanent transformations. If these drop the case, stop. -2. N OF CASES. If we have already written N cases, stop. -3. Write case to replacement active file. -4. Execute temporary transformations. If these drop the case, stop. -5. Post-TEMPORARY N OF CASES. If we have already analyzed N cases, stop. -6. FILTER, PROCESS IF. If these drop the case, stop. -7. Pass case to procedure. - -Ugly cases: - -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 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 -will fail to honor FILTER, PROCESS IF, N OF CASES. - -ADD FILES: Essentially an input program. It silently cancels unclosed LOOPs -and DO IFs. If the active file is used for input, then runs EXECUTE (if there -are any transformations) and then steals vfm_source and encapsulates it. If -the active file is not used for input, then it cancels all the transformations -and deletes the original active file. - -CASESTOVARS: ??? - -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 3 should be -skipped, because MATCH FILES creates its own case sink and writes to it in step -7. TEMPORARY is not allowed. - -MODIFY VARS: - -REPEATING DATA: - -SORT CASES: - -UPDATE: same as ADD FILES. - -VARSTOCASES: ??? ----------------------------------------------------------------------- -N OF CASES - - * Before TEMPORARY, limits number of cases sent to the sink. - - * After TEMPORARY, limits number of cases sent to the procedure. - - * Without TEMPORARY, those are the same cases, so it limits both. - -SAMPLE - - * Sample is just a transformation. It has no special properties. - -FILTER - - * Always selects cases sent to the procedure. - - * No effect on cases sent to sink. - - * Before TEMPORARY, selection is permanent. After TEMPORARY, - selection stops after a procedure. - -PROCESS IF - - * Always selects cases sent to the procedure. - - * No effect on cases sent to sink. - - * Always stops after a procedure. - -SPLIT FILE - - * Ignored by AGGREGATE. Used when procedures write matrices. - - * Always applies to the procedure. - - * Before TEMPORARY, splitting is permanent. After TEMPORARY, - splitting stops after a procedure. - -TEMPORARY - - * TEMPORARY has no effect on AGGREGATE when output goes to the active file. - - * SORT CASES, ADD FILES, RENAME VARIABLES, CASESTOVARS, VARSTOCASES, - COMPUTE with a lag function cannot be used after TEMPORARY. - - * Cannot be used in DO IF...END IF or LOOP...END LOOP. - - * FLIP ignores TEMPORARY. All transformations become permanent. - - * MATCH FILES and UPDATE cannot be used after TEMPORARY if active - file is an input source. - - * RENAME VARIABLES is invalid after TEMPORARY. - - * WEIGHT, SPLIT FILE, N OF CASES, FILTER, PROCESS IF apply only to - the next procedure when used after TEMPORARY. - -WEIGHT - - * Always applies to the procedure. - - * Before TEMPORARY, weighting is permanent. After TEMPORARY, - weighting stops after a procedure. - - -------------------------------------------------------------------------------- Local Variables: mode: text fill-column: 79