<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Deepcopy</title>
	<atom:link href="http://deepcopy.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://deepcopy.org</link>
	<description>Technology from the Trenches</description>
	<lastBuildDate>Sun, 28 Nov 2010 16:33:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Another Improvement in Hard Drive Densities</title>
		<link>http://deepcopy.org/?p=143</link>
		<comments>http://deepcopy.org/?p=143#comments</comments>
		<pubDate>Sun, 28 Nov 2010 16:30:32 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[high performance computing]]></category>
		<category><![CDATA[parallel file systems]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=143</guid>
		<description><![CDATA[At SC10 last week someone asserted that hard drives were a dead technology, and that attempting to improve the performance of spinning disks access was a waste of time. Galen was with me and together we pointed out that hard drives are going to be with us for the foreseeable future. The belief that the [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://sc10.supercomputing.org">SC10</a> last week someone asserted that hard drives were a dead technology, and that attempting to improve the performance of spinning disks access was a waste of time.  Galen was with me and together we pointed out that hard drives are going to be with us for the foreseeable future.</p>
<p>The belief that the end of disk density improvements is imminent comes up over and over with people who do not work in the storage area &#8212; but I&#8217;m here to tell you that HDD research and development is still occurring at a staggering rate.  In the last several years, the rate of improvement for disk density has been increasing rather than decreasing.  <a href="http://www.youtube.com/watch?v=akMVhPFA3bs&#038;feature=related">Perpendicular recording</a> was a <strong>big</strong> deal.  Sticking the bits on their end took us to 3TB of storage in 3.5&#8243; drives.</p>
<p>Currently we are looking forward to three more improvements: patterned media, heat assisted magnetic recording, and shingling.  And patterned media looks to be <a href="http://redirectingat.com/?id=3429X610573&#038;xs=1&#038;url=http%3A%2F%2Fwww.tcmagazine.com%2Ftcm%2Fnews%2Fhardware%2F32012%2Fnew-technology-enable-39tb-square-inch-storage-solutions&#038;sref=http%3A%2F%2Ftechreport.com%2F">available soon</a>.  From the article we can expect this technology to drive our disks over the 10TB capacity level &#8212; which is a staggering amount of storage.  With a little hand waving and projection its not hard to imagine HAMR and shingling to drive disk capacities close to 100TB.  If we estimate half that for a 2.5&#8243; drive, it still only takes 20 such drives to construct a Petabyte file system!  All of these technologies are likely to be available at the time of Exascale machine construction, so I expect that hard disk drives are likely to play a significant role in the construction of Exascale storage systems &#8212; though I also expect other storage media (e.g. storage-class memory) will also be a significant element of future extreme storage systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Study of Client-based Caching for Parallel I/O</title>
		<link>http://deepcopy.org/?p=30</link>
		<comments>http://deepcopy.org/?p=30#comments</comments>
		<pubDate>Sun, 30 Aug 2009 19:00:00 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[grad school]]></category>
		<category><![CDATA[high performance computing]]></category>
		<category><![CDATA[parallel file systems]]></category>
		<category><![CDATA[publications]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=30</guid>
		<description><![CDATA[Bradley W. Settlemyer. &#8220;A Study of Client-based Caching for Parallel I/O.&#8221; [pdf] Clemson University Doctoral Dissertation, Aug 2009. Abstract &#8212; The trend in parallel computing toward large-scale cluster computers running thousands of cooperating processes per application has led to an I/O bottleneck that has only gotten more severe as the the number of processing cores [...]]]></description>
			<content:encoded><![CDATA[<p>Bradley W. Settlemyer.<br />
&#8220;A Study of Client-based Caching for Parallel I/O.&#8221; [<a href="downloads/settlemyer-dissertation.pdf">pdf</a>]<br />
<em>Clemson University Doctoral Dissertation, Aug 2009</em>.<br />
<span id="more-30"></span><br />
Abstract &#8212; The trend in parallel computing toward large-scale cluster computers running thousands<br />
of cooperating processes per application has led to an I/O bottleneck that has only gotten<br />
more severe as the the number of processing cores per CPU has increased. Current parallel<br />
file systems are able to provide high bandwidth file access for large contiguous file region<br />
accesses; however, applications repeatedly accessing small file regions on unaligned file<br />
region boundaries continue to experience poor I/O throughput due to the high overhead<br />
associated with accessing parallel file system data.<br />
In this dissertation we demonstrate how client-side file data caching can improve<br />
parallel file system throughput for applications performing frequent small and unaligned<br />
file I/O. We explore the impacts of cache page size and cache capacity using the popular<br />
FLASH I/O benchmark and explore a novel cache sharing approach that leverages<br />
the trend toward multi-core processors. We also explore a technique we call progressive<br />
page caching that represents cache data using dynamic data structures rather than fixed-size<br />
pages of file data. Finally, we explore a cache aggregation scheme that leverages the highlevel<br />
file I/O interfaces provided by the PVFS file system to provide further performance<br />
enhancements.<br />
In summary, our results indicate that a correctly configured middleware-based file<br />
data cache can dramatically improve the performance of I/O workloads dominated by small<br />
unaligned file accesses. Further, we demonstrate that a well designed cache can offer stable<br />
performance even when the selected cache page granularity is not well matched to<br />
the provided workload. Finally, we have shown that high-level file system interfaces can<br />
significantly accelerate application performance, and interfaces beyond those currently envisioned<br />
by the MPI-IO standard could provide further performance benefits.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greatest Novels &#8211; The Grapes of Wrath</title>
		<link>http://deepcopy.org/?p=56</link>
		<comments>http://deepcopy.org/?p=56#comments</comments>
		<pubDate>Tue, 14 Jul 2009 12:00:24 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=56</guid>
		<description><![CDATA[The Grapes of Wrath by John Steinbeck (10) Mainly about the human condition, but centered around the story of Tom Joad and family traveling in the great migration to California. Steinbeck didn&#8217;t mince words, or strive for subtlety, this is an overt plea against capitalism for communism (if you want critics to love your book, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Grapes of Wrath</strong> by John Steinbeck (10)</p>
<p>Mainly about the human condition, but centered around the story           of Tom Joad and family traveling in the great migration to           California.  Steinbeck didn&#8217;t mince words, or strive for subtlety,           this is an overt plea against capitalism for communism (if you want           critics to love your book, champion communism, the critics are           suckers for it every time).  It&#8217;s very long, and surprisingly           difficult to finish, it reminds me very much of <em>Uncle Tom&#8217;s             Cabin</em>.  To my mind, its inferior to his later <em>The Winter              of Our Discontent</em> in almost every respect, but I must admit            that the themes are much more accessible and overt in this novel,            while Winter is perhaps a bit challenging (though not nearly as            long).</p>
<p>[Originally written June 26, 2002.]</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Report &#8211; Mrs. Frisby and the Rats of NIMH</title>
		<link>http://deepcopy.org/?p=115</link>
		<comments>http://deepcopy.org/?p=115#comments</comments>
		<pubDate>Tue, 07 Jul 2009 17:12:06 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=115</guid>
		<description><![CDATA[Mrs. Frisby and the Rats of NIMH by by Robert C. O&#8217;Brien. Although I loved this movie as a child (I even had the storybook), I never read the real book. Huge mistake, this book was fantastic. The movie and novel depart significantly, with there being no magical component to the novel at all. Which [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mrs. Frisby and the Rats of NIMH</strong> by by Robert C. O&#8217;Brien.</p>
<p>Although I loved this movie as a child (I even had the storybook), I never read the real book.  Huge mistake, this book was fantastic.  The movie and novel depart significantly, with there being no magical component to the novel at all.  Which is a good thing, as the book is even more compelling and interesting without it.  The story starts with Mrs. Frisby, a mouse, who has recently become a widow and whose young son is sick.  Although her son&#8217;s condition is improving, he is too sick to move, and the mouse family must move because their house will be destroyed by the farmer in five days.  This problem eventually leads her to contact the rats of NIMH, a set of genetically modified super rats.  Unlike the movie, the intrigue is not a power struggle within the rat community.  That problem is resolved before the time of the book.  Instead, the focus is on the rats starting a new rat-centric society to rival the human society that created the rats and that the rats depend upon for sustenance.  During all of this we meet the kind crow, Jeremy; the formidable cat, Dragon; and the wise Great Owl.</p>
<p>Did I mention this book was great?  I loved it.  It actually reminds me of the great juvenile novels I read in my youth (Charlotte&#8217;s web, The Fantastic Henry Sugar, The Hobbit).  Maybe I should track down some of those and enjoy those again as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=115</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Report &#8211; Watchmen</title>
		<link>http://deepcopy.org/?p=112</link>
		<comments>http://deepcopy.org/?p=112#comments</comments>
		<pubDate>Tue, 07 Jul 2009 16:55:13 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=112</guid>
		<description><![CDATA[Watchmen by Alan Moore. I did not get a chance to watch the Watchmen movie due to budgetary and time constraints, so this review is of the bound comic book series only. I am not a huge fan. I grew up on and loved the comic books of the 1980s, but I guess maybe I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Watchmen</strong> by Alan Moore.</p>
<p>I did not get a chance to watch the Watchmen movie due to budgetary and time constraints, so this review is of the bound comic book series only.  I am not a huge fan.  I grew up on and loved the comic books of the 1980s, but I guess maybe I&#8217;m too much of a Marvel guy.  In my opinion Watchmen dragged on without enough action or intrigue to sustain my interest.  I appreciate the elements of mystery, but there are some serious problems with even following the story.  Consider, the mystery is over the death of the Comedian &#8212; a character we have never met and don&#8217;t like at all from the beginning.  The death is investigated by Rorschach, who I liked and wanted to learn more about, but instead we mainly get back story on the other superheroes in town.  A boring lot for the most part.  By the time we finally get around to learning what I originally wanted to know about Rorschach, the plot has shifted to the disillusionment of Dr. Manhattan &#8212; a character I found mostly uninteresting.  I do have to credit the ending.  I wasn&#8217;t happy with the outcome, but I did think it was  a good critique of the unsophisticated moralizing of most comic book characters.</p>
<p>From a craftsmanship approach I don&#8217;t understand why they didn&#8217;t simply set the book in London.  The portrait of New York in the 80s was not accurate.  Write what you know instead of pretending you know what you don&#8217;t.  Alan Moore is British, and should probably stick to writing about Britain if he isn&#8217;t going to travel to the US and at least get his portrait somewhat correct.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=112</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greatest Novels &#8211; The Great Gatsby</title>
		<link>http://deepcopy.org/?p=54</link>
		<comments>http://deepcopy.org/?p=54#comments</comments>
		<pubDate>Mon, 06 Jul 2009 12:00:58 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=54</guid>
		<description><![CDATA[The Great Gatsby by F. Scott Fitzgerald (2) A book about the American dream, new rich versus old rich, and the notion of success. A very good book, but perhaps a bit overrated. The lyrical style is very impressive, and I commend its brevity, but really at the end of the novel, are you anywhere [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Great Gatsby</strong> by F. Scott Fitzgerald (2)</p>
<p>A book about the American dream, new rich versus old rich, and the           notion of success.  A very good book, but perhaps a bit           overrated.  The lyrical style is very impressive, and I commend its           brevity, but really at the end of the novel, are you anywhere           different than when you began.  The achievement seems to me to be           the tightness of the story told, which is fortunate, since the out           of order story telling sometimes makes it difficult to figure out            what has happened.  Though Gatsby is certainly very good, I don&#8217;t            find it greatly superior to, say, <em>To Kill a Mockingbird</em>,            which is perhaps not as lyrically impressive, but an excellent            example of this style of novel, nevertheless.</p>
<p>[Originally written June 12, 2002]</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=54</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Greatest Novels &#8211; Catch-22</title>
		<link>http://deepcopy.org/?p=47</link>
		<comments>http://deepcopy.org/?p=47#comments</comments>
		<pubDate>Mon, 29 Jun 2009 12:00:27 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[literature]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=47</guid>
		<description><![CDATA[Catch-22 by Joseph Heller (7) A humorous tale about the paradox of war and the desire for survival, that also manages to examine the violence and madness of conflict. Uses the popular technique of out of order story telling, and mixes in rapid fire, scatterbrained dialog sequences that are fun to read and humorous, but [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Catch-22</strong> by Joseph Heller (7)</p>
<p>A humorous tale about the paradox of war and the desire for           survival, that also manages to examine the violence and madness of           conflict. Uses the popular technique of out of order story telling,            and mixes           in rapid fire, scatterbrained dialog sequences that are fun to           read and humorous, but eventually drag on over the novel&#8217;s length.           Though the length seems obsessive, the end is climactic, and some of           the paradoxes of war are driven home.  This is definitely one of the           greatest books I&#8217;ve read, and though the length and excessive           vocabulary is a bit tedious, the novel really is a masterpiece.</p>
<p>[Originally written June 16, 2002.]</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Mechanism for Scalable Redundancy in Parallel File Systems</title>
		<link>http://deepcopy.org/?p=32</link>
		<comments>http://deepcopy.org/?p=32#comments</comments>
		<pubDate>Wed, 24 Jun 2009 15:15:37 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[grad school]]></category>
		<category><![CDATA[high performance computing]]></category>
		<category><![CDATA[parallel file systems]]></category>
		<category><![CDATA[publications]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=32</guid>
		<description><![CDATA[Bradley W. Settlemyer. &#8220;A Mechanism for Scalable Redundancy in Parallel File Systems.&#8221; [pdf] Clemson University Master&#8217;s Thesis, May 2006. Abstract &#8212; As parallel file systems span larger and larger numbers of nodes in order to provide the performance and scalability necessary for modern cluster applications, the need for fault-tolerance and high data availability file systems [...]]]></description>
			<content:encoded><![CDATA[<p>Bradley W. Settlemyer.<br />
&#8220;A Mechanism for Scalable Redundancy in Parallel File Systems.&#8221; [<a href="downloads/settlemyer-thesis.pdf">pdf</a>]<br />
<em>Clemson University Master&#8217;s Thesis, May 2006</em>.<br />
<span id="more-32"></span><br />
Abstract &#8212; As parallel file systems span larger and larger numbers of nodes in order to provide the performance and scalability necessary for modern cluster applications, the need for fault-tolerance and high data availability file systems has arisen. Modern parallel file systems spanning tens, hundreds, or even thousands of servers will require fault tolerance to avoid job failure and catastrophic data loss due to a single disk failure or server loss. Effective fault tolerance in parallel file systems must provide a high degree of data resiliency, consistency, and scalable performance.<br />
In this thesis we provide an in depth description of the resiliency and consistency requirements of parallel file systems. We then describe a data replication mechanism that meets the resiliency and consistency requirements of parallel file systems and provides scalable performance. We also provide an in depth description of how the file system responds during a system fault and how the system may be recovered to its original, fully redundant state after a failure. Finally, we measure the performance of our proposed mechanism by implementing it in a popular parallel file system, PVFS2.  We primarily focus on measuring the performance costs and scalability impacts associated with consistency and resiliency.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Server to Server Communication in Parallel File Systems to Simplify Consistency and Improve Performance</title>
		<link>http://deepcopy.org/?p=28</link>
		<comments>http://deepcopy.org/?p=28#comments</comments>
		<pubDate>Wed, 24 Jun 2009 14:00:39 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[parallel file systems]]></category>
		<category><![CDATA[publications]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=28</guid>
		<description><![CDATA[Philip H. Carns, Bradley W. Settlemyer, and Water B. Ligon, III. &#8220;Using Server to Server Communication in Parallel File Systems to Simplify Consistency and Improve Performance.&#8221; [pdf] In The International Conference for High Performance Computing, Networking, Storage, and Analysis (SC &#8217;08). [21% acceptance, 59/277] Abstract—The trend in parallel computing toward clusters running thousands of cooperating [...]]]></description>
			<content:encoded><![CDATA[<p>Philip H. Carns, Bradley W. Settlemyer, and Water B. Ligon, III.<br />
&#8220;Using Server to Server Communication in Parallel File Systems to Simplify Consistency and Improve Performance.&#8221; [<a href="http://deepcopy.org/downloads/settlemyer-PFSCollectiveIO.pdf">pdf</a>]<br />
In <em>The International Conference for High Performance Computing, Networking, Storage, and Analysis</em> (SC &#8217;08).<br />
<span style="color: red;">[21% acceptance, 59/277]</span><br />
<span id="more-28"></span><br />
Abstract—The trend in parallel computing toward clusters running thousands of cooperating processes per application has led to an I/O bottleneck that has only gotten more severe as the CPU density of clusters has increased. Current parallel file systems provide large amounts of aggregate I/O bandwidth; however, they do not achieve the high degrees of metadata scalability required to manage files distributed across hundreds or thousands of storage nodes. In this paper we examine the use of collective communication between the storage servers to improve the scalability of file metadata operations. In particular, we apply server-to-server communication to simplify consistency checking and improve the performance of file creation, file removal, and file stat. Our results indicate that collective communication is an effective scheme for simplifying consistency checks and significantly improving the performance for several real metadata intensive workloads.</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ Syntax Highlighting for GNU Emacs/XEmacs</title>
		<link>http://deepcopy.org/?p=19</link>
		<comments>http://deepcopy.org/?p=19#comments</comments>
		<pubDate>Tue, 23 Jun 2009 15:39:52 +0000</pubDate>
		<dc:creator>bws</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://deepcopy.org/?p=19</guid>
		<description><![CDATA[Several years ago the C++ syntax highlighting support in Emacs was pretty terrible.  The XEmacs support was particularly atrocious (and still may be).  To remedy that, I wrote my own syntax highlighting package for XEmacs originally, and then I ported it to GNU Emacs.  Back then I cared a lot more about the schism between [...]]]></description>
			<content:encoded><![CDATA[<p>Several years ago the C++ syntax highlighting support in Emacs was pretty terrible.  The XEmacs support was particularly atrocious (and still may be).  To remedy that, I wrote my own syntax highlighting package for XEmacs originally, and then I ported it to GNU Emacs.  Back then I cared a lot more about the schism between XEmacs and Gnu Emacs.  Writing this package is one of the major impetuses for getting me to care a whole lot less about the politics of free software.</p>
<p><span id="more-19"></span></p>
<p>Circa 2002 there could be little doubt that XEmacs was technically superior to GNU Emacs.  Additionally, the project ran in a very democratic fashion with Stephen Turnbull acting as an elected leader who was rather open to input from XEmacs developers.  My C++ font locking package was mailed to the XEmacs developers list by a user, and I was invited to submit the code to XEmacs &#8212; kinda.  As it stood, my code was better than the default font-locking code (aka syntax highlighting), and I wanted to improve it further, particularly adding better support for templates, and some other hairy constructs.  However, the code was desired for integration after the next release.  For about 6 months the next release was planned  to be just days away &#8212; but it never came.</p>
<p>During this time, I was trying to determine how to extract as much speed as possible from elisp, and generally pretty disappointed in my inability to extract the speed I wanted.  One thing I learned during the course of my testing was that GNU Emacs was about 5x faster than XEmacs when it came to syntax highlighting.  Unlike XEmacs, GNU Emacs had little interest in my font-locking package.  Their plan was to enhance cc-mode to include font-locking and have all of the language specific stuff in cc-mode.  That made sense to me at least.  During the time I was waiting for XEmacs to have a release, I believe the GNU Emacs project had several point releases that continued improving speed and stability.  While the code inside GNU Emacs was far less elegant than XEmacs, the GNU developers were far more effective with what they had.</p>
<p>Based on these frustrations, I simply switched to Emacs, used my own C++ syntax highlighting successfully, and waited for the day when Xemacs or GNU Emacs had better C++ support than my own package.  It was about 2005 that a beta version of GNU emacs included a cc-mode that had C++ support equivalent to my own.  I switched, and cpp-font-lock has not been maintained since.  I don&#8217;t know the status of XEmacs, and I probably never will as I have no use for that project any longer.  For that matter, I don&#8217;t even use GNU Emacs that much any more, I now program with Eclipse, and when a better Latex environment comes along, I will probably only use Emacs for shell scripting.</p>
<h2>Cpp-Font-Lock</h2>
<p>Included below is the cpp-font-lock package to provide better syntax highlighting for C++ in circa 2002 Emacsen.  The code is adapted from the GNU emacs C++ font locking support (font-lock.el), but includes much improved support for C++ constructs.</p>
<p>Supported constructs include:</p>
<ol>
<li>Class member function declarations and definitions</li>
<li>Free function declarations and definitions</li>
<li>Class, struct, typedef, and enum definitions</li>
<li>Preprocessor directives and macro definitions</li>
<li>All types specified in Standard C++</li>
<li>All literals (integer, floating point, and string literals)</li>
<li>All C++ keywords</li>
</ol>
<p>Constructs not fully supported:</p>
<ol>
<li>Variable declarations (member and free)</li>
<li>User defined type usage</li>
<li>Usage expressions (assignments and function calls)</li>
</ol>
<h2>Installation Instructions</h2>
<p>Download cpp-font-lock.el and place it in a subdirectory of your home directory named elisp.</p>
<h2>Using CPP Font Lock</h2>
<p>For most people, simply adding the following lines to their  .emacs or ~/.xemacs/custom.el will be enough:</p>
<p><code><br />
((add-to-list 'load-path (expand-file-name "~/elisp/"))<br />
(require 'cpp-font-lock)<br />
</code></p>
<p>However, if you do not have cc-mode installed or enabled, this will not work.  You must enable cc-mode by adding this to your config (before loading cpp-font-lock btw):</p>
<p><code><br />
(autoload 'c++-mode "cc-mode" "C++ Editing Mode" t)</p>
<p>;; To associate *.h files with c++ mode use the following line<br />
(add-to-list 'auto-mode-alist '("\\.h$" . c++-mode))<br />
</code></p>
<p>Cpp Font Lock will add itself to the c++-mode-hook automatically if its loaded correctly.  Obviously if you override that hook instead of using add-hook, you may succeed in disabling CPP Font Lock, but as long as you use add-hook or otherwise avoid clobbering your c++-mode-hook, CPP Font lock should work now.</p>
<p>If you would like to override the color scheme I use (see below for reasons why you should not do that), the easiest thing to do is setup the font-lock faces and add the following line to your emacs configuration:</p>
<p><code>(cpp-font-lock-use-font-lock-faces t)</code></p>
<p>If you would like to see an example of overloaded font-lock faces, please check out my <a href="downloads/dotemacs">.emacs file</a>.</p>
<p><a href="downloads/cpp-font-lock.el">Cpp Font Lock 0.4.0</a></p>
<h2>Color schemes and the eyes</h2>
<p>It is possible to overload the font colorings in cpp-font-lock with whatever you prefer, however the default is no longer the Emacs font-lock default.  Quite simply, the default color schemes in GNU Emacs and XEmacs are pretty terrible.  I&#8217;ve spent a bit of time finding color schemes that don&#8217;t overburden the eyes with excessive contrast.  Nevertheless, I do provide support for both light and dark backgrounds, even though you should only be using a dark background (in fact, I strongly suggest something like gray25 or #001C00, definitely not black).</p>
]]></content:encoded>
			<wfw:commentRss>http://deepcopy.org/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
