Explorar o código

Merge branch 'candidate-6.0.8'

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman %!s(int64=8) %!d(string=hai) anos
pai
achega
d582a138a1

+ 10 - 0
docs/ECLLanguageReference/ECLR_mods/Templ-OPTION.xml

@@ -501,6 +501,16 @@
             </row>
 
             <row>
+              <entry><emphasis>hthorMemoryLimit</emphasis></entry>
+
+              <entry>Default 300 [MB]</entry>
+
+              <entry>Override memory usage limit set in ECL Agent's
+              defaultMemoryLimitMB configuration option (for hThor
+              only).</entry>
+            </row>
+
+            <row>
               <entry><emphasis>maxCsvRowSizeMb</emphasis></entry>
 
               <entry>Default 10 [MB]</entry>

+ 53 - 0
docs/ECLStandardLibraryReference/SLR-Mods/CurrentDate.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<sect1 id="CurrentDate">
+  <title>CurrentDate</title>
+
+  <para><emphasis role="bold">STD.Date.CurrentDate
+  ([</emphasis><emphasis>in_local_time</emphasis><emphasis
+  role="bold">])</emphasis><indexterm>
+      <primary>STD.Date.CurrentDate</primary>
+    </indexterm><indexterm>
+      <primary>CurrentDate</primary>
+    </indexterm></para>
+
+  <informaltable colsep="1" frame="all" rowsep="1">
+    <tgroup cols="2">
+      <colspec colwidth="80.50pt" />
+
+      <colspec />
+
+      <tbody>
+        <row>
+          <entry><emphasis>in_local_time</emphasis></entry>
+
+          <entry>TRUE if the returned value should be local to the cluster
+          computing the date, FALSE for UTC. Optional, defaults to
+          FALSE.</entry>
+        </row>
+
+        <row>
+          <entry>Return:</entry>
+
+          <entry>Today returns a Date_t representing the current date.
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>The <emphasis role="bold">CurrentDate</emphasis> function returns the
+  current date. If the in_local_time parameter is TRUE the returned value is
+  local to the cluster computing the date, if FALSE then the UTC value is
+  returned.</para>
+
+  <para>Example:</para>
+
+  <programlisting format="linespecific">IMPORT STD;
+d1 := STD.Date.CurrentDate(True); 
+     //d1 contains the current local date 
+</programlisting>
+
+  <para></para>
+</sect1>

+ 52 - 0
docs/ECLStandardLibraryReference/SLR-Mods/IsDateLeapYear.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<sect1 id="IsDateLeapYear">
+  <title>IsDateLeapYear</title>
+
+  <para><emphasis role="bold">STD.Date.IsDateLeapYear<indexterm>
+      <primary>STD.Date.IsDateLeapYear</primary>
+    </indexterm><indexterm>
+      <primary>Date.IsDateLeapYear</primary>
+    </indexterm>(</emphasis> <emphasis>date</emphasis> <emphasis
+  role="bold">)</emphasis></para>
+
+  <informaltable colsep="1" frame="all" rowsep="1">
+    <tgroup cols="2">
+      <colspec colwidth="80.50pt" />
+
+      <colspec />
+
+      <tbody>
+        <row>
+          <entry><emphasis>date</emphasis></entry>
+
+          <entry>A date in Date_t format. (An UNSIGNED4 containing a date
+          value in YYYYMMDD format.)</entry>
+        </row>
+
+        <row>
+          <entry>Return:</entry>
+
+          <entry>IsDateLeapYear returns a BOOLEAN value.</entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>The <emphasis role="bold">IsDateLeapYear</emphasis> function returns
+  TRUE if the <emphasis>year</emphasis> represented in the
+  <emphasis>date</emphasis> is a leap year in the Gregorian (or proleptic
+  Gregorian) calendar.</para>
+
+  <para>Example:</para>
+
+  <programlisting format="linespecific">IMPORT STD;
+MyDate := 20120112;   //Jan. 12, 2012
+  
+D := STD.Date.IsDateLeapYear(MyDate);
+    //D contains TRUE, 2012 is a leap year
+  </programlisting>
+
+  <para></para>
+</sect1>

+ 1 - 1
docs/ECLStandardLibraryReference/SLR-Mods/IsValidDate.xml

@@ -42,7 +42,7 @@
         <row>
           <entry>Return:</entry>
 
-          <entry>IsValidDateLeapYear returns a BOOLEAN value.</entry>
+          <entry>IsValidDateYear returns a BOOLEAN value.</entry>
         </row>
       </tbody>
     </tgroup>

+ 51 - 0
docs/ECLStandardLibraryReference/SLR-Mods/IsValidGregorianDate.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<sect1 id="IsValidGregorianDate">
+  <title>IsValidGregorianDate</title>
+
+  <para><emphasis role="bold">STD.Date.IsValidGregorianDate<indexterm>
+      <primary>STD.Date.IsValidGregorianDate</primary>
+    </indexterm><indexterm>
+      <primary>Date.IsValidGregorianDate</primary>
+    </indexterm>(</emphasis> <emphasis>date</emphasis> <emphasis
+  role="bold">)</emphasis></para>
+
+  <informaltable colsep="1" frame="all" rowsep="1">
+    <tgroup cols="2">
+      <colspec colwidth="80.50pt" />
+
+      <colspec />
+
+      <tbody>
+        <row>
+          <entry><emphasis>date</emphasis></entry>
+
+          <entry>A date value in the Date_t format. (An UNSIGNED4 containing a
+          date value in YYYYMMDD format.)</entry>
+        </row>
+
+        <row>
+          <entry>Return:</entry>
+
+          <entry>IsValidGregorianDateYear returns a BOOLEAN value.</entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>The <emphasis role="bold">IsValidGregorianDate</emphasis> function
+  returns TRUE if the date is valid in the Gregorian calendar. The year must
+  be between 1601 and 30827.</para>
+
+  <para>Example:</para>
+
+  <programlisting format="linespecific">IMPORT STD;
+d1 := 19991122;
+d2 := 15130230;  
+firstTest := STD.Date.IsValidGregorianDate(d1);  //  TRUE
+secondTest := STD.Date.IsValidGregorianDate(d2); //  FALSE
+</programlisting>
+
+  <para></para>
+</sect1>

+ 50 - 0
docs/ECLStandardLibraryReference/SLR-Mods/IsValidTime.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<sect1 id="IsValidTime">
+  <title>IsValidTime</title>
+
+  <para><emphasis role="bold">STD.Date.IsValidTime<indexterm>
+      <primary>STD.Date.IsValidTime</primary>
+    </indexterm><indexterm>
+      <primary>Date.IsValidTime</primary>
+    </indexterm>(</emphasis> <emphasis>time</emphasis> <emphasis
+  role="bold">)</emphasis></para>
+
+  <informaltable colsep="1" frame="all" rowsep="1">
+    <tgroup cols="2">
+      <colspec colwidth="80.50pt" />
+
+      <colspec />
+
+      <tbody>
+        <row>
+          <entry><emphasis>time</emphasis></entry>
+
+          <entry>A time value in the Time_t format.</entry>
+        </row>
+
+        <row>
+          <entry>Return:</entry>
+
+          <entry>IsValidTime returns a BOOLEAN value.</entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>The <emphasis role="bold">IsValidDate</emphasis> function returns TRUE
+  if the time is valid, by validating each of the individual components
+  (hours, minutes, and seconds)..</para>
+
+  <para>Example:</para>
+
+  <programlisting format="linespecific">IMPORT STD;
+d1 := 19631122;
+d2 := 19990230;  
+firstTest := STD.Date.IsValidDate(d1);  //d1 is valid
+secondTest := STD.Date.IsValidDate(d2); //d2 is not valid
+</programlisting>
+
+  <para></para>
+</sect1>

+ 66 - 0
docs/ECLStandardLibraryReference/SLR-Mods/TimeFromParts.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<sect1 id="TimeFromParts">
+  <title>TimeFromParts</title>
+
+  <para><emphasis role="bold">STD.Date.TimeFromParts<indexterm>
+      <primary>STD.Date.TimeFromParts</primary>
+    </indexterm><indexterm>
+      <primary>Date.TimeFromParts</primary>
+    </indexterm>(</emphasis> <emphasis>hour, minute, second</emphasis>
+  <emphasis role="bold">)</emphasis></para>
+
+  <informaltable colsep="1" frame="all" rowsep="1">
+    <tgroup cols="2">
+      <colspec colwidth="80.50pt" />
+
+      <colspec />
+
+      <tbody>
+        <row>
+          <entry><emphasis>hour</emphasis></entry>
+
+          <entry>An INTEGER1 hour value in the range 0 to 23.</entry>
+        </row>
+
+        <row>
+          <entry><emphasis>minute</emphasis></entry>
+
+          <entry>An UNSIGNED1 minute value in the range 0 to 59.</entry>
+        </row>
+
+        <row>
+          <entry><emphasis>second</emphasis></entry>
+
+          <entry>An UNSIGNED1 second value in the range 0 to 59.</entry>
+        </row>
+
+        <row>
+          <entry>Return:</entry>
+
+          <entry>TimeFromParts returns a Time_t (An UNSIGNED3 holding a time
+          of day in the decimal form HHMMDD.)</entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>The <emphasis role="bold">TimeFromParts</emphasis> function returns a
+  Time_t value from the <emphasis>hour</emphasis>,
+  <emphasis>minute</emphasis>, and <emphasis>second</emphasis>
+  parameters.</para>
+
+  <para>Example:</para>
+
+  <programlisting format="linespecific">IMPORT STD;
+  UNSIGNED1   MyHour   := 23;
+  UNSIGNED1   MyMinute := 59;
+  UNSIGNED1   MySecond := 50;
+  
+T := STD.Date.TimeFromParts(MyHour,MyMinute,MySecond);
+    //T contains 235950
+  </programlisting>
+
+  <para></para>
+</sect1>

+ 11 - 0
docs/ECLStandardLibraryReference/SLR-includer.xml

@@ -384,12 +384,21 @@
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/DateFromParts.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="ECLStandardLibraryReference/SLR-Mods/TimeFromParts.xml"
+                xmlns:xi="http://www.w3.org/2001/XInclude" />
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/IsLeapYear.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="ECLStandardLibraryReference/SLR-Mods/IsDateLeapYear.xml"
+                xmlns:xi="http://www.w3.org/2001/XInclude" />
+                
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/IsValidDate.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="ECLStandardLibraryReference/SLR-Mods/IsValidTime.xml"
+                xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="ECLStandardLibraryReference/SLR-Mods/IsValidGregorianDate.xml"
+                xmlns:xi="http://www.w3.org/2001/XInclude" />
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/FromGregorianYMD.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -402,6 +411,8 @@
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/Today.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
+    <xi:include href="ECLStandardLibraryReference/SLR-Mods/CurrentDate.xml"
+                xmlns:xi="http://www.w3.org/2001/XInclude" />
 
     <xi:include href="ECLStandardLibraryReference/SLR-Mods/CurrentTime.xml"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />

+ 29 - 24
docs/ECLWatch/ECLWa_mods/ECLWatchSrc.xml

@@ -357,7 +357,7 @@
 
             <mediaobject>
               <imageobject>
-                <imagedata fileref="../../images/ECLWA402.jpg"
+                <imagedata fileref="../../images/ECLWA04022.jpg"
                            vendor="eclwatchSS" />
               </imageobject>
             </mediaobject>
@@ -370,59 +370,64 @@
 
         <itemizedlist>
           <listitem>
-            <para>Press the<emphasis role="bold"> Refresh </emphasis>button to
-            refresh the workunit details.</para>
+            <para><emphasis role="bold">Refresh - </emphasis>Redisplays the
+            workunit details.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Save </emphasis>button to
-            save any changes to the workunit.</para>
+            <para><emphasis role="bold">Save - </emphasis>Saves any changes to
+            the workunit.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Delete</emphasis> button to
-            delete the workunit.</para>
+            <para><emphasis role="bold">Delete</emphasis> - Deletes the
+            workunit.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Restore</emphasis> button to
-            restore a workunit that has been archived by Sasha.</para>
+            <para><emphasis role="bold">Restore</emphasis> - Restores an
+            archived workunit. (Workunits are archived by Sasha).</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Set To Failed</emphasis>
-            button to change the workunit state to failed.</para>
+            <para><emphasis role="bold">Set To Failed</emphasis> - Changes the
+            workunit state to failed.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Abort</emphasis> button to
-            stop a running workunit and abort the job.</para>
+            <para><emphasis role="bold">Abort</emphasis> - Stops a running
+            workunit and aborts the job.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Recover</emphasis> button to
-            restart the workunit.</para>
+            <para><emphasis role="bold">Recover</emphasis> - Resubmits the
+            workunit without resetting the workflow. This resumes processing
+            from the same point in the process where it ended
+            previously.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Resubmit</emphasis> button
-            to resubmit the job.</para>
+            <para><emphasis role="bold">Resubmit</emphasis> - Resubmits the
+            workunit. This resets the workflow and starts it over from the
+            beginning.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Clone</emphasis> button to
-            clone the workunit.</para>
+            <para><emphasis role="bold">Clone</emphasis> - Creates a new copy
+            of the workunit. The new workunit is now owned by the user who
+            cloned it.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Publish</emphasis> button to
-            publish the workunit.</para>
+            <para><emphasis role="bold">Publish</emphasis> - Publishes the
+            workunit as a published query.</para>
           </listitem>
 
           <listitem>
-            <para>Press the <emphasis role="bold">Z.A.P.</emphasis> button to
-            package up system information for analysis. This is useful for bug
-            reporting or troubleshooting.</para>
+            <para><emphasis role="bold">Z.A.P.</emphasis> - Packages up
+            workunit and system information into a Zip file that can be
+            shared. This is useful for troubleshooting and bug
+            reporting.</para>
           </listitem>
         </itemizedlist>
 

+ 329 - 1
docs/HPCCClientTools/CT_Mods/CT_ECL_IDE.xml

@@ -2698,6 +2698,334 @@ ENDMACRO;
         </sect3>
       </sect2>
 
+      <sect2 id="KeyboardShortcuts">
+        <title>Keyboard Shortcuts</title>
+
+        <para>The following table lists all the keyboard shortcuts available
+        in the IDE.</para>
+
+        <para><informaltable>
+            <tgroup cols="2">
+              <colspec align="left" colwidth="140 pt" />
+
+              <colspec align="left" />
+
+              <thead>
+                <row>
+                  <entry>Keyboard Shortcut</entry>
+
+                  <entry>Action</entry>
+                </row>
+              </thead>
+
+              <tbody>
+                <row>
+                  <entry>F1</entry>
+
+                  <entry>Online Help (Syntax)</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+F</entry>
+
+                  <entry>Find</entry>
+                </row>
+
+                <row>
+                  <entry>F3</entry>
+
+                  <entry>Find Next</entry>
+                </row>
+
+                <row>
+                  <entry>Shift+F3 </entry>
+
+                  <entry>Find Previous</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+H</entry>
+
+                  <entry>Replace</entry>
+                </row>
+
+                <row>
+                  <entry>F4</entry>
+
+                  <entry>Next Error</entry>
+                </row>
+
+                <row>
+                  <entry>Shift+F4</entry>
+
+                  <entry>Previous Error</entry>
+                </row>
+
+                <row>
+                  <entry>F5</entry>
+
+                  <entry>Refresh Repository</entry>
+                </row>
+
+                <row>
+                  <entry>F7</entry>
+
+                  <entry>Check Syntax</entry>
+                </row>
+
+                <row>
+                  <entry>F8</entry>
+
+                  <entry>Locate File in Explorer</entry>
+                </row>
+
+                <row>
+                  <entry>F9</entry>
+
+                  <entry>Locate Current FIle</entry>
+                </row>
+
+                <row>
+                  <entry>F11</entry>
+
+                  <entry>Locate Selected File</entry>
+                </row>
+
+                <row>
+                  <entry>F12</entry>
+
+                  <entry>Open Selected File</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Enter</entry>
+
+                  <entry>Submit ECL</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Alt+Enter</entry>
+
+                  <entry>Submit Selected ECL</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+X / Shift+Delete</entry>
+
+                  <entry>Cut</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+C / Ctrl+Insert</entry>
+
+                  <entry>Copy</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+V / Shift+Insert</entry>
+
+                  <entry>Paste</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Z / Alt+backspace</entry>
+
+                  <entry>Undo</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Y</entry>
+
+                  <entry>Redo</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+F4</entry>
+
+                  <entry>Close File/Builder Window</entry>
+                </row>
+
+                <row>
+                  <entry>Alt+F4</entry>
+
+                  <entry>Close all and exit</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Q</entry>
+
+                  <entry>Toggle Comment with //</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+Q</entry>
+
+                  <entry>Toggle Block Comment /*</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+L</entry>
+
+                  <entry>Toggle Line Numbers</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+S</entry>
+
+                  <entry>Save</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+O</entry>
+
+                  <entry>Open</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+P</entry>
+
+                  <entry>Print</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+N </entry>
+
+                  <entry>New Builder Window</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+G</entry>
+
+                  <entry>Go to Line</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+A</entry>
+
+                  <entry>Select All</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+D </entry>
+
+                  <entry>Duplicate Line</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+T</entry>
+
+                  <entry>Switch the current line position with the previous
+                  line position</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Space</entry>
+
+                  <entry>Complete Word</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+E</entry>
+
+                  <entry>Match Brace</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+E</entry>
+
+                  <entry>Select to Brace</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+W</entry>
+
+                  <entry>Toggle Word Wrap</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Alt+C</entry>
+
+                  <entry>Copy Filename</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+U</entry>
+
+                  <entry>Uppercase</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+U</entry>
+
+                  <entry>Lowercase</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+R</entry>
+
+                  <entry>Record/Stop Macro</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+P</entry>
+
+                  <entry>Play Macro</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Tab</entry>
+
+                  <entry>Next Tab</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+Tab</entry>
+
+                  <entry>Previous Tab</entry>
+                </row>
+
+                <row>
+                  <entry>Alt+Shift+Arrow keys</entry>
+
+                  <entry>Column Mode Select</entry>
+                </row>
+
+                <row>
+                  <entry>Alt + Left Mouse Drag</entry>
+
+                  <entry>Column Mode Select</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+BackSpace</entry>
+
+                  <entry>Delete to start of word</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Delete</entry>
+
+                  <entry>Delete to end of word</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+BackSpace</entry>
+
+                  <entry>Delete to start of line</entry>
+                </row>
+
+                <row>
+                  <entry>Ctrl+Shift+Delete</entry>
+
+                  <entry>Delete to end of line</entry>
+                </row>
+              </tbody>
+            </tgroup>
+          </informaltable></para>
+
+        <para></para>
+      </sect2>
+
       <sect2 id="ECL_Builder_Window" role="brk">
         <title><emphasis>ECL Builder Window</emphasis></title>
 
@@ -2711,7 +3039,7 @@ ENDMACRO;
           <listitem>
             <para><emphasis role="bold">Submit</emphasis> submits the ECL code
             to be compiled and executed on the target cluster. Press the arrow
-            on the submit button to display other options. </para>
+            on the submit button to display other options.</para>
           </listitem>
 
           <listitem>

+ 9 - 16
docs/HPCCSystemAdmin/HPCCSystemAdministratorsGuide.xml

@@ -410,14 +410,15 @@
   <chapter id="SysAdm_HW_and_SW-Req">
     <title>Hardware and Software Requirements</title>
 
-    <para>This chapter consists of various Hardware and Software requirements
-    that HPCC works well on. HPCC is designed to run on commodity hardware,
-    which makes building and maintaining large scale (petabytes) clusters
-    economically feasible. When planning your cluster hardware, you will need
-    to balance a number of considerations.</para>
-
-    <para>This section provides some insight as to what sort of hardware and
-    infrastructure optimally HPCC works well on. This is not an exclusive
+    <para>This chapter describes some of the hardware and software
+    requirements in order to run the HPCC System. HPCC is designed to run on
+    commodity hardware, which makes building and maintaining large scale
+    (petabytes) clusters economically feasible. When planning your cluster
+    hardware, you will need to balance a number of considerations specific to
+    your needs.</para>
+
+    <para>This section provides some insight into the hardware and
+    infrastructure that HPCC works well on. This is not an exclusive
     comprehensive set of instructions, nor a mandate on what hardware you must
     have. Consider this as a guide to use when looking to implement or scale
     your HPCC system. These suggestions should be taken into consideration for
@@ -431,10 +432,6 @@
                 xpointer="HW-LoadBalancer"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
 
-    <xi:include href="Installing_and_RunningTheHPCCPlatform/Inst-Mods/Hardware.xml"
-                xpointer="Nodes-Hardware"
-                xmlns:xi="http://www.w3.org/2001/XInclude" />
-
     <xi:include href="HPCCSystemAdmin/SA-Mods/SysAdminConfigMod.xml"
                 xpointer="System_sizings"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -442,10 +439,6 @@
     <xi:include href="Installing_and_RunningTheHPCCPlatform/Inst-Mods/Hardware.xml"
                 xpointer="Nodes-Software"
                 xmlns:xi="http://www.w3.org/2001/XInclude" />
-
-    <xi:include href="Installing_and_RunningTheHPCCPlatform/Inst-Mods/Hardware.xml"
-                xpointer="workstation-requirements"
-                xmlns:xi="http://www.w3.org/2001/XInclude" />
   </chapter>
 
   <chapter id="SysAdm_HWSizing">

+ 46 - 118
docs/Installing_and_RunningTheHPCCPlatform/Inst-Mods/Hardware.xml

@@ -59,14 +59,27 @@
   <chapter id="Hardware-and-Software-Chapter">
     <title>Hardware and Software Requirements</title>
 
-    <para>The following section describes the various hardware and software
-    required in order to run the HPCC.</para>
+    <para>This section describes some hardware and software requirements or
+    recommendations in order to run the HPCC. Essentially the HPCC system is
+    designed to run on commodity hardware, and would probably work well on
+    almost any hardware. To really take advantage of the power of an HPCC
+    system you should deploy your HPCC system on more modern advanced
+    hardware.</para>
+
+    <para>Hardware and software technology are constantly changing and
+    improving, therefore the latest most up to date requirements and
+    recommendation are available on the HPCC Systems Portal. The System
+    requirements page describes in detail the latest platform
+    requirements.</para>
+
+    <para><ulink
+    url="http://hpccsystems.com/permlink/requirements">http://hpccsystems.com/permlink/requirements</ulink></para>
 
     <sect1 id="HW-Switch" role="nobrk">
       <title>Network Switch</title>
 
-      <para>A significant component of HPCC is the infrastructure it runs on,
-      specifically the switch.</para>
+      <para>The network switch is a significant component of the HPCC
+      System.</para>
 
       <sect2 id="Switch-Requirements">
         <title>Switch requirements</title>
@@ -86,65 +99,12 @@
           </listitem>
         </itemizedlist>
 
-        <para><emphasis role="bold">Small:</emphasis> For a very small test
-        system, almost any gigabit switch will suffice. These are inexpensive
-        and readily available in six to 20-port models.</para>
-
-        <para><figure>
-            <title>1 GigE 8-port Switch</title>
-
-            <mediaobject>
-              <imageobject>
-                <imagedata fileref="../../images/DHSMC8508T.jpg"
-                           vendor="hardwareSS" />
-              </imageobject>
-            </mediaobject>
-          </figure></para>
-
-        <para><emphasis role="bold">Medium</emphasis>: For medium sized (10-48
-        node) systems, we recommend using a Force10 s25, s50, s55, or s60
-        switch</para>
-
-        <para><figure>
-            <title>Force10 S55 48-port Network Switch</title>
-
-            <mediaobject>
-              <imageobject>
-                <imagedata fileref="../../images/s55.jpg"
-                           vendor="hardwareSS,force10SS" />
-              </imageobject>
-            </mediaobject>
-          </figure></para>
-
-        <para><?hard-pagebreak ?><emphasis role="bold">Large</emphasis>: For
-        large (48-350 node) system, the Force10 c150 or c300 are good
-        choices.</para>
-
-        <para><figure>
-            <title>Force 10 c150</title>
-
-            <mediaobject>
-              <imageobject>
-                <imagedata fileref="../../images/c150-lg.jpg"
-                           vendor="hardwareSS,force10SS" />
-              </imageobject>
-            </mediaobject>
-          </figure></para>
-
-        <para><?hard-pagebreak ?><emphasis role="bold">Very Large</emphasis>:
-        For very large (more than 300 nodes) system, the Force10 e600 or e1200
-        are good choices.</para>
-
-        <para><figure>
-            <title>Force 10 e600 and e1200</title>
-
-            <mediaobject>
-              <imageobject>
-                <imagedata fileref="../../images/Force10_ExaScaleE6001200.jpg"
-                           vendor="hardwareSS,force10SS" />
-              </imageobject>
-            </mediaobject>
-          </figure></para>
+        <para>Ideally your HPCC system will perform better when each node is
+        connected directly into a single switch. You should be able to provide
+        a port for each node on a single switch to optimize system
+        performance. Your switch size should correspond to the size of your
+        system. You would want to ensure that the switch you use has enough
+        capacity for each node to be plugged into it's own port.</para>
       </sect2>
 
       <sect2 id="Switch-additional-recommend">
@@ -152,7 +112,11 @@
 
         <para><itemizedlist mark="square" spacing="compact">
             <listitem>
-              <para>Non-blocking backplane</para>
+              <para>Gigabit speed</para>
+            </listitem>
+
+            <listitem>
+              <para>Non-blocking/Non-oversubscribed backplane</para>
             </listitem>
 
             <listitem>
@@ -171,34 +135,23 @@
               <para>Port channel (port bundling) support</para>
             </listitem>
           </itemizedlist></para>
+
+        <para>Generally, higher-end, higher throughput switches are also going
+        to provide better performance. For larger systems, a high-capacity
+        managed switch that can be configured and tuned for HPCC efficiency is
+        the best choice.</para>
       </sect2>
     </sect1>
 
     <sect1 id="HW-LoadBalancer">
       <title>Load Balancer</title>
 
-      <para>In order to take full advantage of a Roxie cluster, a load
-      balancer is required. Each Roxie Node is capable of receiving requests
-      and returning results. Therefore, a load balancer distributes the load
-      in an efficient manner to get the best performance and avoid a potential
+      <para>A load balancer distributes network traffic across a number of
+      servers. Each Roxie Node is capable of receiving requests and returning
+      results. Therefore, a load balancer distributes the load in an efficient
+      manner to get the best performance and avoid a potential
       bottleneck.</para>
 
-      <para>We recommend the Web Accelerator product line from F5 Networks.
-      See <ulink
-      url="http://www.f5.com/pdf/products/big-ip-webaccelerator-ds.pdf">http://www.f5.com/pdf/products/big-ip-webaccelerator-ds.pdf
-      </ulink> for more information<phrase></phrase>.</para>
-
-      <para><figure>
-          <title>F5 Load Balancers</title>
-
-          <mediaobject>
-            <imageobject>
-              <imagedata fileref="../../images/IR-009a.jpg"
-                         vendor="hardwareSS,F5SS" />
-            </imageobject>
-          </mediaobject>
-        </figure></para>
-
       <sect2 id="LoadBalancerRequirements">
         <title>Load Balancer Requirements</title>
 
@@ -207,7 +160,7 @@
 
           <para><itemizedlist spacing="compact">
               <listitem>
-                <para>Throughput: 1Gbps Gigabit</para>
+                <para>Throughput: 1 Gigabit</para>
               </listitem>
 
               <listitem>
@@ -239,7 +192,7 @@
             </itemizedlist></para>
         </sect3>
 
-        <sect3 id="LoadBalancer_RecommendedCapabilities" role="brk">
+        <sect3 id="LoadBalancer_RecommendedCapabilities">
           <title>Recommended capabilities</title>
 
           <para><itemizedlist spacing="compact">
@@ -277,7 +230,7 @@
     <sect1 id="Nodes-Hardware">
       <title>Nodes-Hardware</title>
 
-      <para>The HPCC can run as a single node system or a multi node
+      <para>An HPCC System can run as a single node system or a multi node
       system.</para>
 
       <para>These hardware recommendations are intended for a multi-node
@@ -323,7 +276,7 @@
 
         <para><itemizedlist mark="square" spacing="compact">
             <listitem>
-              <para>Nehalem Core i7 CPU</para>
+              <para>Dual Core i7 CPU (or better)</para>
             </listitem>
 
             <listitem>
@@ -388,37 +341,12 @@
       <sect2 id="Operating-System-Requirements">
         <title>Operating System Requirements</title>
 
-        <para>Binary packages are available for the following:</para>
+        <para>Binary installation packages are available for many Linux
+        Operating systems. HPCC System platform requirements are readily
+        available on the HPCC Portal.</para>
 
-        <para><itemizedlist mark="square" spacing="compact">
-            <listitem>
-              <para>64-bit CentOS 5</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit CentOS 6</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit CentOS 7</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit Ubuntu 12.04 (LTS)</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit Ubuntu 14.04 (LTS)</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit Ubuntu 15.10</para>
-            </listitem>
-
-            <listitem>
-              <para>64-bit Ubuntu 16.04 (LTS)</para>
-            </listitem>
-          </itemizedlist></para>
+        <para><ulink
+        url="http://hpccsystems.com/permlink/requirements">http://hpccsystems.com/permlink/requirements</ulink></para>
       </sect2>
 
       <sect2 id="configuration-manager">

BIN=BIN
docs/images/ECLIDE_WuDetails.snag


BIN=BIN
docs/images/ECLWA04022.jpg


+ 7 - 2
ecl/hqlcpp/hqlwcpp.cpp

@@ -2149,8 +2149,13 @@ void HqlCppWriter::generateStmtLine(IHqlStmt * stmt)
     if (filename && line)
     {
         out.append("#line ");
-        generateExprCpp(line).append(" ");
-        generateExprCpp(filename);
+        generateExprCpp(line).append(" \"");
+        IValue *value = filename->queryValue();
+        assertex(value);
+        StringBuffer fname;
+        value->getStringValue(fname);
+        appendStringAsCPP(out, fname.length(), fname.str(), false).append("\"");
+        // NOTE - don't used generateExprCpp(filename), as that wil split the string at 120 chars
         newline();
     }
     else

+ 12 - 6
thorlcr/activities/loop/thloopslave.cpp

@@ -800,6 +800,14 @@ class CConditionalActivity : public CSlaveActivity
     IThorDataLink *selectedItdl = nullptr;
     IEngineRowStream *selectedInputStream = nullptr;
 
+    void stopUnselectedInputs()
+    {
+        ForEachItemIn(i, inputs)
+        {
+            if (i != branch)
+                stopInput(i);
+        }
+    }
 protected:
     unsigned branch = (unsigned)-1;
 
@@ -812,11 +820,7 @@ public:
     virtual void start() override
     {
         ActivityTimer s(totalCycles, timeActivities);
-        ForEachItemIn(i, inputs)
-        {
-            if (i != branch)
-                stopInput(i);
-        }
+        stopUnselectedInputs();
         if (queryInput(branch))
         {
             startInput(branch);
@@ -828,7 +832,9 @@ public:
     }
     virtual void stop() override
     {
-        if ((branch>0) && queryInput(branch)) // branch 0 stopped by PARENT::stop
+        if (!hasStarted())
+            stopUnselectedInputs(); // i.e. all
+        else if ((branch>0) && queryInput(branch)) // branch 0 stopped by PARENT::stop
             stopInput(branch);
         selectedInputStream = NULL;
         abortSoon = true;