On 25 Apr 2015 01:25, "Walter Bright via Digitalmars-d" <digitalmars-d@puremagic.com> wrote:
>
> On 4/24/2015 5:59 AM, John Colvin wrote:
>>
>> one reason why it might be faster is that e.g. gcc can produce code like this:
>>
>> #include<alloca.h>
>>
>> void bar(char* a);
>>
>> void foo(unsigned int n)
>> {
>>    char *a = (char*)alloca(n);
>>    bar(a);
>> }
>>
>> foo:
>>      movl    %edi, %eax
>>      pushq    %rbp
>>      addq    $46, %rax
>>      movq    %rsp, %rbp
>>      shrq    $4, %rax
>>      salq    $4, %rax
>>      subq    %rax, %rsp
>>      leaq    31(%rsp), %rdi
>>      andq    $-32, %rdi
>>      call    bar
>>      leave
>>      ret
>>
>> which is neat.
>
>
> It's a cowboy implementation that's fine until it someone tries a largish value of n.
>

I wonder just how large...  IIRC I think the limit on ubyte arrays is 1M?