Designing Minimal RTTI Usage in Delphi Applications
Learn how to enable just enough Delphi RTTI for reflection‑based workloads while keeping binaries small and data private.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how to enable just enough Delphi RTTI for reflection‑based workloads while keeping binaries small and data private.
Quarkus uses build-time augmentation to reduce runtime memory footprint and startup time, but native compilation relies on static analysis that often fails when libraries use reflection or dynamic proxies. During the build phase, Quarkus automatically integrates the GraalVM reachability metadata repository to inform the native-image tool about necessary refl
Goal: Enable kotlin.reflect.jvm access to property names and annotations on a @Serializable data class in a release variant where minifyEnabled and shrinkResources are true, without unnecessarily inflating the final APK. Constraint: Adding @Keep to the class or its properties guarantees that Kotlin metadata is preserved but increases binary size proportional
Deploying a Ceylon application as a GraalVM native image can cut startup time to milliseconds and reduce memory usage to a few megabytes, making it attractive for low‑traffic workloads. The 1.3.6 release introduces the ceylon native command, but the toolchain currently lacks full runtime reflection support. Classes annotated with @Annotation or accessed via
Problem Context Local development on the Dart VM with JIT compilation permits the use of dart:mirrors for runtime type inspection and dynamic class loading. When the same code is compiled for production using AOT (e.g., flutter build apk --release or dart compile exe ), the mirror system is omitted from the binary. Executing the release build immediately thr
Goal Ensure that methods accessed only via reflection remain present in IL2CPP‑built players while keeping the build size impact minimal. Constraints and uncertainty The Unity Editor (Mono) does not apply code stripping, so the same reflection calls succeed locally. In IL2CPP builds for Android/iOS, the linker treats reflection‑only members as unused and rem
A Xamarin.Forms 5.x solution uses types that are only accessed via reflection for DI, JSON serialization, or attribute scanning. The managed linker is typically disabled in Debug and enabled in Release, which can strip metadata that is not statically referenced. Two documented mitigation approaches exist for this behavior. Applying [Preserve(AllMembers=true)
The goal is to retain reflection metadata for generic types when using ILLinker trimming with PublishTrimmed=true in .NET 5+ SDKs. The default trimming configuration does not include a rule to preserve System.Reflection.MetadataLoadContext and related generic type metadata, which can cause MissingMethodException or InvalidProgramException at runtime. Develop
Goal We want to confirm that the Haxe compiler's dead‑code elimination correctly removes an unused class when targeting JavaScript, while preserving classes that might be needed via dynamic or reflection access. Constraints The compiler performs reachability analysis per target. JavaScript and C++ backends typically prune unreachable symbols, but strings use