class Build::Files::IOState

def dirty?

Output is dirty if files are missing or if latest input is older than any output.
def dirty?
	@dirty = []
	
	if @output_state.missing?
		# puts "Output file missing: #{output_state.missing.inspect}"
		
		return true
	end
	
	# If there are no inputs, we are always clean as long as outputs exist:
	# if @input_state.empty?
	#	return false
	# end
	
	oldest_output_time = @output_state.oldest_time
	newest_input_time = @input_state.newest_time
	
	if newest_input_time and oldest_output_time
		# if newest_input_time > oldest_output_time
		#	puts "Out of date file: #{newest_input_time.inspect} > #{oldest_output_time.inspect}"
		# end
		
		return newest_input_time > oldest_output_time
	end
	
	# puts "Missing file dates: #{newest_input_time.inspect} < #{oldest_output_time.inspect}"
	
	return true
end