summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Add an option to let pres compiler user manage threadingJason Zaugg2015-09-022-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The presentation compiler currently demands that all interaction is performed by asynchronous submission of work items, which are queued and executed on the presentation compiler thread. This is fairly inconvenient if you are a known-single-threaded client that is trying to use the compiler from your own thread. This commit adds an option to disable "assertCorrectThread" to better support this use case.
| * | | | SI-5408 Prompt after incomplete script pasteSom Snytt2015-09-022-66/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Transcript paste mode invites the user to keep typing like regular paste mode, but really you must enter more transcript. This matters if the script ends in the middle of incomplete code that the user wants to complete by hand. Previously, ``` scala> scala> def f() = { // Detected repl transcript paste: ctrl-D to finish. // Replaying 1 commands from transcript. scala> def f() = { scala> scala> def f() = { // Detected repl transcript paste: ctrl-D to finish. | } // Replaying 1 commands from transcript. scala> def f() = { } f: ()Unit ``` Now, ``` scala> scala> def f() = { // Detected repl transcript. Paste more, or ctrl-D to finish. // Replaying 1 commands from transcript. scala> def f() = { | 42 | } f: ()Int scala> f() res0: Int = 42 ```
| * | | | Update power mode bannerSom Snytt2015-09-022-24/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The classic banner is available under -Dscala.repl.power.banner=classic. ``` scala> :power Power mode enabled. :phase is at typer. import scala.tools.nsc._, intp.global._, definitions._ Try :help or completions for vals._ and power._ ```
| * | | | SI-4438 FindAll implicits after errorJason Zaugg2015-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix cross talk between candidates in ImplicitComputation#findAll. Haoyi reported that he couldn't get the presentation compiler to offer completion suggestions for extension methods on primitive arrays. Turns out that an error in typechecking the previous candidate had not been cleared, and this was taken to mean that `arrayIntOps` was itself ineligible. After this patch: ``` scala> Array(1, 2, 3) reverse reverseIterator reverse reverseMap reversed scala> Array(1,2,3).reverse //print scala.Predef.intArrayOps(scala.Array.apply(1, 2, 3)).reverse scala> Array(1, 2, 3) to toString toCollection toSeq toIterator to toMap toSet toList toArray toBuffer toStream toIterable toTraversable toVector toIndexedSeq scala> Array(1, 2, 3) toSeq override def toSeq: Seq[Int] ```
* | | | | Merge pull request #4716 from Ichoran/issue/9388Lukas Rytz2015-09-212-42/+73
|\ \ \ \ \ | | | | | | | | | | | | SI-9388 Fix Range behavior around Int.MaxValue
| * | | | | SI-9388 Fix Range behavior around Int.MaxValueRex Kerr2015-09-192-42/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | terminalElement (the element _after_ the last one!) was used to terminate foreach loops and sums of non-standard instances of Numeric. Unfortunately, this could result in the end wrapping around and hitting the beginning again, making the first element bad. This patch fixes the behavior by altering the loop to end after the last element is encountered. The particular flavor was chosen out of a few possibilities because it gave the best microbenchmarks on both large and small ranges. Test written. While testing, a bug was also uncovered in NumericRange, and was also fixed. In brief, the logic around sum is rather complex since division is not unique when you have overflow. Floating point has its own complexities, too. Also updated incorrect test t4658 that insisted on incorrect answers (?!) and added logic to make sure it at least stays self-consistent, and fixed the range.scala test which used the same wrong (overflow-prone) formula that the Range collection did.
* | | | | | Merge pull request #4736 from gourlaysama/ticket/t9429Lukas Rytz2015-09-211-1/+11
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-9429 fix filtering in scaladoc after focusing on a package
| * | | | | | SI-9429 fix filtering in scaladoc after focusing on a packageAntoine Gourlay2015-09-151-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The scaladoc left pane used to be refreshed too often until ce5cfd2 when it was changed to only refresh when the filter changed. This forgot one important case when it also must be refreshed: when entering the "focus on a single package" mode (and it has been broken ever since). This forces a refresh when focusing on a package, and makes sure all entities are displayed when filtering.
* | | | | | | Merge pull request #4758 from lrytz/pagedSeqNpeSeth Tisue2015-09-211-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix NPE in PagedSeq.slice at end of seq
| * | | | | | | Fix NPE in PagedSeq.slice at end of seqTomas Janousek2015-09-211-2/+2
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/scala/scala-parser-combinators/issues/70 Basically the same thing as SI-6615, including the fact everything works okay if the PagedSeq is printed before calling slice. It might seem strange that this allows taking slices that start beyond the end, but - this was possible anyway if one forced the entire sequence, and - it is reasonable to be able to take a slice at the very end (not beyond it) and get an empty sequence, which is exactly what StreamReader in scala-parser-combinators does and gets an NPE.
* | | | | | | Merge pull request #4751 from SethTisue/scala-dash-versionLukas Rytz2015-09-211-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | bump copyright year in `scala -version`
| * | | | | | | bump copyright year in `scala -version`Seth Tisue2015-09-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a little piece of #4644 I missed. fixes this: % scala -version Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL
* | | | | | | | Merge pull request #4752 from alexeyr/topic/errornonexistentfield-messageLukas Rytz2015-09-211-3/+3
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | [backport] Include owner in ErrorNonExistentField message
| * | | | | | | [backport] Include owner in ErrorNonExistentField messageAlexey Romanov2015-09-181-3/+3
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | This should be particularly helpful for synthetic field names like `evidence$21`.
* | | | | | | Merge pull request #4754 from SethTisue/bump-partest-versionSeth Tisue2015-09-201-1/+1
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | use latest partest (1.0.9)
| * | | | | | use latest partest (1.0.9)Seth Tisue2015-09-181-1/+1
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the new version should be no different, from this repo's perspective, since the changes made between 1.0.7 and 1.0.9 had only to do with build and packaging. nonetheless, we should be using the latest latest to help guard against regressions. (my other motive is that I'm contemplating fixing a partest issue that would result in a 1.0.10 release, so I'd like to have the upgrade to 1.0.9 in place first, so if anything goes wrong there is less searching to do for the cause)
* | | | | | Merge pull request #4724 from retronym/topic/positioned-errorsLukas Rytz2015-09-181-8/+12
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Try harder to avoid reporting unpositioned errors
| * | | | | Try harder to avoid reporting unpositioned errorsJason Zaugg2015-09-021-8/+12
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than issuing an error at NoPosition, which usually means an unpositioned tree is being typechecked, walk up the context chain for an enclosing positioned tree. I've tested this manually with ensime which was getting an unpositioned warning as a result of a unpositioned trees created by a macro in scalatest. ``` % ../scala-positioned-error/build/quick/bin/scalac @args.txt /Users/jason/code/ensime-server/core/src/it/scala/org/ensime/core/RichPresentationCompilerSpec.scala:216: warning: implicit numeric widening ) { (p, cc) => ^ ```
* | | | | SI-9475 Dependent PolyTypes are dependent typesVlad Ureche2015-09-171-0/+3
| |_|/ / |/| | | | | | | | | | | Such that uncurry can correctly un-dependify them.
* | | | Merge pull request #4738 from janekdb/2.11.x-urls-driftedSeth Tisue2015-09-157-10/+9
|\ \ \ \ | | | | | | | | | | Improve drifted URLs
| * | | | Improve drifted URLsJanek Bogucki2015-09-097-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Any.scala: Link to the guide instead of the SIP. - AnyVal.scala: Remove SIP link and align guide link to Any.scala. - Commands.scala: Use a less out of date team link. - Logic.scala: Link was broken. Substitute found. - Process.scala: Links were 403 & 404. Fixed as this is a code sample. - TypeMaps.scala: Move old EPFL Trac to JIRA. - RedBlackTree.scala: Replaced broken link with substitutes based on site maintainer input [1]. [1] When asked where Data-Set-RBTree.html had gone Don@UNSW advised "I think it's on the Haskell wiki now. It was Chris Okazaki's version". The closest I could find to what this document probably was is this paper by Hinze edited by Okasaki, http://www.cs.ox.ac.uk/ralf.hinze/publications/WAAAPL99b.ps.gz The paper cites the Okasaki document so I included a link to that as well. The Haskell Wiki does have a link to a RB document but that's broken too, https://wiki.haskell.org/Research_papers/Data_structures > Constructing red-black trees
* | | | | Merge pull request #4728 from janekdb/2.11.x-urls-docs-codehaus-citeseerSeth Tisue2015-09-158-8/+11
|\ \ \ \ \ | | | | | | | | | | | | Update links to docs, codehaus and citeseer
| * | | | | Update links to docs, codehaus and citeseerJanek Bogucki2015-09-048-8/+11
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | docs.scala-lang.org - Align some links to new layout for docs.scala-lang.org - Include link to concrete parallel collection performance characteristics codehaus - Subsitute a link to a JIRA email for the 404 JRUBY-3576 JIRA link in Codec.scala. jira.codehaus.org is not redirecting this. citeseer - Replace the citeseer link with a direct link to a PDF which is not behind a login challenge.
* | | | | Merge pull request #4742 from janekdb/2.11.x-scaladoc-in-context-ListSeth Tisue2015-09-151-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Restore missing element type to List class documentation
| * | | | | Restore missing element type to List class documentationJanek Bogucki2015-09-111-1/+1
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See line 18, git show cb1c0c src/library/scala/collection/immutable/List.scala|head -20|cat -n This shows the type reference prior to removal.
* | | | | Merge pull request #4727 from SethTisue/unset-stray-execute-bitsSeth Tisue2015-09-1434-0/+0
|\ \ \ \ \ | | | | | | | | | | | | unset inappropriate execute bits
| * | | | | unset inappropriate execute bitsSeth Tisue2015-09-0234-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
* | | | | | SI-9369 Fix pattern matcher warnings for diamond shaped inheritance.Gerard Basler2015-09-121-1/+5
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A previous optimization (d44a86f432a7f9ca250b014acdeab02ac9f2c304) for pattern matcher exhaustivity checks used a smarter encoding to ensure that the scrutinee can be equal to one child only. However, in case of traits between the root and leave type, a child can be of several types and these types should not be in a mutually exclusive group. A simple solution (hat tip to retronym) is to just put traits and classes into separate groups.
* | | | | Merge pull request #4714 from Ichoran/issue/9407Seth Tisue2015-09-081-10/+1
|\ \ \ \ \ | | | | | | | | | | | | SI-9407 Vector implementation bit-shift bugfix
| * | | | | SI-9407 Vector implementation bit-shift bugfixRex Kerr2015-08-291-10/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Fixed logically incorrect or unnecessary code in Vector as reported by Dirk Toewe. No tests. Because of the size of the vectors, tests would be impractically slow. Also, the logic is quite clear: when you are recursing through a tree, using the wrong bit shift means you hit the wrong part of the tree, and when you create and then always overwrite a mutable var, you should just not do it to begin with.
* | | | | Merge pull request #4333 from Ichoran/opt-Iterator-2.11.xSeth Tisue2015-09-081-59/+162
|\ \ \ \ \ | | | | | | | | | | | | Performance optimization - Iterator
| * | | | | Performance optimization - Iterator span, collect, dropWhileRex Kerr2015-08-071-35/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite of span to avoid double-indirection of `.buffered` and to avoid use of `mutable.Queue` unless it is absolutely necessary. Rewrite of `span` and `dropWhile` to also avoid `.buffered` (less DRY but single vs. double indirection and object allocation). Performance improvements: ``` method reason =========== =============================================================== collect 2.3x faster on small collections, 1.5x on large span 1.6-1.7x faster on small collections 0.85x-1.8x slower/faster on large collections depending on how much must be cached (0.85x all, 1.8x none) dropWhile 1.2x faster on small collections, half the garbage ```
| * | | | | Performance optimization - Iterator flatMap, find, indexWhere, indexOfRex Kerr2015-08-071-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tightened up bytecode, logic, and/or performance by using local return instead of a mutable variable in several methods. Performance/bytecode size improvements (smaller bytecode = better inlining) ``` method reason =========== =============================================================== flatMap hasNext bytecode 34 bytes down from 62 find bytecode 41 bytes instead of 53 indexWhere 1.5x faster on small collections (some contexts) indexOf bytecode 89 bytes instead of 110 ```
* | | | | | Merge pull request #4713 from SethTisue/batch-of-typosJason Zaugg2015-09-086-8/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | fix typos/spelling
| * | | | | | fix assorted typosSeth Tisue2015-08-286-8/+8
| | |/ / / / | |/| | | |
* | | | | | Merge pull request #4722 from janekdb/2.11.x-scaladoc-in-context-AnyValDick Wall2015-09-062-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Link to completed value classes SIP page instead of pending version
| * | | | | | Link to completed value classes SIP page instead of pending versionJanek Bogucki2015-09-012-2/+2
| | |_|_|/ / | |/| | | |
* | | | | | Merge pull request #4706 from VladUreche/issue/tree-checkerJason Zaugg2015-09-061-1/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | Re-enable tree checkers
| * | | | | | Re-enable tree checkersVlad Ureche2015-08-241-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My expectation is that tree checkers are re-typechecking the trees and making sure they are consistent. Unfortunately, following patch aced32d05c97651534f468bc9a475ea5f6ae75b8, the call to clearType() was removed, thus the typer no longer recursed inside the trees, rendering the type checkers framework useless. This is an attempt to make the tree checkers run again, by resetting the type of a tree before the call to super.typed, thus allowing the typer to actually visit the entire tree (not just the outer package definition). The work was prompted by SI-9442, where the type checkers would gladly allow validate the inconsistent trees.
* | | | | | | Merge pull request #4704 from VladUreche/issue/9442Jason Zaugg2015-09-063-10/+55
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | SI-9442 Fix the uncurry-erasure types
| * | | | | | SI-9442 Fix the uncurry-erasure typesVlad Ureche2015-08-233-10/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the "uncurry-erased" type (the one after the uncurry phase) can lead to incorrect tree transformations. For example, compiling: ``` def foo(c: Ctx)(l: c.Tree): Unit = { val l2: c.Tree = l } ``` Results in the following AST: ``` def foo(c: Ctx, l: Ctx#Tree): Unit = { val l$1: Ctx#Tree = l.asInstanceOf[Ctx#Tree] val l2: c.Tree = l$1 // no, not really, it's not. } ``` Of course, this is incorrect, since `l$1` has type `Ctx#Tree`, which is not a subtype of `c.Tree`. So what we need to do is to use the pre-uncurry type when creating `l$1`, which is `c.Tree` and is correct. Now, there are two additional problems: 1. when varargs and byname params are involved, the uncurry transformation desugares these special cases to actual typerefs, eg: ``` T* ~> Seq[T] (Scala-defined varargs) T* ~> Array[T] (Java-defined varargs) =>T ~> Function0[T] (by name params) ``` we use the DesugaredParameterType object (defined in scala.reflect.internal.transform.UnCurry) to redo this desugaring manually here 2. the type needs to be normalized, since `gen.mkCast` checks this (no HK here, just aliases have to be expanded before handing the type to `gen.mkAttributedCast`, which calls `gen.mkCast`)
* | | | | | | Merge pull request #4726 from janekdb/2.11.x-now-Oracle-urlsSeth Tisue2015-09-037-7/+7
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Update Java and Sun URLs to replacement Java and Oracle URLs
| * | | | | | | Update Java and Sun URLs to replacement Java and Oracle URLsJanek Bogucki2015-09-027-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For each URL - Where it redirected the target of the redirection was used - Where is no longer existed a replacement was selected
* | | | | | | | Merge pull request #4715 from Ichoran/issue/9424Seth Tisue2015-09-021-2/+13
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | SI-9424 Clarify behavior of PriorityQueue toString
| * | | | | | | SI-9424 Clarify behavior of PriorityQueue toStringRex Kerr2015-08-291-2/+13
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clarified that PriorityQueue will not print in order and gave an example of a workaround if one needs it. Documentation change only; no tests.
* | | | | | | Merge pull request #4701 from janekdb/2.11.x-scaladoc-in-context-OptionSeth Tisue2015-09-021-1/+1
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | Improve comment in Option.collect example
| * | | | | | Improve implementation comments in Option.collect exampleJanek Bogucki2015-08-311-1/+1
| | |/ / / / | |/| | | |
* | | | | | Merge pull request #4692 from JanBessai/Fix-SI-6636Adriaan Moors2015-08-312-0/+23
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | SI-6636 Fix macro expansion in toolboxes
| * | | | | SI-6636 Fix macro expansion in toolboxesJan Bessai2015-08-232-0/+23
| | | | | |
* | | | | | Merge pull request #4707 from fthomas/topic/pins-linkLukas Rytz2015-08-281-2/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add link to online version of Programming in Scala