D language and .NET platform

Timon Gehr timon.gehr at gmx.ch
Sun Jul 29 10:00:17 PDT 2012


On 07/29/2012 06:32 PM, Alex Rønne Petersen wrote:
> On 29-07-2012 17:36, bearophile wrote:
>> Alex Rønne Petersen:
>>
>>> .NET is too limited to represent the language,
>>
>> Can you tell us why?
>>
>> Bye,
>> bearophile
>
> Array slices. The .NET type system has no way to represent them because
> it's designed for precise GC, and array slices allow interior pointers
> in the heap (as opposed to the stack when passing a field of an object
> by reference to a function, or whatever).
>

I think all of CTFE-D should map to .NET without much hassle.

struct ArraySlice<T>{
     private T[] storage;
     private ulong start;
     private ulong len;

     public ArraySlice<T> slice(ulong a, ulong b){
         if(a>b||b>len) throw new BoundsError("...");
         return new ArraySlice<T>(storage, start+a, b-a);
     }

     public ulong length(){ return len; }
     public Pointer<T> ptr(){ return new Pointer<T>(storage, start); }
     // ...
}

Performance will suffer of course.


More information about the Digitalmars-d mailing list