# File src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb, line 308
    def self.try_compile_and_run(description, language, source, flags = nil)
      extension = detect_language_extension(language)
      create_temp_file("passenger-run-check.#{extension}", tmpexedir) do |filename, f|
        f.puts(source)
        f.close
        command = create_compiler_command(language,
          "'#{filename}' -o '#{filename}.out'",
          flags, true)
        if run_compiler(description, command, filename, source)
          log("Running #{filename}.out")
          begin
            output = `'#{filename}.out' 2>&1`
          rescue SystemCallError => e
            log("Command failed: #{e}")
            return false
          end
          status = $?.exitstatus
          log("Command exited with status #{status}. Output:\n--------------\n#{output}\n--------------")
          return status == 0
        else
          return false
        end
      end
    end