summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Apply some static code analysis recommendationsJanek Bogucki2015-11-2614-31/+31
| | | | | | | | | | | | | | | | Fix a batch of code inspection recommendations generated by IntelliJ 14.1.5. Categories of fix, Unnecessary public modifier in interface Replace filter+size with count Replace filter+nonEmpty with exists Replace filter+headOption with find Replace `if (x != null) Some(x) else None` with Option(x) Replace getOrElse null with orNull Drop redundant semicolons Replace anon fun with PF Replace anon fun with method
* Merge pull request #4855 from szeiger/wip/sbt-osgiLukas Rytz2015-11-245-102/+413
|\ | | | | Create a full Scala distribution from sbt
| * [nomerge] Create a full Scala distribution from sbtStefan Zeiger2015-11-243-107/+334
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replicates the results of `ant -Dlocker.skip=1 distpack` with the following differences: - The POM files produced by the ant build under dists/maven still contain unresolved variables like `@VERSION@`. The ant build resolves them in the actual publishing process. The sbt build generates the correct version numbers directly. - Scaladoc sets in the ant build are created with the scaladoc tool from “quick”. The sbt build uses the STARR scaladoc. - The scaladoc sets for scala-actors, scala-compiler, scala-reflect and scalap from the ant build contain documentation for the classes `Null`, `Nothing`, `Any` and `AnyRef`. The sbt build omits those classes from all doc sets (except for scala-library, of course) under the assumption that this is a bug in the ant build. Other idiosyncracies of the ant build like declaring a packaging type of `jar` (instead of `bundle`) for OSGi bundles, or using slightly different module names and descriptions in scaladocs, OSGi bundles and POMs, are reproduced faithfully for now. Publishing from the sbt build is done in the usual sbt way. No actual publishing targets are currently defined in the build. In order to test stability of the publishing process, the `publishDists` task can be used to publish to dists/maven-sbt with the same directory layout and naming conventions employed by the ant build for publishing to dists/maven. Source and binary JARs are OSGi-enabled. For the source JARs this is done by hand-crafting the appropriate MANIFEST.MF entries (like the ant build does). Binary JARs are packaged with BND, using the same outdated BND version as the ant build for now to get identical results. We do not use sbt-osgi because it depends on a newer version of BND (probably OK to upgrade in the future) and does not allow a crucial bit of configuration that we need: Setting the classpath for BND. In sbt-osgi this is always `fullClasspath in Compile` whereas we really want `products in Compile in packageBin` to keep things simple.
| * [nomerge] Some small fixes for generated artifacts in the sbt buildStefan Zeiger2015-11-241-3/+22
| |
| * Fix JarJar “Keep” processing in sbt buildStefan Zeiger2015-11-241-3/+12
| | | | | | | | | | | | | | It is not enough to check the return value of `process()` to determine whether a class file should be kept or deleted. The classes that should not be kept are only known after processing everything and files that have already been written to disk may need to be deleted.
| * [nomerge] Build man pages and scala-dist.jar from sbtStefan Zeiger2015-11-242-1/+57
| | | | | | | | | | | | | | | | - ManMaker is compiled in a new subproject “manual”. A simple command line runner complements the ant task so that it can be run from sbt. - Another new subproject “scala-dist” is responsible for building the scala-dist.jar artifact.
* | Merge pull request #4859 from fthomas/topic/spec-value-conversionsLukas Rytz2015-11-241-1/+1
|\ \ | | | | | | Update number of subsections in Value Conversions
| * | Update number of subsections in Value ConversionsFrank S. Thomas2015-11-231-1/+1
| | |
* | | Merge pull request #4860 from ↵Lukas Rytz2015-11-241-5/+5
|\ \ \ | |/ / |/| | | | | | | | janekdb/2.11.x-scaladoc-fix-one-off-dot-restart-note Align DotRunner dot restart count with command option description
| * | Align DotRunner dot restart count with command option descriptionJanek Bogucki2015-11-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the command option description, val docDiagramsDotRestart = IntSetting( "-diagrams-dot-restart", "The number of times to restart a malfunctioning dot process before disabling diagrams (default: 5)", 5, None, _ => None ) Prior to this change dot was restarted four times instead of five. Maybe the intention of the option was to allow a total number of attempts to be specified but with 5 restarts we need 6 attempts. The local var was renamed to reflect this.
* | | Merge pull request #4849 from ↵Lukas Rytz2015-11-231-2/+2
|\ \ \ | | | | | | | | | | | | | | | | janekdb/2.11.x-remove-lagged-scaladoc-setttings-notes Remove notes about -doc-title and -doc-version not being used
| * | | Remove notes about -doc-title and -doc-version not being usedJanek Bogucki2015-11-181-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Confirmed these options are used by editing build-ant-macros.xml and viewing the output, <scaladoc docRootContent="${src.dir}/@{project}/${@{project}.docroot}" destdir="${build-docs.dir}/@{project}" - doctitle="${@{project}.description}" + doctitle="${@{project}.description} - test-title" docfooter="epfl" - docversion="${version.number}" + docversion="${version.number} - test-version"
* | | Merge pull request #4850 from ↵Lukas Rytz2015-11-231-1/+2
|\ \ \ | | | | | | | | | | | | | | | | janekdb/2.11.x-add-missing-scaladoc-commands-to-help-output Add two missed scaladoc commands into scaladoc specific help section
| * | | Add two missed scaladoc commands into scaladoc specific help sectionJanek Bogucki2015-11-181-1/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this change these scaladoc options were buried in the scalac section of the help text, -doc-external-doc -implicits-sound-shadowing With this change the options are listed in the scaladoc section. This will make the commands easier to discover.
* | | 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
* | | | Merge pull request #4856 from ↵Lukas Rytz2015-11-231-11/+23
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | janekdb/2.11.x-scaladoc-excluded-classnames-more-data-like Refactor excluded qname test to be more data like
| * | | | Refactor excluded qname test to be more data likeJanek Bogucki2015-11-201-11/+23
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | This refactoring extracts data from code into a form which is closer to configuration data. This is a step change toward making this configurable.
* | | | Merge pull request #4857 from ↵Lukas Rytz2015-11-231-13/+13
|\ \ \ \ | |/ / / |/| | | | | | | | | | | janekdb/2.11.x-scaladoc-fix-List-performance-time-space-formatting Fix List Scaladoc time & space formatting
| * | | Fix List Scaladoc time & space formattingJanek Bogucki2015-11-221-13/+13
|/ / / | | | | | | | | | | | | | | | | | | | | | The Performance section got sucked into a wormhole and popped up in the example tag. The laws of physics differ in the attributes block resulting in the loss of the line break between the Time and Space paragraphs. Fixed by moving the section out of the example tag.
* | | Merge pull request #4828 from retronym/topic/existential-containsLukas Rytz2015-11-165-13/+44
|\ \ \ | | | | | | | | Attacking exponential complexity in TypeMaps
| * | | Attacking exponential complexity in TypeMapsJason Zaugg2015-11-135-13/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't normalize existentials during the `contain`-s type map; `ExistentialType#normalize' calls contains internally and an exponential blowup ensues. - Ensure that the type map used in variance validation never returns modified types in order to avoid needless cloning of symbols. The enclosed test case still gets stuck in Uncurry, thanks to the way that `TypeMap#mapOver(List[Symbol])` recurses through the type first to check whether the type map would be an no-op or not. If not, it repeats the type map with cloned symbols. Doing the work twice at each level of recursion blows up the complexity. Removing that "fast path" allows the enclosed test to compile completely. As at this commit, it gets stuck in uncurry, which dealiases `s.List` to `s.c.i.List` within the type. Some more background on the troublesome part of `TypeMap`: http://lrytz.github.io/scala-aladdin-bugtracker/displayItem.do%3Fid=1210.html https://github.com/scala/scala/commit/f8b2b21050e7a2ca0f537ef70e3e0c8eead43abc
* | | | Merge pull request #4839 from SethTisue/reword-dependent-type-errorSeth Tisue2015-11-142-3/+3
|\ \ \ \ | |_|_|/ |/| | | less confusing wording for a dependent method type error
| * | | less confusing wording for a dependent method type errorSeth Tisue2015-11-072-3/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | note to reviewers: the error messages in this file are over the place about whether they're called "parameter sections", or "argument lists", or what, so there's no point in being picky about that here for context see SI-823
* | | Merge pull request #4824 from szeiger/wip/sbt-mkBinJason Zaugg2015-11-136-137/+394
|\ \ \ | | | | | | | | Improvements to the sbt build
| * | | Improve version handling and scaladoc generation in sbt buildStefan Zeiger2015-11-062-91/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move version-related code into a separate VersionUtil object - Fix the canonical version. The sbt build previously took the full version including the suffix (plus timestamp and hash) whereas the ant build uses the version without the suffix - Include the version number in the generated scaladocs - Add project descriptions and include them in the scaladocs (like the ant build does) - Add other missing scaladoc options to the sbt build - Copy resources in all subprojects when building dist/mkQuick and fix `includeFilter` settings to include all required files
| * | | Build scaladoc sets from sbtStefan Zeiger2015-11-052-23/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
| * | | Create usable “quick” and “pack” builds from sbtStefan Zeiger2015-11-021-32/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add dependencies for scala-swing, scala-continuations-library and scala-continuations-plugin - Build all JARs for “pack” in dist/packageBin - Add “dist/mkQuick” task for building all required projects for “quick” and creating the launcher scripts - Add “dist/mkPack” task for packaging all required projects for “pack” and creating the launcher scripts - Include classes from “forkjoin” project in scala-library.jar
| * | | Create shaded JLine in sbt buildStefan Zeiger2015-10-294-9/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reusing parts of #4593, this commits adds two additional subprojects to the sbt build: - repl-jline, which is already used by the ant build, builds the part of the REPL that depends on JLine. The actual JLine depenency is moved to this project. - repl-jline-shaded uses JarJar to create a shaded version of repl-jline and jline.jar. Unlike the ant build, this setup does not use any circular dependencies. dist/mkBin puts all of quick/repl, quick/repl-jline and quick/repl-jline-shaded onto the classpath of build-sbt/quick/bin/scala. A future addition to the sbt build for building build-sbt/pack will have to put the generated classfiles into the correct JARs, mirroring the old structure.
| * | | Fix the dist/mkBin target in the sbt buildStefan Zeiger2015-10-271-3/+14
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Set the correct unmanagedResourceDirectories for the compiler and library projects. These projects already had includeFilter definitions to copy the correct resource files to the target dirs but they were meaningless without a source dir. - Set a target path for ‘dist’ to make stream files go to the proper .gitignored dir. - Set permissions ugo+rx on all generated script and batch files.
* | | Merge pull request #4809 from wpopielarski/delambdafy-multiple-outputsJason Zaugg2015-11-133-5/+78
|\ \ \ | | | | | | | | Multi output problem with delambdafied compilation
| * | | Test addedwpopielarski2015-11-061-0/+73
| | | |
| * | | Sets source for newly created lambda classwpopielarski2015-11-051-0/+1
| | | | | | | | | | | | | | | | | | | | This source is then used to figure out output folder for compilation product.
| * | | Allows to propagate fatal errors when output folder not found.wpopielarski2015-11-052-23/+8
| | | |
| * | | Multi output problem with delambdafied compilationwpopielarski2015-11-042-9/+23
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | User code compilation with -Ybackend:GenBCode -Ydelambdafy:method fails for projects with multiple output directories. The problem has its root in a fact that some `lambdaClass` symbols the `associatedFile` field is not set. It can be done in Delambdafy.scala (`makeAnonymousClass` method) and is working for following lambda examples: {{{ package acme object Delambdafy { type -->[D, I] = PartialFunction[D, I] def main(args: Array[String]): Unit = { val result = List(1, 2, 4).map { a => val list = List("1", "2", "3").map { _ + "test" } list.find { _ == a.toString + "test" } } lazy val _foo = foo(result) { case x::xs if x isDefined => x.get.length case _ => 0 } lazy val bar: Int => Int = { case 2 => 13 case _ => val v = List(1).map(_ + 42).head v + 1 } } def foo(b: List[Option[String]])(a: List[Option[String]] => Int): Int = a(b) } }}} but is NOT working for following lambda: {{{ package acme object Delambdafy { type -->[D, I] = PartialFunction[D, I] def main(args: Array[String]): Unit = { lazy val _baz = baz { case 1 => val local = List(1).map(_ + 1) local.head } } def baz[T](f: Any --> Any): Any => Any = f } }}} so that's why source of compilation unit is used to determine output directory in case when source file is not found for symbol.
* | | Merge pull request #4843 from SethTisue/scaladoc-little-d-pleaseJason Zaugg2015-11-1316-19/+19
|\ \ \ | |_|/ |/| | it's Scaladoc, not ScalaDoc
| * | it's Scaladoc, not "ScalaDoc" or "Scala doc"Seth Tisue2015-11-1216-19/+19
| | | | | | | | | | | | | | | renaming the existing ScalaDoc and ScalaDocReporter classes might break stuff, sadly, but at least we can fix the rest
* | | Merge pull request #4810 from ruippeixotog/fix-mutable-setlike-clearAdriaan Moors2015-11-122-1/+29
|\ \ \ | | | | | | | | SI-9497 Fix SetLike#clear() default implementation
| * | | SI-9497 Fix SetLike#clear() default implementationRui Gonçalves2015-10-212-1/+29
| | | | | | | | | | | | | | | | When dealing with mutable collections, it is not safe to assume iterators will remain consistent when the collection is modified mid-traversal. The bug reported in SI-9497 is very similar to SI-7269, "ConcurrentModificationException when filtering converted Java HashMap". Then, only the `retain` method was fixed. This commit fixes `clear`, which had the same problem.
* | | | Merge pull request #4804 from jvican/issue/9503Adriaan Moors2015-11-122-1/+3
|\ \ \ \ | | | | | | | | | | [SI-9503] Deprecate scala.collection.immutable.PagedSeq
| * | | | [SI-9503] Deprecate scala.collection.immutable.PagedSeqjvican2015-11-042-1/+3
| | | | |
* | | | | Merge pull request #4760 from ↵Adriaan Moors2015-11-125-88/+85
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | janekdb/2.11.x-collection-documentation-fixes-previously-4651 2.11.x collection documentation fixes
| * | | | Improve collections documentation and prefer () to {}vsalvis2015-10-275-88/+85
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove some duplicate method documentation that is now inherited - Whitespace edits - Rewording of method docs - Clearer usage examples - tparam alignment for some usecase tags - Prefer () to { } for do nothing bodies
* | | | Merge pull request #4833 from xuwei-k/patch-2Seth Tisue2015-11-091-5/+5
|\ \ \ \ | |/ / / |/| | | "macro" is a reserved word since Scala 2.11
| * | | "macro" is a reserved word since Scala 2.11kenji yoshida2015-11-021-5/+5
|/ / /
* | | Merge pull request #4803 from janekdb/2.11.x-conform-foreach-tparamSeth Tisue2015-10-2727-169/+170
|\ \ \ | | | | | | | | Conform foreach tparam to majority naming convention
| * | | Conform foreach tparam to majority naming conventionvsalvis2015-10-2127-169/+170
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'U' is the common choice for the foreach function result tparam. This command summarises the naming diversity before and after this change. $ fgrep -r 'def foreach[' *|cut -f2 -d:|cut -f1 -d'('|tr -s ' '|sed 's/override //g'|sort|uniq -c|sort -nr Before, 80 def foreach[U] 6 def foreach[C] 6 def foreach[B] 4 final def foreach[U] 3 def foreach[S] 2 inline final def foreach[U] 2 def foreach[A] 1 inline final def foreach[specialized 1 final def foreach[B] 1 * def foreach[U] 1 def foreach[Q] 1 def foreach[D] 1 def foreach[A,B,U] After, 98 def foreach[U] 5 final def foreach[U] 2 inline final def foreach[U] 1 inline final def foreach[specialized 1 * def foreach[U] 1 def foreach[A,B,U] (@ symbols removed.)
* | | Merge pull request #4818 from som-snytt/issue/4950-tweakJason Zaugg2015-10-272-13/+18
|\ \ \ | |_|/ |/| | SI-4950 Test reduction
| * | SI-4950 Test reductionSom Snytt2015-10-252-13/+18
|/ / | | | | | | | | | | A session test with extra filtering best expresses the intentions. No check file is required.
* | Merge pull request #4795 from SethTisue/windows-ciLukas Rytz2015-10-217-7/+32
|\ \ | | | | | | improvements to Windows build & test situation