mrkeyoor.com_
Thu 01 Oct 11:55 UTC
Open Source6 min read

EDG Opens 853MB of C and C++ Front-End Code After Decades

EDG's former proprietary front end is now under the LLVM license, including its compatibility machinery, source translators, and development tools.

A 220-point Hacker News thread formed around a code drop with unusual heft: GitHub's language index counted 500,103,385 bytes of C and 353,340,776 bytes of C++ in EDG's newly public compiler repository. That 853MB figure is a language tally, not a download size. It still gives a useful sense of what moved into public view on September 30. Decades of commercial C and C++ front-end work, along with translators and development utilities, can now be inspected without an EDG license agreement. The Hacker News response reached 220 points and 106 comments when this story was selected, an attention signal rather than evidence that developers have adopted the code.

Edison Design Group made the source public as the company itself prepares to go away. The transition FAQ says the C++ Alliance will be the project's nonprofit fiscal sponsor, while EDG president John Spicer will remain involved and chair its Fiscal Sponsorship Committee. For developers, the immediate consequence is fairly concrete: a production C++ parser and semantic engine that used to sit behind commercial terms is now available under the same license family used by LLVM.

What EDG actually released

A compiler front end reads source code, checks its syntax and meaning, and turns it into an internal form that later stages can analyze or translate. EDG's repository description says its front end is designed for parsing compatibility and even bug emulation across Clang, GCC, and Microsoft Visual C++. That last detail matters in ordinary, messy codebases. A tool can follow a language standard perfectly and still reject source that relies on a vendor's extension or long-standing quirk. EDG has spent years dealing with that gap.

The public repository contains more than a parser. Its README lists a backend that emits C from C++, another that emits C++ for source-to-source transformations, a prelinker for automatic template instantiation, and tools for writing, reading, and displaying EDG's intermediate language. It also includes a name demangler and a minimal runtime support library. This is useful material for people building analyzers, translators, compiler experiments, and security tooling around C or C++.

There is an important boundary in the same README: the runtime is minimal and does not include full libraries such as stream I/O. The repository should therefore be read as a compiler project and a set of embeddable parts, rather than a polished replacement for an entire GCC or Clang installation. EDG calls the front end the primary focus, and the build instructions expose enough configuration to produce many variants.

The license opens commercial use

The repository's LICENSE.txt uses Apache License 2.0 with the LLVM exceptions. The FAQ explicitly says organizations may keep building commercial products with EDG, subject to those terms, and that customers with existing agreements may continue under them. This is a permissive release, not a source-available arrangement that restricts paid products.

The LLVM exception addresses a practical compiler concern. If compiling a program embeds portions of EDG's software into the resulting object, those embedded portions do not trigger several Apache redistribution conditions. The license also includes the usual copyright and patent grants, notice requirements, warranty disclaimer, and trademark limit. Teams planning to ship EDG inside a product still need to read the file and map its conditions to their distribution, but the project's stated intent is commercial reuse.

Stewardship is changing at the same time as the license. EDG's transition plan describes one public codebase fed by community patches, ongoing maintenance from Alliance developers, and larger features funded collectively. Maintenance work is meant to appear immediately. A funded feature is supposed to become available to everyone at once rather than reaching a paying sponsor first. The Fiscal Sponsorship Committee will oversee review and priorities, with Spicer as chair and volunteers from the EDG user community.

That structure is the proposed answer to the hardest part of this handoff: preserving specialist compiler knowledge after the corporation closes. The announcement names the engineers who worked on EDG and says Alliance staff will continue development. Veracode's Bruce Duncan also says in a testimonial on that page that the company uses EDG for static analysis of customers' C++ applications, specifically because it handles multiple language versions and vendor compatibility modes. That is a vendor statement hosted by the project, so it should be read as an example of existing use, not a neutral market survey.

The first build is refreshingly ordinary

EDG has supplied build instructions for Linux, macOS, and Windows. The documented baseline is Python 3.6 or later, CMake 3.19 or later, and a supported C++ compiler. Ninja is recommended. On Linux with GCC, the shortest documented path is close to this:

git clone --filter=blob:none git@github.com:edgcpp/compiler.git
cd compiler
cmake --preset linux-gcc-debug
ninja -C build/gcc

The partial-clone instruction keeps the repository's history while initially downloading only the latest version of each file. CMake presets also cover Clang, MSVC, macOS on Arm, release builds, and debug builds. Developers who want fewer layers can create a preprocessor configuration in src/defines.h and compile the C sources directly with a command such as g++ -std=c++14 *.c, according to the build document. That route also reveals how deeply the front end relies on compile-time configuration.

A public build recipe does not mean the contributor experience is settled. The contribution guide labels itself a work in progress and partly aspirational while maintainers establish testing and community processes. Bug reports are supposed to begin in GitHub Discussions. A useful report needs the failing source, command-line options, expected behavior, and output from --dump_configuration; maintainers also ask for reduced cases under 100 lines when possible.

The policy for AI-assisted patches is unusually direct. EDG accepts them, but contributors must understand the submitted code and be able to defend their design choices. Pull requests should include tests that fail before the change and pass afterward, while regression output must be reviewed with the project's own test tooling. Large refactors, whether AI-assisted or handwritten, are reserved for established contributors or close work with a maintainer. For a compiler with hundreds of megabytes of C and C++ indexed by GitHub, that demand for human understanding is more useful than a blanket AI ban.

Compatibility is the code worth studying

Clang and GCC already give developers mature open-source C++ front ends. EDG's distinct value lies in the compatibility work described in its project README: source that compiles with those systems or MSVC is a stated design target, including cases that depend on their bugs. That makes the release interesting to tool builders even if they never ship an EDG-based compiler. They can now inspect how another production implementation represents difficult language rules and vendor behavior.

The source-generating backends widen that use. A C++-to-C path can target environments where a C compiler is the available final stage, while the C++ output path is aimed at program transformation. The intermediate-language utilities give researchers and tool authors a way to serialize and examine EDG's internal representation. Each of those capabilities was listed by EDG before outside contributors had time to prove how well it works in a fresh project, so the sensible next step is evaluation against real code rather than repeating the feature list as a verdict.

There are visible signs that the handoff is still happening. The EDG transition site currently leaves its detailed history section as a placeholder, and the contribution guide says infrastructure and process are still being established. The repository is public and buildable on paper; the harder evidence will come from issue turnaround, external patches, tagged releases, and published maintenance work over the next few months.

Watch the repository's first outside contributions and the C++ Alliance's funding process. If maintainers can turn a 220-point burst of attention into reproducible builds, reviewed fixes, and a release cadence, EDG will have transferred more than 853MB of source. If those signals stay quiet, developers will still have a rare compiler archive to study, but the code's future will look more like preservation than a living third front end.

We reviewed this

  1. linux — our honest review
  2. runtime — our honest review
  3. macos — our honest review

Sources

  1. EDG open source transition
  2. What's next for EDG: announcement and FAQ
  3. EDG C/C++ Compiler Project
  4. GitHub language data for edgcpp/compiler
  5. EDG compiler license
  6. EDG build instructions
  7. EDG contribution guide
  8. Hacker News discussion: EDG C++ front-end goes public