erlang/corba
37.4
Weak · 17 September 2026
81k
lines of production code
Erlang
with Java
1
measurement over time
What this system is
This system is the Erlang/OTP CORBA library, providing a comprehensive implementation of CORBA standards including naming, transactions, notifications, and property services. It features the Orber middleware for IIOP communication and the Interface Compiler (IC) for generating C, C++, and Java bindings from IDL definitions. The codebase has been modernized to support current OTP versions, IPv6, and SSL, while migrating to the Apache 2.0 license and standardizing its build and test infrastructure.
How it got here
2009 — License migration and OTP modernization
28 changes.
This period focused on migrating the entire CORBA library suite from the Erlang Public License to the Apache License 2.0. It also involved modernizing the codebase for compatibility with newer Erlang/OTP versions by replacing deprecated functions like erlang:now() and the legacy erl\_interface API with their current equivalents.
2010–2018 — CORBA repository initialization and test modernization
9 changes.
This period established the standalone Erlang/OTP CORBA repository with initial build infrastructure, documentation, and Apache 2.0 licensing. It focused on modernizing the project by migrating legacy test suites across multiple CORBA applications to the Common Test framework and relocating example code.
Features
Initial release of Erlang/OTP CORBA repository
This change introduces the initial structure for the Erlang/OTP CORBA repository, establishing version 5.2.2. It adds the core build infrastructure (Makefile, vsn.mk), documentation (README.md), and contribution guidelines (CONTRIBUTING.md). The repository includes a .gitignore file tailored for Erlang build artifacts and CORBA-specific generated files (e.g., IDL-generated headers, test outputs), and sets the project license to Apache 2.0 via LICENSE.txt and COPYRIGHT.
(repo-wide) · high confidence
Removals
Removal of legacy build system components
The build system has been cleaned up by removing several obsolete makefiles and helper scripts from the make directory. Specifically, the \lazy\_configure.mk\ (which managed autoconf version checks and configuration caching), the \make\_emakefile\ Perl script (used to generate Emacs makefiles), and the \otp.mk.in\, \otp\_ded.mk.in\, \otp\_release\_targets.mk\, \otp\_subdir.mk\, \run\_make.mk\, \save\_args\, and \target.mk\ files have been deleted. This change eliminates legacy build infrastructure and simplifies the build process by removing these specific components.
make · high confidence
Behavioural changes
CORBA IDL Compiler (IC) updates for Erlang/OTP compatibility and license change
The IDL compiler now generates C code that uses the new \ic\_erlang\term\\ type and \ic\_decode\_term\/\ic\_ic\_encode\term\ functions instead of the deprecated \ETERM\\ and \erl\_interface\ API, removing the dependency on \erl\_interface.h\. The generated Erlang stubs now include \nowarn\_unused\_function\ to suppress compiler warnings, and the \ic.app.src\ manifest declares explicit runtime dependencies (e.g., \erl\_interface-4.0\). Additionally, the project license has changed from the Erlang Public License to the Apache License 2.0, and the build system now uses \CORBA\_VSN\ for versioning.
lib/ic/src · high confidence
CORBA documentation build system and release notes updated
The documentation build process for the CORBA application has been restructured with a new Makefile that generates HTML and PDF outputs using Erlang's erl\_docgen tool. GitHub edit links in the documentation are now disabled by default. The release notes have been refreshed to document fixes for CORBA 5.2.2, including the removal of compiler warnings for OTP 29, and previous versions (5.2.1 through 4.5.2), covering issues such as binary format compatibility, code cleanup, and IC installation fixes.
doc · high confidence
CosEventDomain: License change and QoS error handling improvements
The CosEventDomain library has switched its license from the Erlang Public License to the Apache License 2.0. Additionally, the behavior of Quality of Service (QoS) configuration has been refined: the \set\_qos\ and \validate\_qos\ functions in the event domain implementation, as well as \get\_qos\ in the application module, now explicitly raise the \CosNotification\_UnsupportedQoS\ CORBA exception when invalid or unsupported QoS properties are provided, rather than returning internal error tuples. The \create\_name\ and \create\_id/0\ functions, which relied on the deprecated \erlang:now()\ function, have been removed to eliminate Dialyzer warnings and improve compatibility with newer OTP versions.
lib/cosEventDomain/src · high confidence
CosNaming: SSL support, IPv6 parsing, and license update
The CosNaming implementation now supports resolving corbaloc and corbaname references over SSL (ssliop) by constructing the appropriate IOR tagged components. Address parsing has been simplified to natively support IPv6 addresses (enclosed in brackets) and removed the complex, environment-dependent IPv6 delimiter detection logic. Additionally, the codebase has migrated from the Erlang Public License to the Apache License 2.0, and internal binary serialization for naming context keys now uses term\_to\_binary with minor\_version 1 and erlang:system\_time/0 for improved compatibility and uniqueness.
lib/orber/COSS · high confidence
CosNotification library license updated and build system simplified
The CosNotification library (along with CosTime and CosTransactions) has switched its license from the Erlang Public License 1.1 to the Apache License 2.0. Additionally, the build system has been refactored to remove local version control files (vsn.mk) in favor of a centralized versioning scheme, simplifying maintenance and ensuring consistent version handling across the CORBA applications.
lib/cosNotification · high confidence
CosNotification library modernizes time handling and licensing
The CosNotification library has been updated to replace the deprecated \erlang:now()\ function with \erlang:system\_time/0\ and \erlang:timestamp/0\ for generating unique names and managing event timestamps, ensuring compatibility with modern Erlang/OTP versions. Additionally, the library switches from the deprecated \regexp\ module to the \re\ module for wildcard pattern matching in filters. The codebase license has also been migrated from the Erlang Public License to the Apache License 2.0, and the application resource file now explicitly declares runtime dependencies.
lib/cosNotification/src · high confidence
CosTime library updates: license, API, and build system
The CosTime library has switched its license from the Erlang Public License to the Apache License 2.0. The public API behavior changes: \install\_time/0\ and \install\_timerevent/0\ now exit the process on registration errors instead of returning error tuples, and \uninstall\_time/0\ and \uninstall\_timerevent/0\ return \{error, Reason}\ instead of calling \exit/1\. Internally, time generation now uses \erlang:system\_time/0\ and \erlang:unique\_integer/1\ instead of the deprecated \erlang:now/0\. The build system now supports parallel make, uses a centralized \CORBA\_TOP\ variable for paths, and explicitly lists runtime dependencies in the \.app.src\ file.
lib/cosTime/src · high confidence
CosTransactions: Modernize time handling and update license
The CosTransactions library replaces the deprecated erlang:now/0 function with erlang:monotonic\_time/1 and erlang:system\_time/1 for timeout and naming logic, ensuring reliable time comparisons and unique identifiers. Additionally, the project license has been changed from the Erlang Public License to the Apache License 2.0, and the application metadata now explicitly lists runtime dependencies.
lib/cosTransactions/src · high confidence
IC C source rewritten for new erl\_interface API and OTP 23+ compatibility
The IC (Interface Compiler) C source files have been completely rewritten to remove dependencies on the deprecated erl\_interface API (erl\interface.h and erl\\* functions) and to support OTP 23 and later. This includes replacing old encoding/decoding functions with the new ei\\ API, updating reference handling to use ei\_make\_ref and ei\_cmp\_refs, and fixing memory management issues such as single-block allocation for decoded terms and proper freeing of temporary buffers. The build system has also been updated to support parallel make and silent rules, and the license has been changed to Apache License 2.0.
_lib/ic/c\src · high confidence
IDL Compiler documentation license, encoding, and build cleanup
The IDL Compiler (IC) documentation source files have been converted from Latin-1 to UTF-8 encoding, and the license headers across all XML documentation files have been updated from the Erlang Public License to the Apache License, Version 2.0. The build system has been simplified by removing obsolete dependency files (make.dep, fascicules.xml, old\_notes.xml, notes.xml) and unused source files, while the Makefile now relies on a new notes\_tail.xml.src for release notes and disables GitHub edit links for documentation.
lib/ic/doc · high confidence
Initial reference C++ example moved and relicensed
The C++ initial reference helper code has been relocated from the library's internal source directory (lib/orber/c\_src) to the examples directory (lib/orber/examples/initial\_reference\_c++), making it available as a standalone example rather than part of the core build. Additionally, the licensing for these files has been updated from the Erlang Public License Version 1.1 to the Apache License, Version 2.0.
_lib/orber/examples/initial\_reference\c++ · high confidence
Java IC library updates for new Erlang term formats and license change
The Java Interface Controller (IC) library now supports Erlang's new term tags for atoms (UTF-8 variants), floats, PIDs, ports, and references, ensuring correct serialization and deserialization of these types in CORBA-style calls. The library's license has been updated from the Erlang Public License to the Apache License 2.0, and copyright years have been refreshed to 2016–2022. Additionally, the build system was adjusted to use the CORBA version variable and include the OtpErlang.jar in the classpath, while internal encoding of PIDs and references was simplified to use dedicated encode methods.
_lib/ic/java\src · high confidence
License update and API modernization in the IC include headers
The IC library headers have switched their license from the Erlang Public License to the Apache License, Version 2.0. The public API has been modernized to remove the dependency on the legacy \erl\_interface.h\ header, introducing a new set of C-compatible functions for creating, encoding, and decoding Erlang terms (e.g., \ic\_mk\_int\_term\, \ic\_decode\_term\). Additionally, the \CORBA\_Environment\ structure has been extended with fields to support unique reference handling for Erlang client-to-C server communication, and a new \ei\_cnode\ pointer has been added to the environment.
lib/ic/include · high confidence
License update and C API migration in IC examples
The IC examples have been relicensed from the Erlang Public License to the Apache License, Version 2.0. Additionally, the C-based examples (such as \all-against-all\, \c-client\, and \c-server\) have been updated to use the modern \ei\\\ interface functions (e.g., \ei\_connect\, \ei\accept\) instead of the legacy \erl\\*\ functions, and the \pre\_post\_condition\ example now correctly handles generated IDL files in its build process.
lib/ic/examples · high confidence
License update and CORBA property service behavior fixes
The CosPropertyService module has switched its license from the Erlang Public License to the Apache License 2.0. Functionally, the property evaluation logic in PropertySetDef and PropertySet factories now returns results via {ok, NewProperties} and {error, Exc} tuples instead of raising exceptions directly, allowing callers to handle multiple exceptions more gracefully. Additionally, unique key generation for property sets now uses erlang:system\_time/0 and erlang:unique\_integer/1 with minor\_version 1 for term\_to\_binary, replacing the deprecated erlang:now/0 to ensure monotonicity and compatibility with newer OTP versions.
lib/cosProperty/src · high confidence
License update and modernization of CosFileTransfer
The CosFileTransfer module updates its license from the Erlang Public License to the Apache License, Version 2.0. Additionally, the implementation replaces the deprecated \erlang:now()\ function with \erlang:system\_time/0\ and \erlang:unique\_integer/1\ for generating unique names, and switches the SSL handshake from \ssl:ssl\_accept/2\ to \ssl:handshake/2\ to align with modern OTP standards. The build system now supports parallel make, includes runtime dependencies in the application file, and adds compiler flags to suppress specific warnings.
lib/cosFileTransfer/src · high confidence
Migration to Apache License 2.0 and build system cleanup
The ic library has switched its licensing from the Erlang Public License to the Apache License 2.0, updating the copyright headers in the Makefile. The build system has been refactored to remove the local \vsn.mk\ and \prebuild.skip\ files, instead sourcing version information from the parent CORBA directory (\$(CORBA\_TOP)/vsn.mk\) and adjusting the \VSN\ variable accordingly.
lib/ic, lib/orber/doc/src/Orber · high confidence
Migration to Apache License 2.0 and centralized versioning
The \lib/cosEvent\ and \lib/cosEventDomain\ components have switched their licensing from the Erlang Public License to the Apache License, Version 2.0. Additionally, the build system has been refactored to remove local \vsn.mk\ files in favor of a centralized versioning scheme using \CORBA\_VSN\ from the parent directory, simplifying version management across the CORBA library.
lib/cosEvent, lib/cosProperty · high confidence
Orber CORBA middleware updates: IPv6 support, license change, and deprecated function removal
The Orber CORBA middleware now supports IPv6 addresses in service contexts and remote modifiers, allowing connections to both IPv4 and IPv6 endpoints. The license has been updated from the Erlang Public License to the Apache License 2.0. Deprecated Erlang functions such as \erlang:now/0\, \random:seed/3\, \random:uniform/1\, and \size/1\ (for binaries) have been replaced with \erlang:timestamp/0\, \rand:seed/2\, \rand:uniform/1\, and \byte\_size/1\ respectively. The \corba\_request\ module, which relied on Mnesia for request storage, has been removed. Additionally, \term\_to\_binary/2\ calls now use \minor\_version 1\ for consistency, and the application now explicitly lists runtime dependencies including Mnesia, SSL, and Inets.
lib/orber/src · high confidence
Orber documentation cleanup and license update
The Orber documentation source files have been cleaned up by removing unused Postscript image assets and the obsolete ch\_example.xml tutorial chapter, which simplifies the documentation build process. Additionally, the release notes file (notes\_tail.xml.src) has been added or updated to reflect recent changes, and the license header in the documentation has been changed from the Erlang Public License to the Apache License 2.0.
lib/orber/doc/src · high confidence
Orber library license migration and build restructuring
The Orber CORBA library has switched its licensing from the Erlang Public License (EPL) to the Apache License 2.0, a change reflected in the headers of the main Makefile and Java example files. Additionally, the build system has been restructured: the local version control file (vsn.mk) and prebuild skip list have been removed in favor of a shared versioning scheme, and the Java source directory has been relocated from java\_src to examples/initial\_reference\_java to better distinguish examples from core library code.
lib/orber · high confidence
Stack example build system and licensing updates
The Stack example's Makefile has been updated to support parallel builds and suppress compiler warnings for newer OTP versions, while also fixing the 'make clean' target to remove generated IDL files. Additionally, the license for all files in this example has been changed from the Erlang Public License to the Apache License 2.0.
lib/orber/examples/Stack · high confidence
Update license to Apache 2.0 and fix release path handling
The orber library's license has been changed from the Erlang Public License to the Apache License, Version 2.0. Additionally, the release process now correctly handles whitespace in the installation path by quoting directory variables, and the versioning logic has been updated to use the shared CORBA version variable instead of a local one.
lib/orber/priv · high confidence
Updated license to Apache 2.0 and centralized version management
The lib/cosFileTransfer module has switched its licensing from the Erlang Public License to the Apache License, Version 2.0. Additionally, the local version control file (vsn.mk) was removed in favor of a centralized versioning scheme that includes a parent vsn.mk file, ensuring consistent version numbers across the CORBA library components.
lib/cosFileTransfer · high confidence
Updated license to Apache 2.0 and removed obsolete Makefile
The ORBER library's include files (corba.hrl, ifr\_types.hrl, orber\_pi.hrl) have switched their licensing from the Erlang Public License V1.1 to the Apache License, Version 2.0, with copyright years updated to 2016. Additionally, the local Makefile in lib/orber/include has been removed, as the build process now relies on the standard OTP release targets included from the parent directory.
lib/orber/include · high confidence
cosEvent: License, build, and timestamp updates
The cosEvent library switches its license from the Erlang Public License to the Apache License 2.0 and updates copyright years. The build system (Makefile) now sources version information from the parent CORBA directory, adds compiler flags to suppress specific warnings, and ensures generated IDL files are built in parallel. The application definition now explicitly lists runtime dependencies (stdlib, orber, kernel, erts). Additionally, the PullerS implementation replaces the deprecated erlang:now() with erlang:system\_time() and unique integers for event timestamps, and the App module's install/uninstall logic now returns error tuples instead of calling exit/1 on registration failures.
lib/cosEvent/src · high confidence
cosEventDomain documentation license, encoding, and build cleanup
The cosEventDomain documentation source files have been updated to use the Apache License 2.0 instead of the Erlang Public License 1.1, and the XML source encoding has been changed from Latin-1 to UTF-8. The documentation build process has been simplified by removing obsolete files (such as \fascicules.xml\, \make.dep\, and \part\_notes.xml\), eliminating conditional \DOCSUPPORT\ blocks in the Makefile, and disabling GitHub edit links for documentation. Additionally, superfluous soft hyphens (\­\) were removed from titles to prevent rendering issues with certain tools.
(repo-wide) · high confidence
cosNotification documentation license updated and legacy files removed
The cosNotification documentation source files have been updated to use the Apache License 2.0 instead of the Erlang Public License, and copyright years have been refreshed to 2016. Additionally, obsolete PostScript image files, legacy XML build dependencies, and unused source files have been removed to clean up the documentation build process.
lib/cosNotification/doc · high confidence
cosTransactions documentation license and build cleanup
The cosTransactions documentation source files have been migrated from the Erlang Public License (EPL) to the Apache License 2.0, and the XML encoding has been updated from Latin-1 to UTF-8. The documentation build process has been simplified by removing unused source files (such as \fascicules.xml\ and \make.dep\), eliminating obsolete LaTeX/PS build targets and \DOCSUPPORT\ conditionals from the Makefile, and disabling GitHub edit links for the documentation.
lib/cosTransactions/doc · high confidence
Test coverage
Add Common Test suites for cosTransactions; Added Common Test suite for cosFileTransfer; Added Common Test suites for C-client/Erl-server interoperability; Added Common Test suites for cosNotification; Added Common Test suites for the Orber CORBA application; Added Common Test suites for the cosProperty application.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 37.
Lenses
- Code Health 83
- Architecture 100
- Maturity 49
- Readiness 26
- Security 59
- Event Sourcing 100
- Accessibility 29
Changes since last survey
- 300 commits — 243 feature/other, 57 fixes
By area
- (repo) — 71 commits
- lib/ic — 71 commits
- lib/orber — 53 commits
- (root) — 27 commits
- lib/cosEvent — 19 commits
- make/otp.mk.in — 9 commits
- make/otp_release_targets.mk — 9 commits
- make/fakefop — 6 commits
- lib/cosNotification — 4 commits
- make/ose_lm.mk.in — 4 commits
- lib/cosFileTransfer — 3 commits
- lib/cosProperty — 3 commits
- make/emd2exml.in — 3 commits
- make/output.mk.in — 3 commits
- doc/notes_head.xml.src — 2 commits
- lib/cosEventDomain — 2 commits
- make/otp_ded.mk.in — 2 commits
- make/run_make.mk — 2 commits
- doc/Makefile — 1 commit
- lib/cosTime — 1 commit
Notable commits
- fix: Fix a few dialyzer warnings
- fix: Fix a shift/reduce conflicts warning in icparse
- fix: Fix build
- fix: Fix comma usage in generated documentation date
- fix: Fix compiler warning
- fix: Fix erroneous skipping for jinterface, erl_interface and ic
- fix: Fix failing test cases
- fix: Fix fop font-cache handling during pdf build
- fix: Fix ic_erlang_term_is_equal() and change ic_free_erlang_term() to void
- fix: Fix javadoc rules in ic
- fix: Fix new compiler warnings due to OTP 29
- fix: Fix other applications
- fix: Fix program paths used in build process
- fix: Fix release target
- fix: Fix release_tests target from corba top level
- fix: Fix some FOP warnings
- fix: Fix some dependencies in so ERL_LIBS is not needed
- fix: Fix some errors in the test suites
- fix: Fix two deprecation warnings in com.ericsson.otp.ic.Environment
- fix: Fix two small silent rules omissions
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
erlang/corba was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit caa217f3ba42c4cda6bd50e10fffa202e694bfbf — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.