Hi all,

So it seems people is interested in the CND branch for C/C++ development, and we now have three PRs from external contributors [1].

STATUS:

As you may know the CND branch has been pruned from the original Oracle donation (due to license restrictions and code provenance issues), and it's clean from a license point of view. It currently collides with the cpplite cluster (see [2] for details).

When compiled without "cpplite" the "cnd" branch is able to open old "C/C++" projects, run and debug them, add syntax highliting, etc. cnd is also able to automatically generate a "compile_commands.json" from "C/C++" make based projects (with compiler settings and external library dependencies, including "pkg-config" dependencies), and it starts and connects to the "clangd" LSP server for extra features.

Since the "cpplite" suite is used elsewhere (some people in the OpenJDK Team use it for debugging GraalVM stuff, I think) somebody asked to keep "cpplite" around.

OPTIONS:

So we have now two opposite forces: the "cpplite" users and the "cnd" contributors wanting to move things forward.

To satisfy both forces I think we could:

A) Allow the user to switch between "cpplite" or "cnd" at runtime (I don't know how to do this).

B) Create a "cnd-only NetBeans edition" without "cpplite". Release schedule for cnd could go with a different frequency from the official NetBeans release.

C) Make a separate repository for "cnd", transforming it into a plugin, possibly under the Apache NetBeans umbrella, so people can contribute to it.

Depending on the solution above, and to ease development we could:

D) Merge "cnd" into "master", disabling the "cnd" branch for release (as we currently do with the "rust" suite).

Note also that cnd has some characteristics of its own (see [3]), that should also be taken into account before a decission is made.

So, what say? Any opinion ideas on how to evolve cnd? Any other alternatives you may think of?

Cheers,
Antonio


[1]
https://github.com/apache/netbeans/pull/6439
https://github.com/apache/netbeans/pull/6440
https://github.com/apache/netbeans/pull/6441

[2]
Both "cpplite" and "cnd" want to assign different mime types ("text/X-c" and "text/c-c" to files with extensions ".c" (".cpp", ".CC", etc.).

NetBeans has difficulties handling different mime types for the same file extension.

I tried using a custom MimeResolver (that tries to guess if a file with ".c" extension is owned by cpplite or cnd) without success.

So currently "cpplite" and "cnd" are exclusive: only one of them may be active for handling files with ".c" (".cc", ".cxx", etc.) extensions.

[3]
Some considerations on the cnd branch:

3.1- Many modules specify JDK8 as the base jdk version.
3.2- AFAIK cnd has not been tested with the most recent GitHub actions testing stuff. 3.3- cnd still has many redudant code (legacy from the Sun/Oracle Studio days?) that should be pruned and updated. There're many "System.getProperty" flags that affect logging and behaviour, this should be cleaned up in the future, I think. 3.4- IMHO there's little interest in the NetBeans committers about cnd (users may still want to use cnd, though).







---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
For additional commands, e-mail: dev-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to