rund users welcome

aliak something at something.com
Thu Sep 20 23:19:17 UTC 2018


On Wednesday, 12 September 2018 at 13:23:36 UTC, Jonathan Marler 
wrote:
> On Wednesday, 12 September 2018 at 10:06:29 UTC, aliak wrote:
>> [...]
>
> Yeah I loved working on D.  But some of the people made it very 
> difficult.  So I've switched focus to other projects that use D 
> rather than contributing to D itself.
>
>>[...]
>
> Yeah they have proven to be very useful. I have many tools 
> written in D and this feature allows the main source file to be 
> a "self-contained" program.  The source itself is declaring the 
> libraries it needs, the environment, etc. And the answer is 
> Yes, all those options are supported along with a couple I 
> recently added `//!debug` and `//!debugSymbols`.  I anticipate 
> more will be added in the future (see 
> https://github.com/marler8997/rund/blob/master/src/rund/directives.d)
>
> To show how powerful they are, I include an example in the 
> repository that can actually build DMD on the fly (assuming the 
> c++ libraries are built beforehand).
>
> https://github.com/marler8997/rund/blob/master/test/dmdwrapper.d
> ----------------------------------------------------------------
> #!/usr/bin/env rund
> //!env CC=c++
> //!version MARS
> //!importPath ../../dmd/src
> //!importFilenamePath ../../dmd/res
> //!importFilenamePath ../../dmd/generated/linux/release/64
> //!library ../../dmd/generated/linux/release/64/newdelete.o
> //!library ../../dmd/generated/linux/release/64/backend.a
> //!library ../../dmd/generated/linux/release/64/lexer.a
>
> /*
> This wrapper can be used to compile/run dmd (with some caveats).
> * You need to have the dmd repository cloned to "../../dmd" 
> (relative to this file).
> * You need to have built the C libraries.  You can build these 
> libraries by building dmd.
> Note sure why, but through trial and error I determined that 
> this is the
> minimum set of modules that I needed to import in order to 
> successfully
> include all of the symbols to compile/link dmd.
> */
> import dmd.eh;
> import dmd.dmsc;
> import dmd.toobj;
> import dmd.iasm;
> ----------------------------------------------------------------
>
> Thanks for the interest.  Feel free to post any requested 
> features or issues on github.

Somewhat along these lines, I just found a watched a video by a 
guy who's been working on a programming language called Jai (it 
has some awesome concepts) and one of the sections he went in to 
about source files building themselves I thought was interesting 
and reminded me of rund so thought I'd post here. Might inspire 
you to add some stuff to rund :)

Video: https://www.youtube.com/watch?v=uZgbKrDEzAs
Time in video on "getting rid of build tools": 
https://youtu.be/uZgbKrDEzAs?t=1849

Enjoy!


More information about the Digitalmars-d mailing list