Skip to content

Commit 466508b

Browse files
author
Derek Hower
committed
Complete conversion of ExtensionVersion
1 parent 810e133 commit 466508b

File tree

7 files changed

+26
-41
lines changed

7 files changed

+26
-41
lines changed

Rakefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,9 @@ task :regress do
287287
ENV["VERSIONS"] = "all"
288288
Rake::Task["gen:html_manual"].invoke
289289
Rake::Task["gen:html"].invoke("generic_rv64")
290+
ENV["EXT"] = "B"
291+
ENV["VERSION"] = "latest"
292+
Rake::Task["gen:ext_pdf"].invoke
290293
Rake::Task["#{$root}/gen/certificate_doc/pdf/MockCertificateModel.pdf"].invoke
291294
Rake::Task["#{$root}/gen/certificate_doc/pdf/MC100.pdf"].invoke
292295
Rake::Task["#{$root}/gen/profile_doc/pdf/MockProfileRelease.pdf"].invoke

arch/ext/Zca.yaml

Lines changed: 0 additions & 17 deletions
This file was deleted.

backends/certificate_doc/templates/certificate.adoc.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ Requirement <%= req.name %> only apply when <%= req.when_pretty %>.
297297
298298
*Version Requirement*: <%= ext_req.version_requirement %> +
299299
300-
<% ext_db.versions.each do |v| -%>
300+
<% ext.versions.each do |v| -%>
301301
<%= v.version %>::
302302
State:::
303303
<%= v.state %>
@@ -341,7 +341,7 @@ Requirement <%= req.name %> only apply when <%= req.when_pretty %>.
341341
<% end -%>
342342
343343
// TODO: GitHub issue 92: Use version specified by each profile.
344-
<% insts = arch_def.instructions.select { |i| i.defined_by?(ext_db.min_version) } -%>
344+
<% insts = arch_def.instructions.select { |i| i.defined_by?(ext.min_version) } -%>
345345
<% unless insts.empty? -%>
346346
==== Instructions
347347

backends/cfg_html_doc/adoc_gen.rake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ require "ruby-prof"
9292
when "ext"
9393
puts "Generting full extension list"
9494
arch_def.implemented_extensions.each do |ext_version|
95-
lines << " * `#{ext_version.name}` #{ext_version.ext(arch_def).long_name}"
95+
lines << " * `#{ext_version.name}` #{ext_version.ext.long_name}"
9696
end
9797
when "inst"
9898
puts "Generting full instruction list"

lib/arch_obj_models/extension.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,9 +588,7 @@ def satisfying_versions(archdef)
588588
ext = archdef.extension(@name)
589589
return [] if ext.nil?
590590

591-
ext.versions.select { |v| @requirement.satisfied_by?(Gem::Version.new(v["version"])) }.map do |v|
592-
ExtensionVersion.new(@name, v["version"], archdef)
593-
end
591+
ext.versions.select { |v| @requirement.satisfied_by?(v.version) }
594592
end
595593

596594
# @overload

lib/arch_obj_models/manual.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def extensions
9797
next
9898
end
9999

100-
unless ext_obj.versions.any? { |v| v["version"] == ext[1] }
100+
unless ext_obj.versions.any? { |v| v.version == ext[1] }
101101
warn "Extension '#{ext[0]}', version '#{ext[1]}' is not defined in the database"
102102
next
103103
end

lib/arch_obj_models/portfolio.rb

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,12 @@ def in_scope_ext_reqs(desired_presence = nil)
126126
# Convert String or Hash to object.
127127
actual_presence_obj = ExtensionPresence.new(actual_presence)
128128

129-
match = if desired_presence.nil?
130-
true # Always match
131-
else
132-
(actual_presence_obj == desired_presence_converted)
133-
end
129+
match =
130+
if desired_presence.nil?
131+
true # Always match
132+
else
133+
actual_presence_obj == desired_presence_converted
134+
end
134135

135136
if match
136137
in_scope_ext_reqs <<
@@ -280,10 +281,10 @@ def all_in_scope_ext_params
280281
param = ext.params.find { |p| p.name == param_name }
281282
raise "There is no param '#{param_name}' in extension '#{ext_name}" if param.nil?
282283

283-
next unless ext.versions.any? do |ver_hash|
284-
Gem::Requirement.new(ext_data["version"]).satisfied_by?(Gem::Version.new(ver_hash["version"])) &&
285-
param.defined_in_extension_version?(ver_hash["version"])
286-
end
284+
next unless ext.versions.any? do |ext_ver|
285+
Gem::Requirement.new(ext_data["version"]).satisfied_by?(ext_ver.version) &&
286+
param.defined_in_extension_version?(ext_ver.version)
287+
end
287288

288289
@all_in_scope_ext_params <<
289290
InScopeExtensionParameter.new(param, param_data["schema"], param_data["note"])
@@ -314,10 +315,10 @@ def in_scope_ext_params(ext_req)
314315
ext_param = ext.params.find { |p| p.name == param_name }
315316
raise "There is no param '#{param_name}' in extension '#{ext_req.name}" if ext_param.nil?
316317

317-
next unless ext.versions.any? do |ver_hash|
318-
Gem::Requirement.new(ext_data["version"]).satisfied_by?(Gem::Version.new(ver_hash["version"])) &&
319-
ext_param.defined_in_extension_version?(ver_hash["version"])
320-
end
318+
next unless ext.versions.any? do |ext_ver|
319+
Gem::Requirement.new(ext_data["version"]).satisfied_by?(ext_ver.version) &&
320+
ext_param.defined_in_extension_version?(ext_ver.version)
321+
end
321322

322323
ext_params <<
323324
InScopeExtensionParameter.new(ext_param, param_data["schema"], param_data["note"])
@@ -336,10 +337,10 @@ def all_out_of_scope_params
336337
ext.params.each do |param|
337338
next if all_in_scope_ext_params.any? { |c| c.param.name == param.name }
338339

339-
next unless ext.versions.any? do |ver_hash|
340-
Gem::Requirement.new(ext_req.version_requirement).satisfied_by?(Gem::Version.new(ver_hash["version"])) &&
341-
param.defined_in_extension_version?(ver_hash["version"])
342-
end
340+
next unless ext.versions.any? do |ext_ver|
341+
Gem::Requirement.new(ext_req.version_requirement).satisfied_by?(ext_ver.version) &&
342+
param.defined_in_extension_version?(ext_ver.version)
343+
end
343344

344345
@all_out_of_scope_params << param
345346
end

0 commit comments

Comments
 (0)