Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(707)

Unified Diff: frog/frog.py

Issue 10548047: Remove frog from the repository. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Move test and update apidoc.gyp. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/file_system_vm.dart ('k') | frog/frog_leg.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/frog.py
diff --git a/frog/frog.py b/frog/frog.py
deleted file mode 100755
index f9941ec9345a4f99940121d48154c03ac60f53c0..0000000000000000000000000000000000000000
--- a/frog/frog.py
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-"""Command line wrapper to run the frog compiler under the Dart VM"""
-
-# TODO(jimhug): This is a temporary hack to enable running on the VM. We need
-# the ability to get command-line arguments, to return exit codes, and to
-# communicate with spawned processes in the VM for this to go away.
-
-
-import optparse
-import os
-import platform
-import tempfile
-import shutil
-import subprocess
-import sys
-
-
-from os.path import dirname, join, realpath, exists, basename, relpath
-
-HOME = dirname(realpath(__file__))
-sys.path.append(join(HOME, os.pardir, 'tools'))
-import utils
-
-HTML = '''<html>
- <head><title>Frog</title><head>
- <body>
- <script type="application/javascript" src="out.js"></script>
- </body>
-</html>
-'''
-
-
-# Returns the path to the Dart test runner (executes the .dart file).
-def GetDartRunner(mode, arch, component):
- build_root = utils.GetBuildRoot(utils.GuessOS(), mode, arch)
- if component == 'frog':
- return os.path.join(build_root, 'frog', 'bin', 'frog')
- else:
- suffix = ''
- if utils.IsWindows():
- suffix = '.exe'
- return os.path.join(build_root, 'dart') + suffix
-
-
-def GetDart():
- # Get the release version.
- return GetDartRunner('release', 'ia32', 'vm')
-
-def GetD8():
- return join(dirname(GetDart()), 'd8')
-
-D8 = GetD8()
-
-def execute(cmd):
- """Execute a command in a subprocess. """
- try:
- proc = subprocess.Popen(cmd, stdout=sys.stdout, stderr=sys.stderr,
- env=os.environ)
- return proc.wait()
- except Exception as e:
- print 'Exception when executing: ' + ' '.join(cmd)
- print e
- return 1
-
-def parseOptions(args):
- optionParser = optparse.OptionParser()
-
- optionParser.add_option('--work', dest='workdir',
- default=None,
- metavar='DIR', help='Directory where temporary files are created.')
-
- # Meta-flag for VM running compiler, probably want more options here.
- optionParser.add_option('--vm_flags',
- # TODO(jimhug): Make it easier to enable and disable this for tests.
- #default='--enable_type_checks --enable_asserts',
- default='',
- help='Flags to pass to the VM that is running frog itself.')
-
- optionParser.add_option('--vm',
- default=GetDart(),
- help='The location of the VM.')
-
- optionParser.add_option('--js_cmd',
- default = '%s --crankshaft' % D8,
- metavar='FILE', help='The shell cmd to use to run output JS code.')
-
- optionParser.add_option('--keep_files',
- action='store_true', help='Do not remove temporary files.')
-
- # TODO(vsm): Hook in HtmlConverter.
- optionParser.add_option('--html',
- action='store_true', help='Invoke this in the browser instead of d8.')
- optionParser.add_option('--browser',
- default = None,
- metavar='FILE', help='The browser to use to run output HTML.')
-
- optionParser.add_option('--verbose',
- help='Verbose output', default=False, action='store_true')
-
- optionParser.set_usage("frog.py <dart-script-file> [<dart-options>]")
- return optionParser.parse_args(args)
-
-
-def main(args):
- if '--' in args:
- index = args.index('--')
- pythonArgs = args[1:index]
- dartArgs = args[index + 1:]
- else:
- pythonArgs = []
- dartArgs = args[1:]
-
- options, extraArgs = parseOptions(pythonArgs)
- if options.verbose:
- print ("dartArgs=%s pythonArgs=%s extraArgs=%s" %
- (' '.join(dartArgs), ' '.join(pythonArgs), ' '.join(extraArgs)))
-
- if len(extraArgs) != 0:
- optionParser.print_help()
- return 1
-
- dart = options.vm
- if not exists(dart):
- print "Dart VM not built. Please run the following command:"
- build_file = relpath(join(HOME, os.pardir, 'tools', 'build.py'))
- print ' ' + build_file + ' -m release'
- return 1
-
- return compileAndRun(options, dartArgs, dart)
-
-
-def ensureJsEngine(options):
- if not exists(D8):
- print "No engine available for running JS code."
- print "See frog/README.txt for instructions."
- return 1
- return 0
-
-def compileAndRun(options, args, dart):
- jsArgs = []
- for i in range(len(args)):
- if args[i].endswith('.dart'):
- jsArgs = args[i+1:]
- args = args[:i+1]
- break
-
- outfile_given = False
- execute_output = True
- for i in range(len(args)):
- if args[i].startswith('--out'):
- outfile_given = True
- outfile = args[i][6:]
- execute_output = False
- break;
- if args[i] == '--compile-only':
- execute_output = False
- break;
-
- if options.verbose: print "jsArgs %s" % ' '.join(jsArgs);
-
- workdir = options.workdir
- cleanup = False
- if not workdir:
- if not options.html:
- workdir = tempfile.mkdtemp()
- if not options.keep_files:
- cleanup = True
- else:
- # A persistent location for the browser to load.
- workdir = 'html'
- if not os.path.exists(workdir):
- os.mkdir(workdir)
-
- if not outfile_given:
- outfile = join(workdir, 'out.js')
- args = ['--out=%s' % outfile] + args
-
- outhtml = join(workdir, 'out.html')
-
- browser = options.browser
- if not browser:
- if platform.system() == 'Darwin':
- # Use the default browser on the Mac
- browser = 'Open'
- else:
- # TODO(vsm): This is only available on Goobuntu.
- browser = 'google-chrome'
-
- args = ['--libdir=%s/lib' % HOME] + args
-
- compiler_cmd = [dart]
- if options.vm_flags:
- compiler_cmd.extend(options.vm_flags.split(' '))
- compiler_cmd.append(join(HOME, 'frogc.dart'))
- compiler_cmd.extend(args)
- exit_code = execute(compiler_cmd)
- if exit_code:
- if options.verbose: print ("cmd exited with status %d" % exit_code)
- if cleanup: shutil.rmtree(workdir)
- if exit_code < 0:
- print("VM exited with signal %d" % (-exit_code))
- # TODO(ahe): Using 253 to signal a crash to test.dart.
- return 253
- return exit_code
-
- result = 0
- if execute_output:
- if not options.html:
- if ensureJsEngine(options) != 0:
- return 1
- js_cmd = options.js_cmd
- result = execute(js_cmd.split(' ') + [outfile] + jsArgs)
- else:
- f = open(outhtml, 'w')
- f.write(HTML)
- f.close()
- result = execute([browser, outhtml])
- elif outfile_given:
- print 'Compilation succeded. Code generated in: %s' % outfile
- else:
- print 'Compilation succeded.'
-
- if cleanup: shutil.rmtree(workdir)
- if result != 0:
- return 1
- return 0
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
« no previous file with comments | « frog/file_system_vm.dart ('k') | frog/frog_leg.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698