<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi all,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Christmas comes early this year and we have a new version of SSG out for Mochi users! This new release contains some key changes to SSG's API and semantics that users should consider. That said, we are hopeful this newly refactored version of SSG will address
 some usability/stability concerns that users have brought up in the past.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Important changes:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<ul>
<li>All SSG functions return error codes now, which means that the return values from prior versions of SSG functions have been shifted into functional arguments that are passed by reference<br>
</li><ul>
<li>ssg_strerror() function can be used to obtain an error string</li></ul>
<li>ssg_group_observe()/ssg_group_unobserve() have been removed and replaced with ssg_group_refresh()</li><ul>
<li>this function may be repeatedly called by non-group members to obtain updated group views from group members</li><li>group members do not need to use this call, as their views are automatically managed by the SWIM protocol</li></ul>
<li>ssg_init() can no longer be called before margo_init(), a capability we originally added to allow users to extract key group info before initializing Margo. New helper functions have been added to support these use cases:</li><ul>
<li>ssg_get_group_cred_from_buf()/ssg_get_group_cred_from_file() to retrieve a group credential from a group file or buffer, before initializing SSG</li><li>ssg_get_group_transport_from_buf()/ssg_get_group_transport_from_file() to retrieve the group transport protocol from a group file or buffer, before initializing SSG</li></ul>
<li>ssg_group_id_get_cred() and ssg_group_id_get_addr_str() functions have been removed</li><ul>
<li>The former is replaced by the credential helper function mentioned above</li><li>The latter is replaced by new function ssg_get_group_member_addr_str()</li></ul>
<li>ssg_group_join_target(), ssg_group_leave_target(), and ssg_group_refresh_target() all expect input in form of a Mercury address now, rather than an address string<br>
</li></ul>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Please let us know if you have any questions/feedback about the changes or if you run into any problems!<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Happy holidays!<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
--Shane<br>
</div>
</body>
</html>