Why pre/post_start methods of uvm_sequence_base "should not be called directly by the user"

In UVM1.1d or UVM1.2 standard the methods pre/post_start are referred to as ‘user-defined’ methods but there’s a disturbing sentence that claims:

This task is a user-definable callback that is called before the optional execution of pre_body. This method should not be called directly by the user.

You can check it here.

Why is that so? Considering that pre/post_body are only called ‘optionally’, it seems to me there’s a general consensus to deprecate them in favor of their counterparts. Any rationale behind that sentence in the standard?

In reply to abasili:

The source code explains why you don’t call pre_start()/post_start():


// Executing sequences via <start>:
// 
// A sequence's <start> method has a ~parent_sequence~ argument that controls
// whether <pre_do>, <mid_do>, and <post_do> are called *in the parent*
// sequence. It also has a ~call_pre_post~ argument that controls whether its
// <pre_body> and <post_body> methods are called.
// In all cases, its <pre_start> and <post_start> methods are always called.
// 
// When <start> is called directly, you can provide the appropriate arguments
// according to your application.
//

In reply to cgales:

I think I now can officially confirm I need a vacation!

After reading your reply I realized that in the documentation it’s written “This method should not be called directly by the user”, but for some reason I understood “This method should not be used by the user”.

Apologies for the noise and thanks for your quick feedback.