<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Scratch</id>
	<title>Scratch - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Scratch"/>
	<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Scratch&amp;action=history"/>
	<updated>2026-05-18T13:54:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Scratch&amp;diff=2846&amp;oldid=prev</id>
		<title>PeterHarding at 03:57, 4 December 2008</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Scratch&amp;diff=2846&amp;oldid=prev"/>
		<updated>2008-12-04T03:57:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:57, 4 December 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l504&quot;&gt;Line 504:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 504:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;version 3.38.&amp;lt;br /&amp;gt;On  4 May 2007, 07:13.&amp;lt;/small&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;version 3.38.&amp;lt;br /&amp;gt;On  4 May 2007, 07:13.&amp;lt;/small&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:PERL]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Scratch&amp;diff=20&amp;oldid=prev</id>
		<title>PeterHarding at 20:45, 11 September 2007</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Scratch&amp;diff=20&amp;oldid=prev"/>
		<updated>2007-09-11T20:45:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:45, 12 September 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;http://www.w3.org/TR/html4/loose.dtd&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         &amp;quot;http://www.w3.org/TR/html4/loose.dtd&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;html&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;meta name=&quot;GENERATOR&quot; content=&quot;TtH 3.38&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;style type=&quot;text/css&quot;&gt; div.p { margin-top: 7pt;}&amp;lt;/style&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;style type=&quot;text/css&quot;&gt;&amp;lt;!--&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; td div.norm {line-height:normal;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; span.roman {font-family: serif; font-style: normal; font-weight: normal;} &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; span.overacc1 {position: relative;  left: .6em; top: -1.2ex;} --&gt;&amp;lt;/style&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;link rel=stylesheet href=&quot;http://www.perfdynamics.com/Tools/pdq.css&quot; type=&quot;text/css&quot;&gt;&amp;lt;/link&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;p&quot;&gt;&amp;lt;!----&gt;&amp;lt;/div&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;title&amp;gt; PDQ Software Distribution&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;title&amp;gt; PDQ Software Distribution&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Scratch&amp;diff=19&amp;oldid=prev</id>
		<title>PeterHarding: New page: &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;         &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt; &lt;html&gt; &lt;meta name=&quot;GENERATOR&quot; content=&quot;TtH 3.38&quot;&gt;  &lt;style type=&quot;text/css&quot;&gt; di...</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Scratch&amp;diff=19&amp;oldid=prev"/>
		<updated>2007-09-11T09:13:18Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;         &amp;quot;http://www.w3.org/TR/html4/loose.dtd&amp;quot;&amp;gt; &amp;lt;html&amp;gt; &amp;lt;meta name=&amp;quot;GENERATOR&amp;quot; content=&amp;quot;TtH 3.38&amp;quot;&amp;gt;  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt; di...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&lt;br /&gt;
        &amp;quot;http://www.w3.org/TR/html4/loose.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;GENERATOR&amp;quot; content=&amp;quot;TtH 3.38&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt; div.p { margin-top: 7pt;}&amp;lt;/style&amp;gt;&lt;br /&gt;
 &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}&lt;br /&gt;
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}&lt;br /&gt;
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}&lt;br /&gt;
 td div.norm {line-height:normal;}&lt;br /&gt;
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} &lt;br /&gt;
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}&lt;br /&gt;
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;} --&amp;gt;&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;link rel=stylesheet href=&amp;quot;http://www.perfdynamics.com/Tools/pdq.css&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;/link&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;title&amp;gt; PDQ Software Distribution&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;PDQ Software Distribution &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3 align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;This page was last updated on May  4, 2007&lt;br /&gt;
&amp;lt;/h3&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Current Distribution&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Version:&amp;lt;/b&amp;gt;  			&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;4.2&amp;lt;/tt&amp;gt;       &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Build:&amp;lt;/b&amp;gt;   			&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;20070228&amp;lt;/tt&amp;gt;    &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Languages:&amp;lt;/b&amp;gt; 		&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;C, Java, Perl, PHP, Python&amp;lt;/tt&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Compiled:&amp;lt;/b&amp;gt; 			&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;gcc version 4.0.0 20041026 (Apple, Inc. build 4061)&amp;lt;/tt&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Maintainers:&amp;lt;/b&amp;gt; 		&amp;lt;/td&amp;gt;&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Neil Gunther and Peter Harding&amp;lt;/tt&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Please note that the PDQ function &amp;lt;b&amp;gt;CreateMultiNode&amp;lt;/b&amp;gt;,&lt;br /&gt;
defined in Section 6.6.2 (p. 226) of the &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/iBook/ppa_new.html&amp;quot;&amp;gt;Perl::PDQ book&amp;lt;/A&amp;gt;, &lt;br /&gt;
is not available in this release. See Section&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#sec:news&amp;quot;&amp;gt;2&amp;lt;/a&amp;gt; for the lastest  &lt;br /&gt;
developments regarding this topic.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Contents &amp;lt;/h1&amp;gt;&amp;lt;a href=&amp;quot;#tth_sEc1&amp;quot;&lt;br /&gt;
&amp;gt;1&amp;amp;nbsp; Downloading&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc2&amp;quot;&lt;br /&gt;
&amp;gt;2&amp;amp;nbsp; News&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc3&amp;quot;&lt;br /&gt;
&amp;gt;3&amp;amp;nbsp; Installing&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#tth_sEc3.1&amp;quot;&lt;br /&gt;
&amp;gt;3.1&amp;amp;nbsp; UNIX Environments&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#tth_sEc3.2&amp;quot;&lt;br /&gt;
&amp;gt;3.2&amp;amp;nbsp; UNIX Installation Gotchas&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#tth_sEc3.3&amp;quot;&lt;br /&gt;
&amp;gt;3.3&amp;amp;nbsp; WINDOWS with ActiveState Perl&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#tth_sEc3.3.1&amp;quot;&lt;br /&gt;
&amp;gt;3.3.1&amp;amp;nbsp; Tom Becker&amp;#039;s Notes&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#tth_sEc3.3.2&amp;quot;&lt;br /&gt;
&amp;gt;3.3.2&amp;amp;nbsp; Christof Schmalenbach&amp;#039;s Notes&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc4&amp;quot;&lt;br /&gt;
&amp;gt;4&amp;amp;nbsp; Get Notified About Updates&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc5&amp;quot;&lt;br /&gt;
&amp;gt;5&amp;amp;nbsp; Where&amp;#039;s Waldo? (Anyone C-een him?)&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc6&amp;quot;&lt;br /&gt;
&amp;gt;6&amp;amp;nbsp; User Guide&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#tth_sEc7&amp;quot;&lt;br /&gt;
&amp;gt;7&amp;amp;nbsp; Feedback&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Downloading&amp;lt;/h2&amp;gt; &lt;br /&gt;
Major new features in the current &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/Tools/pdq.tar.gz&amp;quot;&amp;gt;download&amp;lt;/A&amp;gt; &lt;br /&gt;
include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt;Java&amp;lt;/b&amp;gt; version of PDQ developed by Peter Harding&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt;PHP&amp;lt;/b&amp;gt; version of PDQ developed by Italian student Samuel Zallocco&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Threaded-server model and errata corrections developed by Neil Gunther&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Better organization of the &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/Tools/PDQperl.html&amp;quot;&amp;gt;Perl&amp;lt;/A&amp;gt; &lt;br /&gt;
and &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/Tools/PDQpython.html&amp;quot;&amp;gt;Python&amp;lt;/A&amp;gt; &lt;br /&gt;
model directories&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: The PHP version has not been tested by us and is released as is with no guarantees.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc2&amp;quot;&amp;gt;&lt;br /&gt;
2&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;News&amp;lt;/h2&amp;gt; &amp;lt;a name=&amp;quot;sec:news&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl compact=&amp;quot;compact&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dt&amp;gt;&amp;lt;b&amp;gt;MSQ nodes:&amp;lt;/b&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt; I have implemented multiserver queues in the PDQ &amp;lt;b&amp;gt;C-language only&amp;lt;/b&amp;gt; library, &lt;br /&gt;
and it is now in beta test.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
The goal is to allow you to create OPEN-circuit models (initially) by defining any sequence of &lt;br /&gt;
M/M/m queues.&lt;br /&gt;
Instead of introducing a completely new procedure, like &amp;lt;b&amp;gt;PDQ_CreateMultiNode&amp;lt;/b&amp;gt;&lt;br /&gt;
(or &amp;lt;b&amp;gt;PDQ::CreateMultiNode&amp;lt;/b&amp;gt; described in Chapter 6 of the Perl::PDQ book), &lt;br /&gt;
I have come up with a simpler idea.&lt;br /&gt;
You will call &amp;lt;tt&amp;gt;PDQ_CreateNode()&amp;lt;/tt&amp;gt; in the usual way but, &lt;br /&gt;
by asserting a new &amp;lt;b&amp;gt;MSQ&amp;lt;/b&amp;gt; flag to tell PDQ the node is &amp;lt;b&amp;gt;multi-server queue&amp;lt;/b&amp;gt;, &lt;br /&gt;
you then specify the integer number of servers (m) for that node. &lt;br /&gt;
For example, an m = 10 multiserver PDQ node named &amp;quot;mserver&amp;quot; &lt;br /&gt;
would be instantiated using the standard &amp;lt;b&amp;gt;CreateNode&amp;lt;/b&amp;gt; procedure with the following arguments:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;PDQ_CreateNode(&amp;quot;mserver&amp;quot;, 10, MSQ)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/center&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
The PDQ generic report has also been altered to include the new MSQ node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
More details will be forthcoming as the implementation unfolds.&lt;br /&gt;
Stay tuned.&amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;lt;dt&amp;gt;&amp;lt;b&amp;gt;Create functions becoming procedures:&amp;lt;/b&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
	&amp;lt;dd&amp;gt;&lt;br /&gt;
Currently, the &amp;lt;b&amp;gt;functions&amp;lt;/b&amp;gt; &amp;lt;tt&amp;gt;CreateOpen()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;CreateClosed()&amp;lt;/tt&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
each return an integer value corresponding to the&lt;br /&gt;
total number of PDQ streams of work and &amp;lt;tt&amp;gt;CreateNode()&amp;lt;/tt&amp;gt; returns an&lt;br /&gt;
integer value corresponding to the total number of PDQ queueing nodes&lt;br /&gt;
created. These returns are unnecessary and  are also causing problems for porting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
In the next major release (PDQ 5.0 ?), the PDQ Create functions will become &lt;br /&gt;
&amp;lt;b&amp;gt;procedures&amp;lt;/b&amp;gt; i.e., &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background: #FFFF00;&amp;quot;&amp;gt;they will no longer return a value&amp;lt;/span&amp;gt;. &lt;br /&gt;
In ANSI parlance, they will become voids. To determine the count of PDQ streams or PDQ nodes,&lt;br /&gt;
you will need to actively call two &amp;lt;b&amp;gt;new functions&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;tt&amp;gt;int streams = ... GetStreamsCount();&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;tt&amp;gt;int nodes = ... GetNodesCount();&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Although most of you probably don&amp;#039;t use these values, this is a heads-up to start planning for &lt;br /&gt;
the change now.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3&amp;quot;&amp;gt;&lt;br /&gt;
3&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Installing&amp;lt;/h2&amp;gt;&lt;br /&gt;
After downloading the tarball &amp;lt;tt&amp;gt;pdq.tar.gz&amp;lt;/tt&amp;gt;, you should &lt;br /&gt;
unzip it: &amp;lt;tt&amp;gt;gunzip pdq.tar.gz&amp;lt;/tt&amp;gt; to produce the file named &amp;lt;tt&amp;gt;pdq.tar&amp;lt;/tt&amp;gt;. Then you&lt;br /&gt;
untar it: &amp;lt;tt&amp;gt;tar -xvf pdq.tar&amp;lt;/tt&amp;gt; to produce the directory named &amp;lt;tt&amp;gt;pdq/&amp;lt;/tt&amp;gt; (or similar).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
In a &amp;lt;b&amp;gt;Microsoft Windows 2K or XP&amp;lt;/b&amp;gt; environment, might want to consider running a Linux style&lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.cygwin.com/mirrors.html&amp;quot;&amp;quot;&amp;gt;bash shell&amp;lt;/A&amp;gt;. &lt;br /&gt;
This is not an emulation (in the sense of requiring a separate interpreter). All commands are &amp;lt;tt&amp;gt;.exe&amp;lt;/tt&amp;gt;&amp;#039;s&lt;br /&gt;
and run directly under the Windows O/S. Of course, you can also write integrated windows code using Windows&lt;br /&gt;
&amp;lt;tt&amp;gt;.dll&amp;lt;/tt&amp;gt;&amp;#039;s or Tcl, etc. Try it, you might like it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
The following section assumes you are using a UNIX or Linux-type environment. Otherwise, your&lt;br /&gt;
results may vary. In particular, if you are using &amp;lt;b&amp;gt;ActiveState Perl&amp;lt;/b&amp;gt; under a Windows O/S, see&lt;br /&gt;
Section&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#sec:activeperl&amp;quot;&amp;gt;3.3&amp;lt;/a&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3.1&amp;quot;&amp;gt;&lt;br /&gt;
3.1&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;UNIX Environments&amp;lt;/h3&amp;gt;&lt;br /&gt;
The Perl interpreter needed to run Perl-PDQ is available on a wide variety of&lt;br /&gt;
platforms, and is already installed on most UNIX and Linux&lt;br /&gt;
platforms. The Perl-PDQ module can be built and installed by issuing a &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
command in the top-level &amp;lt;tt&amp;gt;/pdq&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Alternatively, it may be built manually by as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;   Change to the &amp;lt;tt&amp;gt;/pdq&amp;lt;/tt&amp;gt; subdirectory (&amp;lt;tt&amp;gt;cd pdq&amp;lt;/tt&amp;gt;)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;   Change to the perl5 directory:  &amp;lt;tt&amp;gt;cd perl5&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;   Run the setup script:  &amp;lt;tt&amp;gt;./setup.sh&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;   Go back up to the pdq directory:  &amp;lt;tt&amp;gt;cd ..&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Now, you should be able to run the code examples provided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
In case there is a problem compiling, perform the following diagnostic steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Check the PDQ version. Run the command  &amp;lt;tt&amp;gt;./Getversion&amp;lt;/tt&amp;gt; to confirm that you&lt;br /&gt;
have the same version number as above.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Go into the &amp;lt;tt&amp;gt;/lib&amp;lt;/tt&amp;gt; subdirectory and make sure you are using the appropriate &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; or &lt;br /&gt;
you may need to create your own&amp;lt;tt&amp;gt;---&amp;lt;/tt&amp;gt;depending on your environment.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Example Makefiles are already provided in that directory for the common operating systems.&lt;br /&gt;
In some cases, you may need the help of a system administrator to get the files to compile correctly. &amp;lt;br /&amp;gt;&lt;br /&gt;
The basic goal is to generate a correct &amp;lt;tt&amp;gt;libpdq.a&amp;lt;/tt&amp;gt; archive because it is used by everything. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3.2&amp;quot;&amp;gt;&lt;br /&gt;
3.2&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;UNIX Installation Gotchas&amp;lt;/h3&amp;gt;&lt;br /&gt;
The following items are typical of the installation problems that can&lt;br /&gt;
prevent Perl PDQ models from executing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;  Line termination problems. &amp;lt;br /&amp;gt;&lt;br /&gt;
  Check the CR/LF conventions used in text files in your environment.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;  Permissions problems. &amp;lt;br /&amp;gt;&lt;br /&gt;
  If you don&amp;#039;t have root privileges, you will need to install the&lt;br /&gt;
  PERL module to a lib/ directory that is local to you.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;  Pathing problems. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  The Perl interpreter has to be able to find the pdq.pm module.&lt;br /&gt;
  If it can&amp;#039;t, the typical error message begins&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;&amp;quot;Can&amp;#039;t locate pdq.pm in  ( contains: ....&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  To facilitate finding it on my MacOS X G4, for example, I had to&lt;br /&gt;
  export the UNIX environment variable &amp;lt;tt&amp;gt;PERL5LIB&amp;lt;/tt&amp;gt; using the shell command:&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;setenv PERL5LIB /Users/njg///lib/perl5/site_perl/5.8.6/darwin-.../&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  You should then include this env var in your &amp;lt;tt&amp;gt;.cshrc&amp;lt;/tt&amp;gt; or whatever login profile you use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  Check this variable using the shell command:&lt;br /&gt;
  &amp;lt;tt&amp;gt;echo $PERL5LIB&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
See the &lt;br /&gt;
&amp;lt;span style=&amp;quot;background: #FFFF00;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;README file in the Perl5/ directory&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; of this&lt;br /&gt;
distribution for more details about installation setup and debugging.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3.3&amp;quot;&amp;gt;&lt;br /&gt;
3.3&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;WINDOWS with ActiveState Perl&amp;lt;/h3&amp;gt; &amp;lt;a name=&amp;quot;sec:activeperl&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
I have now received two sets of instructions for installing ActivePerl by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt;Tom Becker&amp;lt;/b&amp;gt; - See Section&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#sec:tom&amp;quot;&amp;gt;3.3.1&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; &amp;lt;b&amp;gt;Christof Schmalenbach&amp;lt;/b&amp;gt; - See Section&amp;amp;nbsp;&amp;lt;a href=&amp;quot;#sec:christof&amp;quot;&amp;gt;3.3.2&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
I don&amp;#039;t know anything about ActivePerl (and I don&amp;#039;t want to know), but I am very grateful &lt;br /&gt;
to these users for providing their installation instructions which may be helpful to &lt;br /&gt;
other ActivePerl users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;h4&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3.3.1&amp;quot;&amp;gt;&lt;br /&gt;
3.3.1&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Tom Becker&amp;#039;s Notes&amp;lt;/h4&amp;gt; &amp;lt;a name=&amp;quot;sec:tom&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
The following extensive notes were kindly provided by &amp;lt;b&amp;gt;Tom Becker&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
who undertook a Herculean effort to get &amp;lt;tt&amp;gt;Perl::PDQ&amp;lt;/tt&amp;gt; working under &lt;br /&gt;
ActiveState Perl on Windows XP. Reading this makes realize why I use&lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://cygwin.com/&amp;quot;&amp;gt;cygwin&amp;lt;/A&amp;gt;&lt;br /&gt;
on my Windows laptop (&amp;lt;tt&amp;gt;sonyXPress&amp;lt;/tt&amp;gt;). But if you must use Active Perl,&lt;br /&gt;
this is the place to start. Thanks Tom!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is my experience getting Perl::PDQ running in Windows XP. I have no C&lt;br /&gt;
skills, no UNIX skills, very limited Perl skills and am a PC user, not a&lt;br /&gt;
developer. All my information was gathered via Google and I hobbled together&lt;br /&gt;
all the required bits and pieces. All software used were free downloads.&lt;br /&gt;
Hopefully someone can drastically streamline my steps described below. &lt;br /&gt;
&lt;br /&gt;
ENVIRONMENT: Windows XP Pro with SP1, Pentium 4 CPU, ActiveState Perl 5.8.3&lt;br /&gt;
(mswin32-x86-multi-thread) binary build 809 with 8 patches.&lt;br /&gt;
&lt;br /&gt;
INSTALLATION:&lt;br /&gt;
	1.	Installed the PDQ_Perl package as recommended. My main&lt;br /&gt;
working folder was D:\pdq_perl\perl5\pdq\perl5. A lot of work was done in a&lt;br /&gt;
DOS window.&lt;br /&gt;
&lt;br /&gt;
	2.	Downloaded NMAKE15 from Microsoft. This is version 1.5 of&lt;br /&gt;
nmake (the equivalent of the UNIX make command). Unzip this into the&lt;br /&gt;
..\perl5 folder referenced above. It will add nmake.exe and nmake.err. See&lt;br /&gt;
//download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe.&lt;br /&gt;
&lt;br /&gt;
	3.	Run Perl makefile.pl.&lt;br /&gt;
&lt;br /&gt;
	4.	ActiveState Perl calls for the cl compiler (Microsoft&amp;#039;s C++&lt;br /&gt;
compiler). I downloaded a free copy of the Microsoft Visual C++ Toolkit&lt;br /&gt;
2003. Installed it and ran VCVARS32.BAT to set up the environmental&lt;br /&gt;
variables of LIB, PATH and INCLUDE.&lt;br /&gt;
&lt;br /&gt;
         5.  Downloaded the Windows Server 2003 SP1 Platform SDK Full&lt;br /&gt;
Download and picked out windows.h and all associated include header files&lt;br /&gt;
and put them in the \Perl\lib\CORE folder. I did not install this product.&lt;br /&gt;
The full download is 400MB and has 16 separate 25MB files. A short cut is to&lt;br /&gt;
download two cab files from &amp;quot;Windows Server 2003 SP1 Platform SDK Full&lt;br /&gt;
Download&amp;quot;: PSDK-FULL.6.cab and PSDK-FULL.7.cab. (Also get PSDK-FULL.15.cab&lt;br /&gt;
for a later step below.) The contents can be extracted with WINZIP. Extract&lt;br /&gt;
from the two files above: PSDK-SDK_Core_BLD-commom.0.cab,&lt;br /&gt;
PSDK-SDK_Core_BLD-commom.1.cab, PSDK-SDK_Core_BLD-commom.2.cab. Extract all&lt;br /&gt;
the contents of the above three files to one folder. Then sort by file name.&lt;br /&gt;
Copy and rename 27 header files to \perl\lib\core folder. Example:&lt;br /&gt;
windows_h.95CE7D7B_A68D_11D2_A852_00C04FC2A854 renamed to windows.h. Extract&lt;br /&gt;
the following:&lt;br /&gt;
&lt;br /&gt;
BaseTsd.h&lt;br /&gt;
Guiddef.h&lt;br /&gt;
Imm.h&lt;br /&gt;
Mcx.h&lt;br /&gt;
PopPack.h&lt;br /&gt;
PshPack1.h&lt;br /&gt;
PshPack2.h&lt;br /&gt;
PshPack4.h&lt;br /&gt;
PshPack8.h&lt;br /&gt;
Reason.h&lt;br /&gt;
specstrings.h&lt;br /&gt;
StrAlign.h&lt;br /&gt;
Tvout.h&lt;br /&gt;
winbase.h&lt;br /&gt;
WinCon.h&lt;br /&gt;
WinDef.h&lt;br /&gt;
windows.h&lt;br /&gt;
WinError.h&lt;br /&gt;
WinGDI.h&lt;br /&gt;
WinNetWk.h&lt;br /&gt;
WinNls.h&lt;br /&gt;
WinNT.h&lt;br /&gt;
WinReg.h&lt;br /&gt;
WinSock.h&lt;br /&gt;
WinSvc.h&lt;br /&gt;
WinUser.h&lt;br /&gt;
WinVer.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	6.	Modified  d:\pdq_perl\perl5\pdq\lib\debug.h to remove the&lt;br /&gt;
three periods (...) in this statement:&lt;br /&gt;
	 	#define g_debugf(fmt, args...) \&lt;br /&gt;
			fprintf(stderr, &amp;quot;%s:%d &amp;quot; fmt, __FILE__, __LINE__,&lt;br /&gt;
##args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	7.	Compiled all the c files in d:\pdq_perl\perl5\pdq\lib and&lt;br /&gt;
moved the .obj files to ..\perl5. There will be a warning message compiling&lt;br /&gt;
PDQ_Utils due to the modification to debug.h above.&lt;br /&gt;
&lt;br /&gt;
	8.	Extract from PSDK-FULL.15.cab this file:&lt;br /&gt;
PSDK-SDK_MAC_BLD_X86-common.o.cab. From this file extract ODBC32.lib and&lt;br /&gt;
ODBCCP32.lib and move to ..\perl5.&lt;br /&gt;
&lt;br /&gt;
	9.	Copy from the folder created in step 5 above (the extraction&lt;br /&gt;
of PSDK-SDK_Core_BLD-commom.0.cab,   PSDK-SDK_Core_BLD-commom.1.cab,&lt;br /&gt;
PSDK-SDK_Core_BLD-commom.2.cab) and move the following to ..\perl5:&lt;br /&gt;
&lt;br /&gt;
	 	AdvAPI32.Lib&lt;br /&gt;
		ComDlg32.Lib&lt;br /&gt;
		Gdi32.Lib&lt;br /&gt;
		Mpr.Lib&lt;br /&gt;
		NetAPI32.Lib&lt;br /&gt;
		Ole32.Lib&lt;br /&gt;
		OleAut32.Lib&lt;br /&gt;
		Shell32.Lib&lt;br /&gt;
		User32.Lib&lt;br /&gt;
		Uuid.Lib&lt;br /&gt;
		Version.Lib&lt;br /&gt;
		WinMM.Lib&lt;br /&gt;
		WinSpool.Lib&lt;br /&gt;
		WSock32.Lib&lt;br /&gt;
		&lt;br /&gt;
	10.	Downloaded and installed Microsoft .NET Framework SDK&lt;br /&gt;
Version 1.1 to get msvcrt.lib even though there was a copy of it in the&lt;br /&gt;
Windows Server 2003 SP1 Platform SDK ; it was for AMD64 and would not link.&lt;br /&gt;
After installation msvcrt.lib is found in \Program Files\Microsoft visual&lt;br /&gt;
Studio .NET\VC7\lib folder. Moved it to ...\perl5 with the other libs from&lt;br /&gt;
above. &lt;br /&gt;
&lt;br /&gt;
	11.	Ran nmake.&lt;br /&gt;
&lt;br /&gt;
	12.	Ran nmake install.&lt;br /&gt;
&lt;br /&gt;
	13.	Ran the test.pl PDQ file to a successful completion.&lt;br /&gt;
&lt;br /&gt;
RECOMMENDATIONS: (For the next pioneer):&lt;br /&gt;
1. Investigate why ActiveState Perl call for the cl.exe compiler (MS C++) in&lt;br /&gt;
the makefile. Perhaps a simpler compiler can be used.&lt;br /&gt;
&lt;br /&gt;
2. Find out where all the Activestate Perl libs are that are displayed with&lt;br /&gt;
the perl -V command. It lists all the libs I had to search for, but were not&lt;br /&gt;
on my PC. So how does Activestate Perl use them?&lt;br /&gt;
&lt;br /&gt;
3. Try to install the entire Windows Server 2003 SP1 Platform SDK FULL&lt;br /&gt;
DOWNLOAD. Maybe I overlooked msvcrt.lib for x86. However, I did inspect the&lt;br /&gt;
x86.msi file and it did reference the AMD64 file, which I tried but was&lt;br /&gt;
rejected by the link program. It will also simplify extracting all the&lt;br /&gt;
header files. But it is a 400MB download.&lt;br /&gt;
&lt;br /&gt;
4. Get Microsoft to allow the redistribution of the headers and libs, rather&lt;br /&gt;
than forcing a download of the products I needed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;h4&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc3.3.2&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.3.2&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Christof Schmalenbach&amp;#039;s Notes&amp;lt;/h4&amp;gt;  &amp;lt;a name=&amp;quot;sec:christof&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
I (CS) use ActivePerl, but not cygwin. After some experiments I found a way of&lt;br /&gt;
installation of Perl::PDQ under win32 without extensive use of MS Tools.&lt;br /&gt;
Here is my approach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Download nmake as descriped by Tom Becker&lt;br /&gt;
2. Download MinGW - Minimalist GNU for Windows (www.mingw.org) and install it&lt;br /&gt;
3. Open a DOS Shell  and extend your path env variable so that mingw\bin is in front of perl.&lt;br /&gt;
set path=d:\programs\MinGW\mingw32\bin;d:\programs\MinGW\bin;D:\programs\perl\bin in my environment&lt;br /&gt;
4. change to the pdq\lib directory&lt;br /&gt;
5. use gcc (from mingw) to compile pdq c files to object files (for example MVA_Approx.o..)&lt;br /&gt;
6. copy or move the object files to the ..\pdq\perl5 directory&lt;br /&gt;
7. call perl MakeFile.PL&lt;br /&gt;
8. call nmake MakeFile&lt;br /&gt;
9. after a while this creates ..pdq\perl5\blib\arch\auto\pdq\pdq.dll&lt;br /&gt;
&lt;br /&gt;
With this dll I can use Perl::PDQ without problems.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT:&lt;br /&gt;
If mingw\bin is not in the path, perl MakeFile.PL will create cl.exe calls (as Tom remarked). &lt;br /&gt;
But if Mingw\bin is in the path, the gcc compiler is used instead of MS.&lt;br /&gt;
So in general there is not a lot of difference between linux/cygwin and win32 for c-calls from perl.&lt;br /&gt;
&lt;br /&gt;
BTW, there is a document (perlxstut.html) in the activeperl distribution, &lt;br /&gt;
which explains the general approach for Perl extensions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Once you are successful (or while waiting for your sys admin to set it up) &lt;br /&gt;
you might care to review the &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/Tools/PDQ.html&amp;quot;&amp;gt;basic concepts&amp;lt;/A&amp;gt; &lt;br /&gt;
behind PDQ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc4&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Get Notified About Updates&amp;lt;/h2&amp;gt;&lt;br /&gt;
If you would like to be notified by email about future PDQ updates, please fill out the&lt;br /&gt;
online form with your correct email address and select the heading &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/emailform.html&amp;quot;&amp;gt;Notify for PDQ updates&amp;lt;/A&amp;gt;. &lt;br /&gt;
The same applies if you have changed your email address (e.g., changed employer).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc5&amp;quot;&amp;gt;&lt;br /&gt;
5&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Where&amp;#039;s Waldo? (Anyone C-een him?)&amp;lt;/h2&amp;gt;&lt;br /&gt;
A number of people have asked me for the C-language version of PDQ,&lt;br /&gt;
especially those using my 1998/2000 book &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/iBook/ppa.html&amp;quot;&amp;gt;The Practical Performance Analyst&amp;lt;/A&amp;gt;.&lt;br /&gt;
The C-code of those PDQ models can be found in the directory &amp;lt;tt&amp;gt;examples/ppa_1998/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
The Perl scripts for the PDQ models discussed my 2005 book &lt;br /&gt;
&lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/books.html&amp;quot;&amp;gt;Analyzing Computer System Performance with Perl::PDQ&amp;lt;/A&amp;gt;, &lt;br /&gt;
can now be found in the directory &amp;lt;tt&amp;gt;examples/ppdq_2005/&amp;lt;/tt&amp;gt;. &lt;br /&gt;
A detailed synopsis of the PDQ functions in Perl is presented in Chapter 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc6&amp;quot;&amp;gt;&lt;br /&gt;
6&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;User Guide&amp;lt;/h2&amp;gt;&lt;br /&gt;
The online &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/Tools/PDQman.html&amp;quot;&amp;gt;PDQ Manual&amp;lt;/A&amp;gt;&lt;br /&gt;
for the C version of PDQ is now &amp;lt;b&amp;gt;hyperlinked&amp;lt;/b&amp;gt; for easier navigation and supercedes &amp;lt;b&amp;gt;Appendix A&amp;lt;/b&amp;gt; in the &lt;br /&gt;
&lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/books.html&amp;quot;&amp;gt;The Practical Performance Analyst&amp;lt;/A&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;tth_sEc7&amp;quot;&amp;gt;&lt;br /&gt;
7&amp;lt;/a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Feedback&amp;lt;/h2&amp;gt;&lt;br /&gt;
New versions of PDQ are released periodically.  Please fill out this &lt;br /&gt;
&amp;lt;A HREF=&amp;quot;http://www.perfdynamics.com/emailform.html&amp;quot;&amp;gt;form&amp;lt;/A&amp;gt; &lt;br /&gt;
if you would like to notified by email.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;p&amp;quot;&amp;gt;&amp;lt;!----&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;small&amp;gt;File translated from&lt;br /&gt;
T&amp;lt;sub&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;E&amp;lt;/font&amp;gt;&amp;lt;/sub&amp;gt;X&lt;br /&gt;
by &amp;lt;a href=&amp;quot;http://hutchinson.belmont.ma.us/tth/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
T&amp;lt;sub&amp;gt;&amp;lt;font size=&amp;quot;-1&amp;quot;&amp;gt;T&amp;lt;/font&amp;gt;&amp;lt;/sub&amp;gt;H&amp;lt;/a&amp;gt;,&lt;br /&gt;
version 3.38.&amp;lt;br /&amp;gt;On  4 May 2007, 07:13.&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
</feed>