digitalmars.D - Automated rebuilding on program startup: tools.remake
I just committed tools/remake.d. What it does in a nutshell is this: it lets you add a call in your main.d file, along the lines of checkRemake(args, "path/to/source/file.d"); checkRemake invokes gdc (or a compiler of choice, via string Compiler), in verbose mode, to generate a list of imports, then filters out Phobos files (that part could probably use some work). Then it checks each of those files to see if they're newer than the corresponding obj/ file, and if yes, rebuilds them. Finally, if any object files were rebuilt, it links a new binary, calls the destructors, and invokes it. Designed to run on Unix-based systems, you might find it useful for developing server-side scripts in D, as it lets you just edit a webpage's D source and reload in the browser to trigger an incremental rebuild. Thoughts? PS: source http://svn.dsource.org/projects/scrapple/trunk/tools/tools/remake.d
Apr 21 2009
Instead of running build/bud you could run your old program to rebuild itself?I just committed tools/remake.d. What it does in a nutshell is this: it lets you add a call in your main.d file, along the lines of checkRemake(args, "path/to/source/file.d"); checkRemake invokes gdc (or a compiler of choice, via string Compiler), in verbose mode, to generate a list of imports, then filters out Phobos files (that part could probably use some work). Then it checks each of those files to see if they're newer than the corresponding obj/ file, and if yes, rebuilds them. Finally, if any object files were rebuilt, it links a new binary, calls the destructors, and invokes it. Designed to run on Unix-based systems, you might find it useful for developing server-side scripts in D, as it lets you just edit a webpage's D source and reload in the browser to trigger an incremental rebuild. Thoughts? PS: source http://svn.dsource.org/projects/scrapple/trunk/tools/tools/remake.d
Apr 21 2009
Saaa wrote:Instead of running build/bud you could run your old program to rebuild itself?That's the idea! :)I just committed tools/remake.d. What it does in a nutshell is this: it lets you add a call in your main.d file, along the lines of checkRemake(args, "path/to/source/file.d"); checkRemake invokes gdc (or a compiler of choice, via string Compiler), in verbose mode, to generate a list of imports, then filters out Phobos files (that part could probably use some work). Then it checks each of those files to see if they're newer than the corresponding obj/ file, and if yes, rebuilds them. Finally, if any object files were rebuilt, it links a new binary, calls the destructors, and invokes it. Designed to run on Unix-based systems, you might find it useful for developing server-side scripts in D, as it lets you just edit a webpage's D source and reload in the browser to trigger an incremental rebuild. Thoughts? PS: source http://svn.dsource.org/projects/scrapple/trunk/tools/tools/remake.d
Apr 21 2009