Skip to content

Phase 3: Remove hardcoded DtRobust system from compiler #250

@ztripez

Description

@ztripez

Phase 3: Remove Hardcoded DtRobust System

Part of Epic #247

Objective

Remove all hardcoded DtRobust logic from the compiler IR, making it operator-agnostic and letting the standard library be authoritative.

Tasks

Remove Type Definitions

  • Remove DtRobustOperator enum from types.rs
  • Remove IntegrationMethod enum from types.rs
  • Remove DtRobustCall variant from CompiledExpr
  • Remove DtRobustCall from SsaInstruction

Remove Hardcoded Parsing

  • Remove parse_dt_robust_operator() function from lower/expr.rs
  • Remove hardcoded dt-robust check in expression lowering
  • Remove dt-robust precedence over kernel function lookup
  • Update dt_robust_operator_name() in codegen.rs (or remove entirely)

Remove Execution Logic

  • Remove execute_dt_robust() from vectorized/mod.rs
  • Remove dt-robust handling from SSA execution
  • Remove pattern matching on DtRobust variants

Update Related Code

  • Remove dt-robust imports across the codebase
  • Update any documentation referencing hardcoded operators
  • Remove or update related test files

Validation

  • Ensure no compilation errors after removal
  • Verify fallback to kernel function calls works
  • Test with simple dt-robust function calls

Files to Modify

  • crates/kernels/ir/src/types.rs
  • crates/kernels/ir/src/expressions.rs
  • crates/kernels/ir/src/ssa/types.rs
  • crates/kernels/ir/src/lower/expr.rs
  • crates/kernels/ir/src/vectorized/mod.rs
  • crates/kernels/ir/src/codegen.rs
  • Various test files

Success Criteria

  • No hardcoded dt-robust logic in compiler
  • Compiler builds successfully
  • DtRobust functions route to stdlib instead
  • All tests pass (updated for new behavior)

Dependencies

  • Requires Phase 2 (complete stdlib implementation)

Breaking Changes

  • DtRobustOperator and related types removed from public API
  • DSL must use kernel. prefix for dt-robust functions

Estimated Time: 1 week

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-3Phase 3 of epic implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions