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
  
122
  
123
  
124
  
125
  
126
  
127
  
128
  
129
  
130
  
131
  
132
  
133
  
134
  
135
  
136
  
137
  
138
  
139
  
140
  
141
  
142
  
143
  
144
  
145
  
146
  
147
  
148
  
149
  
150
  
151
  
152
  
153
  
154
  
155
  
156
  
157
  
158
  
159
  
160
  
161
  
162
  
163
  
164
  
165
  
166
  
167
  
168
  
169
  
170
  
171
  
172
  
173
  
174
  
175
  
176
  
177
  
178
  
179
  
180
  
181
  
182
  
183
  
184
  
185
  
186
  
187
  
188
  
189
  
190
  
191
  
192
  
193
  
194
  
195
  
196
  
197
  
198
  
199
  
200
  
201
  
202
  
203
  
204
  
205
  
206
  
207
  
208
  
209
  
210
  
211
  
212
  
213
  
214
  
215
  
216
  
217
  
218
  
219
  
220
  
221
  
222
  
223
  
224
  
225
  
226
  
227
  
228
  
229
  
 
a) Ska jag ha en hashtabell f|r att resolva string->program? 
  Svar nej, bison-pure / patchat byacc fixar biffen 
b) Hur ska initialisering av globala variabler g} till? Ska __INIT anv{ndas 
   rakt |ver? 
c) typerna typerna typerna ........... 
 
ny switch 
        done 
 
fix the opertors to use sp[-1] instead of sp-> and fix them to use the correct 
sub-functions 
 
check everything that use T_FUNCTION and fix for C functions. 
        done, except for opcodes.c and sprintf.c 
list.c 
        done 
skriv om internal_parse_type till att anv{nda typstacken ist{llet f|r 
 zillioner malloc 
        done 
 
finish fsort 
        done 
 
arg! efunpekarna funkar fortfarande inte! 
         (binder till ett efun-namn, inte en funktion, tror jag...) 
        done 
 
convert opcodes.c 
        done 
 
convert sprintf.c .......... 
        done 
 
fixa define_include dirs. 
        done 
fixa #include <> 
        done 
fixa lex.c 
        done (n{stan) 
 
fixa !x && !y -> !(x || y) 
        done 
fixa !x || !y -> !(x && y) 
        done 
 
does clone initialize variables? 
        yes, now it does.... 
 
internal_parse_type must be able to parse '|' 
        done 
 
F_ARG_LIST ska inte l{gga till TRY_OPTIMIZE 
        done 
 
F_OFFSET {r 257 men borde vara 258 
        done 
 
fixa main() till att skicka vidare argumenten. 
        done 
 
skall ID_VARARGS lagras i functionsheadern eller functionsstructen? 
        done (for now) 
 
fixa kompilatorn till att vara reentrant. 
        done 
 
({ foo, bar, gazonk }) (); 
        done 
 
fixa backtrace() 
        done 
 
fixa en master.lpc 
        done (for nwo) 
 
fixa error(), catch() & throw() 
        done 
 
fixa en funktion som skriver ut en backtrace... (i lpc?) 
        done (for now) 
 
l{r den hantera filer ..... 
        done 
 
fixa foo::bar 
        done 
 
files::get_dir() 
        done 
 
skall program ha namn? 
        nej 
 
convert efuns.c .. 
        done 
 
hmm, read_callback() funkar inte med accept().... 
        done 
 
fixa sockets 
        done 
 
porta hilfe 
        done 
 
fixa file->copy_file & file->assign_file         
        done (file->dup & file->assign) 
 
fixa radnumren: problemet {r at mknode k|rs l}ng senare {n tokenet l{sts... 
        done 
 
a+=b -> a=a+b {r ju inte helt r{tt alltid... 
   man kan skriva om det till: 
     { mixed *tmp; tmp=&a; *a=*a+b; } 
   OM det fanns pekare.... 
        done (utan pekare) 
 
 
reverse() ... done 
next_object() ... done 
indices() ... done 
values()  ... done (don't copy array if refs == 1) 
object_program() ... done 
replace() ... done 
compile_string() ... done 
call_out() ... done 
find_call_out() ... done 
call_out_info() ... done 
remove_call_out() ... done 
file->rename() done (mv) 
mkmapping()     done 
mklist()        done 
 
file->write ska st{nga filen om saker g}r snett... (tror jag) 
        nej, det {r upp till anv{ndaren 
 
signals 
        done 
 
patch byacc 
        done (maybe needs more fixing) 
 
fix efun->foo (always copies value) 
        fixed? 
 
rewrite sort_array 
        fixed 
 
putenv 
        fixed 
 
sort() 
        fixed 
 
++++ -> sum() 
        fixed 
 
update README 
        fixed 
 
move the check for libsocket to the file module 
        fixed 
 
add garbage collect 
        fixed 
 
function_exists() 
        not needed, just index the object. 
 
remove MAX_LOCAL (& MAX_GLOBAL) 
 
remove EXPANDMAX 
 
write more comments 
 
typkollen m}ste generera b{ttre felmeddelanden.. 
 
setugid?  
 
inherit_list() 
function_args() 
get_function_list() 
fuzzymatch() 
this_function() 
check what other functions needs porting 
 
add generic callbacks 
 
assert (check types explicitely) 
generalize foreach() 
constant 
'type wish' 
 
document file::set_nonblocking better (prototype callbacks etc.) 
 
fix 'private inherit' 
 
fix run time type checks. 
 
make backtrace() show the arguments. 
 
code_value() 
decode_value() 
 
threads 
 
dynamic stack 
 
command line option: -L libdir 
 
rename list->multiset 
rename uLPC 
rename perror 
make a new perror 
rename add_efun -> add_constant 
rename sizeof -> size? 
 
then make a compat.h 
 
remove some simulated functions or make the optional. 
 
change object/program naming strategy 
 
make a better module interface. 
make a C++ interface. 
 
allocate stack with MAP_NORESERV