-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCHANGES.text
444 lines (356 loc) · 13 KB
/
CHANGES.text
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
2015-03-28
Fix calling virtual methods from inside a function literal
Fix test suite to run on JRE8
2010-12-26
Treat occurences of '//' as '/' in get_dir efun
Print 0 as "0" not ""
Ignore (strip) pinkfish codes in terminal_color efun
2010-12-23
Support '%:-9s' as well as '%-:9s' in sprintf
Implement query_verb
2010-12-22
Add unique_mapping efun
Fix prototype of parse_add_synonym
Clear the 'loadingMaster' flag even if the create method throws an exception
Fix calling message() efun with array as 4th arg
Add safeguards against NPE in call_other
Wildcarding (e.g. *.c) in get_dir
Make file_size efun() return -1 for non readable file
2010-12-20
Implement message() efun
Avoid concurrent modification exception in input handlers
Support zero in binary or
2010-12-01
add_action support
2010-11-29
Add useful 'toString' on input_to handler
Search inheritance tree from applies
Support zero length input
Don't wrap values as 'mixed' type
Add 'getLocation' to function literals
Treat void values as 0
2010-11-26
Better error reporting if filter function does not return a value
Fix interpretation of 2nd arg to restore_object
Don't allow LPC method to over-ride standard LpcObject/Object methods with the same name
Require all compiled objects to implement "CompileImplementation" interface.
Initialise fields after object is fully constructed so certain efuns (like this_object()) work
2010-11-25
Make this_player() do the right thing after an exec() call
2010-11-24
Implement stat() efun
Implement sprintf(%c)
Implement Exec efun
Fix warning message
Improve introspection of fields for persist/fetch
Hand co-variant return types from methods
2010-11-22
Fixes to bytecode inside function literals
2010-11-16
Automatically recompile missing classfiles
Fixes for Virtual Objects
Don't keep wrapping typed values in more and more wrappers
Better searching of inheritance tree for fields
2010-05-25
Set $this pointer to concrete object (was pointing to parent)
2010-05-24
Implement map_array(array, string, object, ...)
2010-05-23
Better error reporting
Create interface methods for nomask functions
Allow arguments to block functions to mask variables in enclosing scope
Allow nil values to be used in a foreach loop
2010-05-21
Support expando ("...") in array creation
Do better type checking on function calls
Do type checking on function return
Include correct path in error message when a compile error occurs in an include file
Add a 'zero' value, distinct from 'nil'
2010-05-14
Allow function literals to return a type that doesn't match the enclosing method
Check return values against method type
2010-05-13
Make classes non-members (since they can be defined in include files)
Improved type checking
2010-04-29
Add support for calling varargs ('...') functions from call_other
2010-04-28
Implement 'inherits' efun
When multiple methods match, return last inherited as per MudOS
Support move from nowhere
Allow plugins to get access to their properties file
Fix some imports
Fix call_other efun to search inherited methods
2010-04-26
Fix sprintf('%%')
Implement 'mkdir' efun
2010-04-25
Implement 'rename' efun
Fix 'get_dir' efun
2010-04-24
Support (int & nil) and (array - array)
Implement 'cp' efun
Additional socket efuns
2010-04-23
Add 'find_call_out' efun
Implement 'objects' efun
2010-04-22
Add support for call-outs
2010-04-18
Implement 'users' efun
Expression type of (old style) function literals is 'function', not the type of the function evaluation
2010-04-17
implement get_directory_info efun
Treat NIL as a number for comparisons (etc)
Fix compound expressions (a=1,b=2,c=3)
Fix compiled method handles to correctly handle dynamic 'this' via interface
Don't do check for argument count when using expand ('...')
Don't assume 2 args are provided to restore_object efun
Add option for starting driver with clean work dir
2010-04-15
Support int - nil
'uptime' efun
Don't assume 2 args are provided to save_object efun
Add 'variables' efun
Don't allow two fields with the same name
2010-04-14
Add origin/owner to stack when executing a function pointer
More accurate checking of function signature definition
Better logging on restore of object
2010-04-13
Skip comments when restoring objects
2010-04-12
Add 'simul' origin when calling a sefun
Add origin() efun
Fix plurality in compiler error message
Fix bugs when compiling delegate methods for overloaded method names
Lookup inherited methods in execution of function literals
Correctly handle missing/nil first argument to inventory
Support call_other on an array of objects/strings
2010-04-08
Network module with 'resolve' efun
Don't allow mismatch between method prototype and definition
2010-03-04
Set modifiers on bytecode on fields
Include header + fix field prefix in save_object efun
Support nil+number
Implement write_file efun
Add privs plugin
Add listener to object manager to allow plugins to add attributes on loaded objects
Add an "epilog" method to plugins, and redefine the init method to occur before the master object is loaded
2010-03-04
Finish off call stack support
2010-03-03
Allow '0' as any argument in an efun
Normalise ObjectId filename when initialised with 2 arg constructor
2010-03-01
Support for virtual function calls
2010-02-28
Add efuns
Support field references in block style function literals
Fix bytecode for |= &= etc
Support pure virtual functions
2010-02-26
Add virtual objects
Add dummy efuns for parser and ed (in plugins)
Addded support for "%*s" in sscanf
Fixed preprocessor - it was not being reset between uses
2010-02-22
Add debug capabilities to generated code
Implement environment efuns
2010-02-21
Pass flag to epilog efun (compat with MudOS)
Allow call-out on string (master instance of file)
Fix FunctionValue to correctly act as a callable
Don't recompile if class file is up-to-date
2010-02-20
Include debug info (file name/line number)
Include security checks in file efuns
Track if loading master object so we don't end up in infinite loop of self referential objects.
Don't do security checks while loading master object
Support old-style (: function, arg1, arg2, ... :) function pointers
Add reclaim_objects efun (as no-op)
2010-02-19
Add additional plugins to root build
Add eval cost (exec time) checks
2010-01-29
Config for Dead Souls (DS IIr8)
Plugin to provide compatability with MudOS/FluffOS for defines/efuns that are not essential
2010-01-27
Add flag to this_player efun
virtualp() efun
Correctly set varargs flag on method parameters
match_path efun
{array} | {array} (union)
{array} & {array} (intersection)
Support function literals of the form (: some_method :)
Make function literals correctly reference fields
Handled catch through synthetic methods
2010-01-25
Make constant '0' a mixed value, so it can be assigned to a string or object var
2010-01-24
Use proper path in #line markers
Compound Expressions
Cast Expression
Handle switch statements
Access to enclosing methods in function literal
2009-12-24
Crypt passwords in vision mudlib
Create crypt efun in separate plugin
Replace ObjectReference with ObjectId
Failed build if unit test fails
2009-12-10
Misc improvements to mudlib
Provide debug info in plugin builds
Provide appropriate messages from catch() expression
Support string + object
Ability to find object if (and only if) loaded
Add __DATE__ and __TIME__ macros to preprocessor
Add trim(str) efun
2009-12-08
Fixes to build process
Prompt after saving new user
2009-12-07
Create distribution of terebi+vision
2009-12-05
Improve build process
2009-12-03
Close connection on IOException
Make sure references are 'dereferenced' before passing as a function argument
Tests & fixes for sscanf efun
2009-12-02
Improved logging
2009-12-01
Support catch expressions
2009-11-16
Remove lpc2java compiler
2009-10-06
Initia work on a direct to byte-code compiler
2009-08-27
Fix plugin for new class support
2009-08-25
Allow access to inherited fields
2009-08-24
Fixes for inheritance
Runtime support for class values
2009-08-23
Support destruct (from LPC) of connection object
2009-08-22
Create a parser for literal LPC expressions [for use in restore_object]
2009-08-20
file size efun
Support calling simulated efuns
Move master/sefun objects into ObjectManager rather than system context
__SAVE_EXTENSION__ should be set by the engine, not the parser
Fix calling functions with trailing collection (varargs)
2009-08-19
Include resource finder as a context attachment
Add output support to Resource class
Fix JavaCompilerTest to set up context
Fix ExpressionWriter to output ArgumentSpecs with new parameter order
2009-08-18
Don't rebuild arguments list every time it is accessed in an efun
2009-08-17
Attach various configurations to the SystemContext
Split context into system/thread components
Don't share contexts (specifically call stacks) across threads
2009-08-16
Clear call-stack even when re-using same context
Call create() [with arguments] for new instances (including master instance)
2009-08-15
Switch order of "vargs" and "semantics" in ArgumentSpec - vargs is a lot more common than references
Initialise fields with Nil rather than null
Move "interactive" efun to interactive plugin
2009-08-12
More work around RuntimeContext
2009-08-11
Setup call stack before invoking an Apply
Split RuntimeContext into 2 classes (new class: Context)
Add a big lock around the context - LPC is designed to be single-threaded
2009-07-30
Enable destruction of objects
Join arrays and collections
Utility for calling applies
2009-07-12
Support %O and %f in sprintf() efun
Don't support table mode in sprintf (because the behaviour is bizarre, Dead Souls doesn't use it, and I can't think of a reason why anyone would)
Support column mode in sprintf() efun
2009-07-11
Initial support for sprintf efun
2009-07-09
repeat_string() and replace_string() efuns
Add 'isNil' support function
Implode on function (reduce)
Additional test cases for strings
2009-07-08
Test cases for strings
Use constant int values in return value of sizeof/strlen
Support for efuns: unique_array filter filter_array map_array
Additional test cases for arrays
2009-07-07
Test cases for arrays
Support open-ended ranges on array indexing
Correctly determine type of array literals.
Track times for compilation steps
2009-07-06
Tests for mappings
Support addition of string + int|float
Support addition of mapping + mapping
map_delete() efun
values() efun
filter() efun for mappings
filter_mapping() efun
map_mapping() efun
Make map(mapping, ..) synonomous with map_mapping(mapping, ..)
Support array/string/mapping index of an rvalue.
2009-07-05
Support running tests from ant
Include change log
Support bind() efun
Expose function pointers on call stack
2009-07-04
Add owners to functions
Add support for evaluate efun
Additional tests for function values
2009-07-03
Fix argument access in block function literals
More function tests
Tests for function values
Support for calling function values
Improved binary operator support
Better exception handling/hierarchy in compiler/parser
Better handling of long hex values
Evaluate $(...) expressions immediately.
Fix calls to function expressions (was evaluating arguments in the wrong place)
2009-07-02
Tests for binary operators
Correctly handle IO error when looking up source to compile
Add Binary XOR support
Switch to testing against public domain version of Dead Souls sefun
Improved binary operator support
2009-07-01
Add test for loop contructs
Add do { } while(..) support
2009-06-30
Improved maths support
2009-06-29
Working support for runtime instances
Additional working efuns
2009-06-22
Improved support for LPC class types
2009-06-20
Support for class types
2009-06-12
Throw compile error for undefined class
Start attribute support for objects (intended for environment, etc)
Add new efuns (sort_array, random, inherit_list). Fix passing of refs.
Better toString() support for preprocessor warnings
2009-06-10
Implement member_array efun, and add test for compare_array simul-efun
Check for unimplemented (or incorrect) efuns
Fix 'allocate' efun
Implement 'strsrch' efun
Implement typeof efun
2009-06-09
Better indexing support
Explode + Implode efuns