www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - newCTFE Status February 2020

reply Stefan Koch <uplink.coder googlemail.com> writes:
Hi People,

I promised that newCTFE would be released in 2020 and so far it 
seems like I am going to make it!

The current and hopefully last big feature I am implementing is 
exception handling.

Recently I've had a breakthrough, because I realized that 
exception handling is very close to interrupts.
Since that realization progress is happing rapidly.

I hope to be able to present it at dconf 2020.

Cheers,

Stefan
Feb 11 2020
next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Tue, Feb 11, 2020 at 08:45:26PM +0000, Stefan Koch via Digitalmars-d wrote:
 Hi People,
 
 I promised that newCTFE would be released in 2020 and so far it seems
 like I am going to make it!
[...]
 I hope to be able to present it at dconf 2020.
[...] !!!!!! This is huge news!! I've been waiting for this for years. Can't wait to write compute-heavy CTFE code and have newCTFE sick'em! :-D T -- Любишь кататься - люби и саночки возить.
Feb 11 2020
prev sibling next sibling parent reply Andrea Fontana <nospam example.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!
+1000
Feb 11 2020
parent Per =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Tuesday, 11 February 2020 at 21:36:43 UTC, Andrea Fontana 
wrote:
 On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far 
 it seems like I am going to make it!
+1000
Me too.
Feb 11 2020
prev sibling next sibling parent reply Jonathan Marler <johnnymarler gmail.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.

 Recently I've had a breakthrough, because I realized that 
 exception handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.

 Cheers,

 Stefan
I've been running into out-of-memory issues from compiling large projects lately. Along with performance improvements, do you forsee this also helping memory usage?
Feb 11 2020
next sibling parent Stefan Koch <uplink.coder googlemail.com> writes:
On Tuesday, 11 February 2020 at 22:05:18 UTC, Jonathan Marler 
wrote:
 On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far 
 it seems like I am going to make it!

 The current and hopefully last big feature I am implementing 
 is exception handling.

 Recently I've had a breakthrough, because I realized that 
 exception handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.

 Cheers,

 Stefan
I've been running into out-of-memory issues from compiling large projects lately. Along with performance improvements, do you forsee this also helping memory usage?
Given the memory usage comes from ctfe yes. Absolutely in exterme cases newCTFE uses about 50x less memory.
Feb 11 2020
prev sibling parent Steven Schveighoffer <schveiguy gmail.com> writes:
On 2/11/20 5:05 PM, Jonathan Marler wrote:
 On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it seems 
 like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.

 Recently I've had a breakthrough, because I realized that exception 
 handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.
I've been running into out-of-memory issues from compiling large projects lately.  Along with performance improvements, do you forsee this also helping memory usage?
I think it will help somewhat, but it depends on your application. You can try the -lowmem switch which turns on the GC in the compiler. This should alleviate CTFE memory problems. In my case (I've been running into this recently), I was running out of memory not from CTFE, but from template instantiations. Every little template allocates some space in the symbol table which never goes away. See my post here: https://forum.dlang.org/post/qrjls8$13je$1 digitalmars.com Oh, and BTW, very much looking forward to newCTFE! -Steve
Feb 11 2020
prev sibling next sibling parent Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!
[...]
 I hope to be able to present it at dconf 2020.
Ooh that would be nice! Bastiaan.
Feb 11 2020
prev sibling next sibling parent Martin Tschierschke <mt smartdolphin.de> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!
+1000
 I hope to be able to present it at dconf 2020.
Cool!
Feb 12 2020
prev sibling next sibling parent Guillaume Piolat <first.last gmail.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.
Very excited about this also :) Go Stefan!!!
Feb 12 2020
prev sibling next sibling parent sarn <sarn theartofmachinery.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.

 Recently I've had a breakthrough, because I realized that 
 exception handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.

 Cheers,

 Stefan
It'd be awesome to have the new CTFE this year. Even if that doesn't happen, I'm looking forward to a talk about CTFE at DConf. Thanks for the work.
Feb 12 2020
prev sibling next sibling parent TheGag96 <thegag96 gmail.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 (snip)
So awesome!! I've been loosely keeping up on your work on this for the past few years. Amazing to see that you're on the home stretch! NewCTFE is going to be a huge win for the language. Thanks for all the effort!
Feb 13 2020
prev sibling next sibling parent reply Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 Hi People,

 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.

 Recently I've had a breakthrough, because I realized that 
 exception handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.

 Cheers,

 Stefan
Hi Stefan, that's awesome news indeed! Where can we check your latest version of newCTFE? Can you (do you have) a open PR, so we can check the relative changes to the rest of dmd? Would it be possible to start merging smaller parts of your work, in order to avoid having one mega PR that's hard to rebase? Keep up the good work! Cheers, Petar
Feb 14 2020
parent Stefan Koch <uplink.coder googlemail.com> writes:
On Friday, 14 February 2020 at 08:51:58 UTC, Petar Kirov 
[ZombineDev] wrote:
 Hi Stefan, that's awesome news indeed!

 Where can we check your latest version of newCTFE?
 Can you (do you have) a open PR, so we can check the relative 
 changes to the rest of dmd?

 Would it be possible to start merging smaller parts of your 
 work, in order to avoid having one mega PR that's hard to 
 rebase?

 Keep up the good work!

 Cheers,
 Petar
One way to compare the changes is to click this link. https://github.com/UplinkCoder/dmd/compare/master...UplinkCoder:newCTFE_reboot_20741 However there are still a few garbage files committed which I use for testing (among those is a 16MB file containing prime numbers.) My last count of relevant files shows that newCTFE will add about 10000 lines of code. All of which is self contained and does not interact with the rest of dmd.
Feb 15 2020
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 I promised that newCTFE would be released in 2020 and so far it 
 seems like I am going to make it!

 The current and hopefully last big feature I am implementing is 
 exception handling.

 Recently I've had a breakthrough, because I realized that 
 exception handling is very close to interrupts.
 Since that realization progress is happing rapidly.

 I hope to be able to present it at dconf 2020.
Cool beans :-) Looking forward to seeing what you present!
Feb 14 2020
prev sibling parent Stefan Koch <uplink.coder googlemail.com> writes:
On Tuesday, 11 February 2020 at 20:45:26 UTC, Stefan Koch wrote:
 The current and hopefully last big feature I am implementing is 
 exception handling.
Good news! Throwing and catching exceptions will now behave the same in newCTFE as it does in regular CTFE. At least in try catch blocks. I am not yet sure if TryFinally Statements work correctly, I will leave that problem for tomorrow though, since I like to end today's development with the feeling of success. Huge Thanks go out to my coworker Sevket who helped me a lot by making me talk through the problem and by spotting spelling mistakes early. You Rock! Have a good day everyone.
Feb 15 2020