- Timestamp:
- 09/18/07 04:35:51 (16 months ago)
- Location:
- trunk/manuals/userman
- Files:
-
- 2 modified
-
categories.html (modified) (2 diffs)
-
messages.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/manuals/userman/categories.html
r3751 r3854 314 314 :- end_object.</pre> 315 315 <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.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 (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. 317 317 </p> 318 318 … … 320 320 <div class="copyright"> 321 321 <span>Copyright © <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> — <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> 323 323 </div> 324 324 <div class="navbottom"> -
trunk/manuals/userman/messages.html
r3650 r3854 149 149 150 150 <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.151 Logtalk 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. 152 152 </p> 153 153 <p> … … 236 236 <div class="copyright"> 237 237 <span>Copyright © <a href="mailto:pmoura@logtalk.org">Paulo Moura</a> — <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> 239 239 </div> 240 240 <div class="navbottom">
