<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.placenet.org/benoit/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Harvard Business School of Echec - Tag - linux  - Commentaires</title>
  <link>http://www.placenet.org/benoit/index.php/</link>
  <atom:link href="http://www.placenet.org/benoit/index.php/feed/tag/linux/rss2/comments" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Wed, 12 Nov 2008 14:03:18 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
    
    <item>
    <title>ABI vs. API compatibility - Mart Raudsepp</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c158</link>
    <guid isPermaLink="false">urn:md5:6f67bf6e0b74720856de773e538226e9</guid>
    <pubDate>Fri, 25 Apr 2008 21:10:11 +0200</pubDate>
    <dc:creator>Mart Raudsepp</dc:creator>
    
    <description>&lt;p&gt;err, yes, you need to implement PSS in all other platforms if you want to add it and not leave it empty for non-linux. Obviously. But you don't need to implement anything else already done yet again with the suggestion in comment #8...&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Benoît Dejean</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c157</link>
    <guid isPermaLink="false">urn:md5:1b8f4c5f2dd80a388039dce7fb4ad8f1</guid>
    <pubDate>Wed, 23 Apr 2008 11:11:02 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
    
    <description>&lt;p&gt;Whenever i add a new functionnality (which is implemented as 3/4 functions), it has to be ported on linux, the 2 BSD arch and eventually solaris, darwin or aix. I can't do all these ports because of a lack of time/interest. So adding a new function for a single guint64 is too much work/breakage.&lt;/p&gt;


&lt;p&gt;I was looking for alternatives where i would be able to do all the work myself:&lt;br /&gt;
- breaking the ABI moves all the work to distro packagers&lt;br /&gt;
- breaking the API would let me submit trivial patches to upstreams&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Mart Raudsepp</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c156</link>
    <guid isPermaLink="false">urn:md5:c3d9b6fd0a53f6e8662b0b565ba1f1ba</guid>
    <pubDate>Tue, 22 Apr 2008 23:22:30 +0200</pubDate>
    <dc:creator>Mart Raudsepp</dc:creator>
    
    <description>&lt;p&gt;Benoît&amp;gt;  &amp;quot;Well, i cannot deprecate anything because that would mean throw away all the different/untested implemtentations on all !linux arch. Adding a new function also means breaking all !linux arch until someone test it (which almost always happens after the first stable release).&amp;quot;&lt;/p&gt;


&lt;p&gt;How about adding the PSS support to the existing functions, but afterwards renaming glibtop_get_proc_mem to the new name, while adding a compatibility wrapper of the old name (keeping API and ABI in effect) that constructs the old style struct out of the results it gets from the new one that has more data - should be just some struct field copying and throwing away the bigger struct before returning the copied (deprecated) compatibility one from glibtop_get_proc_mem&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Bronson</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c154</link>
    <guid isPermaLink="false">urn:md5:9640898b3bfb8369b33a58e0374d0f81</guid>
    <pubDate>Tue, 22 Apr 2008 21:32:40 +0200</pubDate>
    <dc:creator>Bronson</dc:creator>
    
    <description>&lt;p&gt;I gotta agree with Rob...  Leave this code alone, deprecate it, and just add a new call that takes a selector to tell what value to return.&lt;/p&gt;


&lt;p&gt;Otherwise, you'll have to figure out hack upon hack upon hack every time you want to make this sort of change in the future.  And, given kernel development, it won't be long before you'll need to extend it again...&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - James Henstridge</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c152</link>
    <guid isPermaLink="false">urn:md5:cc2c5da00c369877688664d17722e642</guid>
    <pubDate>Tue, 22 Apr 2008 17:22:04 +0200</pubDate>
    <dc:creator>James Henstridge</dc:creator>
    
    <description>&lt;p&gt;If you decide to break the API, one option would be to add a &amp;quot;version&amp;quot; field to the start of the struct.  Require the caller to fill it in before calling glibtop_get_proc_mem() so you can tell how big the caller thinks the struct is.  Include the current version as a #define in the header so the caller can use it to initialise the structure to the right version.&lt;/p&gt;


&lt;p&gt;If you need to expand the struct in the future, increment the version number and add new fields to the end.  Then make glibtop_get_proc_mem() only fill in the fields if the version number is appropriate.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Benoît Dejean</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c151</link>
    <guid isPermaLink="false">urn:md5:8dd16c28596903663acc0ce025bf6365</guid>
    <pubDate>Tue, 22 Apr 2008 16:04:37 +0200</pubDate>
    <dc:creator>Benoît Dejean</dc:creator>
    
    <description>&lt;p&gt;Well, i cannot deprecate anything because that would mean throw away all the different/untested implemtentations on all !linux arch. Adding a new function also means breaking all !linux arch until someone test it (which almost always happens after the first stable release).&lt;/p&gt;


&lt;p&gt;Storing pointers is not an option because the struct may be marshalled across a pipe. And the marshalling code is already terribly broken.&lt;/p&gt;


&lt;p&gt;Adding reserved members is very hard when you don't want to bloat your struct. I've already provisioned glibtop_cpu for 32 CPU, that makes sizeof ~ 2KiB.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Jeff Licquia</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c150</link>
    <guid isPermaLink="false">urn:md5:8a41a85ba6f03e58a86a30cbb5ac0ee4</guid>
    <pubDate>Tue, 22 Apr 2008 15:04:22 +0200</pubDate>
    <dc:creator>Jeff Licquia</dc:creator>
    
    <description>&lt;p&gt;You could start using symbol versioning, and provide both.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Mart Raudsepp</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c149</link>
    <guid isPermaLink="false">urn:md5:fd27700a5e07123f77f91f6d5cd42cb2</guid>
    <pubDate>Tue, 22 Apr 2008 14:20:00 +0200</pubDate>
    <dc:creator>Mart Raudsepp</dc:creator>
    
    <description>&lt;p&gt;Looks like that duplicated guint64 could fit a pointer that could point to a new struct with more padding. However, I'm wondering what's the point of this public structure - wouldn't separate function APIs for a set of these be more ABI proof? if that's a good idea, could just not expose PSS in that struct at all and introduce some new API for this, say glibtop_proc_get_pss. Then again, I assume it's all retrieved in one go and that would reduce efficiency when one needs to call get_pss, get_rss and so on in a row?&lt;br /&gt;
If you need to stick with a struct, it might be a good idea to at some point introduce a new one that has some padding available for future expansion and a new function, say glibtop_get_proc_mem2 (yes, need a better name) that returns it, having library users that need PSS information convert to the API and depend on the new libgtop version.&lt;br /&gt;
Sorry, just thinking out loud, maybe something useful &lt;img src=&quot;/benoit/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Rob</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c148</link>
    <guid isPermaLink="false">urn:md5:aafefa8288ee5641a9578d444108b479</guid>
    <pubDate>Tue, 22 Apr 2008 14:06:55 +0200</pubDate>
    <dc:creator>Rob</dc:creator>
    
    <description>&lt;p&gt;Well, all these options are ABI breaking - the 'break the API' options also break ABI, just subtly. which is worse, as its not obvious to developers or package maintainers that something has changed.&lt;br /&gt;
IMHO, the best option is to deprecate glibtop_get_proc_mem and add a new function (say glibtop_get_process_usage or such) that takes a pid and an enum value for which field to return.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>ABI vs. API compatibility - Murray Cumming</title>
    <link>http://www.placenet.org/benoit/index.php/post/2008/04/22/ABI-vs-API-compatibility#c147</link>
    <guid isPermaLink="false">urn:md5:a0112b4991d82db94128c70c3429605d</guid>
    <pubDate>Tue, 22 Apr 2008 14:03:37 +0200</pubDate>
    <dc:creator>Murray Cumming</dc:creator>
    
    <description>&lt;p&gt;If it's this simple then you can just add a new function that returns a new struct, and deprecate (not break) the old one.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>loc-srv - rbx</title>
    <link>http://www.placenet.org/benoit/index.php/post/2007/09/10/loc-srv#c98</link>
    <guid isPermaLink="false">urn:md5:d7451f8ecaedaf71218fcb5e7b003fb5</guid>
    <pubDate>Tue, 11 Sep 2007 00:34:50 +0200</pubDate>
    <dc:creator>rbx</dc:creator>
    
    <description>&lt;p&gt;It' would be nice to have ruby support in Nautilus, Gedit, Totem plugins..&lt;/p&gt;</description>
  </item>
      
</channel>
</rss>