Changeset 3854 for trunk/manuals

Show
Ignore:
Timestamp:
09/18/07 04:35:51 (16 months ago)
Author:
pmoura
Message:

Minor documentation improvements on static binding.

Location:
trunk/manuals/userman
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/manuals/userman/categories.html

    r3751 r3854  
    314314:- end_object.</pre> 
    315315<p> 
    316 This alternative should only be used when the user knows a priori that the category predicates will not be specialized or redefined by descendant objects of the object importing the category. Its advantage is that, whenever possible, the Logtalk compiler will optimize the calls by using static binding. However, when static binding is not possible due to the lack of sufficient information at compilation time, the performance may be worse than calling the category predicate using a message to <em>self</em> due to the lack of a caching mechanism. 
     316This alternative should only be used when the user knows a priori that the category predicates will not be specialized or redefined by descendant objects of the object importing the category. Its advantage is that, whenever possible, the Logtalk compiler will optimize the calls by using static binding (implies separate loading of the categories using the <code>reload(skip)</code> compiler flag). However, when static binding is not possible due to the lack of sufficient information at compilation time, the performance may be worse than calling the category predicate using a message to <em>self</em> due to the lack of a caching mechanism. 
    317317</p> 
    318318 
     
    320320    <div class="copyright"> 
    321321        <span>Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a href="http://logtalk.org">Logtalk.org</a></span><br/>  
    322         <span>Last updated on: June 8, 2007</span> 
     322        <span>Last updated on: September 15, 2007</span> 
    323323    </div> 
    324324    <div class="navbottom"> 
  • trunk/manuals/userman/messages.html

    r3650 r3854  
    149149 
    150150<p> 
    151 Logtalk supports both static binding and dynamic binding. Static binding is used whenever messages are sent (using <code>::/2</code>) to objects loaded using the <code>reload(skip)</code> compiler flag. When that is not the case (or when using <code>::/1</code>), Logtalk uses dynamic binding coupled with a caching mechanism that avoids repeated lookups of predicate declarations and predicate definitions. This is a solution common to other programming languages supporting dynamic binding. Message lookups are automatically cached the first time a message is sent. Cache entries are automatically removed when loading entities or using Logtalk dynamic features that invalidate the cached lookups. 
     151Logtalk supports both static binding and dynamic binding. Static binding is used whenever messages are sent (using <code>::/2</code>) to objects loaded separately using the <code>reload(skip)</code> compiler flag. When that is not the case (or when using <code>::/1</code>), Logtalk uses dynamic binding coupled with a caching mechanism that avoids repeated lookups of predicate declarations and predicate definitions. This is a solution common to other programming languages supporting dynamic binding. Message lookups are automatically cached the first time a message is sent. Cache entries are automatically removed when loading entities or using Logtalk dynamic features that invalidate the cached lookups. 
    152152</p> 
    153153<p> 
     
    236236    <div class="copyright"> 
    237237        <span>Copyright &copy; <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> &mdash; <a href="http://logtalk.org">Logtalk.org</a></span><br/>  
    238         <span>Last updated on: April 14, 2007</span> 
     238        <span>Last updated on: September 15, 2007</span> 
    239239    </div> 
    240240    <div class="navbottom">