summaryrefslogtreecommitdiff
path: root/build.xml
Commit message (Collapse)AuthorAgeFilesLines
* bump copyright year to 2017Philippus Baalman2017-03-021-1/+1
|
* upgrade to MiMa 0.1.14Seth Tisue2017-02-141-1/+1
| | | | just on general dogfooding principle
* Upgrade MiMa to 0.1.13Martynas Mickevičius2016-12-081-1/+1
|
* upgrade MiMa to 0.1.12Seth Tisue2016-12-011-1/+1
| | | | | dogfooding the latest. upgrading all the way from 0.1.8 -- there have been a bunch of improvements since then.
* Use jarlister in buildRaphael Jolly2016-05-211-1/+13
| | | | | | | The goal of this change is to exercize the "manifest classpath" mechanism, meant to bring the compiler its needed classes as resources, listed in jar manifests, as opposed to files, thus enabling to use the compiler in sandboxed environments (and also the scripting engine for that matter).
* Update partest to 1.0.12, test case for reporting invalid flagsLukas Rytz2016-02-171-0/+2
| | | | | | Conflicts: test/files/pos/t3420.flags versions.properties
* bump copyright year to 2016Seth Tisue2016-02-031-1/+1
|
* Merge pull request #4853 from SethTisue/mima-upgradeLukas Rytz2015-11-231-1/+1
|\ | | | | upgrade to MiMa 0.1.8
| * upgrade to MiMa 0.1.8Seth Tisue2015-11-191-1/+1
| | | | | | | | | | | | just for general dogfooding purposes. also because the new version understands 2.12 bytecode better, and this commit will get merged onto 2.12
* | Build scaladoc sets from sbtStefan Zeiger2015-11-051-8/+3
|/ | | | | | | - Docs for actors, compiler, library, reflect and scalap are built by default. Generated artifacts are removed when cleaning the respective subproject. - Fix some exclude patterns for scaladoc sources in the ANT build
* Merge remote-tracking branch 'origin/2.11.x' into topic/completely-2.11Jason Zaugg2015-09-171-0/+5
|\
| * Abort Ant build if Ant version is <1.9Simon Schäfer2015-09-161-0/+5
| | | | | | | | Older Ant versions are not able to compiler Java8 sources
| * unset inappropriate execute bitsSeth Tisue2015-09-021-0/+0
| | | | | | | | | | | | | | | | | | | | I imagine these date back to old Subversion days and are probably the result of inadvertent commits from Windows users with vcs client configs. having the bit set isn't really harmful most of the time, but it's just not right, and it makes the files stand out in directory listings for no reason
* | REPL depends on presentation compilerJason Zaugg2015-09-021-1/+2
|/ | | | | | | | In preparation for use of the presentation compiler to drive REPL tab completion, add a dependency in the build. As far as the outside world is concerned, these are already comingled in scala-compiler.jar, and this patch doesn't change that.
* Include jline on quick.bin tool pathAdriaan Moors2015-08-041-1/+1
|
* bump copyright year to 2015Seth Tisue2015-07-171-1/+1
| | | | | (just hitting the highlights here, not worrying yet about bumping the dates in every modified source file)
* SI-8744 fix version.number in scaladoc.propertiesSeth Tisue2015-07-131-1/+1
| | | | the fix is as suggested by Adriaan in the ticket
* SI-9339 Support classpaths with no single compatible jlineAdriaan Moors2015-06-181-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As usual, the repl will use whatever jline 2 jar on the classpath, if there is one. Failing that, there's a fallback and an override. If instantiating the standard `jline.InteractiveReader` fails, we fall back to an embedded, shaded, version of jline, provided by `jline_embedded.InteractiveReader`. (Assume `import scala.tools.nsc.interpreter._` for this message.) The instantiation of `InteractiveReader` eagerly exercises jline, so that a linkage error will result if jline is missing or if the provided one is not binary compatible. The property `scala.repl.reader` overrides this behavior, if set to the FQN of a class that looks like `YourInteractiveReader` below. ``` class YourInteractiveReader(completer: () => Completion) extends InteractiveReader ``` The repl logs which classes it tried to instantiate under `-Ydebug`. # Changes to source & build The core of the repl (`src/repl`) no longer depends on jline. The jline interface is now in `src/repl-jline`. The embedded jline + our interface to it are generated by the `quick.repl` target. The build now also enforces that only `src/repl-jline` depends on jline. The sources in `src/repl` are now sure to be independent of it, though they do use reflection to instantiate a suitable subclass of `InteractiveReader`, as explained above. The `quick.repl` target builds the sources in `src/repl` and `src/repl-jline`, producing a jar for the `repl-jline` classes, which is then transformed using jarjar to obtain a shaded copy of the `scala.tools.nsc.interpreter.jline` package. Jarjar is used to combine the `jline` jar and the `repl-jline` into a new jar, rewriting package names as follows: - `org.fusesource` -> `scala.tools.fusesource_embedded` - `jline` -> `scala.tools.jline_embedded` - `scala.tools.nsc.interpreter.jline` -> `scala.tools.nsc.interpreter.jline_embedded` Classes not reachable from `scala.tools.**` are pruned, as well as empty dirs. The classes in the `repl-jline` jar as well as those in the rewritten one are copied to the repl's output directory. PS: The sbt build is not updated, sorry. PPS: A more recent fork of jarjar: https://github.com/shevek/jarjar.
* Update to scala-java8-compat 0.5.0Jason Zaugg2015-05-221-1/+1
| | | | | | | | | | | This contains LambdaDeserializer, which we refer to in our synthetic `$deserializeLambda$` method under -target:jvm-1.8. Note: this library is only reference in the Ant build under a non-standard build flag that includes that library into scala-library.jar. This is only for our internal use in running partest for indylambda. The SBT build doesn't have the same option at the moment.
* Merge pull request #4497 from retronym/topic/indylambda-diy-boxingJason Zaugg2015-05-161-1/+1
|\ | | | | [indylambda] Relieve LambdaMetafactory of boxing duties [ci: last-only]
| * Update to scala-java8-compat 0.4.0Jason Zaugg2015-05-111-1/+1
| |
* | Merge pull request #4499 from lrytz/removeAsmLukas Rytz2015-05-121-11/+13
|\ \ | |/ |/| Move ASM out of the repository [ci: last-only]
| * Include ASM as a dependency in ANT buildLukas Rytz2015-05-111-11/+13
| | | | | | | | The classfiles are still integrated into scala-compiler.jar.
* | [backport] remove references to private-repo.typesafe.comLukas Rytz2015-05-061-2/+2
|/ | | | Backport of 9cd3e6505aa4285750e63263e2551ab71f36ff8d
* Merge pull request #4463 from retronym/topic/indylambda-emit-indyLukas Rytz2015-05-041-0/+38
|\ | | | | Use LambdaMetafactory where possible for lambda creation.
| * Add scala-java8-compat to scala-library.jarJason Zaugg2015-04-211-0/+38
| | | | | | | | | | | | | | | | | | | | | | When the ant build is run with `-Dscala-java8-compat.package`, the contents of `org.scala-lang.modules:scala-java8-compat` are spliced into `scala-library.jar`. This is handy to facilitate downstream testing of indy lambdas, we can just use the the compiler options `-target 1.8 -Ydelambdafy:method -Xexperimental` without needed to add `scala-java8-compat.jar` to the compile and runtime classpaths. (Classpath augmentation doesn't appear to be straight forward in partest or in the community build.)
* | Align how ant builds asm & forkjoinGrzegorz Kossakowski2015-04-171-4/+4
|/ | | | | | | | | | | There were two inconsistencies in building asm & forkjoin: 1. Asm classes lived in `build/asm`, while forkjoin's were in `build/libs/classes/forkjoin`. 2. Though no jars are needed for these projects, forkjoin was packaged, but asm was not. No reason for these inconsistencies could be found in the history.
* SI-9038 fix scaladoc syntax highlightning to leave unicode aloneAntoine Gourlay2015-03-261-0/+1
| | | | | | | | Syntax highlightning in code blocks used to manipulate the raw bytes of a String, converting them to chars when needed, which breaks Unicode surrogate pairs. Using a char array instead of a byte array will leave them alone.
* Reuse the same compiler instance for all tests in a JUnit classLukas Rytz2015-03-111-0/+9
| | | | | | | | | | Note that JUnit creates a new instance of the test class for running each test method. So the compiler instance is added to the companion. However, the JVM would quickly run out of memory when running multiple tests, as the compilers cannot be GCd. So we make it a `var`, and set it to null when a class is done. For that we use JUnit's `@AfterClass` which is required to be on a static method. Therefore we add a Java class with such a static method that we can extend from Scala.
* Correct dependency for test.junit.compAdriaan Moors2015-02-181-10/+2
| | | | | | It needs a packed build. Skip the optimization of only compiling junit tests when those source change, since we should also rebuild when e.g., library source changes
* SI-8642 Enable OSGi tests under Java 8Jason Zaugg2015-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use the PAX Exam framework to integration test that the OSGi metadata we add to our JARs allows them to be loaded into the Felix and Equinox containers. However, we had to disable this test under Java 8 due to an incompatibility between that framework and the modern Java version. I have found a combination that works in Java 6, 7, and 8, so the test is now run under all Java versions. I have left a `skip` property to disable them, following the established convention. Tip of the hat to: - @soc / @rkrzewski for the work in #4066 that paved the way for this small change - Harald Wellman, for sharing [1] the Java 8 compatible combination of PAX and Felix . Testing: ``` for V in 1.6 1.7 1.8; do java_use $V; ant -q test.osgi; done java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode) ... [echo] Running OSGi JUnit tests. Output in /Users/jason/code/scala3/build/osgi [echo] Test pass 1 of 2 using Apache Felix 4.4.0 [echo] Test pass 2 of 2 using Eclipse Equinox 3.7.1 BUILD SUCCESSFUL Total time: 31 seconds java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) ... [echo] Running OSGi JUnit tests. Output in /Users/jason/code/scala3/build/osgi [echo] Test pass 1 of 2 using Apache Felix 4.4.0 [echo] Test pass 2 of 2 using Eclipse Equinox 3.7.1 BUILD SUCCESSFUL Total time: 22 seconds java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) ... [echo] Running OSGi JUnit tests. Output in /Users/jason/code/scala3/build/osgi [echo] Test pass 1 of 2 using Apache Felix 4.4.0 [echo] Test pass 2 of 2 using Eclipse Equinox 3.7.1 BUILD SUCCESSFUL Total time: 16 seconds ``` [1] https://groups.google.com/d/msg/ops4j/TN0sZFf6wLs/vUP0GML6-TQJ
* Add an IntelliJ module for the Pax Exam based OSGi testsJason Zaugg2015-01-281-2/+3
| | | | We can now edit these in IntelliJ, as per the regular JUnit tests.
* Merge pull request #4130 from mpociecha/let-specify-build-repos-homeGrzegorz Kossakowski2014-11-261-0/+2
|\ | | | | Let users specify a different location for build repos than user home
| * Let users specify a different location for build repos than user homempociecha2014-11-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is helpful e.g. when setting up CI for Scala and it's important which directories are used by a build. By default it uses .m2, .pax and .sbt/cache from user home (in general $HOME). Sometimes it's not possible to use this location and also changing a value of $HOME is not an option. The required location should be specified both for ant's build.xml and used scripts. In the first case specifying -Duser.home is all, what we need. But we can't just set _JAVA_OPTIONS as then partest tests fail due to the unexpected output (an additional 'Picked up java options (...)' messages). We can set ANT_OPTS instead of this. The only problem was that OSGi JUnit tests (only they) were using $HOME anyway. I forced them to use -Duser.home by propagating this option in build.xml. binary-repo-lib.sh is changed to use a special env variable or $HOME, when this variable is not set. Then we can do: export SCALA_BUILD_REPOS_HOME=<some_dir> export ANT_OPTS="$ANT_OPTS -Duser.home=$SCALA_BUILD_REPOS_HOME" ant dist and it will create all directories .m2, .pax and .sbt/cache in a specified $SCALA_BUILD_REPOS_HOME directory. Note: maven's settings.xml should be located in this used $SCALA_BUILD_REPOS_HOME/.m2 and point to the repository like <some_dir>/.m2/repository
* | SI-8977 remove duplicate decoder.properties from scalapAntoine Gourlay2014-11-111-2/+1
|/ | | | | All .properties files in sources folder are already included in the packed jar (see line 1028), so there is no need to add it again.
* SI-8927 Update OSGi stuff to get rid of bndlib warningRafał Krzewski2014-10-231-12/+42
| | | | | | | | | | | | | | The way the desired OSGi frameworks are chosen has changed between Pax Exam versions: On earlier versions, specifying it in code was fine, but PAX Exam 4.x runs the tests on the first OSGi framework it finds on classpath. An exclusion for the transitive dependency org.osgi.core was added, because it seems that artifact has broken dependecies (which would have brought us back to square one). Good thing is that it isn't needed here, because the OSGi framework JARs contain all necessary classes.
* Better ant / junit interactionAntoine Gourlay2014-09-291-1/+1
| | | | | | | | | | | | | Currently junit test sources are always rebuilt, that's wasteful. The second dependency on the junit task is there so that the first can be skipped if sources haven't changed. Also normalize package names versus location in the `test/junit` folder: ant isn't very clever when it comes to selectively recompiling tests, so now editing a test will only cause that one to be recompiled (instead of ~13 files every time). This makes TDD with junit even faster.
* Merge pull request #3972 from lrytz/BCodeDelambdafyFixJason Zaugg2014-09-161-2/+7
|\ | | | | isAnonymousClass/Function for delambdafy classes is not true
| * isAnonymousClass/Function for delambdafy classes is not trueLukas Rytz2014-09-121-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | Ydelambdafy:method lambda classes are not anonymous classes, and not anonymous function classes either. They are somethig new, so there's a new predicate isDelambdafyFunction. They are not anonymous classes (or functions) because anonymous classes in Java speak are nested. Delambdafy classes are always top-level, they are just synthetic. Before this patch, isAnonymous was sometimes accidentailly true: if the lambda is nested in an anonymous class. Now it's always false.
* | JUnit tests for dead code elimination.Lukas Rytz2014-09-101-0/+1
|/ | | | JUnit tests may use tools from partest-extras (ASMConverters)
* Add support for running a specific Junit test/method.Antoine Gourlay2014-08-251-1/+5
| | | | | | | | | | | | | | | | | | | Unless I really missed something, there is currently no way to run a specific Junit test (class or method). Running the whole thing is going to get worse and worse since Junit is supposed to be the preferred way, so here it goes: // will run all methods in a test file ant test.junit -Dtest.class=scala.WhateverTest // will run a specific method (just an alias for the one below) ant test.junit -Dtest.class=scala.WhateverTest -Dtest.method=mymethod // will run several methods (comma separated) ant test.junit -Dtest.class=scala.WhateverTest -Dtest.methods="foo,bar" `test.method(s)` without `test.class` is just ignored (all tests are run).
* Also update jline.version when update.versions is set during buildLukas Rytz2014-07-221-0/+2
|
* Bump jline version to 2.12 (Re: SI-8535)Adriaan Moors2014-07-151-2/+0
| | | | Move version info where it belongs: versions.properties
* Disable OSGi tests under Java 8Jason Zaugg2014-06-041-14/+18
| | | | | I've lodged SI-8642 with more details of the failure to make sure we get them going again.
* Use 2.11.0 as the MiMa baseline for 2.11.xJason Zaugg2014-05-071-1/+1
| | | | Rather than 2.11.0-RC3.
* IntelliJ project filesLukas Rytz2014-05-021-1/+2
| | | | Fixes compilation within IDEA. Allows compiling and running JUnit tests directly withing the IDE.
* Another spot to fully cross version continuations pluginJason Zaugg2014-04-211-0/+1
| | | | | | | | | | | | The continuations plugin is fully cross versioned, as it dependes on the non-BC compiler API. I had to make the same change externally releasing 2.11.0: https://github.com/scala/jenkins-scripts/pull/99/files This fix addresses the problem in scala/scala. Without it, we can't resolve dependencies in development.
* Render scala.full.version to versions.properties.Adriaan Moors2014-04-041-0/+2
| | | | | | | | | | | | | | | When called with -Dupdate.versions, the build will render its current set of versions to versions properties. This is used during releases, when bootstrapping to a consistent set of modules that constitute a release. Particularly, scala.full.version is the non-SNAPSHOT full version of scala that's closed to maven.version.number. It's similar in spirit to the module build's snapshotScalaBinaryVersion, except that it's always the full version, so, e.g., 2.11.1 rather than 2.11. This version is so far only used to determine the dependency on scala-continuations-plugin in scala-dist.
* Remove distribution building from ant build, see scala/scala-dist.Adriaan Moors2014-03-031-177/+60
| | | | | | | | | | | | | | | | | | | | | | | The only result of all this duplication was bitrot. The main build is responsible for building, testing, documenting and publishing. (It publishes everything needed to build a distribution to maven in `pack-maven.dist`.) The sbt build over at scala/scala-dist handles distribution building for the various platforms. Note: after `ant build`, `build/pack` will have a pretty complete distribution. (The only thing missing are the docs: see targets `pack.doc` and `docs.done`.) To build your own distribution, do, e.g.: ``` ant publish-local-opt -Dmaven.version.suffix="-foo" cd ~/git hub clone scala/scala-dist cd scala-dist sbt 'set version := "2.11.0-foo"' 'set resolvers += Resolver.mavenLocal' universal:package-bin ```
* No longer generate deprecated dists/maven/latest/build.xmlAdriaan Moors2014-03-031-33/+7
| | | | | The distpack-maven-* targets no longer create said dir/build. Use the publish tasks directly instead.