November 12, 2016
On 2016-11-09 20:07, Nick Sabalausky wrote:

> Although I have my doubts it would explain all the issues I've hit upon
> with git's CLI. For example: I don't see why annotated tags aren't the
> default. Or why non-annotated ones even exist at all. When I made
> <https://github.com/Abscissa/gen-package-version>, I noticed that it'll
> *only* work if the version tags are "annotated" tags. Because otherwise
> "git describe" doesn't retrieve the tag. Doesn't even matter one bit
> *what* the tag's message is, just that it exists. Why? Who knows! It's git!

If you add the --tags flag to "describe" it will work.

-- 
/Jacob Carlborg
November 12, 2016
On 2016-11-10 06:31, Dicebot wrote:

> I think it is related, but is not necessary consequence. My
> understanding is that for a long time command line design was given zero
> thoughts on its own - it was directly exposing whatever git does
> internally with no usability considerations. Which is why it is so
> awkward to use unless you really do know internal object model in great
> details.

It has the porcelain commands now, compared to the more low level pluming commands. I guess at one point only the pluming commands existed.

-- 
/Jacob Carlborg
November 12, 2016
On 11/12/2016 11:02 AM, Jacob Carlborg wrote:
> On 2016-11-09 20:07, Nick Sabalausky wrote:
>
>> Although I have my doubts it would explain all the issues I've hit upon
>> with git's CLI. For example: I don't see why annotated tags aren't the
>> default. Or why non-annotated ones even exist at all. When I made
>> <https://github.com/Abscissa/gen-package-version>, I noticed that it'll
>> *only* work if the version tags are "annotated" tags. Because otherwise
>> "git describe" doesn't retrieve the tag. Doesn't even matter one bit
>> *what* the tag's message is, just that it exists. Why? Who knows! It's
>> git!
>
> If you add the --tags flag to "describe" it will work.
>

Ok, I see (sorta). But it does work without --tags if it's an annotated tag. Clear as mud.

Yea, see, these are the reasons I consider git's cli to be god-awful.

November 14, 2016
Assignment to Array.length works now :)
the following code :

uint[] makeArr()
{
    uint[] arr;
    arr.length = 5;
    return arr;
}


pragma(msg, makeArr());

results in :

CTFE_DEBUG_MESSAGE : building Array of Length 5
[0u, 0u, 0u, 0u, 0u]



November 14, 2016
On Monday, 14 November 2016 at 05:27:15 UTC, Stefan Koch wrote:
> Assignment to Array.length works now :)
> the following code :
>
> uint[] makeArr()
> {
>     uint[] arr;
>     arr.length = 5;
>     return arr;
> }
>
>
> pragma(msg, makeArr());
>
> results in :
>
> CTFE_DEBUG_MESSAGE : building Array of Length 5
> [0u, 0u, 0u, 0u, 0u]

Assignment now also works :)

uint[] MakeAndInitArr(uint length)
{
    uint[] arr;
    arr.length = length;

    foreach(i;0 .. length)
    {
        arr[i] = i + 3;
    }
    return arr;
}

pragma(msg, MakeAndInitArr(12));

Output :
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

November 14, 2016
On Monday, 14 November 2016 at 07:57:20 UTC, Stefan Koch wrote:
> On Monday, 14 November 2016 at 05:27:15 UTC, Stefan Koch wrote:
>> Assignment to Array.length works now :)
>> the following code :
>>
>> uint[] makeArr()
>> {
>>     uint[] arr;
>>     arr.length = 5;
>>     return arr;
>> }
>>
>>
>> pragma(msg, makeArr());
>>
>> results in :
>>
>> CTFE_DEBUG_MESSAGE : building Array of Length 5
>> [0u, 0u, 0u, 0u, 0u]
>
> Assignment now also works :)
>
> uint[] MakeAndInitArr(uint length)
> {
>     uint[] arr;
>     arr.length = length;
>
>     foreach(i;0 .. length)
>     {
>         arr[i] = i + 3;
>     }
>     return arr;
> }
>
> pragma(msg, MakeAndInitArr(12));
>
> Output :
> [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

This for a length values in the range of short.max/4.
Which is the maximal heapSize for now.
This is up to 1.5 times faster then the old engine.

Once the heap-limit is lifted you can see this rock :)

November 15, 2016
To more bullet points cross the border from unsupported to supported.
- assignment to static array cells
- long ulong arithmetic.

However there is a a bug inside the code that does bounds-checking for array assignment.
In rare cases it can trigger a out-bounds-error on newly created arrays.

Dynamic arrays work partially.

The only way to create them is to assign to length.
For initialization fill the cells in a for-loop.

November 15, 2016
On Tuesday, 15 November 2016 at 01:35:42 UTC, Stefan Koch wrote:
> Two more bullet points cross the border from unsupported to supported.

Nice, Stefan. I always come back to this thread to see your progress. Thanks for making it easy to follow it.
November 15, 2016
On Tuesday, 15 November 2016 at 19:02:29 UTC, Bastiaan Veelo wrote:
> Nice, Stefan. I always come back to this thread to see your progress. Thanks for making it easy to follow it.

I agree.
November 15, 2016
On Tuesday, 15 November 2016 at 01:35:42 UTC, Stefan Koch wrote:
> However there is a a bug inside the code that does bounds-checking for array assignment.
> In rare cases it can trigger a out-bounds-error on newly created arrays.
>

This raise all kind of red flags to me. What are the design decision that lead to this ?