Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 113 lines (112 sloc) 6.055 kb
b4d68702 »
2010-11-11 add org-mode marker to TODO
1 -*- mode: org -*-
9e26d0e3 »
2011-11-02 TODO updates
2 * WIP Release 3.21: unofficial maintenance release of 3.20.
3 *** Branch "master"
4 *** DONE ANSI cleanups
5 *** WIP Complete manual
6 ***** DONE All exported symbols documented.
7 ***** WIP Cleanups
af53695b »
2011-11-02 more manual work: EXPRESSIONS vs FORMS vs BODY
8 ******* DONE Some docstrings talk of EXPRESSIONS, some of FORMS.
e20800fd »
2011-11-02 more documentation work
9 ******* DONE "Yields" vs "returns" a value.
9e26d0e3 »
2011-11-02 TODO updates
10 ******* TODO Restricts vs constrains.
11 ******* TODO Don't talk about noticers: they're an implementation detail.
e20800fd »
2011-11-02 more documentation work
12 ******* TODO Simplify the language in the constraint section.
9e26d0e3 »
2011-11-02 TODO updates
13 *** TODO Make iscream.el work under Slime.
e20800fd »
2011-11-02 more documentation work
14 *** Obvious opportunistic bugfixes (minimal behavioural changes)
9e26d0e3 »
2011-11-02 TODO updates
15 * Future Development
16 *** Once 3.21 is out, move it onto "classic" branch, into deep maintenance mode.
17 *** New stuff appears for now on "wip" branch, which is rebased constantly.
18 It is master + new code on top.
19 Once 3.21 is out, wip becomes the new master.
20 *** New stuff is also on "dev" branch, which is not rebased -- for convenience.
21 It gets master merged it and wip as cherries.
22 Will be thrown away once 3.21 is out.
23 *** Release 4.0
24 ***** DONE /=V allowing integer bounds to be constrained.
25 ***** DONE Make BEST-VALUE make some sense.
26 ***** Support at least some of the currently missing special forms
27 ***** Add DEFINE-SCREAMER-FUNCTION or similar as an alias to SCREAMER::DEFUN.
28 ***** Identify some performance issues and see if anything can be done.
29 ***** Try to improve debuggability of Screamer generated code.
30 ***** Change COUNT-FAILURES to make the number easier to access.
31 ***** Consider adding a separate type for gaussian integers.
ac4b8ed0 »
2010-11-03 migrate old "Bugs to fix" list to TODO
32 * Performance
33 *** TODO Rewrite dynamic-extent continuations using FLET
34 At least SBCL cannot currently stack-allocate a let-bound lambda,
35 but manages FLET and LABELS just fine.
36 *** TODO Dynamic-extent in CPS-CONVERT-TAGBODY.
37 * Maintenance
19c3bfaa »
2010-11-03 fix modern situation names in WALK-EVAL-WHEN
38 *** WIP Split the system into logical pieces.
39 Most of the DEFUN-COMPILE-TIME functions should probably go
40 to a file of their own, loaded before the main screamer code
41 is compiled.
5342281b » sb-studio
2011-03-23 better LOCAL documentation and TODO updates
42 *** TODO Cleanups
43 ***** TODO #:DUMMY-N gensyms used all over the place
44 This makes macro-expansions harder to read than they need to be.
45 Use differently named gensyms for different things.
46 ***** TODO DEFMACRO-COMPILE-TIME
47 Check if Allegro still needs this.
66224cf8 »
2010-11-05 enable tests 3-6 in primordial.lisp
48 *** TODO primordial.lisp has some commented-out tests using LOOP
49 Apparently LOCAL and LOOP interactions depend on the specific
50 expansion of loop. :/ If nothing else, documentation should
51 mention this. An alternative would be to provide our own
52 implemntation of LOOP that is well-behaved when it comes to LOCAL.
b1983513 »
2010-11-07 document some of the current limitations
53 *** TODO review the remaining limitations listed in the old source, and put the in the manual
54 1. Does not handle SETF methods with multiple values for LOCAL
55 SETF.
56 2. If you do a (SETF (SYMBOL-FUNCTION 'FOO) ...) to a nondeterministic
57 function you will lose when you attempt to evaluate (FOO ...).
58 3. If you do a (SETF (SYMBOL-FUNCTION 'FOO) ...) to a deterministic
59 function when FOO was previously defined as a nondeterministic
60 function you will lose when you attempt to evaluate (FOO ...).
61 4. The function record table will not work if we ever support FLET and
62 LABELS and in particular, if we ever support FLET and LABELS of
63 nondeterministic functions.
64 5. There is no way to force Screamer into compiling a deterministic
65 function as a nondeterministic one. A wizard might want to do this to
66 take advantage of the fact that a LOCAL SETF/SETQ in a nondeterministic
67 function does not cons up closures.
5342281b » sb-studio
2011-03-23 better LOCAL documentation and TODO updates
68 * Bugs
69 *** TODO LOCAL only reliable with explicit SETF/SETQ:
70 If (INCF (FOO)) expands into a form that does SET-FOO instead of
71 (SETF (FOO) ...) form, the code walker will not know about the
72 side-effect.
73
74 Options:
75 - Implement SCREAMER:INCF, etc.
76 - Wrap all non-SETF/SETQ forms in GLOBAL, so that those side-effects are never undone.
77 - Leave it as-is.
ac4b8ed0 »
2010-11-03 migrate old "Bugs to fix" list to TODO
78 * Old "Bugs to fix" list from screamer.lisp
79 These haven't been verified or anything, just moved here.
80 *** TODO Deterministic/nondeterministic LOCAL SETF/SETQ undone out of order.
81 *** TODO Changing determinism status
82 can cause code from a different file to be included causing wierd behavior.
83 *** TODO May loop when expressions contain circular lists.
84 *** TODO APPLY-NONDETERMINISTIC conses.
0f6f8968 »
2010-11-03 migrate the TTMTTD list from screamer.lisp to TODO
85 * Old "TTMTTD" list from screamer.lisp
86 Things to Maybe Think Then Do? *shrug*
87 *** TODO Should have way of having a stream of values.
88 *** TODO Kashket's constraint additions Fall90-158.
89 *** TODO Compress trail after repeated LOCAL SETF/SETQ to same variable
90 *** TODO LOCAL SETF/SETQ on symbol can use special variable binding stack instead of unwind-protect.
91 *** TODO (F (G (H (EITHER X Y)))) where F, G and H are deterministic can
92 CPS-CONVERT to (FUNCALL #'(LAMBDA (Z) (F (G (H Z)))) (EITHER X Y)).
93 *** TODO Should give warning when it recompiles functions due to changing determinism status.
94 *** TODO =V <V <=V >V and >=V should do congruence/monotone closure.
95 *** TODO =V should propagate domains.
96 *** TODO BEST-VALUE
97 *** TODO Should cache VARIABLE-LOWER-BOUND/VARIABLE-UPPER-BOUND for domain variables.
98 *** TODO Faster version of BIND! which doesn't cons.
99 *** TODO Get DIAGNOSIS and MONTAGUE to work.
100 *** TODO Get GROW-UP and NONLINEAR examples to work.
101 *** TODO FUNCALLV and APPLYV need to assert the domains of the variable that they return.
102 *** TODO Check that +V, -V, *V, /V, MINV and MAXV work and do the right thing with type propagation.
103 *** TODO Check that PROPAGATE does the right thing with bounds of integers.
104 *** TODO MEMBERV and derivatives should support vectors.
105 *** TODO Backtracking out of INTEGER-BETWEENV and the like will yield an
106 unconstrained variable since the constraints are asserted locally.
19c3bfaa »
2010-11-03 fix modern situation names in WALK-EVAL-WHEN
107 * Refactoring
5342281b » sb-studio
2011-03-23 better LOCAL documentation and TODO updates
108 *** Depend on Alexandria
19c3bfaa »
2010-11-03 fix modern situation names in WALK-EVAL-WHEN
109 ***** peal-off-documentation-string-and-declarations -> alexandria:parse-body
5342281b » sb-studio
2011-03-23 better LOCAL documentation and TODO updates
110 *** SETF and SETQ walking is suspiciously different
ac4b8ed0 »
2010-11-03 migrate old "Bugs to fix" list to TODO
111 * Future Work
112 *** TODO See if it would make sense to make nondeterministic functions funcallable instances.
f0930b00 »
2010-11-04 more things TODO
113 *** TODO Lock package on SBCL.
Something went wrong with that request. Please try again.