‹ BackHN Continuity

Thread

EDG C++ front-end goes public

249 points · 129 comments · iandinwoodie

  1. OneDeuxTriSeiGo · · focus · HN ↗
    Announcement: <a href="https:&#x2F;&#x2F;edgcpp.org&#x2F;#transition" rel="nofollow">https:&#x2F;&#x2F;edgcpp.org&#x2F;#transition

    The source code itself: <a href="https:&#x2F;&#x2F;github.com&#x2F;edgcpp&#x2F;compiler" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;edgcpp&#x2F;compiler

    Documentation: <a href="https:&#x2F;&#x2F;edgcpp.org&#x2F;doc&#x2F;" rel="nofollow">https:&#x2F;&#x2F;edgcpp.org&#x2F;doc&#x2F;

    And for those curious the license SPDX is: Apache-2.0 WITH LLVM-exception

    i.e.

    - <a href="https:&#x2F;&#x2F;spdx.org&#x2F;licenses&#x2F;Apache-2.0.html" rel="nofollow">https:&#x2F;&#x2F;spdx.org&#x2F;licenses&#x2F;Apache-2.0.html

    - <a href="https:&#x2F;&#x2F;spdx.org&#x2F;licenses&#x2F;LLVM-exception.html" rel="nofollow">https:&#x2F;&#x2F;spdx.org&#x2F;licenses&#x2F;LLVM-exception.html

    1. throwaway2037 · · focus · HN ↗
      I never knew about the LLVM exception:

          &gt; LLVM Exceptions to the Apache 2.0 License
      
          &gt; As an exception, if, as a result of your compiling your source code, portions of this Software are embedded into an Object form of such source code, you may redistribute such embedded portions in such Object form without complying with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
      
          &gt; In addition, if you combine or link compiled forms of this Software with software that is licensed under the GPLv2 (&quot;Combined Software&quot;) and if a court of competent jurisdiction determines that the patent provision (Section 3), the indemnity provision (Section 9) or other Section of the License conflicts with the conditions of the GPLv2, you may retroactively and prospectively choose to deem waived or otherwise exclude such Section(s) of the License, but only in their entirety and only with respect to the Combined Software.
      
      I don&#x27;t understand the second part. Can someone explain it to me?
      1. jcranmer · · focus · HN ↗
        The Apache&#x27;s patent clauses conflict with the requirements of the GPL license. GPLv3 contains explicit wording to handle this conflict; GPLv2 does not. The exception here is adding wording to let this Apache-licensed code be used with GPLv2 code in the same way that it would normally be usable with GPLv3.
    2. rramadass · · focus · HN ↗
      The &quot;About&quot; from the Github source - <a href="https:&#x2F;&#x2F;github.com&#x2F;edgcpp&#x2F;compiler" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;edgcpp&#x2F;compiler

        The EDG C&#x2F;C++ front end is the primary focus of this repository. The EDG front end is known for: its excellent parsing compatibility and bug emulation, to make sure source that compiles with Clang, GCC, and MSVC compiles with EDG; extensive documentation, to assist with development and modification; and extreme configurability, to allow it to be derived for use into a large number of C&#x2F;C++ oriented products.
      
        The compiler project also includes: a C-generating back end, which can be used to generate C code for C++ programs; a C++-generating back end, which is useful for source-to-source transformation applications; a prelinker, which handles automatic template instantiation; a minimal runtime support library (but not any &quot;real&quot; libraries, e.g., for stream I&#x2F;O); utilities to write the intermediate language to a file, read it back in, and display it in human-readable form; a name demangler; and a collection of purpose built development tools.
      
      From &quot;The C++ Front End&quot; - <a href="https:&#x2F;&#x2F;www.edg.com&#x2F;c" rel="nofollow">https:&#x2F;&#x2F;www.edg.com&#x2F;c

        The C++ front end supports the ISO&#x2F;IEC 14882 standard. The C++17, C++14, C++11, and C++98&#x2F;03 versions of the language are fully supported. Work is under way to support the C++20 language features (see our description of language features).
      
        Under control of command-line options, the front end also supports ANSI&#x2F;ISO C (both C89 and C99, and the Embedded C TR), the Microsoft dialects of C and C++ (including C++&#x2F;CLI), GNU C and C++, Clang C and C++, Sun C++, the cfront 2.1 and 3.0.n dialects of C++, and K&amp;R&#x2F;pcc C.
      1. daveedvdv · · focus · HN ↗
        That last bit is out of date (we didn&#x27;t work much on keeping the web site up-to-date): The front end is mostly C++23-complete (modules notably lagging), and we have several C++26 feature in as well.
        1. rramadass · · focus · HN ↗
          That is great! Thanks for the Update.

          Just for others: Again from <a href="https:&#x2F;&#x2F;www.edg.com&#x2F;c" rel="nofollow">https:&#x2F;&#x2F;www.edg.com&#x2F;c

          The internal documentation comprises about 600 pages. The &quot;External Interface&quot; chapter of that document, covering command-line options, language dialect issues, and the use of language features like templates, is freely available for downloading in PDF format - <a href="https:&#x2F;&#x2F;www.edg.com&#x2F;docs&#x2F;edg_cpp.pdf" rel="nofollow">https:&#x2F;&#x2F;www.edg.com&#x2F;docs&#x2F;edg_cpp.pdf (dated Nov 21, 2025 and hence presumably the latest version)

          PS: Maybe these essential info (pointed out in my comments and updated by you) should be front and center in the new edgcpp website.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.