www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - all.d file generator

reply Clay Smith <clayasaurus gmail.com> writes:
Hi,

I just wanted to post about a little side project of mine that I was 
able to successfully use in my own project. I wrote a little program 
that, given a project source path, will generate appropriate all.d 
files. To my knowledge, no other code like this exists.

http://svn.dsource.org/projects/arclib/trunk/codingtools/alldgenerator/alldgenerator.d

You can browse my source to see what the generated all.d files look 
like: http://www.dsource.org/projects/arclib/browser/trunk/arc

The code is kind of ugly, but I wrote it for utility. I've tested it on 
derelict/ , arc/ , phobos std/ , and tango / (just this night). 
Unfortunately when I tested it on tango, I learned it has a critical bug 
in that if there are two subdirectories with the same name, one of those 
directories will import non-existant files from the other directory 
thinking that they are in its current directory. I'll get around to 
fixing this bug eventually, as I only learned of it tonight.

The reason for this utility is that I wanted all.d files for my project, 
but do not have the time or desire to maintain them as the project 
changes and grows. So, I came up with a solution to automatically 
generate all.d files for me and save me hours from working on a mundane 
task.

My hope is that this will inspire others into the virtue of all.d file 
generation, namely DSSS and build, or that someone out there may find it 
useful.

~ Clay
Jun 24 2007
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Clay Smith wrote:
 Hi,
 
 I just wanted to post about a little side project of mine that I was 
 able to successfully use in my own project. I wrote a little program 
 that, given a project source path, will generate appropriate all.d 
 files. To my knowledge, no other code like this exists.
 
 http://svn.dsource.org/projects/arclib/trunk/codingtools/alldgener
tor/alldgenerator.d 
 
 
 You can browse my source to see what the generated all.d files look 
 like: http://www.dsource.org/projects/arclib/browser/trunk/arc
 
 The code is kind of ugly, but I wrote it for utility. I've tested it on 
 derelict/ , arc/ , phobos std/ , and tango / (just this night). 
 Unfortunately when I tested it on tango, I learned it has a critical bug 
 in that if there are two subdirectories with the same name, one of those 
 directories will import non-existant files from the other directory 
 thinking that they are in its current directory. I'll get around to 
 fixing this bug eventually, as I only learned of it tonight.
 
 The reason for this utility is that I wanted all.d files for my project, 
 but do not have the time or desire to maintain them as the project 
 changes and grows. So, I came up with a solution to automatically 
 generate all.d files for me and save me hours from working on a mundane 
 task.
 
 My hope is that this will inspire others into the virtue of all.d file 
 generation, namely DSSS and build, or that someone out there may find it 
 useful.

Do you allow for changing the name? I'm not so fond of 'all' since often 'all' ends up being more like the 'standard exposed api' and not really literally 'all'. In Python I've seen people use 'api' to represent this top level import that just imports sub-packages. That makes more sense to me than calling it 'all'. --bb
Jun 25 2007
parent Clay Smith <clayasaurus gmail.com> writes:
Bill Baxter wrote:
 Clay Smith wrote:
 Hi,

 I just wanted to post about a little side project of mine that I was 
 able to successfully use in my own project. I wrote a little program 
 that, given a project source path, will generate appropriate all.d 
 files. To my knowledge, no other code like this exists.

 http://svn.dsource.org/projects/arclib/trunk/codingtools/alldgener
tor/alldgenerator.d 


 You can browse my source to see what the generated all.d files look 
 like: http://www.dsource.org/projects/arclib/browser/trunk/arc

 The code is kind of ugly, but I wrote it for utility. I've tested it 
 on derelict/ , arc/ , phobos std/ , and tango / (just this night). 
 Unfortunately when I tested it on tango, I learned it has a critical 
 bug in that if there are two subdirectories with the same name, one of 
 those directories will import non-existant files from the other 
 directory thinking that they are in its current directory. I'll get 
 around to fixing this bug eventually, as I only learned of it tonight.

 The reason for this utility is that I wanted all.d files for my 
 project, but do not have the time or desire to maintain them as the 
 project changes and grows. So, I came up with a solution to 
 automatically generate all.d files for me and save me hours from 
 working on a mundane task.

 My hope is that this will inspire others into the virtue of all.d file 
 generation, namely DSSS and build, or that someone out there may find 
 it useful.

Do you allow for changing the name? I'm not so fond of 'all' since often 'all' ends up being more like the 'standard exposed api' and not really literally 'all'. In Python I've seen people use 'api' to represent this top level import that just imports sub-packages. That makes more sense to me than calling it 'all'. --bb

Quick fix: global replace "all.d" with "api.d" Slow fix: wait for me to update it with that feature on the command line
Jun 26 2007