summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | | Merge pull request #5061 from performantdata/benchmark-frameworkJason Zaugg2016-05-257-0/+457
| | |\ \ \ \ | | | | | | | | | | | | | | JMH-based benchmark framework
| | | * | | | Enable full compiler optimizations in JMH benchmarking.Performant Data LLC2016-05-051-1/+1
| | | | | | |
| | | * | | | Address JMH benchmark reviewer's issues.Performant Data LLC2016-05-033-59/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Besides tweaks to the documentation, this tests smaller (25-element) maps, and rewrites OpenHashMapRunner in more idiomatic Scala.
| | | * | | | Improve the OpenHashMapBenchmark run times.Performant Data LLC2016-05-031-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the warm-up invocations, suppress setup and teardown that is only needed for the measurement iterations. Reduce the number of forks.
| | | * | | | Add a JMH runner class to the library benchmark framework.Performant Data LLC2016-05-033-9/+167
| | | | | | |
| | | * | | | Benchmark the OpenHashMap memory usage.Performant Data LLC2016-05-034-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add sbteclipse to the benchmark project.
| | | * | | | Add get() tests to OpenHashMap, reduce timing artifacts.Performant Data LLC2016-05-031-35/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to get a better exploration of the variance of tests in a limited time, I've reduced the number of measurement iterations and increased the number of forks. By sight, the measurement iterations seemed pretty consistent within a trial, whereas they would vary widely on occasional forks. I extended testing down to 50-entry maps, to explore the rise in service times that I was seeing at small scale. This is probably a timing artifact, from too-short invocations, since I'm using @Level.Invocation in the put() tests. To fix that, I enlarged the unit of testing, by creating multiple, sometimes thousands, of maps for the invocation to fill. This has also changed the test from filling a previously-filled map, to filling a new, but sufficiently sized map. The put()/remove() test now performs much worse (on a more realistic scenario). This also adds a couple tests for calling get() against a map that's been filled only with put()s, or with a mix of put() and remove().
| | | * | | | Add a reference to Doug Lea's benchmarks.Performant Data LLC2016-05-031-1/+2
| | | | | | |
| | | * | | | Add JMH to the benchmark framework.Performant Data LLC2016-05-035-0/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an example benchmark for OpenHashMap.
| | * | | | | Merge pull request #5169 from som-snytt/issue/4625Lukas Rytz2016-05-2311-44/+111
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | SI-4625 Recognize App in script
| | | * | | | | SI-4625 Warn on first non-toplevel onlySom Snytt2016-05-172-42/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed the warning when main module is accompanied by snippets. Minor clean-up so even I can follow what is returned.
| | | * | | | | SI-4625 Warn when discarding script objectSom Snytt2016-05-174-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's pretty confusing when your script object becomes a local and then nothing happens. Such as when you're writing a test and it takes forever to figure out what's going on.
| | | * | | | | SI-4625 Permit arbitrary top-level in scriptSom Snytt2016-05-164-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In an unwrapped script, where a `main` entry point is discovered in a top-level object, retain all top-level classes. Everything winds up in the default package.
| | | * | | | | SI-4625 App is a thingSom Snytt2016-05-162-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scripting knows it by name.
| | | * | | | | SI-4625 Recognize App in scriptSom Snytt2016-05-164-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cheap name test: if the script object extends "App", take it for a main-bearing parent. Note that if `-Xscript` is not `Main`, the default, then the source is taken as a snippet and there is no attempt to locate an existing `main` method.
| * | | | | | | Merge commit 'f640fa0' into merge-2.11-to-2.12-june-1Lukas Rytz2016-06-010-0/+0
| |\| | | | | |
| | * | | | | | Merge pull request #5167 from martijnhoekstra/SI-9766Lukas Rytz2016-05-232-1/+20
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI 9766 - allow ++ on empty ConcatIterator
| | | * | | | | | SI-9766 - allow ++ on empty ConcatIteratorMartijn Hoekstra2016-05-212-1/+20
| | | |/ / / / /
| * | | | | | | Merge commit '4196569' into merge-2.11-to-2.12-june-1Lukas Rytz2016-06-012-1/+49
| |\| | | | | |
| | * | | | | | SI-9688 Make merge in immutable HashMap1 work with null kv.Łukasz Gieroń2016-05-232-1/+49
| | | |_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kv field of scala.collection.immutable.HashMap.HashMap1 can be null. This commit corrects the behavior of updated0 (which is on call path for merged) to work in such cases, instead of throwing NPE. Commit contains regression test.
| * | | | | | Merge commit '0d0671a' into merge-2.11-to-2.12-june-1Lukas Rytz2016-06-010-0/+0
| |\| | | | |
| | * | | | | Merge pull request #5178 from lrytz/readme211Adriaan Moors2016-05-203-185/+296
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | [backport] identical readme in 2.11.x as in 2.12.x
| | | * | | | | [backport] identical readme in 2.11.x as in 2.12.xLukas Rytz2016-05-193-185/+296
| | |/ / / / /
| * | | | | | Merge commit '90706b0' into merge-2.11-to-2.12-june-1Lukas Rytz2016-06-013-2/+0
| |\| | | | |
| | * | | | | Merge pull request #5172 from lrytz/move-testJason Zaugg2016-05-172-0/+0
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | Move t8449 to correct place
| | | * | | | | Move t8449 to correct placeLukas Rytz2016-05-172-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow-up for https://github.com/scala/scala/pull/4117
| | * | | | | | Remove default value for sourcepath in scalac (ant version). (#5166)Krzysztof Romanowski2016-05-171-2/+0
| | |/ / / / /
* | | | | | | Merge pull request #5198 from sjrd/privatize-range-membersLukas Rytz2016-06-011-17/+11
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Privatize the deprecated members of `immutable.Range`.
| * | | | | | Relax the semantics of `Range.lastElement` for internal use.Sébastien Doeraene2016-05-311-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `lastElement` is only used in code paths where the range is non-empty. It is therefore wasteful to try and give it a sort of sensible value for empty ranges.
| * | | | | | Privatize the deprecated members of `immutable.Range`.Sébastien Doeraene2016-05-311-7/+2
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation of these obscure members of `Range` are uselessly complicated for the purposes of `Range` itself. Making them private will allow to relax their semantics to the specific needs of `Range`, making them simpler, together with the initialization code of `Range`. `terminalElement` becomes dead code and is removed.
* / | | | | SI-9767 document and test behaviour of String->integer/float conversionsMike Pheasant2016-06-012-7/+46
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We delegate `String`'s extension methods `toInt`, `toFloat`, etc to corresponding methods in the Java standard library. These differ in the way they handle whitespace in the original string. This commit documents and tests the current behaviour.
* | | | | Merge pull request #5076 from soc/topic/deprecations-sinceLukas Rytz2016-05-30195-677/+786
|\ \ \ \ \ | | | | | | | | | | | | Improvements to deprecations related to `since` parameter
| * | | | | Add documentation to @deprecatedSimon Ochsenreither2016-05-294-21/+101
| | | | | |
| * | | | | Add since arg to deprecationWarning and use itSimon Ochsenreither2016-05-2966-132/+160
| | | | | |
| * | | | | Lower-case spelling of @deprecated messagesSimon Ochsenreither2016-05-28117-490/+484
| | | | | |
| * | | | | SI-9084 Add `since` (if available) to deprecation warningsSimon Ochsenreither2016-05-2828-87/+96
| | | | | |
| * | | | | SI-9483 Add `since` to `@deprecatedName`Simon Ochsenreither2016-05-271-3/+1
| | | | | |
* | | | | | Merge pull request #5191 from som-snytt/issue/9382Lukas Rytz2016-05-307-99/+131
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-9382 Privatize enhanced x in Tuple2Zipped.Ops
| * | | | | | SI-9382 Zippy clean-up in aisle 2 & 3Som Snytt2016-05-265-97/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consolated JUnit tests and heeded comment about private def and code beauty.
| * | | | | | SI-9382 Privatize enhanced x in Tuple2Zipped.OpsSom Snytt2016-05-254-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Probably there should be an Abide rule to avoid leaking the "underlying value" of a value class. The spec or SIP defines "underlying type" but doesn't mention the underlying value. The argument for concealing the member is that it is redundant and makes autocompletion results harder to read. Also, possibly an additional implicit might want to add a member so-named.
* | | | | | | Merge pull request #5193 from som-snytt/issue/9794Lukas Rytz2016-05-303-2/+10
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-9794 Error advice uses decoded method name
| * | | | | | | SI-9794 Error advice uses decoded method nameSom Snytt2016-05-263-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So much work went into polishing this error message, it's worth buffing the method name when it's an operator. The message now says `+` instead of `$plus`.
* | | | | | | | Merge pull request #5200 from lrytz/bootstrap-opt-optionsLukas Rytz2016-05-301-2/+0
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | Don't pass -opt to starr / locker build in the bootstrap script
| * | | | | | | Don't pass -opt to starr / locker build in the bootstrap scriptLukas Rytz2016-05-301-2/+0
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renaming -Yopt to -opt revealed that we're passing the flag when building the locker (and optionally the starr) version. This is not necessary: when building the next stage with the flag enabled, the same optimizations are performed no matter if the current stage was built with the flag or not.
* | | | | | | Merge pull request #5102 from milessabin/2.12.xJason Zaugg2016-05-2737-11/+514
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-2712 Add support for partial unification of type constructors
| * | | | | | | -Xexperimental mode now only includes -Ypartial-unificationMiles Sabin2016-05-243-5/+5
| | | | | | | |
| * | | | | | | SI-2712 Add support for higher order unificationMiles Sabin2016-05-2435-6/+509
| | | | | | | |
* | | | | | | | Merge pull request #5186 from lrytz/inlinerM5Jason Zaugg2016-05-276-18/+87
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Debug flag to print a summary of the inliner's work
| * | | | | | | | Debug flag to print a summary of the inliner's workLukas Rytz2016-05-246-18/+87
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output below. Note that inlining List.map fails because the trait forwarder uses `INVOKESPECIAL` for now, will change with pr 5177. $ cat Test.scala class C { def foo = Map(1 -> 'a', 2 -> 'b') def bar(l: List[Int]) = l.map(_ + 1) } $ qsc -Yopt-log-inline _ -Yopt:l:classpath Test.scala Inlining into C.foo (initially 36 instructions, ultimately 72): - Inlined scala/Predef$ArrowAssoc$.$minus$greater$extension (8 instructions) 2 times: the callee is annotated `@inline` Inlining into C.bar (initially 12 instructions, ultimately 12): - Failed to inline scala/collection/immutable/List.map (the callee is a higher-order method, the argument for parameter (bf: Function1) is a function literal): The callee scala/collection/immutable/List::map(Lscala/Function1;Lscala/collection/generic/CanBuildFrom;)Ljava/lang/Object; contains the instruction INVOKESPECIAL scala/collection/TraversableLike.map (Lscala/Function1;Lscala/collection/generic/CanBuildFrom;)Ljava/lang/Object; that would cause an IllegalAccessError when inlined into class C.
* | | | | | | | Merge pull request #5192 from dwijnand/wip/scala-repl-no-importsJason Zaugg2016-05-2713-31/+604
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Fully qualify types in REPL generated code