ruby-vpi 17.0.0 → 18.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/LICENSE +8 -6
  2. data/Rakefile +4 -4
  3. data/doc/common.css +6 -9
  4. data/doc/common.inc +3 -3
  5. data/doc/common.tpl +14 -6
  6. data/doc/history.html +152 -44
  7. data/doc/history.inc +55 -3
  8. data/doc/history.yaml +62 -2
  9. data/doc/intro.inc +20 -16
  10. data/doc/manual.doc +23 -9
  11. data/doc/manual.html +232 -200
  12. data/doc/memo.doc +7 -6
  13. data/doc/memo.html +28 -17
  14. data/doc/readme.doc +1 -1
  15. data/doc/readme.html +51 -35
  16. data/doc/rss.xml +96 -70
  17. data/ext/Rakefile +24 -11
  18. data/ext/swig_vpi.h +1 -1
  19. data/ext/swig_wrap.cin +17 -42
  20. data/lib/ruby-vpi/pli.tab +1 -0
  21. data/lib/ruby-vpi/runner.rb +34 -10
  22. data/lib/ruby-vpi/vpi.rb +483 -438
  23. data/ref/c/annotated.html +1 -1
  24. data/ref/c/common_8h.html +1 -1
  25. data/ref/c/files.html +1 -1
  26. data/ref/c/functions.html +1 -1
  27. data/ref/c/functions_vars.html +1 -1
  28. data/ref/c/globals.html +1 -1
  29. data/ref/c/globals_0x63.html +1 -1
  30. data/ref/c/globals_0x65.html +1 -1
  31. data/ref/c/globals_0x66.html +1 -1
  32. data/ref/c/globals_0x6d.html +1 -1
  33. data/ref/c/globals_0x70.html +1 -1
  34. data/ref/c/globals_0x72.html +1 -1
  35. data/ref/c/globals_0x73.html +1 -1
  36. data/ref/c/globals_0x74.html +1 -1
  37. data/ref/c/globals_0x76.html +1 -1
  38. data/ref/c/globals_0x78.html +1 -1
  39. data/ref/c/globals_defs.html +1 -1
  40. data/ref/c/globals_defs_0x65.html +1 -1
  41. data/ref/c/globals_defs_0x70.html +1 -1
  42. data/ref/c/globals_defs_0x76.html +1 -1
  43. data/ref/c/globals_defs_0x78.html +1 -1
  44. data/ref/c/globals_enum.html +1 -1
  45. data/ref/c/globals_eval.html +1 -1
  46. data/ref/c/globals_func.html +1 -1
  47. data/ref/c/globals_type.html +1 -1
  48. data/ref/c/globals_vars.html +1 -1
  49. data/ref/c/index.html +1 -1
  50. data/ref/c/main_8c.html +1 -1
  51. data/ref/c/main_8h.html +1 -1
  52. data/ref/c/relay_8c.html +1 -1
  53. data/ref/c/relay_8h.html +1 -1
  54. data/ref/c/structt__cb__data.html +1 -1
  55. data/ref/c/structt__vpi__delay.html +1 -1
  56. data/ref/c/structt__vpi__error__info.html +1 -1
  57. data/ref/c/structt__vpi__strengthval.html +1 -1
  58. data/ref/c/structt__vpi__systf__data.html +1 -1
  59. data/ref/c/structt__vpi__time.html +1 -1
  60. data/ref/c/structt__vpi__value.html +1 -1
  61. data/ref/c/structt__vpi__vecval.html +1 -1
  62. data/ref/c/structt__vpi__vlog__info.html +1 -1
  63. data/ref/c/verilog_8h.html +1 -1
  64. data/ref/c/vlog_8c.html +1 -1
  65. data/ref/c/vlog_8h.html +1 -1
  66. data/ref/c/vpi__user_8h.html +1 -1
  67. data/ref/ruby/classes/RDoc.html +5 -5
  68. data/ref/ruby/classes/RDoc.src/{M000058.html → M000061.html} +0 -0
  69. data/ref/ruby/classes/String.html +24 -24
  70. data/ref/ruby/classes/String.src/M000022.html +23 -5
  71. data/ref/ruby/classes/String.src/M000023.html +28 -5
  72. data/ref/ruby/classes/String.src/M000024.html +5 -23
  73. data/ref/ruby/classes/String.src/M000025.html +5 -28
  74. data/ref/ruby/classes/Vpi/Handle.html +94 -49
  75. data/ref/ruby/classes/Vpi/Handle.src/M000035.html +4 -4
  76. data/ref/ruby/classes/Vpi/Handle.src/M000036.html +4 -4
  77. data/ref/ruby/classes/Vpi/Handle.src/M000037.html +4 -4
  78. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +4 -4
  79. data/ref/ruby/classes/Vpi/Handle.src/M000039.html +4 -4
  80. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +4 -4
  81. data/ref/ruby/classes/Vpi/Handle.src/M000041.html +4 -4
  82. data/ref/ruby/classes/Vpi/Handle.src/M000042.html +4 -4
  83. data/ref/ruby/classes/Vpi/Handle.src/M000043.html +7 -7
  84. data/ref/ruby/classes/Vpi/Handle.src/M000044.html +7 -7
  85. data/ref/ruby/classes/Vpi/Handle.src/M000045.html +8 -8
  86. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +36 -30
  87. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +72 -67
  88. data/ref/ruby/classes/Vpi/Handle.src/M000048.html +6 -17
  89. data/ref/ruby/classes/Vpi/Handle.src/M000049.html +19 -0
  90. data/ref/ruby/classes/Vpi/Handle.src/M000050.html +5 -5
  91. data/ref/ruby/classes/Vpi/Handle.src/M000051.html +16 -10
  92. data/ref/ruby/classes/Vpi/Handle.src/M000053.html +5 -18
  93. data/ref/ruby/classes/Vpi/Handle.src/M000054.html +11 -76
  94. data/ref/ruby/classes/Vpi/Handle.src/M000056.html +31 -0
  95. data/ref/ruby/classes/Vpi/Handle.src/M000057.html +40 -0
  96. data/ref/ruby/classes/Vpi/S_vpi_time.html +16 -16
  97. data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000055.html → M000058.html} +4 -4
  98. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000059.html +19 -0
  99. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000032.html +4 -4
  100. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html +4 -4
  101. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +4 -4
  102. data/ref/ruby/classes/Vpi.html +0 -7
  103. data/ref/ruby/classes/Vpi.src/M000029.html +14 -14
  104. data/ref/ruby/classes/Vpi.src/M000030.html +25 -24
  105. data/ref/ruby/classes/Vpi.src/M000031.html +6 -6
  106. data/ref/ruby/created.rid +1 -1
  107. data/ref/ruby/files/bin/convert_rb.html +1 -1
  108. data/ref/ruby/files/bin/generate_rb.html +1 -1
  109. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  110. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
  111. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  112. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  113. data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
  114. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  115. data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +1 -1
  116. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  117. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
  118. data/ref/ruby/files/lib/ruby-vpi/util_rb.html +1 -1
  119. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  120. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +8 -1
  121. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  122. data/ref/ruby/fr_method_index.html +19 -16
  123. data/samp/register_file/register_file.v +1 -1
  124. data/samp/register_file/register_file_spec.rb +9 -5
  125. metadata +42 -38
  126. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000056.html +0 -19
data/LICENSE CHANGED
@@ -1,4 +1,5 @@
1
- Copyright 2006 Suraj N. Kurapati <snk@gna.org>
1
+ Copyright 2006 Suraj N. Kurapati <SNK at GNA dot ORG>
2
+ Copyright 1999 Kazuhiro HIWADA <HIWADA at KUEE dot KYOTO-U dot AC dot JP>
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
5
  this software and associated documentation files (the "Software"), to deal in
@@ -7,12 +8,13 @@ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
8
  the Software, and to permit persons to whom the Software is furnished to do so,
8
9
  subject to the following conditions:
9
10
 
10
- 1. All modified and unmodified copies and substantial portions of the Software
11
- (the "Derivatives") and their corresponding machine-readable source code (the
12
- "Code") must include the above copyright notice and this permission notice.
11
+ 1. All copies and substantial portions of the Software, whether modified or
12
+ unmodified, (the "Derivatives") and their corresponding machine-readable
13
+ source code (the "Code") must include the above copyright notice and this
14
+ permission notice.
13
15
 
14
- 2. Upon distribution, the Derivatives must be accompanied either by the Code or,
15
- if the Code is obtainable for no more than the cost of distribution plus a
16
+ 2. The Derivatives, upon distribution, must be accompanied by the Code or, if
17
+ the Code is obtainable for no more than the cost of distribution plus a
16
18
  nominal fee, by information on how to obtain the Code.
17
19
 
18
20
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
data/Rakefile CHANGED
@@ -81,14 +81,14 @@ task :default => :build
81
81
  desc "Builds object files for #{sim.name}."
82
82
  task taskName => ['obj', 'ext'] do
83
83
  src = PROJECT_ID + '.' + Config::CONFIG['DLEXT']
84
- dst = File.expand_path(File.join('obj', id.to_s))
84
+ dst = File.expand_path(File.join('obj', "#{id}.so"))
85
85
 
86
86
  unless File.exist? dst
87
87
  cd 'ext' do
88
- ENV['CFLAGS'] = "#{ccFlags} #{sim.compiler_args}"
89
- ENV['LDFLAGS'] = "#{ldFlags} #{sim.linker_args}"
88
+ ENV['CFLAGS'] = [ccFlags, sim.compiler_args].compact.join(' ')
89
+ ENV['LDFLAGS'] = [ldFlags, sim.linker_args].compact.join(' ')
90
90
 
91
- sh 'rake'
91
+ sh "rake SIMULATOR=#{id}"
92
92
  mv src, dst
93
93
  sh 'rake clean'
94
94
  end
data/doc/common.css CHANGED
@@ -15,10 +15,6 @@ body {
15
15
  padding: 2em;
16
16
  }
17
17
 
18
- #body > h1 {
19
- margin-top: 0;
20
- }
21
-
22
18
 
23
19
  /* headings */
24
20
 
@@ -35,23 +31,24 @@ h1, h2, h3, h4, h5, h6 {
35
31
 
36
32
  /* table of contents */
37
33
 
38
- #toc-links {
34
+ #toc-links,
35
+ #site-links {
39
36
  text-align: center;
40
37
  border-bottom: thick solid salmon;
41
38
  background-color: white;
42
39
  padding: 1em;
43
40
  }
44
41
 
42
+ #toc-links {
43
+ background-color: ivory;
44
+ }
45
+
45
46
  #toc {
46
47
  border-top: thick solid salmon;
47
48
  background-color: white;
48
49
  padding: 1em;
49
50
  }
50
51
 
51
- #toc li {
52
- margin-left: -15px;
53
- }
54
-
55
52
 
56
53
  /* latex */
57
54
 
data/doc/common.inc CHANGED
@@ -7,7 +7,7 @@
7
7
  downloadURL = 'http://rubyforge.org/frs/?group_id=1339'
8
8
  forumURL = 'http://rubyforge.org/forum/?group_id=1339'
9
9
  trackerURL = 'http://rubyforge.org/tracker/?group_id=1339'
10
- portalURL = 'http://rubyforge.org/projects/ruby-vpi'
11
- codeURL = 'http://ruby-vpi.rubyforge.org/src/ruby-vpi'
12
- projectURL = 'http://ruby-vpi.rubyforge.org'
10
+ portalURL = 'http://rubyforge.org/projects/ruby-vpi/'
11
+ codeURL = 'http://ruby-vpi.rubyforge.org/src/ruby-vpi/'
12
+ projectURL = 'http://ruby-vpi.rubyforge.org/'
13
13
  %>
data/doc/common.tpl CHANGED
@@ -33,19 +33,27 @@
33
33
  <title><%= page_title %></title>
34
34
  </head>
35
35
  <body>
36
+ <div id="site-links">
37
+ <a href="readme.html">Home</a>
38
+ <%
39
+ Dir['*.doc'].each do |src|
40
+ name, ext = src.split('.', 2)
41
+ next if name == 'readme'
42
+ %>
43
+ &middot; <a href="<%= name %>.html"><%= name.capitalize %></a>
44
+ <% end %>
45
+ <hr style="display: none"/>
46
+ </div>
47
+
36
48
  <% if insert_toc %>
37
49
  <div id="toc-links">
38
- <%
50
+ <%=
39
51
  links = listings.map do |x|
40
52
  %{<a href="##{x.anchor}">#{x.name}</a>}
41
53
  end
42
54
  links.unshift %{<a href="#toc:contents">Contents</a>}
55
+ links.join ' &middot; '
43
56
  %>
44
- <% links.each do |link| %>
45
- <%= link %> &middot;
46
- <% end %>
47
-
48
- <a href="readme.html" style="color: green; font-size: larger;">Home page</a>
49
57
  </div>
50
58
  <% end %>
51
59
 
data/doc/history.html CHANGED
@@ -8,10 +8,16 @@
8
8
  <title>Release history</title>
9
9
  </head>
10
10
  <body>
11
+ <div id="site-links">
12
+ <a href="readme.html">Home</a>
13
+ &middot; <a href="manual.html">Manual</a>
14
+ &middot; <a href="memo.html">Memo</a>
15
+ &middot; <a href="history.html">History</a>
16
+ <hr style="display: none"/>
17
+ </div>
18
+
11
19
  <div id="toc-links">
12
- <a href="#toc:contents">Contents</a> &middot;
13
-
14
- <a href="readme.html" style="color: green; font-size: larger;">Home page</a>
20
+ <a href="#toc:contents">Contents</a>
15
21
  </div>
16
22
 
17
23
  <div id="body">
@@ -48,11 +54,113 @@
48
54
  </div>
49
55
 
50
56
 
57
+ <hr style="display: none"/>
58
+
59
+ <div id="a18.0.0" class="section">
60
+ <h1 class="title">
61
+ <a href="#a-607182658">2</a>
62
+
63
+ &nbsp;
64
+
65
+ Version 18.0.0 (2007-07-31)
66
+ </h1>
67
+
68
+ <p>This release restores support for Synopsys VCS and Cadence NC-Sim, improves portability and performance, and enhances the VPI abstraction layer.</p>
69
+
70
+
71
+ <h2>Thanks</h2>
72
+
73
+
74
+ <ul>
75
+ <li>Calvin Wong discovered <a href="http://rubyforge.org/forum/message.php?msg_id=25691">how to bypass the following error</a> emitted by Synopsys VCS when loading the Ruby-VPI shared object file.
76
+
77
+ <pre>
78
+ Could not open library specified in -load option obj/vcs
79
+ obj/vcs: undefined symbol: vpi_put_data
80
+ </pre></li>
81
+ </ul>
82
+
83
+
84
+ <h2>Caution</h2>
85
+
86
+
87
+ <ul>
88
+ <li><a href="http://www.swig.org/">SWIG</a> is now required in order to compile and install Ruby-VPI.</li>
89
+ </ul>
90
+
91
+
92
+ <ul>
93
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> no longer checks whether the value written matches the value read back after writing because that only works when there is no VPI delay associated with the write.</li>
94
+ </ul>
95
+
96
+
97
+ <ul>
98
+ <li>When <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> is used to write a value to a wire (VpiNet), it now <em>forces</em> the value. This is done to ensure portability:
99
+
100
+ <p>Synopsys VCS and Cadence NC-Sim forget the value written to a wire during the next simulation time step, whereas Mentor Modelsim and GPL Cver remember the value (thereby treating wires as registers).</p>
101
+
102
+
103
+ <p>Note that you have to release a forced value (using <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.release_value</code>) on a wire after writing to the wire if you want the design under test have the ability to update the value of the wire later on:</p>
104
+
105
+
106
+ <pre class="code">
107
+ your_wire.intVal = <span style="color:#00D; font-weight:bold">15</span>
108
+ your_wire.release_value
109
+ advance_time <span style="color:#888"># let the Verilog DUT modify your_wire</span>
110
+ </pre>
111
+
112
+
113
+ <p>In addition, you can check if a wire has a forced value using the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.value_forced?</code> method.</p></li>
114
+ </ul>
115
+
116
+
117
+ <ul>
118
+ <li>If the format is not specified, <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.get_value</code> now assumes that you want to read the value in VpiIntVal format (because this is the most common case).</li>
119
+ </ul>
120
+
121
+
122
+ <ul>
123
+ <li>The definition of &#8220;Derivatives&#8221; has been reworded for clarity in the <a href="readme.html#intro.license">project license</a>.</li>
124
+ </ul>
125
+
126
+
127
+ <h2>Repairs</h2>
128
+
129
+
130
+ <ul>
131
+ <li>Synopsys VCS and Cadence NC-Sim simulators now correctly load Ruby-VPI. Also, the 64-bit versions of these simulators are now supported.</li>
132
+ </ul>
133
+
134
+
135
+ <h2>Improvements</h2>
136
+
137
+
138
+ <ul>
139
+ <li>Added &#8220;force_value&#8221;, &#8220;release_value&#8221;, and &#8220;value_forced?&#8221; methods to the <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span></code> class.</li>
140
+ </ul>
141
+
142
+
143
+ <ul>
144
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.put_value</code> now tries to automatically detect the format of the value to be written. As a result, you can now write <code class="code">your_handle.put_value <span style="color:#00D; font-weight:bold">35</span></code> in lieu of writing <code class="code">your_handle.intVal = <span style="color:#00D; font-weight:bold">35</span></code>.</li>
145
+ </ul>
146
+
147
+
148
+ <ul>
149
+ <li><code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::<span style="color:#036; font-weight:bold">Handle</span>.inspect</code> now shows the hexStrVal of the handle (because it is a common case to want to see a handle&#8217;s logic value along with its other information).</li>
150
+ </ul>
151
+
152
+
153
+ <ul>
154
+ <li>Added method caching (memoizing) for VPI property accesses on handles.</li>
155
+ </ul>
156
+
157
+ </div>
158
+
51
159
  <hr style="display: none"/>
52
160
 
53
161
  <div id="a17.0.0" class="section">
54
162
  <h1 class="title">
55
- <a href="#a-607354788">2</a>
163
+ <a href="#a-607186018">3</a>
56
164
 
57
165
  &nbsp;
58
166
 
@@ -194,7 +302,7 @@
194
302
 
195
303
  <div id="a16.0.1" class="section">
196
304
  <h1 class="title">
197
- <a href="#a-607357728">3</a>
305
+ <a href="#a-607188328">4</a>
198
306
 
199
307
  &nbsp;
200
308
 
@@ -225,14 +333,14 @@
225
333
 
226
334
  <div id="a16.0.0" class="section">
227
335
  <h1 class="title">
228
- <a href="#a-607363398">4</a>
336
+ <a href="#a-607191278">5</a>
229
337
 
230
338
  &nbsp;
231
339
 
232
340
  Version 16.0.0 (2007-05-02)
233
341
  </h1>
234
342
 
235
- This release adds support for the <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a> simulator, improves the project website and documentation, simplifies interaction with VPI, and comes with a more permissive license.
343
+ This release adds support for the <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a> simulator, improves the project website and documentation, simplifies interaction with VPI, and comes with a more permissive license.
236
344
 
237
345
 
238
346
  <h2>Caution</h2>
@@ -262,7 +370,7 @@
262
370
 
263
371
 
264
372
  <ul>
265
- <li>The <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim / NC-Verilog</a> (ncsim) simulator is now supported.</li>
373
+ <li>The <a href="http://www.cadence.com/products/functional_ver/nc-verilog/">Cadence NC-Sim</a> (ncsim) simulator is now supported.</li>
266
374
  </ul>
267
375
 
268
376
 
@@ -301,7 +409,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
301
409
 
302
410
  <div id="a15.0.2" class="section">
303
411
  <h1 class="title">
304
- <a href="#a-607366358">5</a>
412
+ <a href="#a-607193568">6</a>
305
413
 
306
414
  &nbsp;
307
415
 
@@ -329,7 +437,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
329
437
 
330
438
  <div id="a15.0.1" class="section">
331
439
  <h1 class="title">
332
- <a href="#a-607369408">6</a>
440
+ <a href="#a-607195998">7</a>
333
441
 
334
442
  &nbsp;
335
443
 
@@ -370,7 +478,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
370
478
 
371
479
  <div id="a15.0.0" class="section">
372
480
  <h1 class="title">
373
- <a href="#a-607372878">7</a>
481
+ <a href="#a-607198768">8</a>
374
482
 
375
483
  &nbsp;
376
484
 
@@ -442,7 +550,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
442
550
 
443
551
  <div id="a14.0.0" class="section">
444
552
  <h1 class="title">
445
- <a href="#a-607376468">8</a>
553
+ <a href="#a-607201618">9</a>
446
554
 
447
555
  &nbsp;
448
556
 
@@ -524,7 +632,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
524
632
 
525
633
  <div id="a13.0.0" class="section">
526
634
  <h1 class="title">
527
- <a href="#a-607379488">9</a>
635
+ <a href="#a-607204228">10</a>
528
636
 
529
637
  &nbsp;
530
638
 
@@ -583,7 +691,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
583
691
 
584
692
  <div id="a12.1.0" class="section">
585
693
  <h1 class="title">
586
- <a href="#a-607384938">10</a>
694
+ <a href="#a-607206878">11</a>
587
695
 
588
696
  &nbsp;
589
697
 
@@ -650,7 +758,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
650
758
 
651
759
  <div id="a12.0.2" class="section">
652
760
  <h1 class="title">
653
- <a href="#a-607387958">11</a>
761
+ <a href="#a-607209028">12</a>
654
762
 
655
763
  &nbsp;
656
764
 
@@ -665,7 +773,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
665
773
 
666
774
  <div id="a12.0.1" class="section">
667
775
  <h1 class="title">
668
- <a href="#a-607390818">12</a>
776
+ <a href="#a-607211418">13</a>
669
777
 
670
778
  &nbsp;
671
779
 
@@ -697,7 +805,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
697
805
 
698
806
  <div id="a12.0.0" class="section">
699
807
  <h1 class="title">
700
- <a href="#a-607394448">13</a>
808
+ <a href="#a-607214448">14</a>
701
809
 
702
810
  &nbsp;
703
811
 
@@ -804,7 +912,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
804
912
 
805
913
  <div id="a11.1.1" class="section">
806
914
  <h1 class="title">
807
- <a href="#a-607397488">14</a>
915
+ <a href="#a-607216938">15</a>
808
916
 
809
917
  &nbsp;
810
918
 
@@ -848,7 +956,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
848
956
 
849
957
  <div id="a11.1.0" class="section">
850
958
  <h1 class="title">
851
- <a href="#a-607400778">15</a>
959
+ <a href="#a-607219728">16</a>
852
960
 
853
961
  &nbsp;
854
962
 
@@ -930,7 +1038,7 @@ puts <span style="background-color:#fff0f0"><span style="color:#710">&quot;</spa
930
1038
 
931
1039
  <div id="a11.0.0" class="section">
932
1040
  <h1 class="title">
933
- <a href="#a-607403528">16</a>
1041
+ <a href="#a-607222378">17</a>
934
1042
 
935
1043
  &nbsp;
936
1044
 
@@ -990,7 +1098,7 @@ do_stuff
990
1098
 
991
1099
  <div id="a10.0.0" class="section">
992
1100
  <h1 class="title">
993
- <a href="#a-607406538">17</a>
1101
+ <a href="#a-607225288">18</a>
994
1102
 
995
1103
  &nbsp;
996
1104
 
@@ -1078,7 +1186,7 @@ do_stuff
1078
1186
 
1079
1187
  <div id="a9.0.0" class="section">
1080
1188
  <h1 class="title">
1081
- <a href="#a-607409438">18</a>
1189
+ <a href="#a-607228078">19</a>
1082
1190
 
1083
1191
  &nbsp;
1084
1192
 
@@ -1152,7 +1260,7 @@ do_stuff
1152
1260
 
1153
1261
  <div id="a8.2.0" class="section">
1154
1262
  <h1 class="title">
1155
- <a href="#a-607412028">19</a>
1263
+ <a href="#a-607230568">20</a>
1156
1264
 
1157
1265
  &nbsp;
1158
1266
 
@@ -1193,7 +1301,7 @@ do_stuff
1193
1301
 
1194
1302
  <div id="a8.1.0" class="section">
1195
1303
  <h1 class="title">
1196
- <a href="#a-607414588">20</a>
1304
+ <a href="#a-607232918">21</a>
1197
1305
 
1198
1306
  &nbsp;
1199
1307
 
@@ -1224,7 +1332,7 @@ do_stuff
1224
1332
 
1225
1333
  <div id="a8.0.0" class="section">
1226
1334
  <h1 class="title">
1227
- <a href="#a-607417278">21</a>
1335
+ <a href="#a-607235508">22</a>
1228
1336
 
1229
1337
  &nbsp;
1230
1338
 
@@ -1286,7 +1394,7 @@ do_stuff
1286
1394
 
1287
1395
  <div id="a7.3.0" class="section">
1288
1396
  <h1 class="title">
1289
- <a href="#a-607419868">22</a>
1397
+ <a href="#a-607237998">23</a>
1290
1398
 
1291
1399
  &nbsp;
1292
1400
 
@@ -1334,7 +1442,7 @@ do_stuff
1334
1442
 
1335
1443
  <div id="a7.2.0" class="section">
1336
1444
  <h1 class="title">
1337
- <a href="#a-607422378">23</a>
1445
+ <a href="#a-607240408">24</a>
1338
1446
 
1339
1447
  &nbsp;
1340
1448
 
@@ -1373,7 +1481,7 @@ do_stuff
1373
1481
 
1374
1482
  <div id="a7.1.0" class="section">
1375
1483
  <h1 class="title">
1376
- <a href="#a-607424888">24</a>
1484
+ <a href="#a-607242818">25</a>
1377
1485
 
1378
1486
  &nbsp;
1379
1487
 
@@ -1416,7 +1524,7 @@ do_stuff
1416
1524
 
1417
1525
  <div id="a7.0.0" class="section">
1418
1526
  <h1 class="title">
1419
- <a href="#a-607427678">25</a>
1527
+ <a href="#a-607245508">26</a>
1420
1528
 
1421
1529
  &nbsp;
1422
1530
 
@@ -1489,7 +1597,7 @@ do_stuff
1489
1597
 
1490
1598
  <div id="a6.3.0" class="section">
1491
1599
  <h1 class="title">
1492
- <a href="#a-607430648">26</a>
1600
+ <a href="#a-607248278">27</a>
1493
1601
 
1494
1602
  &nbsp;
1495
1603
 
@@ -1610,7 +1718,7 @@ do_stuff
1610
1718
 
1611
1719
  <div id="a6.2.0" class="section">
1612
1720
  <h1 class="title">
1613
- <a href="#a-607433258">27</a>
1721
+ <a href="#a-607250788">28</a>
1614
1722
 
1615
1723
  &nbsp;
1616
1724
 
@@ -1661,7 +1769,7 @@ do_stuff
1661
1769
 
1662
1770
  <div id="a6.1.0" class="section">
1663
1771
  <h1 class="title">
1664
- <a href="#a-607435688">28</a>
1772
+ <a href="#a-607253118">29</a>
1665
1773
 
1666
1774
  &nbsp;
1667
1775
 
@@ -1693,7 +1801,7 @@ do_stuff
1693
1801
 
1694
1802
  <div id="a6.0.0" class="section">
1695
1803
  <h1 class="title">
1696
- <a href="#a-607438338">29</a>
1804
+ <a href="#a-607255668">30</a>
1697
1805
 
1698
1806
  &nbsp;
1699
1807
 
@@ -1746,7 +1854,7 @@ do_stuff
1746
1854
 
1747
1855
  <div id="a5.1.1" class="section">
1748
1856
  <h1 class="title">
1749
- <a href="#a-607440828">30</a>
1857
+ <a href="#a-607258058">31</a>
1750
1858
 
1751
1859
  &nbsp;
1752
1860
 
@@ -1782,7 +1890,7 @@ do_stuff
1782
1890
 
1783
1891
  <div id="a5.1.0" class="section">
1784
1892
  <h1 class="title">
1785
- <a href="#a-607443688">31</a>
1893
+ <a href="#a-607260808">32</a>
1786
1894
 
1787
1895
  &nbsp;
1788
1896
 
@@ -1857,7 +1965,7 @@ do_stuff
1857
1965
 
1858
1966
  <div id="a5.0.0" class="section">
1859
1967
  <h1 class="title">
1860
- <a href="#a-607446538">32</a>
1968
+ <a href="#a-607263458">33</a>
1861
1969
 
1862
1970
  &nbsp;
1863
1971
 
@@ -1920,7 +2028,7 @@ do_stuff
1920
2028
 
1921
2029
  <div id="a4.0.0" class="section">
1922
2030
  <h1 class="title">
1923
- <a href="#a-607449268">33</a>
2031
+ <a href="#a-607266088">34</a>
1924
2032
 
1925
2033
  &nbsp;
1926
2034
 
@@ -1981,7 +2089,7 @@ do_stuff
1981
2089
 
1982
2090
  <div id="a3.2.0" class="section">
1983
2091
  <h1 class="title">
1984
- <a href="#a-607451888">34</a>
2092
+ <a href="#a-607268598">35</a>
1985
2093
 
1986
2094
  &nbsp;
1987
2095
 
@@ -2031,7 +2139,7 @@ do_stuff
2031
2139
 
2032
2140
  <div id="a3.1.0" class="section">
2033
2141
  <h1 class="title">
2034
- <a href="#a-607454578">35</a>
2142
+ <a href="#a-607271188">36</a>
2035
2143
 
2036
2144
  &nbsp;
2037
2145
 
@@ -2091,7 +2199,7 @@ do_stuff
2091
2199
 
2092
2200
  <div id="a3.0.0" class="section">
2093
2201
  <h1 class="title">
2094
- <a href="#a-607457438">36</a>
2202
+ <a href="#a-607273938">37</a>
2095
2203
 
2096
2204
  &nbsp;
2097
2205
 
@@ -2164,7 +2272,7 @@ do_stuff
2164
2272
 
2165
2273
  <div id="a2.0.0" class="section">
2166
2274
  <h1 class="title">
2167
- <a href="#a-607460198">37</a>
2275
+ <a href="#a-607276588">38</a>
2168
2276
 
2169
2277
  &nbsp;
2170
2278
 
@@ -2223,7 +2331,7 @@ do_stuff
2223
2331
 
2224
2332
  <div id="a1.0.0" class="section">
2225
2333
  <h1 class="title">
2226
- <a href="#a-607463278">38</a>
2334
+ <a href="#a-607279478">39</a>
2227
2335
 
2228
2336
  &nbsp;
2229
2337
 
@@ -2307,7 +2415,7 @@ do_stuff
2307
2415
 
2308
2416
  <div id="a0.0.0" class="section">
2309
2417
  <h1 class="title">
2310
- <a href="#a-607465668">39</a>
2418
+ <a href="#a-607281768">40</a>
2311
2419
 
2312
2420
  &nbsp;
2313
2421
 
@@ -2335,7 +2443,7 @@ do_stuff
2335
2443
  <hr style="display: none"/>
2336
2444
  <div id="toc">
2337
2445
  <h1 id="toc:contents">Contents</h1>
2338
- <ul><li><span class="hide">1 </span><a id="a-607350668" href="#Release_history">Release history</a><ul><li><span class="hide">1.1 </span><a id="a-607346028" href="#Version_numbering_system">Version numbering system</a></li></ul></li><li><span class="hide">2 </span><a id="a-607354788" href="#a17.0.0">Version 17.0.0 (2007-07-22)</a></li><li><span class="hide">3 </span><a id="a-607357728" href="#a16.0.1">Version 16.0.1 (2007-05-27)</a></li><li><span class="hide">4 </span><a id="a-607363398" href="#a16.0.0">Version 16.0.0 (2007-05-02)</a></li><li><span class="hide">5 </span><a id="a-607366358" href="#a15.0.2">Version 15.0.2 (2007-01-22)</a></li><li><span class="hide">6 </span><a id="a-607369408" href="#a15.0.1">Version 15.0.1 (2007-01-15)</a></li><li><span class="hide">7 </span><a id="a-607372878" href="#a15.0.0">Version 15.0.0 (2007-01-13)</a></li><li><span class="hide">8 </span><a id="a-607376468" href="#a14.0.0">Version 14.0.0 (2006-12-30)</a></li><li><span class="hide">9 </span><a id="a-607379488" href="#a13.0.0">Version 13.0.0 (2006-12-27)</a></li><li><span class="hide">10 </span><a id="a-607384938" href="#a12.1.0">Version 12.1.0 (2006-12-22)</a></li><li><span class="hide">11 </span><a id="a-607387958" href="#a12.0.2">Version 12.0.2 (2006-12-18)</a></li><li><span class="hide">12 </span><a id="a-607390818" href="#a12.0.1">Version 12.0.1 (2006-12-18)</a></li><li><span class="hide">13 </span><a id="a-607394448" href="#a12.0.0">Version 12.0.0 (2006-12-07)</a></li><li><span class="hide">14 </span><a id="a-607397488" href="#a11.1.1">Version 11.1.1 (2006-11-15)</a></li><li><span class="hide">15 </span><a id="a-607400778" href="#a11.1.0">Version 11.1.0 (2006-11-08)</a></li><li><span class="hide">16 </span><a id="a-607403528" href="#a11.0.0">Version 11.0.0 (2006-11-05)</a></li><li><span class="hide">17 </span><a id="a-607406538" href="#a10.0.0">Version 10.0.0 (2006-11-05)</a></li><li><span class="hide">18 </span><a id="a-607409438" href="#a9.0.0">Version 9.0.0 (2006-10-28)</a></li><li><span class="hide">19 </span><a id="a-607412028" href="#a8.2.0">Version 8.2.0 (2006-10-24)</a></li><li><span class="hide">20 </span><a id="a-607414588" href="#a8.1.0">Version 8.1.0 (2006-10-21)</a></li><li><span class="hide">21 </span><a id="a-607417278" href="#a8.0.0">Version 8.0.0 (2006-10-13)</a></li><li><span class="hide">22 </span><a id="a-607419868" href="#a7.3.0">Version 7.3.0 (2006-09-30)</a></li><li><span class="hide">23 </span><a id="a-607422378" href="#a7.2.0">Version 7.2.0 (2006-09-15)</a></li><li><span class="hide">24 </span><a id="a-607424888" href="#a7.1.0">Version 7.1.0 (2006-08-29)</a></li><li><span class="hide">25 </span><a id="a-607427678" href="#a7.0.0">Version 7.0.0 (2006-08-29)</a></li><li><span class="hide">26 </span><a id="a-607430648" href="#a6.3.0">Version 6.3.0 (2006-08-27)</a></li><li><span class="hide">27 </span><a id="a-607433258" href="#a6.2.0">Version 6.2.0 (2006-08-26)</a></li><li><span class="hide">28 </span><a id="a-607435688" href="#a6.1.0">Version 6.1.0 (2006-08-09)</a></li><li><span class="hide">29 </span><a id="a-607438338" href="#a6.0.0">Version 6.0.0 (2006-08-07)</a></li><li><span class="hide">30 </span><a id="a-607440828" href="#a5.1.1">Version 5.1.1 (2006-08-04)</a></li><li><span class="hide">31 </span><a id="a-607443688" href="#a5.1.0">Version 5.1.0 (2006-07-29)</a></li><li><span class="hide">32 </span><a id="a-607446538" href="#a5.0.0">Version 5.0.0 (2006-07-22)</a></li><li><span class="hide">33 </span><a id="a-607449268" href="#a4.0.0">Version 4.0.0 (2006-05-25)</a></li><li><span class="hide">34 </span><a id="a-607451888" href="#a3.2.0">Version 3.2.0 (2006-05-13)</a></li><li><span class="hide">35 </span><a id="a-607454578" href="#a3.1.0">Version 3.1.0 (2006-04-28)</a></li><li><span class="hide">36 </span><a id="a-607457438" href="#a3.0.0">Version 3.0.0 (2006-04-23)</a></li><li><span class="hide">37 </span><a id="a-607460198" href="#a2.0.0">Version 2.0.0 (2006-04-17)</a></li><li><span class="hide">38 </span><a id="a-607463278" href="#a1.0.0">Version 1.0.0 (2006-02-26)</a></li><li><span class="hide">39 </span><a id="a-607465668" href="#a0.0.0">Version 0.0.0 (1999-10-31)</a></li></ul>
2446
+ <ul><li><span class="hide">1 </span><a id="a-607179468" href="#Release_history">Release history</a><ul><li><span class="hide">1.1 </span><a id="a-607176568" href="#Version_numbering_system">Version numbering system</a></li></ul></li><li><span class="hide">2 </span><a id="a-607182658" href="#a18.0.0">Version 18.0.0 (2007-07-31)</a></li><li><span class="hide">3 </span><a id="a-607186018" href="#a17.0.0">Version 17.0.0 (2007-07-22)</a></li><li><span class="hide">4 </span><a id="a-607188328" href="#a16.0.1">Version 16.0.1 (2007-05-27)</a></li><li><span class="hide">5 </span><a id="a-607191278" href="#a16.0.0">Version 16.0.0 (2007-05-02)</a></li><li><span class="hide">6 </span><a id="a-607193568" href="#a15.0.2">Version 15.0.2 (2007-01-22)</a></li><li><span class="hide">7 </span><a id="a-607195998" href="#a15.0.1">Version 15.0.1 (2007-01-15)</a></li><li><span class="hide">8 </span><a id="a-607198768" href="#a15.0.0">Version 15.0.0 (2007-01-13)</a></li><li><span class="hide">9 </span><a id="a-607201618" href="#a14.0.0">Version 14.0.0 (2006-12-30)</a></li><li><span class="hide">10 </span><a id="a-607204228" href="#a13.0.0">Version 13.0.0 (2006-12-27)</a></li><li><span class="hide">11 </span><a id="a-607206878" href="#a12.1.0">Version 12.1.0 (2006-12-22)</a></li><li><span class="hide">12 </span><a id="a-607209028" href="#a12.0.2">Version 12.0.2 (2006-12-18)</a></li><li><span class="hide">13 </span><a id="a-607211418" href="#a12.0.1">Version 12.0.1 (2006-12-18)</a></li><li><span class="hide">14 </span><a id="a-607214448" href="#a12.0.0">Version 12.0.0 (2006-12-07)</a></li><li><span class="hide">15 </span><a id="a-607216938" href="#a11.1.1">Version 11.1.1 (2006-11-15)</a></li><li><span class="hide">16 </span><a id="a-607219728" href="#a11.1.0">Version 11.1.0 (2006-11-08)</a></li><li><span class="hide">17 </span><a id="a-607222378" href="#a11.0.0">Version 11.0.0 (2006-11-05)</a></li><li><span class="hide">18 </span><a id="a-607225288" href="#a10.0.0">Version 10.0.0 (2006-11-05)</a></li><li><span class="hide">19 </span><a id="a-607228078" href="#a9.0.0">Version 9.0.0 (2006-10-28)</a></li><li><span class="hide">20 </span><a id="a-607230568" href="#a8.2.0">Version 8.2.0 (2006-10-24)</a></li><li><span class="hide">21 </span><a id="a-607232918" href="#a8.1.0">Version 8.1.0 (2006-10-21)</a></li><li><span class="hide">22 </span><a id="a-607235508" href="#a8.0.0">Version 8.0.0 (2006-10-13)</a></li><li><span class="hide">23 </span><a id="a-607237998" href="#a7.3.0">Version 7.3.0 (2006-09-30)</a></li><li><span class="hide">24 </span><a id="a-607240408" href="#a7.2.0">Version 7.2.0 (2006-09-15)</a></li><li><span class="hide">25 </span><a id="a-607242818" href="#a7.1.0">Version 7.1.0 (2006-08-29)</a></li><li><span class="hide">26 </span><a id="a-607245508" href="#a7.0.0">Version 7.0.0 (2006-08-29)</a></li><li><span class="hide">27 </span><a id="a-607248278" href="#a6.3.0">Version 6.3.0 (2006-08-27)</a></li><li><span class="hide">28 </span><a id="a-607250788" href="#a6.2.0">Version 6.2.0 (2006-08-26)</a></li><li><span class="hide">29 </span><a id="a-607253118" href="#a6.1.0">Version 6.1.0 (2006-08-09)</a></li><li><span class="hide">30 </span><a id="a-607255668" href="#a6.0.0">Version 6.0.0 (2006-08-07)</a></li><li><span class="hide">31 </span><a id="a-607258058" href="#a5.1.1">Version 5.1.1 (2006-08-04)</a></li><li><span class="hide">32 </span><a id="a-607260808" href="#a5.1.0">Version 5.1.0 (2006-07-29)</a></li><li><span class="hide">33 </span><a id="a-607263458" href="#a5.0.0">Version 5.0.0 (2006-07-22)</a></li><li><span class="hide">34 </span><a id="a-607266088" href="#a4.0.0">Version 4.0.0 (2006-05-25)</a></li><li><span class="hide">35 </span><a id="a-607268598" href="#a3.2.0">Version 3.2.0 (2006-05-13)</a></li><li><span class="hide">36 </span><a id="a-607271188" href="#a3.1.0">Version 3.1.0 (2006-04-28)</a></li><li><span class="hide">37 </span><a id="a-607273938" href="#a3.0.0">Version 3.0.0 (2006-04-23)</a></li><li><span class="hide">38 </span><a id="a-607276588" href="#a2.0.0">Version 2.0.0 (2006-04-17)</a></li><li><span class="hide">39 </span><a id="a-607279478" href="#a1.0.0">Version 1.0.0 (2006-02-26)</a></li><li><span class="hide">40 </span><a id="a-607281768" href="#a0.0.0">Version 0.0.0 (1999-10-31)</a></li></ul>
2339
2447
 
2340
2448
  </div>
2341
2449
  </body>