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.