[Development] Future of QBS

Adam Treat adam.treat at qt.io
Tue Oct 17 23:22:46 CEST 2017

A few points:

* Unless you are worried about building software with possibly infinite 
dependencies, infinite build products, then a non-Turing complete 
language that just lacks general recursion will be sufficiently 
expressive to meet your needs. In particular, this means those vaguely 
worrying about "sufficiently complex" build systems can rest assured. If 
a strongly normalizing language can suffice as the internal language to 
build a new foundation for ZFC set theory, then I think it'd be 
sufficient to express a deterministic build system.

* Of course you can work around the halting problem so that Qt Creator 
(or some other IDE) doesn't hang should a build never halt. The point of 
non-Turing complete language is that you could ensure this by design.

That said, I think the Turing-completeness question and halting problem 
should be low on the list of priorities for qbs.


On 10/17/2017 01:16 PM, André Somers wrote:
> Exactly. The halting problem can be worked around pragmatically.
>>>> ... at the price of getting different build results based on CPU speed ...
>>>> Your fast desktop CPU crunches through the JS and you get a working
>>>> built, while my sucky laptop CPU does not and the build fails for me.
>>> A simple timeout may be a bit too pragmatic, but you could count the
>>> JS instructions executed.
>> you guys are discussing the locks of a house without walls. when any
>> type of reasonable limiter needs to kick in, the your build system is
>> *broken*. that's a fatal error, not just a "different result", and you
>> need to rethink what you're doing.
> Could you clear up what you mean *exactly* here?
> Do you mean 1) that any system that provides some kind of timeout (in
> terms of wall time or another measure) for evaluation is broken, or that
> 2) a build setup that runs into such a timeout is broken? That's a big
> difference.
> _I_ think that doing 1) is reasonable to keep a IDE like Creator
> responsive. And of course, you report an error and fail the build when
> that happens. A message stating where the issue occured would of course
> be very helpfull.
> André
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

More information about the Development mailing list