Changes between Version 3 and Version 4 of signals


Ignore:
Timestamp:
11/22/2010 12:35:34 PM (13 years ago)
Author:
tobias.mohr
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • signals

    v3 v4  
    4747=== Morphic Callbacks ===
    4848
    49 Default mouse or keyboard input events can be connected using <code>#on:send:to:</code>. This avoids the need to implement, e.g., <code>#mouseDown:</code>, or <code>#keyStroke:</code> but messages with more readable names.
     49Default mouse or keyboard input events can be connected using ''`#on:send:to:`''. This avoids the need to implement, e.g., ''`#mouseDown:`'', or ''`#keyStroke:`'' but messages with more readable names.
    5050
    5151This approach is only limited to these standard events and cannot be used so create arbitrary connections.
     
    5353=== Announcements ===
    5454
    55 [[media/icons/silk:world.png]] [http://www.squeaksource.com/AXAnnouncements.html AXAnnouncements@SqueakSource]
     55[[Image(media/icons/silk:world.png)]] [http://www.squeaksource.com/AXAnnouncements.html AXAnnouncements@SqueakSource]
    5656
    5757=== Bindings ===
     
    8585''It is not guaranteed that the table is correct except for the Signals column.''
    8686
    87 ==== Benchmark ====
     87=== Benchmark ===
    8888
    8989One sender was bound to 10000 receivers. Then one event was triggered and processed synchronously. The benchmark code is in the ''Signals'' package.
     
    9191 ''Test-System:'' Core2Duo @ 2.54 GHz, 4096 MB DDR2 RAM, Windows 7 Professional, Squeak 4.1
    9292
    93 {| cellpadding="10"
    94 |
    95 ! Message
    96 Sends
    97 ! Announce-
    98 ments
    99 ! Object
    100 Dependents
    101 ! Object
    102 Events
    103 ! Bindings
    104 ! Signals
    105 |-
    106 | align="right" | Bindings creation time
    107 | align="right" | 0 ms
    108 '''0 %'''
    109 | align="right" | 44 ms
    110 '''20 %'''
    111 | align="right" | 39765 ms
    112 '''17832 %'''
    113 | align="right" | 64204 ms
    114 '''28791 %'''
    115 | align="right" | ?
    116 | align="right" | 223 ms
    117 '''100 %'''
    118 |-
    119 | align="right" | Event triggering time
    120 | align="right" | 1 ms
    121 '''4 %'''
    122 | align="right" | 4 ms
    123 '''17 %'''
    124 | align="right" | 2 ms
    125 '''8 %'''
    126 | align="right" | 78 ms
    127 '''325 %'''
    128 | align="right" | ?
    129 | align="right" | 24 ms
    130 '''100 %'''
    131 |}
     93||                        || Message[[br]]Sends || Announce-[[br]]ments || Object[[br]]Dependents     || Object[[br]]Events || Bindings || Signals ||
     94|| Bindings creation time || 0 ms[[br]]'''0 %'''|| 44 ms[[br]]'''20 %'''|| 39765 ms[[br]]'''17832 %'''|| 64204 ms[[br]]'''28791 %'''|| ?|| 223 ms[[br]]'''100 %'''||
     95|| Event triggering time  || 1 ms[[br]]'''4 %'''|| 4 ms[[br]]'''17 %'''|| 2 ms[[br]]'''8 %'''         || 78 ms[[br]]'''325 %''' ||     ?|| 24 ms[[br]]'''100 %'''||
     96
    13297
    13398=== Terms ===
     
    139104A ''connection'' is a pair of signal and callback. The pair is used to lookup all callbacks whenever a signal is emitted. A signal can have multiple connections.
    140105
    141 == [[Image:Icons_silk_disk.png]] How to Install ==
    142 
    143 <div style="float:right;">
    144 {| style="color:#404040; background-color:#dedede;border-style:dotted;" cellpadding="10" cellspacing="0" border="0"
    145 |
    146 ; Environment
    147 : [[Image:Icons_squeak_16.png|Recommended Squeak Version]] 4.1, 4.2 Alpha
    148 : [[Image:Icons_silk_application_home.png|Recommended VM Version]] 4.0.2 (Win), ? (Mac)
    149 ; Sources
    150 : [[Image:Icons_silk_database.png|Repository]] [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities/ SwaUtilities]
    151 : [[Image:Icons_silk_package.png|Needed Packages from the Repository]] Signals
    152 : [[Image:Icons_silk_package.png|Needed Packages from the Repository]] SI-Wrapper (optional)
    153 : [[Image:Icons_silk_package.png|Needed Packages from the Repository]] SI-OB-Morphic (optional)
    154 : [[Image:Icons_silk_package.png|Needed Packages from the Repository]] SI-Reflection (optional)
    155 : [[Image:Icons_silk_package.png|Needed Packages from the Repository]] SI-Benchmarks (optional)
    156 : [[Image:Icons_silk_bullet_go.png|Dependents]] [http://www.squeaksource.com/OmniBrowser.html OmniBrowser] (optional)
    157 : [[Image:Icons_silk_bullet_go.png|Dependents]] [[PUBLIC:MethodWrappers|Method Wrappers]] (optional)
    158 : [[Image:Icons_silk_bullet_go.png|Dependents]] [http://www.squeaksource.com/AXAnnouncements.html AXAnnouncements] (optional)
    159 ; Misc
    160 : [[Image:Icons_silk_world.png|Website]] [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities.html SwaUtilities@SqueakSource]
    161 |}
    162 </div>
     106{{{
     107#!div style="float:right;"
     108||'''Environment'''|| ||
     109|| [[Image(media/icons/custom:squeak_16.png, title="Recommended Squeak Version", nolink, right)]] || 4.1, 4.2 Alpha ||
     110|| [[Image(media/icons/silk:application_home.png, title="Recommended Squeak VM Version", nolink, right)]] || 4.0.2 (Win), ? (Mac) ||
     111|| [[Image(media/icons/silk:cog.png, title="Recommended Cog VM Version", nolink, right)]] || ''not supported'' ||
     112||'''Sources'''|| ||
     113|| [[Image(media/icons/silk:script_gear.png, title="Metacello Configuration", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/MetacelloRepository/YourConfiguration YourConfiguration] ||
     114|| [[Image(media/icons/silk:database.png, title="Repository", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities/ SwaUtilities] ||
     115
     116|| [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || ''`Signals`'' ||
     117|| [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || ''`SI-Wrapper`'' (optional) ||
     118|| [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || ''`SI-OB-Morphic`'' (optional) ||
     119|| [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || ''`SI-Reflection`'' (optional) ||
     120|| [[Image(media/icons/silk:package.png, title="Needed Packages from the Repository", nolink, right)]] || ''`SI-Benchmarks`'' (optional) ||
     121
     122|| [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [http://www.squeaksource.com/OmniBrowser.html OmniBrowser] (optinal) ||
     123|| [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [wiki:methodwrappers Method Wrappers] (optional) ||
     124|| [[Image(media/icons/silk:bullet_go.png, title="Dependents", nolink, right)]] || [http://www.squeaksource.com/AXAnnouncements.html AXAnnouncements] (optional) ||
     125
     126||'''Misc'''|| ||
     127|| [[Image(media/icons/silk:world.png, title="Website", nolink, right)]] || [http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/SwaUtilities.html SwaUtilities@SqueakSource] ||
     128}}}
    163129
    164130Just load the ''Signals'' package from the Monticello HTTP repository.
     
    174140The ''Signals'' package contains several sub-packages:
    175141
    176 * Signals-Core ... main signals implementation
    177 * Signals-Tests ... tests for the core implementation
    178 * SI-OB-Morphic ... morphic extensions to OmniBrowser
    179 * SI-Benchmarks ... benchmmarks for Signals and other mechanisms, e.g., Announcements
    180 * SI-Wrapper ... turns each message into a signal using method wrappers
    181 * SI-Reflection ... search and browse signals in the image
    182 
    183 <div style="clear:both;"></div>
    184 
    185 == [[Image:Icons_silk_book_open.png]] How to Use ==
    186 
    187 === Implementing Signals ===
     142 * ''`Signals-Core`'' ... main signals implementation
     143 * ''`Signals-Tests`'' ... tests for the core implementation
     144 * ''`SI-OB-Morphic`'' ... morphic extensions to OmniBrowser
     145 * ''`SI-Benchmarks`'' ... benchmmarks for Signals and other mechanisms, e.g., Announcements
     146 * ''`SI-Wrapper`'' ... turns each message into a signal using method wrappers
     147 * ''`SI-Reflection`'' ... search and browse signals in the image
     148
     149{{{
     150#!div style="clear:both;"
     151}}}
     152
     153
     154= How to Use =
     155
     156== Implementing Signals ==
    188157
    189158A signal is an object's method that is able to trigger callbacks. It is implemented like this: