Hellou, I am thinking about how to clean up mess with tools. There are two things that could be done in parallel:
1. give information about what is going with --debugs=tool(s) * avoid standard logging module, because it is hugs and may decrease SCons startup time * important points - tool subsystem initialization start, default tools lookup start, default tool cheking, default tools lookup end, explicit tool request in Environment lookup start/check/end, registration of the Tool API * -v --verbose option to give more details (-v is currently for --version, and is not used often) 2. make SCons know which stuff tool provides: which builders (Capitalized methods to the Environment), for which extensions, which construction variables, what else I forgot? * this will allow to detect conflict, tools for c files, building mini-graph of the stuff, etc. * the tool should just expose what it provides in a module properties * the requirement to describe its behavior may be strict for core tools, but not for external stuff by default to keep the joy of hacking * registration of the Tool API - tracing what tool defines and what it actually declared after generate() completed (we can do this already, right?) * monitoring of Tool behavior - that tool modifies the stuff it declared, detect the stuff it touches (writes, but reads may also be useful), race conditions with other tools (overwriting each other's variables?), monitoring communication between tools through construction variables, monitor evolution and usage of construction variable First approximation: tool_provides = dict( scons_builders = 'Program', scons_extensions = '.c', # or should it be 'source-masks'? ... ) Other idea is to provide tool description in more human friendly form in parseable module block: """ ---[description v2]--- name: nasm type: scons provides: scons.builders: Program scons.extensions: .c """ For the reference, current public tool API: def generate(env): """Add Builders and construction variables for {{ Tool }} to an Environment.""" def exists(env): "" Detect Tool is present""" Does it sound like a plan? =) P.S. Sorry for the big text. It started with a tiny idea and then it grow up on me during the writing, and now I barely can resist sending it. -- anatoly t. _______________________________________________ Scons-dev mailing list Scons-dev@scons.org https://pairlist2.pair.net/mailman/listinfo/scons-dev