Boost logo

Boost :

Subject: Re: [boost] Scalpel: a Spirit&Wave-powered C++ source code analysis library
From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2010-09-05 12:31:55


Hi Florian,

On Fri, Sep 3, 2010 at 3:22 PM, Florian Goujeon
<florian.goujeon_at_[hidden]> wrote:
> On 09/03/2010 05:04 PM, Doug Gregor wrote:
>
>> Having a good, open-source C++ parser library that could support such
>> tools would be wonderful. However, I am going to be a stick-in-the-mud
>> and propose that we already have such a library. Clang:
>> I strongly encourage you not to begin yet another
>> open-source C++ parser.
>
> Before I started this project two years ago, I obviously checked
> whether there was any similar C++ source code analysis library
> project. However, I didn't find anything.
>
> In the meantime, I did discover the existence of Clang, but I already
> spent a lot of time working on Scalpel. I must confess it was a pretty
> bad news for me, but I've decided to carry on in spite of it.
> After all, compared with the G++ front-end, Clang is yet another
> open-source C++ parser as well. Similarly, LLVM is yet another
> open-source compiler compared with GCC, ArchLinux is yet another
> GNU/Linux distro compared with Debian, and so on.
>
> All competition is stimulating. It's beneficial for everyone. All
> competitors are different from each other and aim to bring a surplus
> value. As I said, Scalpel brings high homogeneity with Boost. It has
> its own unique design and I also plan to endow it with round-trip
> engineering capabilities.

I agree, to a point. New projects need critical mass to effectively
compete with established projects, and without effective competition
we don't see the benefits of diversity; we just see redundancy. At
some point, a community coalesces around a few projects that compete
on the large scale, while the majority of the competition/diversity
moves to subprojects within those large projects. See GNOME vs. Qt, or
WebKit vs. Gecko, where there is unlikely to be a third large-scale
competitor in the open-source world, but there is a ton of innovation
within both projects. Only if those large-scale projects stop
innovating, or calcify around inflexible architectures, will there be
an opening for a third large-scale competitor.

I want to see great, new ideas in C++ parsing and development tools,
but I strongly feel that those ideas could be far better disseminated
through extending/adapting/changing existing the large-scale,
industry-backed projects (GCC or Clang/LLVM) than by bringing up a
third large-scale competitor.

> I've been working on Scalpel for two years and I strongly intend to
> complete it. Even more so, I encourage developers to contribute to the
> open-source software's diversity!

I won't try to dissuade you further, because I've been in precisely
the same position as you are now. Best of luck to you!

>> [1] Scalpel appears to be under an LGPL license, which is not
>> Boost-compatible.
>
> In the beginning, Scalpel was under GPL. Hartmut Kaiser, Joel de
> Guzman and some fellows of mine convinced me to switch under a more
> liberal software license. Then, I've switched to LGPL.
> If one day Scalpel is accepted into Boost, I'll release it under the
> BSL without any hesitation.

One note of caution: if you start getting contributions from others,
you'll have to ask permission of each and every one of them when you
want to switch licenses. Boost went through this when we switched over
to the Boost Software License, and it's a real pain in the butt.
Better to switch to the license you want now, or (barring that) get
copyright assignment along with each contribution (as is done by the
FSF) to ensure that you can easily switch later.

  - Doug


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk