Thread overview | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
October 31, 2016 CTFE Status | ||||
---|---|---|---|---|
| ||||
Hi Guys, since I got a few complaints about giving minor status updates in the announce group, I am opening this thread. I will start with giving an overview of what works and what does not work. Currently the only basic type you can do arithmetic on is int. Altough you can compare longs since a few days. These are the constructs that will work. - foreach on static arrays strings and range-foreach (those kinds (0 .. 64)). - switches (even deeply nested ones) - for and while loops - ternary expressions (? :) - if and else statements (as long as you don't use && and || ) - lables and gotos - arithmetic expressions as well as post and pre increment and decrement Constructs that will not work (but are actively worked on) - assignment to static array cells - long ulong arithmetic. - function calls - dynamic arrays and slices - pointers - structs - && and || - sliceing Constructs that will not work and are futher down the list. - classes - closures - boundschecks - asserts Please note that there will probably be bugs all over the place. So even the working features might not be working completely. |
October 31, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch Attachments:
| Thank you and keep doing awesome stuff ;) |
October 31, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | On 10/31/16 9:29 AM, Stefan Koch wrote:
> Hi Guys, since I got a few complaints about giving minor status updates
> in the announce group, I am opening this thread.
>
> I will start with giving an overview of what works and what does not work.
Awesome work, I can't wait for efficient streamlined CTFE.
Note to those not aware, Stefan is working on replacing the CTFE engine in D with a bytecode generated one. So although he mentions things that "don't work", he's talking about them in the context of the new CTFE engine. Many of these things already work in current CTFE implementation.
-Steve
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On Monday, 31 October 2016 at 20:49:58 UTC, Steven Schveighoffer wrote:
> On 10/31/16 9:29 AM, Stefan Koch wrote:
>> Hi Guys, since I got a few complaints about giving minor status updates
>> in the announce group, I am opening this thread.
>>
>> I will start with giving an overview of what works and what does not work.
>
> Awesome work, I can't wait for efficient streamlined CTFE.
>
> Note to those not aware, Stefan is working on replacing the CTFE engine in D with a bytecode generated one. So although he mentions things that "don't work", he's talking about them in the context of the new CTFE engine. Many of these things already work in current CTFE implementation.
>
> -Steve
All of them work in current CTFE which is why the mark is quite high.
I am glad to hear you guys appriciate my work.
It does help a ton to hear it from time to time.
---
Very recent news:
NEW CTFE PASSES THE DRUNTIME UNITESTS!!!!
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | Dne 1.11.2016 v 16:50 Stefan Koch via Digitalmars-d napsal(a):
> On Monday, 31 October 2016 at 20:49:58 UTC, Steven Schveighoffer wrote:
>> On 10/31/16 9:29 AM, Stefan Koch wrote:
>>> Hi Guys, since I got a few complaints about giving minor status updates
>>> in the announce group, I am opening this thread.
>>>
>>> I will start with giving an overview of what works and what does not work.
>>
>> Awesome work, I can't wait for efficient streamlined CTFE.
>>
>> Note to those not aware, Stefan is working on replacing the CTFE engine in D with a bytecode generated one. So although he mentions things that "don't work", he's talking about them in the context of the new CTFE engine. Many of these things already work in current CTFE implementation.
>>
>> -Steve
>
> All of them work in current CTFE which is why the mark is quite high.
>
> I am glad to hear you guys appriciate my work.
> It does help a ton to hear it from time to time.
>
>
> ---
>
> Very recent news:
> NEW CTFE PASSES THE DRUNTIME UNITESTS!!!!
This is so awesome, really good work :)
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | On Tuesday, 1 November 2016 at 15:50:06 UTC, Stefan Koch wrote:
> Very recent news:
> NEW CTFE PASSES THE DRUNTIME UNITESTS!!!!
Great work!
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | On Monday, 31 October 2016 at 13:29:01 UTC, Stefan Koch wrote:
> These are the constructs that will work.
>
> - foreach on static arrays strings and range-foreach (those kinds (0 .. 64)).
> - switches (even deeply nested ones)
> - for and while loops
> - ternary expressions (? :)
> - if and else statements (as long as you don't use && and || )
> - lables and gotos
> - arithmetic expressions as well as post and pre increment and decrement
>
> Constructs that will not work (but are actively worked on)
>
> - assignment to static array cells
> - long ulong arithmetic.
> - function calls
> - dynamic arrays and slices
> - pointers
> - structs
> - && and ||
> - sliceing
>
> Constructs that will not work and are futher down the list.
>
> - classes
> - closures
> - boundschecks
> - asserts
Do all these work in current implementation?
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Tuesday, 1 November 2016 at 16:44:14 UTC, Nordlöw wrote:
> On Monday, 31 October 2016 at 13:29:01 UTC, Stefan Koch wrote:
>> These are the constructs that will work.
>>
>> - foreach on static arrays strings and range-foreach (those kinds (0 .. 64)).
>> - switches (even deeply nested ones)
>> - for and while loops
>> - ternary expressions (? :)
>> - if and else statements (as long as you don't use && and || )
>> - lables and gotos
>> - arithmetic expressions as well as post and pre increment and decrement
>>
>> Constructs that will not work (but are actively worked on)
>>
>> - assignment to static array cells
>> - long ulong arithmetic.
>> - function calls
>> - dynamic arrays and slices
>> - pointers
>> - structs
>> - && and ||
>> - sliceing
>>
>> Constructs that will not work and are futher down the list.
>>
>> - classes
>> - closures
>> - boundschecks
>> - asserts
>
> Do all these work in current implementation?
Yes of they do!
There is a lot of work behind the implementation!
I intend to keep the current implemntation around as a fallback.
For things that are used rarely.
like floating point and others :)
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | On Tuesday, 1 November 2016 at 15:50:06 UTC, Stefan Koch wrote:
> Very recent news:
> NEW CTFE PASSES THE DRUNTIME UNITESTS!!!!
Now a phobos unittest miscompiles :(
Again passing the unittests does not mean too much.
I just means I bail out before I generate invalid code :)
|
November 01, 2016 Re: CTFE Status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | On Tuesday, 1 November 2016 at 19:28:03 UTC, Stefan Koch wrote:
> Now a phobos unittest miscompiles :(
>
> Again passing the unittests does not mean too much.
> I just means I bail out before I generate invalid code :)
Keep up!
|
Copyright © 1999-2021 by the D Language Foundation