-
Notifications
You must be signed in to change notification settings - Fork 77
/
ChangeLog.txt
231 lines (136 loc) · 7.05 KB
/
ChangeLog.txt
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
Major changes from v0.2.5 to v0.2.6
dna:
* Command line parameters are now passed to the .NET executable, in the args[] array to Main().
* When calling a method on a null reference, a NullReferenceException is now thrown,
rather than crashing. However - note that internally thrown exceptions don't act quite
as expected, as their constructors are not yet called.
------------------------------------------------------------------------------
Major changes from v0.2.4 to v0.2.5
All Visual Studio solutions have been upgraded to VS2008.
dna:
* Fixed bug with static fields in generic types. The memory location for the field
was not being initialised properly.
* Fixed bug with overridding virtual methods in generic types. Virtual method table
indexes were being generated for partially defined generic types, which shouldn't
be done as virtual method tables are not available for these types.
* Fixed bug where generic method type arguments were not propogated through the type
system correctly. (In fact, at all).
* Fixed bug in finding generic methods in another assembly. The generic method
signature was not being checked correctly.
* Fixed bug in MetaData_LoadTables() where the blob index size was being read incorrecty.
Thanks to Patrick Levesque for report and fix.
* Fixed bug in casting to nullable types.
* Fixed bug in using typeof() on generic arguments.
* Fixed bug in Array.GetValue() and Array.SetValue() when using nullable types.
* Improved error reporting for missing methods. Now shows the correct containing type.
* Improved conversion operations. All conversions are now supported, with more efficient
runtime operation. However, checked conversions run as unchecked conversions.
* Implemented all the unsigned branch instructions, long versions.
corlib:
* Added IComparer[T], IComparer and Comparer.
* Added IEqualityComparer[T], IEqualityComparer and EqualityComparer.
* Dictionary[TKey, TValue], List[T] and ArrayList re-implemented and improved.
* Fixed missing functionality in Nullable[T].Equals() method.
* Implemented Enum.GetNames().
System.Core:
* Added System.Core.dll, containing:
- Most LINQ to Objects extension methods.
- Func[...] and Action[...] delegates.
------------------------------------------------------------------------------
Major changes from v0.2.3 to v0.2.4
All parts of this project are now licensed under the MIT license.
------------------------------------------------------------------------------
Major changes from v0.2.2 to v0.2.3
dna:
* Improved time resolution of DateTime.UtcNow
* Added code to selectively generate combined-opcode versions often-used methods.
It is disabled by default, but may be enabled in config.h
It currently has the following major problems:
- It doesn't appear to actually speed up execution very much (~5% in testing).
- It leaks some memory when 'de-optimizing' methods that are no longer
frequently used. This won't be too difficult to fix.
* Added support for static fields containing value-types.
* Added support for casting from Int64 to Double.
corlib:
* DateTimeFormatInfo implemented
* Calendar and GregorianCalendar very basically implemented. Enough that DateTime
formatting now works.
* DateTime.ToString() now works properly (except for timezones).
* More of Math class implemented.
* Implemented IComparable, IComparable[T] and IEquatable[T] on Int16, Int32,
Int64, Single, Double, UInt16 ,UInt32, UInt64, Byte, SByte and Boolean.
System.Drawing:
* Region is very basically implemented. Only infinite and rectangular regions
are supported.
* Added clipping support to Graphics.
* Graphics.MeasureString() has some overloads implemented.
* Graphics.DrawEllipse() and FillEllipse() with int and rect arguments implemented.
* Fixed bug with line drawing.
libIGraph:
* Implemented native parts of region.
* Implemented native clipping support for all Graphics operations.
* Implemented native parts of MeasureString().
* Implemented ellipse drawing and filling.
System:
* Stack[T] class added.
------------------------------------------------------------------------------
Major changes from v0.2.1 to v0.2.2
dna:
* Added native code for DNS class
* Added native code for System.Threading.Interlocked class
corlib:
* Added all System.Threading.Interlocked methods that operate on Int32 values.
Enumerators defined using yield return therefore now work - they need
CompareExchange().
* Added delegates: Action[T], Predicate[T]
* Added TimeSpan - complete except for Parse() and TryParse()
* Added DateTime - DateTime.Now is not implemented, DateTime.UtcNow is.
Add simple operations are implemented, but not more complex/obscure stuff,
e.g. ToFileTime(). ToString() is only crudely implemented, not taking
any notice of formatting specified, or culture. It is always shown in
UK format (dd/mm/yyyy hh:mm:ss).
System:
* Added the beginnings of the Dns class. It is now possible to get the IPv4
address for a host-name.
------------------------------------------------------------------------------
Major changes from v0.2.0 to v0.2.1
dna:
* Fixed bug in constrained virtual calls.
* Fixed bug with how Single and Double types were handled.
* Added array functionality for floating-point types.
* Improved how internal calls are looked up.
* Updated the VS2005 build config for release, to place the executable
in the correct place.
* Implemented Nullable types.
* Implemented basic native socket functionality.
* A little more reflection implemented.
* Misc other bug-fixes and improvements.
System:
* Implemented Nullable and Nullable[T] classes.
* Implemented the Socket class (and friends). Only the very basic operations
are currently implemented. A socket can be created, used to listen or connect
and can send and receive data. Only IPv4 is supported and at the moment only
TCP is support (UDP to be added later). More will be implemented later.
corlib:
* A little more reflection implemented.
------------------------------------------------------------------------------
Major changes from v0.1 to v0.2.0
The Interpreter:
* The main interpreter loop has changed from a 'loop with switch'
to use direct threading (see http://en.wikipedia.org/wiki/Threaded_code
for details). This gives a performance advantage, although not on Windows
as having __asm code in a function appears to stop all other optimizations.
The assembler code is only required on non-GNU compilers as GNU provides
the computed goto statement.
* A dynamic code generator (strictly, just a combiner) has been
implemented, which dynamically generates multi-opcode instructions.
However, it is disabled by default because it currently generates
dynamic code for all JITted methods, which uses large amounts of
memory, and is not always faster (due to code caching). An algorithm
to selectively re-JIT frequently-used methods is being worked on.
* Split out the configuration into a seperate Config.h file.
* Misc other bug-fixes and improvements.
System.Drawing:
* Implmented LinearGradiantBrush
* Fixed bug in HatchBrush that caused all hatches to be drawn 90
degrees rotated.