mutable compile-time data proposal

Gor Gyolchanyan gor.f.gyolchanyan at gmail.com
Wed Dec 28 23:23:11 PST 2011


The mutability of compile-time data would essentially enable fully
imperative compile-time computation. Right now it's almost purely
functional with the small exception of CTFE functions. Sometimes
functional style can't do the trick. For instance, you can't make a
template which "returns" a TypeTuple of derived classes of the given
class.

2011/12/29 Mariusz Gliwiński <alienballance at gmail.com>:
> David Nadlinger wrote:
>> Could you show a few examples? I'm just curious, because I wrote a
>> sizable chunk of D code, often incorporating some form of compile time
>> magic, and never felt the need for it.
> I'd rather avoid that because code i'm writing isn't a state of art, so you
> might neglect my concrete ideas of solving things (use of tool).
> Furthermore, i'm quite sleepy already so i might forget something, explain
> wrongly. So, i hope i'm not ruining good idea by providing stupid examples.
>
> -- local CT variables, result to standard RT variable.
> 1) Generate UUIDs of types of messages which are being provided and received
> from various parts of application.
>
> -- global CT variables, not sure if we're talking about that now.
> 2) Make sure there is only one provider, and one receiver (in couple of
> cases). More generally, validation of application logic, that can be done
> static, but can't be catched up by compiler itself.
>
> -- local CT variables,
> 3) There are examples, where i'd like to avoid use of classes (i don't need
> to put them in some container, and treat under superclass API), but i would
> still like to share code (traits). So yes, i'm using mixins, but frequently
> this kind of mixin needs initialization/dispose, which has to be called
> manually by consumer. It leads to many initXTrait on initializer. I'd rather
> like to store function pointers and iterate over it (i'm not even talking
> about add something like this to language).
>
> 4) I'd like to generate application interface prototype during compilation
> (serialization of specific parts of AST if i'm not wrong to use this term
> here), and not having to write my own D parser for it. Yeah, i know you
> probably got big WTF in your head while reading this, but these are things
> i'd like to do, and neverthless if it's good or not, those are ideas that
> programmer would like to have a chance to implement.
>
> I'm sure there are more appealing examples, but these are mine, and i'd like
> to just have a possibility to implement them.



-- 
Bye,
Gor Gyolchanyan.


More information about the Digitalmars-d mailing list