@@ -129,33 +129,39 @@ def ext?(name)
129129
130130 # checks any "extra_validation" given by parameter definitions
131131 def params_extra_validation
132- fork do
133- # add parameters as a constant
134- params . each do |key , value |
135- self . class . const_set ( key , value )
136- end
137132
138- @implemented_extensions . each do |ext |
139- ext_name = ext [ "name" ]
140- gen_ext_path = @gen_dir / "arch" / "ext" / "#{ ext_name } .yaml"
141- ext_yaml = YAML . safe_load gen_ext_path . read
142- unless ext_yaml [ ext_name ] [ "params" ] . nil?
143- ext_yaml [ ext_name ] [ "params" ] . each do |param_name , param_data |
144- next unless param_data . key? ( "extra_validation" )
145- begin
146- eval param_data [ "extra_validation" ]
147- rescue StandardError => e
148- warn "While checking extension parameter #{ ext_name } ::#{ param_name } .extra_validation"
149- warn param_data [ "extra_validation" ]
150- warn e
151- exit 1
152- end
133+ agen = self
134+
135+ eval_context = Class . new do
136+ end
137+
138+ eval_context . class . define_method ( :ext? ) { |name | agen . send ( :ext? , name ) }
139+ eval_context . class . define_method ( :assert ) { |cond | agen . send ( :assert , cond ) }
140+
141+ # add parameters as a constant
142+ params . each do |key , value |
143+ eval_context . const_set ( key , value )
144+ end
145+
146+
147+ @implemented_extensions . each do |ext |
148+ ext_name = ext [ "name" ]
149+ gen_ext_path = @gen_dir / "arch" / "ext" / "#{ ext_name } .yaml"
150+ ext_yaml = YAML . safe_load gen_ext_path . read
151+ unless ext_yaml [ ext_name ] [ "params" ] . nil?
152+ ext_yaml [ ext_name ] [ "params" ] . each do |param_name , param_data |
153+ next unless param_data . key? ( "extra_validation" )
154+ begin
155+ eval_context . class_eval param_data [ "extra_validation" ]
156+ rescue StandardError => e
157+ warn "While checking extension parameter #{ ext_name } ::#{ param_name } .extra_validation"
158+ warn param_data [ "extra_validation" ]
159+ warn e
160+ exit 1
153161 end
154162 end
155163 end
156164 end
157- Process . wait
158- exit 1 unless $CHILD_STATUS. success?
159165 end
160166 private :params_extra_validation
161167
0 commit comments