clementine 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +4 -2
  3. data/LICENSE.txt +22 -0
  4. data/README.md +11 -6
  5. data/Rakefile +22 -0
  6. data/clementine.gemspec +2 -1
  7. data/ext/clojure-clojurescript-bef56a7/.gitignore +13 -0
  8. data/ext/clojure-clojurescript-bef56a7/Clojurescript.iml +12 -0
  9. data/ext/clojure-clojurescript-bef56a7/README.md +29 -0
  10. data/ext/clojure-clojurescript-bef56a7/benchmark/cljs/benchmark_runner.cljs +155 -0
  11. data/ext/clojure-clojurescript-bef56a7/bin/cljsc +21 -0
  12. data/ext/clojure-clojurescript-bef56a7/bin/cljsc.bat +18 -0
  13. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/bin/cljsc.clj +0 -0
  14. data/ext/clojure-clojurescript-bef56a7/devnotes/README.org +35 -0
  15. data/ext/clojure-clojurescript-bef56a7/devnotes/bcrepl.org +13 -0
  16. data/ext/clojure-clojurescript-bef56a7/devnotes/cljs.org +500 -0
  17. data/ext/clojure-clojurescript-bef56a7/devnotes/corelib.org +583 -0
  18. data/ext/clojure-clojurescript-bef56a7/devnotes/day1.org +203 -0
  19. data/ext/clojure-clojurescript-bef56a7/devnotes/day2.org +44 -0
  20. data/ext/clojure-clojurescript-bef56a7/devnotes/talk.org +126 -0
  21. data/ext/clojure-clojurescript-bef56a7/devnotes/testing +13 -0
  22. data/ext/clojure-clojurescript-bef56a7/devnotes/todo.org +121 -0
  23. data/ext/clojure-clojurescript-bef56a7/epl-v10.html +261 -0
  24. data/ext/clojure-clojurescript-bef56a7/pom.template.xml +88 -0
  25. data/ext/clojure-clojurescript-bef56a7/samples/dom/.gitignore +2 -0
  26. data/ext/clojure-clojurescript-bef56a7/samples/dom/src/dom/test.cljs +48 -0
  27. data/ext/clojure-clojurescript-bef56a7/samples/dom/test.html +30 -0
  28. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/.gitignore +2 -0
  29. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/README.md +53 -0
  30. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/externed-lib.js +7 -0
  31. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/externs.js +3 -0
  32. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/hello-extern.html +14 -0
  33. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/hello-js-dev.html +18 -0
  34. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/hello-js.html +17 -0
  35. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/my-external-lib.js +3 -0
  36. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/src/hello-js/core.cljs +9 -0
  37. data/ext/clojure-clojurescript-bef56a7/samples/hello-js/src/hello-js/extern-example.cljs +5 -0
  38. data/ext/clojure-clojurescript-bef56a7/samples/hello/.gitignore +2 -0
  39. data/ext/clojure-clojurescript-bef56a7/samples/hello/README.md +34 -0
  40. data/ext/clojure-clojurescript-bef56a7/samples/hello/hello-dev.html +18 -0
  41. data/ext/clojure-clojurescript-bef56a7/samples/hello/hello.html +13 -0
  42. data/ext/clojure-clojurescript-bef56a7/samples/hello/src/hello/core.cljs +8 -0
  43. data/ext/clojure-clojurescript-bef56a7/samples/hello/src/hello/foo/bar.cljs +4 -0
  44. data/ext/clojure-clojurescript-bef56a7/samples/nodehello.cljs +18 -0
  45. data/ext/clojure-clojurescript-bef56a7/samples/nodels.cljs +17 -0
  46. data/ext/clojure-clojurescript-bef56a7/samples/repl/.gitignore +2 -0
  47. data/ext/clojure-clojurescript-bef56a7/samples/repl/README.md +101 -0
  48. data/ext/clojure-clojurescript-bef56a7/samples/repl/index.html +27 -0
  49. data/ext/clojure-clojurescript-bef56a7/samples/repl/src/repl/test.cljs +73 -0
  50. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/.gitignore +2 -0
  51. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/README.md +42 -0
  52. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/index-advanced.html +80 -0
  53. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/index.html +88 -0
  54. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/reset.css +48 -0
  55. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/anneal.cljs +66 -0
  56. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/core.cljs +307 -0
  57. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/dom-helpers.cljs +95 -0
  58. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/layout.cljs +100 -0
  59. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/leaderboard.cljs +40 -0
  60. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/radial.cljs +91 -0
  61. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/showgraph.cljs +121 -0
  62. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/src/twitterbuzz/timeline.cljs +39 -0
  63. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/style.css +301 -0
  64. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/test_data.txt +1 -0
  65. data/ext/clojure-clojurescript-bef56a7/samples/twitterbuzz/tweet_maps.txt +1 -0
  66. data/ext/clojure-clojurescript-bef56a7/script/benchmark +30 -0
  67. data/ext/clojure-clojurescript-bef56a7/script/bootstrap +70 -0
  68. data/ext/clojure-clojurescript-bef56a7/script/browser-repl +16 -0
  69. data/ext/clojure-clojurescript-bef56a7/script/build +59 -0
  70. data/ext/clojure-clojurescript-bef56a7/script/clean +5 -0
  71. data/ext/clojure-clojurescript-bef56a7/script/closure-library-release/google-closure-library-third-party.pom.template +59 -0
  72. data/ext/clojure-clojurescript-bef56a7/script/closure-library-release/google-closure-library.pom.template +54 -0
  73. data/ext/clojure-clojurescript-bef56a7/script/closure-library-release/make-closure-library-jars.sh +87 -0
  74. data/ext/clojure-clojurescript-bef56a7/script/compile +41 -0
  75. data/ext/clojure-clojurescript-bef56a7/script/repl +13 -0
  76. data/ext/clojure-clojurescript-bef56a7/script/repl.bat +13 -0
  77. data/ext/clojure-clojurescript-bef56a7/script/repljs +15 -0
  78. data/ext/clojure-clojurescript-bef56a7/script/repljs.bat +14 -0
  79. data/ext/clojure-clojurescript-bef56a7/script/test +38 -0
  80. data/ext/clojure-clojurescript-bef56a7/script/test-compile +30 -0
  81. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/analyzer.clj +975 -0
  82. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/clj/cljs/closure.clj +173 -73
  83. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/compiler.clj +1081 -0
  84. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/core.clj +1158 -0
  85. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/clj/cljs/repl.clj +51 -25
  86. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/repl/browser.clj +258 -0
  87. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/repl/reflect.clj +75 -0
  88. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/clj/cljs/repl/rhino.clj +6 -5
  89. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/repl/server.clj +173 -0
  90. data/ext/clojure-clojurescript-bef56a7/src/clj/cljs/tagged_literals.clj +30 -0
  91. data/ext/clojure-clojurescript-bef56a7/src/cljs/cljs/core.cljs +7197 -0
  92. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/cljs/nodejs.cljs +1 -1
  93. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/cljs/nodejs_externs.js +0 -0
  94. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/cljs/nodejscli.cljs +1 -1
  95. data/ext/clojure-clojurescript-bef56a7/src/cljs/cljs/reader.cljs +551 -0
  96. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/browser/dom.cljs +59 -13
  97. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/browser/event.cljs +0 -0
  98. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/browser/net.cljs +8 -7
  99. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/browser/repl.cljs +2 -2
  100. data/ext/clojure-clojurescript-bef56a7/src/cljs/clojure/core/reducers.cljs +298 -0
  101. data/ext/clojure-clojurescript-bef56a7/src/cljs/clojure/data.cljs +162 -0
  102. data/ext/clojure-clojurescript-bef56a7/src/cljs/clojure/reflect.cljs +48 -0
  103. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/set.cljs +0 -0
  104. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/string.cljs +4 -10
  105. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/walk.cljs +0 -0
  106. data/{vendor/assets → ext/clojure-clojurescript-bef56a7}/src/cljs/clojure/zip.cljs +0 -0
  107. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/binding_test.cljs +7 -0
  108. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/binding_test_other_ns.cljs +3 -0
  109. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/core_test.cljs +1678 -0
  110. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/import_test.cljs +11 -0
  111. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/import_test/foo.cljs +5 -0
  112. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/letfn_test.cljs +19 -0
  113. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/macro_test.cljs +6 -0
  114. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/macro_test/macros.clj +5 -0
  115. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/ns_test.cljs +14 -0
  116. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/ns_test/bar.cljs +3 -0
  117. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/ns_test/foo.cljs +7 -0
  118. data/ext/clojure-clojurescript-bef56a7/test/cljs/cljs/reader_test.cljs +124 -0
  119. data/ext/clojure-clojurescript-bef56a7/test/cljs/clojure/data_test.cljs +22 -0
  120. data/ext/clojure-clojurescript-bef56a7/test/cljs/clojure/string_test.cljs +97 -0
  121. data/ext/clojure-clojurescript-bef56a7/test/cljs/foo/ns_shadow_test.cljs +9 -0
  122. data/ext/clojure-clojurescript-bef56a7/test/cljs/test_runner.cljs +26 -0
  123. data/lib/clementine.rb +3 -24
  124. data/lib/clementine/clojurescript_engine.rb +9 -48
  125. data/lib/clementine/clojurescript_engine/base.rb +15 -0
  126. data/lib/clementine/clojurescript_engine/jruby.rb +46 -0
  127. data/lib/clementine/{clojurescript_engine_mri.rb → clojurescript_engine/mri.rb} +17 -10
  128. data/lib/clementine/version.rb +1 -1
  129. data/test/clojurescript_engine_test.rb +36 -14
  130. metadata +177 -83
  131. data/vendor/assets/lib/clojure.jar +0 -0
  132. data/vendor/assets/lib/compiler.jar +0 -0
  133. data/vendor/assets/lib/goog.jar +0 -0
  134. data/vendor/assets/lib/js.jar +0 -0
  135. data/vendor/assets/src/clj/cljs/compiler.clj +0 -1341
  136. data/vendor/assets/src/clj/cljs/core.clj +0 -702
  137. data/vendor/assets/src/clj/cljs/repl/browser.clj +0 -341
  138. data/vendor/assets/src/cljs/cljs/core.cljs +0 -3330
  139. data/vendor/assets/src/cljs/cljs/reader.cljs +0 -360
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$CLOJURESCRIPT_HOME" = "" ]; then
4
+ CLOJURESCRIPT_HOME="`dirname $0`/.."
5
+ fi
6
+
7
+ CLJSC_CP=''
8
+ for next in lib/*: src/clj: src/cljs: test/cljs; do
9
+ CLJSC_CP=$CLJSC_CP$CLOJURESCRIPT_HOME'/'$next
10
+ done
11
+
12
+ java -server -cp $CLJSC_CP clojure.main -e "
13
+ (require '[cljs.repl :as r])
14
+ (require '[cljs.repl.browser :as b])
15
+ (r/repl (b/repl-env))
16
+ "
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This script must be run within the ClojureScript top-level project
4
+ # directory.
5
+
6
+ set -ex
7
+
8
+ cd `dirname $0`/..
9
+
10
+ DATE=`date '+%Y%m%d%H%M%S'`
11
+ WORKING="clojurescript_release_$DATE"
12
+ mkdir "$WORKING"
13
+
14
+ POM_TEMPLATE="pom.template.xml"
15
+
16
+ # The command `git describe --match v0.0` will return a string like
17
+ #
18
+ # v0.0-856-g329708b
19
+ #
20
+ # where 856 is the number of commits since the v0.0 tag. It will always
21
+ # find the v0.0 tag and will always return the total number of commits (even
22
+ # if the tag is v0.0.1).
23
+ REVISION=`git --no-replace-objects describe --match v0.0`
24
+
25
+ # Extract the version number from the string. Do this in two steps so
26
+ # it is a little easier to understand.
27
+ REVISION=${REVISION:5} # drop the first 5 characters
28
+ REVISION=${REVISION:0:${#REVISION}-9} # drop the last 9 characters
29
+
30
+ TAG=r$REVISION
31
+
32
+ POM_FILE="$WORKING/clojurescript-0.0-$REVISION.pom"
33
+ JAR_FILE="$WORKING/clojurescript-0.0-$REVISION.jar"
34
+
35
+
36
+ # `jar cf` errors on duplicate entries,
37
+ # so we have to assemble the directory manually
38
+ mkdir "$WORKING/jar_contents"
39
+
40
+ cp -R epl-v10.html src/clj/cljs src/cljs/cljs src/cljs/clojure \
41
+ "$WORKING/jar_contents"
42
+
43
+ jar cf "$JAR_FILE" -C "$WORKING/jar_contents" .
44
+
45
+ sed -e s/CLOJURESCRIPT_VERSION/0.0-$REVISION/ < "$POM_TEMPLATE" > "$POM_FILE"
46
+
47
+ mvn install:install-file -Dfile="$JAR_FILE" -DpomFile="$POM_FILE"
48
+
49
+ # For Hudson server
50
+ if [ "$HUDSON" = "true" ]; then
51
+ echo "Creating tag $TAG"
52
+ git tag -f "$TAG"
53
+ git push origin "$TAG"
54
+
55
+ mvn gpg:sign-and-deploy-file -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging -DpomFile="$POM_FILE" -Dfile="$JAR_FILE"
56
+ mvn nexus:staging-close nexus:staging-release -DtargetRepositoryId=releases -Dnexus.promote.autoSelectOverride=true
57
+ else
58
+ echo "Skipping Maven deployment and Git push because we are not on Hudson."
59
+ fi
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ rm -rf closure
4
+ rm -rf compilation
5
+ rm -f lib/goog.jar
@@ -0,0 +1,59 @@
1
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
+ <modelVersion>4.0.0</modelVersion>
3
+ <groupId>org.clojure</groupId>
4
+ <artifactId>google-closure-library-third-party</artifactId>
5
+ <version>RELEASE_VERSION</version>
6
+ <packaging>jar</packaging>
7
+ <name>Google Closure Library Third-Party Extensions</name>
8
+
9
+ <url>http://code.google.com/p/closure-library/</url>
10
+
11
+ <description>
12
+ The Google Closure Library is a collection of JavaScript code
13
+ designed for use with the Google Closure JavaScript Compiler.
14
+
15
+ This non-official distribution was prepared by the ClojureScript
16
+ team at http://clojure.org/
17
+
18
+ This package contains extensions to the Google Closure Library
19
+ using third-party components, which may be distributed under
20
+ licenses other than the Apache license. Licenses for individual
21
+ library components may be found in source-code comments.
22
+ </description>
23
+
24
+ <licenses>
25
+ <license>
26
+ <name>The Apache Software License, Version 2.0</name>
27
+ <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
28
+ <distribution>repo</distribution>
29
+ </license>
30
+ </licenses>
31
+
32
+ <organization>
33
+ <name>Google</name>
34
+ <url>http://www.google.com</url>
35
+ </organization>
36
+
37
+ <developers>
38
+ <developer><name>Google, Inc.</name></developer>
39
+ <developer><name>Mohamed Mansour</name><email>hello@mohamedmansour.com</email></developer>
40
+ <developer><name>Bjorn Tipling</name><email>bjorn.tipling@gmail.com</email></developer>
41
+ <developer><name>SameGoal LLC</name><email>help@samegoal.com</email></developer>
42
+ <developer><name>Guido Tapia</name><email>guido.tapia@gmail.com</email></developer>
43
+ <developer><name>Andrew Mattie</name><email>amattie@gmail.com</email></developer>
44
+ <developer><name>Ilia Mirkin</name><email>ibmirkin@gmail.com</email></developer>
45
+ <developer><name>Ivan Kozik</name><email>ivan.kozik@gmail.com</email></developer>
46
+ <developer><name>Rich Dougherty</name><email>rich@rd.gen.nz</email></developer>
47
+ </developers>
48
+
49
+ <scm>
50
+ <connection>scm:svn:http://closure-library.googlecode.com/svn/trunk</connection>
51
+ <developerConnection>scm:svn:http://closure-library.googlecode.com/svn/trunk</developerConnection>
52
+ <url>http://code.google.com/p/closure-library/source/browse/#svn/trunk</url>
53
+ </scm>
54
+
55
+ <issueManagement>
56
+ <system>code.google.com</system>
57
+ <url>http://code.google.com/p/closure-library/issues</url>
58
+ </issueManagement>
59
+ </project>
@@ -0,0 +1,54 @@
1
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
+ <modelVersion>4.0.0</modelVersion>
3
+ <groupId>org.clojure</groupId>
4
+ <artifactId>google-closure-library</artifactId>
5
+ <version>RELEASE_VERSION</version>
6
+ <packaging>jar</packaging>
7
+ <name>Google Closure Library</name>
8
+
9
+ <url>http://code.google.com/p/closure-library/</url>
10
+
11
+ <description>
12
+ The Google Closure Library is a collection of JavaScript code
13
+ designed for use with the Google Closure JavaScript Compiler.
14
+
15
+ This non-official distribution was prepared by the ClojureScript
16
+ team at http://clojure.org/
17
+ </description>
18
+
19
+ <licenses>
20
+ <license>
21
+ <name>The Apache Software License, Version 2.0</name>
22
+ <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
23
+ <distribution>repo</distribution>
24
+ </license>
25
+ </licenses>
26
+
27
+ <organization>
28
+ <name>Google</name>
29
+ <url>http://www.google.com</url>
30
+ </organization>
31
+
32
+ <developers>
33
+ <developer><name>Google, Inc.</name></developer>
34
+ <developer><name>Mohamed Mansour</name><email>hello@mohamedmansour.com</email></developer>
35
+ <developer><name>Bjorn Tipling</name><email>bjorn.tipling@gmail.com</email></developer>
36
+ <developer><name>SameGoal LLC</name><email>help@samegoal.com</email></developer>
37
+ <developer><name>Guido Tapia</name><email>guido.tapia@gmail.com</email></developer>
38
+ <developer><name>Andrew Mattie</name><email>amattie@gmail.com</email></developer>
39
+ <developer><name>Ilia Mirkin</name><email>ibmirkin@gmail.com</email></developer>
40
+ <developer><name>Ivan Kozik</name><email>ivan.kozik@gmail.com</email></developer>
41
+ <developer><name>Rich Dougherty</name><email>rich@rd.gen.nz</email></developer>
42
+ </developers>
43
+
44
+ <scm>
45
+ <connection>scm:svn:http://closure-library.googlecode.com/svn/trunk</connection>
46
+ <developerConnection>scm:svn:http://closure-library.googlecode.com/svn/trunk</developerConnection>
47
+ <url>http://code.google.com/p/closure-library/source/browse/#svn/trunk</url>
48
+ </scm>
49
+
50
+ <issueManagement>
51
+ <system>code.google.com</system>
52
+ <url>http://code.google.com/p/closure-library/issues</url>
53
+ </issueManagement>
54
+ </project>
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ ## Set the version numbers to download and release:
6
+
7
+ ZIP_VERSION="20111110-r1376"
8
+ RELEASE_VERSION="0.0-1376-2"
9
+
10
+ ## These only need to change if the URL or file names change:
11
+
12
+ ZIP_BASE="closure-library-${ZIP_VERSION}"
13
+ ZIP_FILE="${ZIP_BASE}.zip"
14
+ ZIP_URL="http://closure-library.googlecode.com/files/${ZIP_FILE}"
15
+
16
+ RELEASE_BASE="google-closure-library-${RELEASE_VERSION}"
17
+ JAR_FILE="$RELEASE_BASE.jar"
18
+ POM_FILE="$RELEASE_BASE.pom"
19
+
20
+ THIRD_PARTY_RELEASE_BASE="google-closure-library-third-party-${RELEASE_VERSION}"
21
+ THIRD_PARTY_JAR_FILE="$THIRD_PARTY_RELEASE_BASE.jar"
22
+ THIRD_PARTY_POM_FILE="$THIRD_PARTY_RELEASE_BASE.pom"
23
+
24
+ POM_TEMPLATE_FILE="google-closure-library.pom.template"
25
+ THIRD_PARTY_POM_TEMPLATE_FILE="google-closure-library-third-party.pom.template"
26
+
27
+ ## Main script begins:
28
+
29
+ cd `dirname $0`
30
+
31
+ DATE=`date "+%Y%m%d%H%M%S"`
32
+ WORKING="closure-release-${DATE}"
33
+
34
+ rm -rf "$WORKING"
35
+ mkdir "$WORKING"
36
+
37
+ if [ ! -e "$ZIP_FILE" ]; then
38
+ curl "$ZIP_URL" -o "$ZIP_FILE"
39
+ fi
40
+
41
+ if [ ! -d "$WORKING/$ZIP_BASE" ]; then
42
+ ( cd "$WORKING" && unzip "../$ZIP_FILE" )
43
+ fi
44
+
45
+ cd "$WORKING"
46
+
47
+ ## Modify deps.js for third-party JAR; see CLJS-276:
48
+
49
+ perl -p -i -e 's/..\/..\/third_party\/closure\/goog\///go' \
50
+ closure/goog/deps.js
51
+
52
+ rm -f ./third_party/closure/goog/base.js \
53
+ ./third_party/closure/goog/deps.js
54
+
55
+ ## Build the JARs:
56
+
57
+ jar cf "$JAR_FILE" \
58
+ AUTHORS \
59
+ LICENSE \
60
+ README \
61
+ -C closure goog \
62
+ -C closure css
63
+
64
+ jar cf "$THIRD_PARTY_JAR_FILE" \
65
+ AUTHORS \
66
+ LICENSE \
67
+ README \
68
+ -C third_party/closure goog
69
+
70
+ ## Generate the POM files:
71
+
72
+ perl -p -e "s/RELEASE_VERSION/$RELEASE_VERSION/go" \
73
+ "../$POM_TEMPLATE_FILE" \
74
+ > "$POM_FILE"
75
+
76
+ perl -p -e "s/RELEASE_VERSION/$RELEASE_VERSION/go" \
77
+ "../$THIRD_PARTY_POM_TEMPLATE_FILE" \
78
+ > "$THIRD_PARTY_POM_FILE"
79
+
80
+ ## Uncomment these lines for an official release:
81
+
82
+ # for FILE in "$JAR_FILE" "$THIRD_PARTY_JAR_FILE" "$POM_FILE" "$THIRD_PARTY_POM_FILE"
83
+ # do
84
+ # gpg --verbose --armor --detach-sign \
85
+ # --default-key "Clojure/core (build.clojure.org Release Key version 2) <core@clojure.com>" \
86
+ # "$FILE"
87
+ # done
@@ -0,0 +1,41 @@
1
+ #!/bin/sh
2
+
3
+ rm -f core.js
4
+
5
+ java -server -Xmx2G -Xms2G -Xmn256m -cp 'lib/*:src/clj:src/cljs' clojure.main - <<CLJ
6
+ (require :reload '[cljs.compiler :as comp] '[clojure.java.io :as io] '[cljs.core])
7
+ (comp/compile-file (io/resource "cljs/core.cljs") "core.js")
8
+ CLJ
9
+
10
+ java -jar closure/compiler/compiler.jar \
11
+ --compilation_level=SIMPLE_OPTIMIZATIONS \
12
+ --warning_level=VERBOSE \
13
+ --formatting=PRETTY_PRINT \
14
+ --jscomp_off=missingProperties \
15
+ --js closure/library/closure/goog/base.js \
16
+ --js closure/library/closure/goog/string/string.js \
17
+ --js closure/library/closure/goog/useragent/jscript.js \
18
+ --js closure/library/closure/goog/string/stringbuffer.js \
19
+ --js closure/library/closure/goog/object/object.js \
20
+ --js closure/library/closure/goog/debug/error.js \
21
+ --js closure/library/closure/goog/asserts/asserts.js \
22
+ --js closure/library/closure/goog/array/array.js \
23
+ --js core.js \
24
+ > coresimple.js
25
+
26
+ java -jar closure/compiler/compiler.jar \
27
+ --compilation_level=ADVANCED_OPTIMIZATIONS \
28
+ --warning_level=VERBOSE \
29
+ --formatting=PRETTY_PRINT \
30
+ --jscomp_off=missingProperties \
31
+ --js closure/library/closure/goog/base.js \
32
+ --js closure/library/closure/goog/string/string.js \
33
+ --js closure/library/closure/goog/useragent/jscript.js \
34
+ --js closure/library/closure/goog/string/stringbuffer.js \
35
+ --js closure/library/closure/goog/object/object.js \
36
+ --js closure/library/closure/goog/debug/error.js \
37
+ --js closure/library/closure/goog/asserts/asserts.js \
38
+ --js closure/library/closure/goog/array/array.js \
39
+ --js core.js \
40
+ > coreadvanced.js
41
+
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$CLOJURESCRIPT_HOME" = "" ]; then
4
+ CLOJURESCRIPT_HOME="`dirname $0`/.."
5
+ fi
6
+
7
+ CLJSC_CP=''
8
+ for next in lib/*: src/clj: src/cljs: test/cljs; do
9
+ CLJSC_CP="${CLJSC_CP}${CLOJURESCRIPT_HOME}/${next}"
10
+ done
11
+
12
+ java -server -cp "$CLJSC_CP" clojure.main
13
+
@@ -0,0 +1,13 @@
1
+ @echo off
2
+ setLocal EnableDelayedExpansion
3
+
4
+ if "%CLOJURESCRIPT_HOME%" == "" set CLOJURESCRIPT_HOME=%~dp0..\
5
+
6
+ set CLASSPATH=%CLOJURESCRIPT_HOME%src\clj;%CLOJURESCRIPT_HOME%src\cljs"
7
+ for /R "%CLOJURESCRIPT_HOME%\lib" %%a in (*.jar) do (
8
+ set CLASSPATH=!CLASSPATH!;%%a
9
+ )
10
+ set CLASSPATH=!CLASSPATH!"
11
+
12
+ java -server -cp "%CLASSPATH%" clojure.main
13
+
@@ -0,0 +1,15 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$CLOJURESCRIPT_HOME" = "" ]; then
4
+ CLOJURESCRIPT_HOME="`dirname $0`/.."
5
+ fi
6
+
7
+ CLJSC_CP=''
8
+ for next in lib/*: src/clj: src/cljs: test/cljs; do
9
+ CLJSC_CP="${CLJSC_CP}${CLOJURESCRIPT_HOME}/${next}"
10
+ done
11
+
12
+ java -server -cp "$CLJSC_CP" clojure.main -e \
13
+ "(require '[cljs.repl :as repl])
14
+ (require '[cljs.repl.rhino :as rhino])
15
+ (repl/repl (rhino/repl-env) :warn-on-undeclared true)"
@@ -0,0 +1,14 @@
1
+ @echo off
2
+ setLocal EnableDelayedExpansion
3
+
4
+ if "%CLOJURESCRIPT_HOME%" == "" set CLOJURESCRIPT_HOME=%~dp0..\
5
+
6
+ set CLASSPATH=%CLOJURESCRIPT_HOME%src\clj;%CLOJURESCRIPT_HOME%src\cljs"
7
+ for /R "%CLOJURESCRIPT_HOME%\lib" %%a in (*.jar) do (
8
+ set CLASSPATH=!CLASSPATH!;%%a
9
+ )
10
+ set CLASSPATH=!CLASSPATH!"
11
+
12
+ set REPL_CLJ="(require '[cljs.repl :as repl])(require '[cljs.repl.rhino :as rhino])(repl/repl (rhino/repl-env))"
13
+
14
+ java -server -cp "%CLASSPATH%" clojure.main -e %REPL_CLJ%
@@ -0,0 +1,38 @@
1
+ #!/bin/sh
2
+
3
+ rm -rf out
4
+ mkdir -p out
5
+
6
+ possible=3
7
+ ran=0
8
+
9
+ #bin/cljsc test >out/core-test.js
10
+ bin/cljsc test "{:optimizations :advanced}" >out/core-advanced-test.js
11
+
12
+ if [ "$V8_HOME" = "" ]; then
13
+ echo "V8_HOME not set, skipping V8 tests"
14
+ else
15
+ echo "Testing with V8"
16
+ "${V8_HOME}/d8" out/core-advanced-test.js
17
+ # TODO: figure out path problem when not in advanced mode
18
+ # "${V8_HOME}/d8" out/core-test.js
19
+ ran=$[ran+1]
20
+ fi
21
+
22
+ if [ "$SPIDERMONKEY_HOME" = "" ]; then
23
+ echo "SPIDERMONKEY_HOME not set, skipping SpiderMonkey tests"
24
+ else
25
+ echo "Testing with SpiderMonkey"
26
+ ${SPIDERMONKEY_HOME}/js -m -n -a -f out/core-advanced-test.js
27
+ ran=$[ran+1]
28
+ fi
29
+
30
+ if [ "$JSC_HOME" = "" ]; then
31
+ echo "JSC_HOME not set, skipping JavaScriptCore tests"
32
+ else
33
+ echo "Testing with JavaScriptCore"
34
+ "${JSC_HOME}/jsc" -f out/core-advanced-test.js
35
+ ran=$[ran+1]
36
+ fi
37
+
38
+ echo "Tested with $ran out of $possible possible js targets"
@@ -0,0 +1,30 @@
1
+ #!/bin/sh
2
+
3
+ echo "Generating sample javascript"
4
+ mkdir compilation
5
+
6
+ cat >compilation/test.js <<EOF
7
+ function create_alert(msg) {
8
+ alert(msg);
9
+ }
10
+ EOF
11
+
12
+ echo "Testing compilation"
13
+ cd compilation
14
+ for file in *
15
+ do
16
+ if [ -f "$file" ] ; then
17
+ name=${file%.*}
18
+ java -jar ../closure/compiler/compiler.jar --js "$file" --js_output_file "$name-compiled.js"
19
+ fi
20
+ done
21
+ cd ..
22
+
23
+ echo "\nOriginal:"
24
+ cat compilation/test.js
25
+
26
+ echo "\nOptimized:"
27
+ cat compilation/test-compiled.js
28
+
29
+ echo "\nCleaning up"
30
+ rm -rf compilation