File: TODO

package info (click to toggle)
gnu-smalltalk 3.1-6
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 33,300 kB
  • ctags: 13,999
  • sloc: ansic: 88,106; sh: 23,223; asm: 7,889; perl: 4,493; cpp: 3,539; awk: 1,483; yacc: 1,355; xml: 1,272; makefile: 1,192; lex: 843; sed: 258; objc: 124
file content (121 lines) | stat: -rw-r--r-- 3,055 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
* 3.1

* new File classes (done)
** maybe add renaming as in Squeak's Rio?

* ROE (done)

* Seaside (done)

* Swazoo (done)

* TwistedPools (done)

** garbage-collected storage for CObjects (done)

* more libraries
** Cairo (missing cross-platform checking)
** SDL (missing likewise)
** OpenGL (add some examples of SDL+OpenGL usage)

* less likely
** Expat
** gnutls
** 3D gnuplot?

* maybe
** DBI refactoring and prepared statements support
** cookies and redirects for HTTPClient


----------------------------------------------------------------------

* sometime

** upgrade XML parser for package files
*** support arch-dependent packages that are installed in the image path

** some kind of sandboxing (partly done)

** add check in/check out to the browser so that .st files remain
in sync.  Maybe with CVS support (see Smalltalk/X).

** cute BlockClosure implementations


----------------------------------------------------------------------


* bindings

** use zlib bindings to implement direct ZIP-file access in VFS.

** provide cool examples of XML using RSS feeds, SOAP, XML-RPC, whatever.

----------------------------------------------------------------------

* code auditing

** check endian-cleanness of ByteStream's float and double I/O.
Possibly fix by mutuating code from the Java package.

* VM

** create combined pop/push tree codes in the JIT compiler.  They're
still there from the old bytecode set and they should improve
performance by ~5%.

** Fix some copy & paste redundancies in comp.c (the small iteration
to find out the length of loops) and opt.c (basic block handling in
the verifier and in the JIT compiler's analysis pass).

** Use multiple malloc-ed areas for the OOP table, and make heap.c
only an implementation detail of alloc.c (not really necessary
anymore with MAP_NORESERVE, and quite complicated)

** Implement polymorphic inline caching


* Java

** Write more native methods.  Some, such as network methods, are
easy.  Reflection is hard especially for arrays.

** Pass exception in a temporary rather than in the top of the
stack; not very hard, and should make the JITter happy about
exceptions.


* Blox

** Use GTK.  Might or might not use libgnomeui for the canvas
widget.  I have already written a custom geometry manager compatible
with Tk's placer.

** Clean up the browser's code

*** remove stray sends of #initialize.  A good project to learn
about the reflection system (e.g. identify initializations from
outside #new and so on).

*** simplify UI creation (too many panes!)


* other

** finish the smalltalk CPP and C header file parser

** print entities correctly in the URIResolver.  A file named abc&def
should print abc&def in the file list.


* emacs mode

** emacs isearch c-u c-s should search for a string anchored at the start of
a line (possibly with blanks), to help finding method definitions.

** fix $. to be handled specially -- indenter gets confused on 
   ch == $.
      <here>ifTrue: 

** fix emacs mode so when a compile error occurs, it can be scanned ala C-x`