Compile time executable calling?
deadalnix
deadalnix at gmail.com
Mon Jul 15 21:26:40 PDT 2013
On Friday, 12 July 2013 at 21:54:02 UTC, Walter Bright wrote:
> On 7/12/2013 1:42 PM, Tofu Ninja wrote:
>> So I had an idea recently, wouldn't it be cool to have the
>> ability to call an
>> executable at compile time and capture its output. Something
>> like the string
>> imports but instead of opening and reading a text file, it run
>> an executable,
>> waits for it to finish, and grabs its output.
>>
>> It would get really cool if you could pass this executable
>> some args and then
>> mix in its out put into your own code. It could be used
>> similarly to how CTFE
>> are used but with out the overhead of trying to compile that
>> function and what
>> not and with out the limitations on what it can do.
>>
>> I could imagine all sorts of things that would be possible
>> with this that is
>> currently not.
>>
>> Not sure if this is something that could be implemented
>> easily, but seems like
>> something that could be done and something that would be
>> really cool.
>
> This is actually done in the makefile that builds DMD. A
> program (optabgen) is compiled and then run. Optabgen's output
> is several .c files which are then compiled into DMD's binary.
> The programs impcnvgen and idgen do similar things.
>
> It is a very powerful technique.
I did similar stuff for a mixed D/C++ program. The build
contained some intermediary utilities used to spit out infos
about the C++ code (typically sizeof and other characteristics
like that) that could then be used to generate part of the
binding in D.
More information about the Digitalmars-d
mailing list