<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>lmemsm</title>
  <link>https://lmemsm.dreamwidth.org/</link>
  <description>lmemsm - Dreamwidth Studios</description>
  <lastBuildDate>Sat, 18 Oct 2025 15:14:28 GMT</lastBuildDate>
  <generator>LiveJournal / Dreamwidth Studios</generator>
  <lj:journal>lmemsm</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
<item>
  <guid isPermaLink='true'>https://lmemsm.dreamwidth.org/31797.html</guid>
  <pubDate>Sat, 18 Oct 2025 15:14:28 GMT</pubDate>
  <title>Diff Utilities</title>
  <link>https://lmemsm.dreamwidth.org/31797.html</link>
  <description>I&apos;ve been looking at different diff tools trying to figure out how I would design my own cross-platform portable diff program with the features I use most.  The most interesting thing I found out was how different the various outputs of the diff programs all are.  There&apos;s also no one algorithm that creates the most intuitive output for a human to read.  A certain algorithm may be better for one case but not for another.  I&apos;ll share a summary of what I&apos;ve researched about diff utilities so far.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href=&quot;https://lmemsm.dreamwidth.org/31797.html&quot;&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=31797&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://lmemsm.dreamwidth.org/31797.html</comments>
  <category>toybox</category>
  <category>lcs</category>
  <category>busybox</category>
  <category>myers&apos; algorithm</category>
  <category>diff</category>
  <category>sbase</category>
  <category>diffutils</category>
  <category>gnu</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://lmemsm.dreamwidth.org/12132.html</guid>
  <pubDate>Thu, 06 Feb 2020 17:09:01 GMT</pubDate>
  <title>Preprocessor and Makefile Tips and Tricks</title>
  <link>https://lmemsm.dreamwidth.org/12132.html</link>
  <description>Here are some interesting articles and tips related to the C preprocessor and to creating makefiles.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href=&quot;https://lmemsm.dreamwidth.org/12132.html&quot;&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=12132&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://lmemsm.dreamwidth.org/12132.html</comments>
  <category>c</category>
  <category>tips</category>
  <category>makefile</category>
  <category>preprocessor</category>
  <category>tricks</category>
  <category>sed</category>
  <category>gnu</category>
  <category>gcc</category>
  <category>make</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://lmemsm.dreamwidth.org/6217.html</guid>
  <pubDate>Thu, 20 Apr 2017 19:43:20 GMT</pubDate>
  <title>MinGW</title>
  <link>https://lmemsm.dreamwidth.org/6217.html</link>
  <description>There are now several forks of MinGW and each has its pros and cons.  However, there are now enough negatives to using them, that I&apos;ve found it necessary to build MinGW from scratch myself.  The MinGW64 project uses a later version of gcc, has better compatibility for building Open Source projects and has its own thread library instead of using Red Hat&apos;s pthreads-w32.  Some custom builds of MinGW64 even have POSIX threading set as the default instead of Win32 threading.  That means better compatibility for C++ thread related code (since the GNU C++ library relies on POSIX threading for parts of its implementation).  The MinGW project has always been more careful about licensing and making sure that the code it was using was properly licensed and legal for usage.  The MinGW project did follow the example of the MinGW64 project in one key area.  They switched from public domain to a MIT license for their runtime library and Win32 API.  When they did so without clearly indicating that an exception could be made similar to the GNU gcc runtime license exception, I felt it was time to stop using that version of the MinGW compiler.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href=&quot;https://lmemsm.dreamwidth.org/6217.html&quot;&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=6217&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://lmemsm.dreamwidth.org/6217.html</comments>
  <category>mingw</category>
  <category>posix threads</category>
  <category>gcc</category>
  <category>pthreads</category>
  <category>gnu</category>
  <category>win32</category>
  <category>c11 threads</category>
  <category>win32 api</category>
  <category>c</category>
  <category>c++</category>
  <category>c/c++</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://lmemsm.dreamwidth.org/3217.html</guid>
  <pubDate>Thu, 20 Apr 2017 18:04:13 GMT</pubDate>
  <title>my core utilities</title>
  <link>https://lmemsm.dreamwidth.org/3217.html</link>
  <description>I&apos;ve listed some core utilities options besides GNU.  I thought I&apos;d share something about what utilities I personally prefer to use.  My main requirement in a good set of core utilities is portability.  This is rather hard to find.  You would think that if a utility was efficient and lightweight, it would be easy to port.  However, that&apos;s not necessarily so.  Many utilities that are designed for efficiency take advantage of features of a particular operating system which makes them harder to port.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href=&quot;https://lmemsm.dreamwidth.org/3217.html&quot;&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=3217&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://lmemsm.dreamwidth.org/3217.html</comments>
  <category>fsf</category>
  <category>mit</category>
  <category>core utilities</category>
  <category>utilities</category>
  <category>tools</category>
  <category>gnu</category>
  <category>public domain</category>
  <category>coreutils</category>
  <category>bsd</category>
  <category>portable</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>https://lmemsm.dreamwidth.org/3000.html</guid>
  <pubDate>Thu, 20 Apr 2017 18:02:38 GMT</pubDate>
  <title>core utilities</title>
  <link>https://lmemsm.dreamwidth.org/3000.html</link>
  <description>Most systems (other than BSD based ones) use GNU&apos;s core utilities.  It&apos;s used by most Linux distributions.  Cygwin, MinGW and gnuwin32 run ported versions of the GNU applications as well.  Even Microsoft&apos;s SFU/SUA included some of the GNU utilities.  However, the GNU core utilities are typically more bloated and have more feature creep than other versions of standard Unix utility programs.  BSD systems have their versions of core utilities.  The latest version of Minix has adopted the BSD utilities.  They tend to be less bloated than the GNU versions, but are still more bloated than other options out there.  The BSD utilities also tend toward adding new features similar to but not to the same extent as the GNU utilities.  Also, some of their utilities aren&apos;t as well optimized as the GNU versions.  Busybox seems like the most viable option for a lightweight but still comprehensive version of core utilities.  I&apos;m currently using it on my Debian system instead of the GNU core utilities.  Toybox is a similar alternative to Busybox.  It has a better license option than Busybox, but it&apos;s lacking some features and tools that Busybox has.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;(&lt;a href=&quot;https://lmemsm.dreamwidth.org/3000.html&quot;&gt;Read more ...&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.dreamwidth.org/tools/commentcount?user=lmemsm&amp;ditemid=3000&quot; width=&quot;30&quot; height=&quot;12&quot; alt=&quot;comment count unavailable&quot; style=&quot;vertical-align: middle;&quot;/&gt; comments</description>
  <comments>https://lmemsm.dreamwidth.org/3000.html</comments>
  <category>tools</category>
  <category>utilities</category>
  <category>gnu</category>
  <category>core utilities</category>
  <category>unix</category>
  <category>posix</category>
  <category>bsd</category>
  <category>coreutils</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
