Open ayeshLK opened 2 weeks ago
The url
package has no usages of ValueCreator
or TypeCreator
APIs. But the tests with DCE are failing due to a lang issue: https://github.com/ballerina-platform/ballerina-lang/issues/43552. There is one usage for the ErrorCreator
to create url:Error
and since it is mentioned in the external function calls, it is added by default.
The log
package has no usages of TypeCreator
. There are some usages of ValueCreator
and ErrorCreator
, but those are for tests (added via the test-utils package) and not part of the package.
This effort is currently on hold due to the following lang issue [1]
[1] - https://github.com/ballerina-platform/ballerina-lang/issues/43554
We are re-starting this efforts and the latest Ballerina lang timestamp is 2201.11.0-20241111-172200-095db58f
Tested the ldap
library with the U11 timestamp for DCE and confirmed no fixes are needed. And didn't generate the library timestamp either as it is not used as a dependency for other modules.
Tested following modules with shared U11 timestamp for DCE and confirmed that no fixes are needed. And didn't generate the library timestamp either as it is not used as a dependency for other modules.
java.arrays
math.vector
Tested the avro
library with the U11 timestamp for DCE and confirmed that no fixes are needed.
We have introduced a fix for https://github.com/ballerina-platform/ballerina-lang/issues/43579.
We are yet to fix https://github.com/ballerina-platform/ballerina-lang/issues/43580, but we're not considering it as a blocker to migrate modules at the moment since it seems to happen only when a construct from the default module is used in the tests of a non-default module (which is an edge case).
Description
In the first phase we will be looking into dead-code-elimination for Ballerina standard library modules.
Below are the steps required to complete dead code elimination for a standard library module:
1. Update Dependency Versions:
Update the timestamps or latest versions of dependencies in
gradle.properties
(refer to the “Next” tab for the relevant versions).2. Build the Module:
Use
gradle
to build the standard library module. This step will generate an intermediate package, which will be used for testing.3. Run Dead Code Elimination Command:
In the
ballerina
directory of the module, execute:4. Review the Report:
If errors arise, examine
target/dead_code_elimination_report.json
to identify any removed types. Use@ExternalDependency
to mark these types as needed.5. Verify Type and Value Creator Usage:
Review
TypeCreator
,ValueCreator
andErrorCreator
usage in the native code. Mark any relevant Ballerina types with@ExternalDependency
if they aren’t marked already.Module list
Version
No response