D, so it happend...
Steve Teale
steve.teale at britseyeview.com
Mon Apr 6 12:04:36 PDT 2009
Baas Wrote:
> In the past 10 motnhs, I completly rewrote the D Compiler in C#!
>
> Motivations:
> - LOVE THE D LANGUAGE!!
> - To be fully able to develop in a VS.NET like environment using D, with no limmitations.
>
> Cons:
> - Requires Windows platforms (XP and above).
> - Requires P4+ CPU.
> - 2-4 times slower compiler (still need to be optimized).
> - No "_Identifier" allowed! (I hate that _ s##t!)
> - Removed "auto" types.
> - Removed some data types.
> - No documentation available :(
>
> Pros:
> - Faster overall application execution speed.
> - Tested against existing benchmarks.
> - Implemented full debug functionality.
> - No more creapy asm stuff.
> - View/Modify ALL datatypes without any limitations or hassles.
> - Complete 128 bit ints/reals
> - Added Custom 256 bit ints/reals. (...who's gonna use it anyway?)
> - Dynamic keywords:
> - For example:
> - Can rename "else if" to ElseIf etc.
> - Can rename "{}" code block indicators to Begin/End etc.
> - Remain compatible with any older/newer "keyword set".
> - Can basically change keywords to adopt your style.
> - Includes "event handler" functionality
> - Includes dynamic binary modules (.ddbm)
> - Can automaticaly optimize itself on a target environment.
> - Can restructure its own code pattern (32/64/Multi-CPU)
> - Can physically relocate itself.
> - Can defrag itself in memory/disk.
> - Magnitudes faster then normal DLLs.
> - Can bind/execute across networks.
> - Can be initiated from a remote machine.
> - Includes full security features.
> - Includes pre-set configuration templates:
> - Custom Mode
> - Console Mode (exe)
> - Windows Mode (exe)
> - GL Mode (exe)
> - Library Mode (dll)
> - Dynamic Binary Module Mode (ddbm)
> - Windows Service Mode (exe)
> - Device Driver Mode (drv/sys)
> - Includes Code Convertion Utility (from C# to D).
>
> Tech info:
> - Parse the code into XML using Regular Expressions.
> - More code optimization is now possible.
> - Replaced the backend with HLA.
> - Code > HLA > OBJ > EXE/DLL
> - Removed GC, ...don't need it.
> - Variables allocate/deallocate themselfs.
> - Manual allocation/deallocation still possible.
> - Package/Module now require code block indicators
> - package somepackage.somewhere
> {
> module somemodule
> {
> ....
> module deep.beneath
> {
> ....
> }
> ....
> }
>
> module another.module
> {
> ....
> }
> }
> - More than one module per file is now possible.
> - Added inline HLA
> - Can now use asm{} or hla{}
> - Changed property syntax (similar to C#)
> - int something
> {
> get { return somevariable; }
> set { somevariable = value; }
> }
> - Renamed "mixin" to "macro"
> - Removed "imaginary" and "complex" types.
> - Changed/Added Types
> * ubyte > byte
> * byte > sbyte
> * char > compiler options determine which type to use (1/2/4 bytes)
> * short > short/int16
> * ushort > ushort/uint16
> * int > int/int32
> * uint > uint/uint32
> * long > long/int63
> * ulong > ulong/uint64
> * float > float/single/real32
> * double > double/real64
> + int128/decimal
> + uint128/udecimal
> + int256
> + uint256
> + real128
> + real256
> + string > compiler options determine which type to use (1/2 bytes)
> + date/time/datetime
>
> In Progress:
> - "native" .NET framework.
>
> Plan for the Future:
> - "VS.NET-like" IDE.
> - "true" Generic functionality.
>
> Sorry...
> NO CODE OR BINARIES INCLUDED WITH THIS MESSAGE! (yet)
>
> Baas
>
We could call it D#, but maybe I'm being charitable!
If you were going to implement D in C#, why didn't you do that first, then come up with the alternative later?
More information about the Digitalmars-d
mailing list