1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
|
.ig >>
<STYLE TYPE="text/css">
<!--
A:link{text-decoration:none}
A:visited{text-decoration:none}
A:active{text-decoration:none}
OL,UL,P,BODY,TD,TR,TH,FORM { font-family: arial,helvetica,sans-serif;; font-size:small; color: #333333; }
H1 { font-size: x-large; font-family: arial,helvetica,sans-serif; }
H2 { font-size: large; font-family: arial,helvetica,sans-serif; }
H3 { font-size: medium; font-family: arial,helvetica,sans-serif; }
H4 { font-size: small; font-family: arial,helvetica,sans-serif; }
-->
</STYLE>
<title>ploticus: script syntax changes - version 2.00</title>
<body bgcolor=D0D0EE vlink=0000FF>
<br>
<br>
<center>
<table cellpadding=2 bgcolor=FFFFFF width=550><tr>
<td>
<table cellpadding=2 width=550><tr>
<td><br><h2>Script syntax changes - version 2.00</h2></td>
<td align=right>
<small>
<a href="../doc/welcome.html"><img src="../doc/ploticus.gif" border=0></a><br>
Version 2.33 Jun'06
<td></tr></table>
</td></tr>
<td>
<br>
<br>
.>>
.TH Script_syntax_changes_-_version_2.00 PL "02-JUN-2006 PL ploticus.sourceforge.net"
.SH NEW SCRIPT INTERPRETER
Ploticus release 2.00 debuts a new underlying script interpreter system,
with some consequent changes in legal script syntax.
These changes should be fairly obscure; when I tested on the collection of
gallery examples there were minor problems with 3 or 4 of the examples and these were easily fixed.
I appologize in advance for any disruption this may cause.
.LP
\fBChanges that may require maintenance to existing scripts:\fR
.IP \(bu
Variables no longer need to be \fB#declare\fRd.
\fB#declare\fR no longer does anything; if encountered
it will be silently ignored.
Scripts that depended on \fB#declare\fR to initialize a
variable should now use \fB#set\fR or \fB#setifnotgiven\fR instead.
.br
.br
.IP \(bu
\fB#setifnotgiven\fR should be used to set a default value for any
variable that may be passed in to the script. Scripts that use
\fB#declare soft\fR, \fB$exists()\fR, or \fB$notexists()\fR to
handle passed variables should be changed to use \fB#setifnotgiven\fR.
.br
.br
.IP \(bu
References to variables that have never been given a value
cause evaluation to be cancelled, leaving the variable name to appear
in result, and do not cause an error message to be issued.
.br
.br
.IP \(bu
Concatenation of constants and/or variables in \fB#set\fR statements
are now done differently. You used to be able to do this:
\fC#set A = /home/scg/data/@TESTRUN \fR
.br
Now it must be done this way:
\fC#set A = "/home/scg/data/" @TESTRUN\fR
.br
.br
.IP \(bu
Implicit concatentation of constants and/or variables in an \fB#if\fR statement
is longer supported. For instance, you used to be able to do this:
.br
\fC#if @FILENAME = /home/scg/data/@TESTRUN\fR
.br
Now it must be done this way:
.nf
\0#set F = "/home/scg/data/" @TESTRUN
\0#if @FILENAME = @F
\0...
.fi
.IP \(bu
The \fB$system()\fR function is no longer supported, since the new script interpreter has
.ig >>
<a href="shell.html">
.>>
\0#shell
.ig >>
</a>
.>>
for issuing shell commands and capturing the results, including multi-row results.
For example, this old code:
.nf
\0#set dir = $system(pwd)
.fi
can be replaced with the following:
.nf
\0#shell #processrows pwd
\0#call $shellrow( dir )
.fi
Spaces may be freely used in the #shell command. (this item added Mar 26 '02)
.br
.br
.IP \(bu
Resource utilization limits have been added as a safety feature
for automated situations. By default pl (and any other process it initiates)
are limited to 10 cpu seconds and 5MB of created disk space. When a process
exceeds a limit, a core dump occurs. These limits can be raised via
.ig >>
<a href="settings.html">
.>>
\0proc settings
.ig >>
</a>
.>>
or
.ig >>
<a href="config.html">
.>>
\0a config file.
.ig >>
</a>
.>>
Or, you can remove the safety limits altogether by making an adjustment in
the Makefile (see step 3) and then do make clean and then make.
.br
.br
.IP \(bu
The \fB$change()\fR function no longer supports the special symbol \fCspace\fR.
A space may be represented naturally, eg \fC$change( "_", " ", @FOO )\fR
.br
.br
.IP \(bu
The \fB$validate()\fR function is no longer supported.
Scripts should use $isnumber() to test numbers,
$datevalid() to test date values,
and $timevalid() to test time values.
.br
.br
.IP \(bu
Trailing comments may cause errors where they didn't before.
This line contains a trailing comment:
.nf
rectangle: 1 1 5 6.5 //xlo, ylo, xhi, yhi
.fi
The documentation has always stated that "any line beginning with a double slash (//)
is taken as a comment", however some of the examples may have used trailing
comments. When in doubt don't use them. \fI(this item added Oct 2 '01)\fR
.br
.br
.IP \(bu
\fB#clone\fR no longer accepts a filename argument.
Use \fB#include\fR and \fB#procdef\fR instead.
.ig >>
<br><br><br>
.>>
.LP
\fBChanges that should not affect existing scripts:\fR
.IP \(bu
\fB#if\fR statements support quoted operands,
useful for constants that have embedded white space.
Example: \fC#if @A = "hello world"\fR
.br
.br
.IP \(bu
Function constructs may now contain embedded spaces, and quoted arguments.
Exceptions are \fB$arith()\fR and \fB$arithl()\fR, which do not allow
embedded spaces within the arithmetic expression.
.br
.br
.IP \(bu
\fB#hideund\fR and \fB#showund\fR directives are no longer necessary,
and are silently ignored.
.ig >>
<br>
<br>
</td></tr>
<td align=right>
<a href="../doc/welcome.html">
<img src="../doc/ploticus.gif" border=0></a><br><small>data display engine <br>
<a href="../doc/Copyright.html">Copyright Steve Grubb</a>
<br>
<br>
<center>
<img src="../gallery/all.gif">
</center>
</td></tr>
</table>
<br>
<center>
Ploticus is hosted at http://ploticus.sourceforge.net <br>
<img src="http://sourceforge.net/sflogo.php?group_id=38453" width="88" height="31" border="0" alt="SourceForge Logo">
</center>
.>>
|