| OLD | NEW |
| 1 Frog is a dart compiler implemented in dart. It is currently focused on | 1 Frog is a dart compiler implemented in dart. It is currently focused on |
| 2 compiling dart code to efficient and readable javascript code. However, it | 2 compiling dart code to efficient and readable javascript code. However, it |
| 3 is ultimately intended to be the basis for future code analysis tools and | 3 is ultimately intended to be the basis for future code analysis tools and |
| 4 development environments when these can be built in dart as well. Two | 4 development environments when these can be built in dart as well. Two |
| 5 very early examples of this kind of use are in the samples directory: | 5 very early examples of this kind of use are in the samples directory: |
| 6 * doc.dart - minimal documentation generator | 6 * doc.dart - minimal documentation generator |
| 7 * ifrog.dart - minimal command-line REPL for dart | 7 * ifrog.dart - minimal command-line REPL for dart |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |
| 11 To use frog: | 11 To use frog: |
| 12 | 12 |
| 13 1) Frog is now included in the checkout of the public repo of the bleeding_edge | 13 1) Frog is now included in the checkout of the public repo of the bleeding_edge |
| 14 branch. The code will be located under dart/frog. | 14 branch. The code will be located under dart/frog. |
| 15 | 15 |
| 16 2) Make sure you have 'node' in your path. | 16 2) From the dart/frog directory, run the presubmit script to check your |
| 17 See http://nodejs.org/ and https://github.com/joyent/node/wiki/Installation | |
| 18 for how to install. Notes: | |
| 19 - If using "git clone", use local disk rather than an NFS working dir, | |
| 20 as NFS will disallow "sudo make install". | |
| 21 - v0.6 is currently popular. | |
| 22 # TODO(jimhug): Move this dependency to third_party. | |
| 23 | |
| 24 3) From the dart/frog directory, run the presubmit script to check your | |
| 25 installation is all working. | 17 installation is all working. |
| 26 frog$ ./presubmit.py | 18 frog$ ./presubmit.py |
| 27 | 19 |
| 28 | 20 |
| 29 BEFORE YOU SUBMIT | 21 BEFORE YOU SUBMIT |
| 30 | 22 |
| 31 Before you submit, you should: | 23 Before you submit, you should: |
| 32 | 24 |
| 33 1) Run the html tests: | 25 1) Run the html tests: |
| 34 | 26 |
| 35 $ ./frog.py --html -- tests/htmltest.dart | 27 $ ./frog.py --html -- tests/htmltest.dart |
| 36 $ ./frog.py --html -- tests/canvastest.dart | 28 $ ./frog.py --html -- tests/canvastest.dart |
| 37 | 29 |
| 38 These will open a browser -- verify in the console that no errors | 30 These will open a browser -- verify in the console that no errors |
| 39 happened. | 31 happened. |
| 40 | 32 |
| 41 2) Run the presubmit script: | 33 2) Run the presubmit script: |
| 42 | 34 |
| 43 $ ./presubmit.py | 35 $ ./presubmit.py |
| 44 | 36 |
| 45 3) Make sure to include any changes to frogsh in your commit. | |
| 46 | |
| 47 Note: | 37 Note: |
| 48 | 38 |
| 49 If you make any changes to files under tests, you are expected to ensure that | 39 If you make any changes to files under tests, you are expected to ensure that |
| 50 you don't break any of the other configurations. If you only change the status
of tests for frog or frogsh, you should be okay. However, if you | 40 you don't break any of the other configurations. If you only change the status
of tests for frog, you should be okay. However, if you |
| 51 modify any of the tests themselves, please run the tests with both vm and | 41 modify any of the tests themselves, please run the tests with both vm and |
| 52 dartc configurations before checking in. | 42 dartc configurations before checking in. |
| 53 | 43 |
| 54 | 44 |
| 55 Details: | 45 Details: |
| 56 | 46 |
| 57 You can use build.py and test.py (that are run by the presubmit script): | 47 You can use build.py and test.py (that are run by the presubmit script): |
| 58 | 48 |
| 59 $ ../tools/build.py --mode=release,debug | 49 $ ../tools/build.py --mode=release,debug |
| 60 $ ../tools/test.py --report -t 5 -p color --mode=release --component=frog,frog
sh language corelib leg | 50 $ ../tools/test.py --report -t 5 -p color --mode=release --component=frog lang
uage corelib leg |
| 61 | 51 |
| 62 The 'frog' component is frog running on the VM. The 'frogsh' | 52 The 'frog' component is frog running on the VM. |
| 63 component is from running selfhosted on node.js. | |
| 64 | |
| 65 To build the self-hosted compiler called frogsh (for frog self-hosted), run: | |
| 66 | |
| 67 $ ./frog.py --out=frogsh --compile-only --enable_type_checks frog.dart | |
| 68 | |
| 69 You can also build and check the self-hosted compiler from itself by running: | |
| 70 $ ./frogsh --out=frogsh frog.dart tests/hello.dart | |
| 71 This should print 'hello world'. | |
| 72 | |
| 73 To just run the self-hosted compiler, you can pass it a single dart file: | |
| 74 | |
| 75 $ ./frogsh tests/hello.dart | |
| 76 This should also print 'hello world' - without rebuilding frogsh itself. | |
| OLD | NEW |