[DTrace-devel] [PATCH v2 19/20] Implement a framework for D subroutines incl. strlen() implementation

Kris Van Hees kris.van.hees at oracle.com
Wed Jun 2 20:45:45 PDT 2021


On Wed, Jun 02, 2021 at 10:10:13PM -0400, Eugene Loh wrote:
> Thanks.  Not sure you noticed, but while this new patch provides those 
> guardrails against the core dumps, it also changes the error mode for a 
> number of test/unittest/speculation/err.*.d tests. Those tests expect 
> failures like "aggregating actions may not follow speculate( )", but 
> we're getting "unimplemented subroutine: speculation".  The tests used 
> to PASS, but I guess they were false positives.  We encountered the 
> anticipated error, but without speculation we should not have gone that 
> far.  These tests do not deserve to pass yet.  They had just been lucky 
> so far.

Indeed.
> 
> tl/dr  I think the bottom line is that this patch needs to XFAIL the 
> following tests:

That will be something for v3 - reason it is not done yet is that I am not
certain yet whether I want to just XFAIL them or whether I want to make them
actually do what they are supposed to, i.e. validate the use of speculate()
in view of other actions in the clause.  That can be done (correctly) without
actually fully implementing speculations.

> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d
> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d
> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d
> test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d
>        test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d
>        test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithAvg.d
> test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithCount.d
> test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithLquant.d
>        test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithMax.d
>        test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithMin.d
> test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithQuant.d
>        test/unittest/speculation/err.D_AGG_SPEC.SpeculateWithSum.d
>        test/unittest/speculation/err.D_COMM_COMM.CommitAftCommit.d
>        test/unittest/speculation/err.D_COMM_COMM.DisjointCommit.d
>        test/unittest/speculation/err.D_COMM_DREC.CommitAftDataRec.d
>        test/unittest/speculation/err.D_DREC_COMM.DataRecAftCommit.d
>        test/unittest/speculation/err.D_DREC_COMM.ExitAfterCommit.d
>        test/unittest/speculation/err.D_EXIT_SPEC.ExitAftSpec.d
>        test/unittest/speculation/err.D_PROTO_LEN.SpecNoId.d
>        test/unittest/speculation/err.D_SPEC_COMM.SpecAftCommit.d
>        test/unittest/speculation/err.D_SPEC_DREC.SpecAftDataRec.d
>        test/unittest/speculation/err.D_SPEC_SPEC.SpecAftSpec.d
> 
> On 6/2/21 4:08 PM, Kris Van Hees wrote:
> > This patch provides the skeleton for the implementation of subroutines
> > in D.  The strlen() subroutine is provided as a first example of how
> > to imeplement subroutines.  It is equivalent to the implementation of
> > D actions in the code generator.
> 
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel



More information about the DTrace-devel mailing list