[LLVMdev] Is there room for another build system?

Kenneth Boyd zaimoni at zaimoni.com
Mon Aug 4 16:45:14 PDT 2008


David Greene wrote:
> On Friday 01 August 2008 00:22, Óscar Fuentes wrote:
>   
>> Kenneth Boyd <zaimoni at zaimoni.com> writes:
>>     
>>>>> I've been thinking of constructing a mirror test suite coordinated
>>>>> using shell scripts (bash)
>>>>>           
>>>> Please no, pick a real language.  I love bash and it is fine for any
>>>> 200 line or less program, but for much beyond that, something else.
>>>> Python?c? C++?
>>>>         
>>> If I thought C was an appropriate choice to get this done, I'd be
>>> patching the expect source code instead to deal with Microsoft's
>>> non-implementation of POSIX.
>>>
>>> If a language conceals the differences between POSIX and Microsoftian C
>>> for interprocess control, hides badly non-POSIX filepaths from me, and
>>> has a reasonable track record of forward compatibility, and has a
>>> reasonably universal build process, I'll consider crash-learning the
>>> language if I'm not already working in it.
>>>       
>> For my test suite I use Tcl (with TclX, no Expect). It watches stdout
>> and stderr, gets exit codes and has a timer for killing hanged
>> processes. Process control works the same on Windows and Unix and takes
>> a less than 30 lines of code.
>>
>> What else do you need?
>>     
>
> ....
>
> In my experience Tcl is very hard to work with due to the non-existence of
> any reasonable debugging tools on all platforms.
>   
That is as much a matter of preferred techniques as anything.  For any 
given language, not having debugging tools on any platform doesn't 
bother me exactly as long as I can enact design-by-contract.

What I haven't seen yet in any language (but think would be easier to 
add to CLang than GCC; I'm not familiar enough with the other 
open-source competition to say), is reliably intercepting undefined 
behavior at compile-time.  This pretty much requires whole-program analysis.

Kenneth




More information about the llvm-dev mailing list