# File lib/phusion_passenger/platform_info/compiler.rb, line 194
        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
                        begin
                                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
                        ensure
                                File.unlink("#{filename}.out") rescue nil
                        end
                end
        end