{"id":513,"date":"2009-05-27T12:59:34","date_gmt":"2009-05-27T16:59:34","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/?p=513"},"modified":"2009-05-27T12:59:34","modified_gmt":"2009-05-27T16:59:34","slug":"things-ive-learned-2","status":"publish","type":"post","link":"http:\/\/benjamin.smedbergs.us\/blog\/2009-05-27\/things-ive-learned-2\/","title":{"rendered":"Things I&#8217;ve Learned"},"content":{"rendered":"<p>Things I&#8217;ve learned recently:<\/p>\n<ul>\n<li>Using <tt>hg log<\/tt> on a file that was removed will not list the revision in which the file was removed. You want <tt>hg log &#45;-removed<\/tt>.\n<li><a href=\"http:\/\/www.waist-watcher.com\/\">Waist Watcher<\/a> sodas are sweetened with Splenda, but don&#8217;t have the metallic taste that some other diet sodas do. I especially like the <a href=\"http:\/\/www.waist-watcher.com\/flavors\/citrus_frost.htm\">Citrus Frost<\/a> (grapefruit) flavor.  It&#8217;s like Fresca without the hidden Aspartame. (I have bad digestive reactions to Apartame.)\n<li>Linking libxul on my Linux machine takes between 3 and 10 seconds, but apparently this is unusual. Several other people have reported link times that can range into the minutes. I recommend buying as much RAM as you can: if your entire object directory fits in the filesystem memory cache, build speed is much faster.\n<li>When Microsoft Visual C++ mangles function symbols, the return type is encoded in the mangled name. When GCC mangles names, the return type is not encoded:<br \/>\n<table border=\"1\" cellpadding=\"3\" cellspacing=\"0\">\n<tr>\n<th>\n<td>GCC <\/p>\n<td>MSVC<\/p>\n<tr>\n<th>int testfunc(int)<\/p>\n<td><tt>_Z8testfunci<\/tt><\/p>\n<td><tt>?testfunc@@YAHH@Z<\/tt><\/p>\n<tr>\n<th>void testfunc(int)<\/p>\n<td><tt>_Z8testfunci<\/tt><\/p>\n<td><tt>?testfunc@@YAXH@Z<\/tt><br \/>\n<\/table>\n<p>This means that separate functions in different translation units may not differ only by return type. We found this trying to combine the Chromium IPC code with Mozilla: <code><a href=\"http:\/\/src.chromium.org\/viewvc\/chrome\/trunk\/src\/base\/string_util.h?annotate=16485#l114\">const std::string& EmptyString()<\/a><\/code> and <code><a href=\"http:\/\/mxr.mozilla.org\/mozilla-central\/source\/xpcom\/string\/public\/nsReadableUtils.h#356\">const nsAFlatString& EmptyString()<\/a><\/code> differ only by return type. On Windows this links correctly, but on Linux this causes multiple-definition errors.\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Things I&#8217;ve learned recently: Using hg log on a file that was removed will not list the revision in which the file was removed. You want hg log &#45;-removed. Waist Watcher sodas are sweetened with Splenda, but don&#8217;t have the metallic taste that some other diet sodas do. I especially like the Citrus Frost (grapefruit) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,6],"tags":[61,17,212],"class_list":["post-513","post","type-post","status-publish","format-standard","hentry","category-mozilla","category-untagged","tag-c","tag-gcc","tag-random"],"_links":{"self":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=513"}],"version-history":[{"count":10,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/513\/revisions"}],"predecessor-version":[{"id":523,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/513\/revisions\/523"}],"wp:attachment":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=513"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}