| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | | |
The 2.12 distribution will no longer ship an akka-actors jar.
|
|/ / |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
merge/2.11.x-to-2.12.x-20150129
Conflicts:
build.number
src/library/scala/concurrent/Future.scala
versions.properties
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
We can now edit these in IntelliJ, as per the regular JUnit tests.
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
build.number
src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala
src/library/scala/collection/Iterator.scala
versions.properties
|
| |\
| | |
| | | |
Let users specify a different location for build repos than user home
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |/
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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/2.11.x-to-2.12.x-20140917
Conflicts:
build.xml
The merge conflict was centred around the introduction of
the build property `test.bc.skip`, and was straight forward
to resolve.
|
| |\
| | |
| | | |
isAnonymousClass/Function for delambdafy classes is not true
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 may use tools from partest-extras (ASMConverters)
|
|\|
| |
| |
| |
| |
| |
| | |
merge/2.11-to-2.12-is-it-really-sept-2-already-where-was-summer
Conflicts:
src/library/scala/util/matching/Regex.scala
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| | |
|
|\|
| |
| |
| | |
merge/2.11-to-2.12-is-it-really-sept-2-already-where-was-summer
|
| |
| |
| |
| | |
Move version info where it belongs: versions.properties
|
|\| |
|
| |
| |
| |
| |
| | |
I've lodged SI-8642 with more details of the failure to make sure we
get them going again.
|
|\| |
|
| |
| |
| |
| | |
Rather than 2.11.0-RC3.
|
|/ |
|
|
|
|
| |
Fixes compilation within IDEA. Allows compiling and running JUnit tests directly withing the IDE.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
```
|
|
|
|
|
| |
The distpack-maven-* targets no longer create said dir/build.
Use the publish tasks directly instead.
|
|
|
|
| |
Changes in the package scala.reflect.internals are ignored.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit f2de2c4ec43180351ef1f306bcc5f24643ba5477 because it
broke both lift-json and json4s libraries that depend on scalap's APIs.
Arguably, those libraries shouldn't depend on unofficial APIs but they do
because they had no better alternative at the time (no Scala reflection).
The cost of breaking them is not worth minor change of the package.
The f2de2c4ec43180351ef1f306bcc5f24643ba5477 mixed two things:
1. Fixing feature warnings
2. Changing package name
When reverting (and resolving conflicts) I tried to keep 1. and revert just
2. However, there were also some questionable changes related to 1. that
got reverted. In particular, a package object with implicit members that
enable language features is an anti-pattern because members of package
object are visible both _within_ and _outside_ of the package. Therefore,
user could use wildcard import for importing everything from scalap
package and enabled postfixOps language feature unknowingly. I went for
just adding imports in just those few files where they were needed.
Amended by Adriaan:
To allow faster turn around, I re-enabled resolving partest from sonatype,
as its version needs to be bumped and I don't want to wait for maven central synch.
Conflicts:
src/partest/scala/tools/partest/nest/Runner.scala
src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala
src/scalap/scala/tools/scalap/scalax/rules/Rule.scala
src/scalap/scala/tools/scalap/scalax/rules/Rules.scala
src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala
src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Was:
./build/quick/bin/scaladoc -version
Exception in thread "main" java.lang.NoClassDefFoundError: scala/tools/nsc/ScalaDoc
Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.ScalaDoc
Now:
% for tool in ./build/quick/bin/{fsc,scala,scalac,scaladoc,scalap}; do $tool -version; done
Fast Scala compiler version 2.11.0-20140222-144307-b0dcf79875 -- Copyright 2002-2013, LAMP/EPFL
Scala code runner version 2.11.0-20140222-144307-b0dcf79875 -- Copyright 2002-2013, LAMP/EPFL
Scala compiler version 2.11.0-20140222-144307-b0dcf79875 -- Copyright 2002-2013, LAMP/EPFL
Scaladoc version 2.11.0-20140222-144307-b0dcf79875 -- Copyright 2002-2013, LAMP/EPFL
Scala classfile decoder version 2.0.1 -- (c) 2002-2013 LAMP/EPFL
|
|\
| |
| | |
Dist cleanup
|
| | |
|
|\ \
| | |
| | | |
Preliminary support for building and testing with Java 8
|
| |/
| |
| |
| |
| | |
We explicitly check for supported Java versions in our build.
Add Java 8 to the list of supported versions.
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
For each module whose version can be specified using
the property "xxx.version.number", it is now possible
to specify its cross version suffix by using an
optional property "xxx.cross.suffix".
If such a property is not defined, then continue to
use the string "_${scala.binary.version}", as before.
|
|\
| |
| | |
Scala dist maven
|