clementine 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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