summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #4822 from retronym/ticket/9178Lukas Rytz2015-11-1811-1/+63
|\ | | | | SI-9178 Don't eta expand to an Function0-like SAM expected type
| * SI-9178 Test for the status quo of eta-expansion to Func0Jason Zaugg2015-11-172-0/+14
| |
| * SI-9178 Don't eta expand param-less method types to SAMsJason Zaugg2015-10-279-1/+49
| | | | | | | | | | | | Otherwise, we can end up with a subtle source incompatibility with the pre-SAM regime. Arguably we should phase out eta expansion to Function0 as well, but I'll leave that for another day.
* | Merge pull request #4827 from soc/SI-6162-publicSeth Tisue2015-11-172-2/+0
|\ \ | | | | | | SI-6162 Make @deprecated{Inheritance,Overriding} public
| * | SI-6162 Make @deprecated{Inheritance,Overriding} publicSimon Ochsenreither2015-10-282-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was kept private first with the expectation that further modifier changes might warrant a more extensible design. Until now, there doesn't seem to have appeared other interesting use-cases that warranted a design overhaul. This commit makes the existing annotations public to allow all Scala developers to benefit from it.
* | | Merge pull request #4825 from soc/topic/drop-threadpool-fallbackJason Zaugg2015-11-131-31/+12
|\ \ \ | | | | | | | | Remove ThreadPoolExecutor fallback in ExecutionContextImpl
| * | | Remove ThreadPoolExecutor fallback in ExecutionContextImplSimon Ochsenreither2015-10-281-31/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The method createDefaultExecutorService had a fallback if the creation of a ForkJoinPool didn't succeed. This was necessary, because Scala shipped its own version of FJP, and the dependency on sun.misc.Unsafe (which is not an "offical" official API) made portability slightly questionable. Now that we can assume that FJP is supplied by the JDK, this concern goes away.
* | | | Merge pull request #4834 from som-snytt/issue/9545-docJason Zaugg2015-11-131-23/+20
|\ \ \ \ | | | | | | | | | | SI-9545 SyncVar doc and deboxing
| * | | | SI-9545 De-option SyncVarSom Snytt2015-11-011-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't store the wrapped value double-wrapped in Option. Also burnish some more docs.
| * | | | SI-9545 Correct doc for SyncVar.get(t)Som Snytt2015-11-011-4/+3
| | | | | | | | | | | | | | | | | | | | It used to have javish semantics, but now is what it is.
* | | | | Merge pull request #4823 from soc/SI-7566-actor-leftoversJason Zaugg2015-11-134-151/+0
|\ \ \ \ \ | | | | | | | | | | | | SI-7566 Remove some private, deprecated remnants from scala-actors
| * | | | | SI-7566 Remove some private, deprecated remnants from scala-actorsSimon Ochsenreither2015-10-274-151/+0
| | |/ / / | |/| | |
* | | | | Merge pull request #4829 from etaty/patch-3Jason Zaugg2015-11-131-3/+3
|\ \ \ \ \ | | | | | | | | | | | | WrapAsScala: Fix documentation
| * | | | | WrapAsScala: Fix documentationValerian2015-10-291-3/+3
| | |/ / / | |/| | |
* | | | | Merge pull request #4844 from retronym/ticket/9555Jason Zaugg2015-11-131-17/+17
|\ \ \ \ \ | | | | | | | | | | | | SI-9555 Refactor SystemProperties to avoid mutable map
| * | | | | SI-9555 Refactor SystemProperties to avoid mutable mapJason Zaugg2015-11-131-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A mutable map with help text was lazy populated if and when lazy vals containing `BooleanProp` for a particular system was initialized. Reviewing this code, I noticed two problems: the class doesn't appear to be designed for multithreaded access (e.g. someone could call `help` while the map is being updated.), and the help method won't return anything until the vals below are accessed for the first time. We don't use the help method anywhere else, but kept it around in the unlikely event it was being used by some other tool. I've done away with the mutable map by just moving the help messages into a match in the help method itself.
* | | | | | Merge pull request #4840 from SethTisue/bump-intellij-project-jdk-versionJason Zaugg2015-11-121-1/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | | for 2.12, bump JDK version (6 -> 8) in IntelliJ sample config
| * | | | | for 2.12, bump JDK version (6 -> 8) in IntelliJ sample configSeth Tisue2015-11-091-1/+1
| | | | | |
* | | | | | Merge pull request #4838 from lrytz/removeIcodeLukas Rytz2015-11-1049-12017/+152
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Remove ICode (re-submission)
| * | | | | Minor cleanupsLukas Rytz2015-11-063-55/+3
| | | | | |
| * | | | | Use BTypes when building the lambdaMetaFactoryBootstrapHandleLukas Rytz2015-11-064-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All class internal names that are referenced from a class being compiled should be referenced through their ClassBType. This makes sure that the ClassBType is cached in `classBTypeFromInternalName`, which is required during classfile writing: when ASM computes stack map frames, we need to answer subtyping queries, for which we need to look up the ClassBTypes.
| * | | | | Simplify InvokeStyleLukas Rytz2015-11-062-71/+34
| | | | | |
| * | | | | Remove the rest of ICodesLukas Rytz2015-11-068-230/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only pieces of ICodes that were still used - An enum representing bytecode comparisons, re-implemented - The `icodes.IClass` class, which remains for sbt compatibility (https://github.com/scala/scala/pull/4588)
| * | | | | Remove ICode's TypeKinds, use BTypes in the backend insteadLukas Rytz2015-11-063-482/+8
| | | | | |
| * | | | | Remove ICodeSimon Ochsenreither2015-10-3144-11249/+104
| |/ / / /
* | | | | Merge pull request #4783 from mprudhom/patch-1Seth Tisue2015-11-061-6/+6
|\ \ \ \ \ | |/ / / / |/| | | | Repaired the alphabetical sorting of standards set
| * | | | Repaired the alphabetical sorting of standards setMarc Prud'hommeaux2015-10-271-6/+6
| | |/ / | |/| |
* | | | Merge pull request #4814 from soc/topic/drop-genasmLukas Rytz2015-10-2998-4119/+861
|\ \ \ \ | |/ / / |/| | | Remove GenASM
| * | | Remove GenASM, merge remaining common code snippetsSimon Ochsenreither2015-10-2798-4119/+861
| |/ / | | | | | | | | | | | | | | | | | | | | | With GenBCode being the default and only supported backend for Java 8, we can get rid of GenASM. This commit also fixes/migrates/moves to pending/deletes tests which depended on GenASM before.
* | | Merge pull request #4813 from rcmurphy/topic/improved-softrefSeth Tisue2015-10-271-0/+13
|\ \ \ | | | | | | | | Add Extractor and apply Method for SoftReference
| * | | Add Extractor and apply Method for SoftReferenceRebecca Claire Murphy2015-10-221-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scala.ref.WeakReference has two features which are lacking in scala.ref.SoftReference, an extractor and a .apply method that greatly enhance the usability of that class. This commit simply replicates that functionality for SoftReference.
* | | | Merge pull request #4808 from retronym/ticket/9527Seth Tisue2015-10-275-2/+31
|\ \ \ \ | | | | | | | | | | SI-9527 Fix NPE in ambiguous implicit error generation
| * | | | SI-9527 Fix NPE in ambiguous implicit error generationJason Zaugg2015-10-215-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In #4673, an annotation was added to allow customization of the compiler error for ambigous implicits. This change had incorrect assumptions about the shape of trees that would be generated during implicit search, and failed to account for the results of eta expanded methods when searching for a function type. This commit: - Uses the symbol from `ImpilcitInfo`, rather than calling `Tree#symbol` which is fraught with the danger of returning a null symbol for something other than an application. - Adds a test for customized messages for a polymorphic, eta expanded method, and generalizes `treeTypeArgs` to handle the implicit tree of shape `{ (x: X) => f[A](x)}`.
* | | | | Merge pull request #4794 from densh/topic/predef-autoboxingSeth Tisue2015-10-272-17/+52
|\ \ \ \ \ | | | | | | | | | | | | Fixes an inconsistency between BoxesRunTime and Predef's autoboxing
| * | | | | Fixes an inconsistency between BoxesRunTime and Predef's autoboxingDenys Shabalin2015-10-082-17/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously autoboxing implicits in Predef were inconsistent with BoxesRunTime box/unbox due to different treatment of unboxing of nulls. Implicits didn't check for null and would crash with NPE unlike the BoxesRunTime which correctly returned zero value of given type. The fix is trivial: lets just use asInstanceOfs to implement implicits in Predef. This would ensure that both have the same behaviour and that the two would not diverge again in the future.
* | | | | | Merge pull request #4811 from lrytz/opt/computeMaxsLukas Rytz2015-10-277-228/+405
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | More efficient way to compute maxLocals / maxStack
| * | | | | Use a single Int for the prod / cons values of InstructionStackEffectLukas Rytz2015-10-274-44/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The maximal number of produced values of any instruction is 6, so we can safely encode the number of consumed and produced values into a single Int as (prod << 3) + cons.
| * | | | | Support JSR / RET in computeMaxLocalsMaxStackLukas Rytz2015-10-272-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though the two bytecodes are not allowed in classfiles of version 51+ (see [1]), we could encounter them when inlining from a JAR file containing classfiles of older version. [1] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1
| * | | | | More efficient way to compute maxLocals / maxStackLukas Rytz2015-10-276-209/+386
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to run an asm Analyzer, the maxLocals / maxStack values of the method need to be computed. Asm doesn't provide an efficient built-in for this purpose, but it computes these values while serializing a class. Previously, we used to serialize the method just to compute the max's, which is inefficient. This commit implements a separate, efficient traversal. The computed values are also smaller, allowing to save space when running an Analyzer: asm Analyzers only allocate a single stack slot for long/double values, while the JVM allocates two. The maxStack computed previously would always use two slots, which is not necessary. The new calculation was verified to be correct in the following way: as a test, i left the old computation in place, ran the new one in addition (in a special mode where the long/double values take two slots) and asserted equality. Bootstrapping and test suite passed.
* | | | | Merge pull request #4820 from lrytz/t9535Lukas Rytz2015-10-279-27/+74
|\ \ \ \ \ | |_|_|_|/ |/| | | | SI-9535 correct bytecode and generic signatures for @throws[TypeParam]
| * | | | SI-9535 correct bytecode and generic signatures for @throws[TypeParam]Lukas Rytz2015-10-269-27/+74
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | For @throws[E] where E is not a class type, GenASM incorrectly writes the non-class type to the classfile. GenBCode used to crash before this commit. Now GenBCode correctly emits the erased type (like javac) and adds a generic signature.
* | | | Merge pull request #4821 from retronym/review/4817Jason Zaugg2015-10-271-32/+0
|\ \ \ \ | | | | | | | | | | Remove unneeded overrides from ReplGLobal
| * | | | Remove unneeded overrides from ReplGLobalSom Snytt2015-10-271-32/+0
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These seem to have been originally added as a basis for future REPL work, for instance moving away from textual code generation to using a custom typechecker to include definitions and imports from previous lines in scope. But until such work is started, lets remove the as-yet-uneeded customizations in the name of simplicity. (Original commits by Som Snytt, extended by Jason Zaugg to remove the custom typer.)
* | | | Merge pull request #4815 from som-snytt/test/stringcontext-fJason Zaugg2015-10-273-193/+160
|\ \ \ \ | | | | | | | | | | f interp test is junit
| * | | | f interp test is junitSom Snytt2015-10-253-193/+160
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Moves test/files/run/stringinterpolation_macro-run.scala to the junit test class test/junit/scala/StringContextTest.scala. Adds a couple of assertions to the test.
* | | | Merge pull request #4807 from lrytz/opt/innerClassAttrLukas Rytz2015-10-2613-317/+344
|\ \ \ \ | |/ / / |/| | | Simplify and correctify calculation of the InnerClass attribute
| * | | Clean up CoreBTypes, consistent names, remove unused entriesLukas Rytz2015-10-2010-190/+136
| | | |
| * | | Simplify and correctify calculation of the InnerClass attributeLukas Rytz2015-10-2011-153/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The InnerClass attribute needs to contain an entry for every nested class that is defined or referenced in a class. Details are in a doc comment in BTypes.scala. Instead of collecting ClassBTypes of nested classes into a hash map during code generation, traverse the class before writing it out to disk. The previous approach was incorrect as soon as the generated bytecode was modified by the optimzier (DCE, inlining). Fixes https://github.com/scala/scala-dev/issues/21.
* | | | Merge pull request #4802 from SethTisue/merge-2.11-to-2.12-oct-16Lukas Rytz2015-10-2126-88/+264
|\ \ \ \ | |/ / / |/| | | merge 2.11 to 2.12 Oct 16
| * | | merge 2.11.x onto 2.12.x, Oct 16 2015Seth Tisue2015-10-1626-88/+264
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | there were merge conflicts in the Eclipse config that I resolved with --ours. I invite @performantdata to submit a followup PR bringing the Eclipse stuff into a good state on 2.12.x. there was a test failure in test/junit/scala/collection/mutable/OpenHashMapTest.scala due to the 2.12 compiler emitting the field backing a private var differently (with an unmangled name). Lukas says the difference is expected, so I just updated the code in the test. there were no other merge conflicts. % git log --decorate --oneline -1 origin/2.11.x | cat ae5f0de (origin/HEAD, origin/2.11.x) Merge pull request #4791 from performantdata/issue/9508 % git log --decorate --oneline -1 origin/2.12.x | cat c99e53e (HEAD -> 2.12.x, origin/2.12.x) Merge pull request #4797 from lrytz/M3-versions % export MB=$(git merge-base 2.12.x origin/2.11.x) % echo $MB 42cafa21f3c4a08c6dd34608278f810b6ec2886f % git log --graph --oneline --decorate $MB...origin/2.11.x | cat * ae5f0de (origin/HEAD, origin/2.11.x) Merge pull request #4791 from performantdata/issue/9508 |\ | * 08dca37 (origin/pull/4791) SI-9508 fix classpaths in Eclipse configuration * | fe76232 Merge pull request #4798 from performantdata/issue/9513 |\ \ | * | 9c97a7f (origin/pull/4798) Suppress unneeded import. | * | 30d704d Document some OpenHashMap internal methods. | * | 1fb32fc SI-9513 decrement "deleted" count in OpenHashMap.put() when slot reused | |/ * | 14f875c Merge pull request #4788 from dk14/patch-1 |\ \ | * | 42acd55 (origin/pull/4788) explicitly specify insertion-order feature in docs | / * | 68ce049 Merge pull request #4771 from som-snytt/issue/9492-here |\ \ | * | f290962 (origin/pull/4771) SI-9492 Line trimming paste | * | bc3589d SI-9492 REPL paste here doc | / * | 9834fc8 Merge pull request #4610 from todesking/spec-implicits-remove-obsolete |\ \ | * | 46009b1 (origin/pull/4610) Add view/context-bound parameter ordering rule | * | 6eba305 Spec: Implicit parameters with context/view bound is allowed since 2.10 | / * | d792e35 Merge pull request #4789 from janekdb/2.11.x-param-names-predicates-operations |\ \ | |/ |/| | * b19a07e (origin/pull/4789) Rename forall, exists and find predicate and operator params. |/ * 648c7a1 Merge pull request #4790 from SethTisue/issue/9501 |\ | * 40d12f1 (origin/pull/4790) SI-9501 link README to Scala Hacker Guide * e0b5891 Merge pull request #4786 from performantdata/issue/9506 * 39acad8 (origin/pull/4786) SI-9506 suppress Scala IDE-generated files in the Eclipse project dirs * 74dc364 SI-9506 suppress Scala IDE-generated files in the Eclipse project dirs % git merge ae5f0de Auto-merging src/repl/scala/tools/nsc/interpreter/ILoop.scala Auto-merging src/library/scala/util/Either.scala Auto-merging src/library/scala/runtime/Tuple3Zipped.scala Auto-merging src/library/scala/runtime/Tuple2Zipped.scala Auto-merging src/library/scala/collection/parallel/ParIterableLike.scala Auto-merging src/library/scala/collection/immutable/ListMap.scala Auto-merging src/library/scala/collection/TraversableLike.scala Auto-merging src/eclipse/test-junit/.classpath CONFLICT (content): Merge conflict in src/eclipse/test-junit/.classpath Auto-merging src/eclipse/scaladoc/.classpath CONFLICT (content): Merge conflict in src/eclipse/scaladoc/.classpath Auto-merging src/eclipse/scala-compiler/.classpath Auto-merging src/eclipse/repl/.classpath CONFLICT (content): Merge conflict in src/eclipse/repl/.classpath Auto-merging src/eclipse/partest/.classpath CONFLICT (content): Merge conflict in src/eclipse/partest/.classpath Auto-merging src/eclipse/interactive/.classpath Auto-merging README.md Automatic merge failed; fix conflicts and then commit the result. % git checkout --ours src/eclipse/partest/.classpath % git checkout --ours src/eclipse/repl/.classpath % git checkout --ours src/eclipse/scaladoc/.classpath % git checkout --ours src/eclipse/test-junit/.classpath % git add -u % emacs test/junit/scala/collection/mutable/OpenHashMapTest.scala % git diff test/junit/scala/collection/mutable/OpenHashMapTest.scala | cat ... - val field = m.getClass.getDeclaredField("scala$collection$mutable$OpenHashMap$$deleted") + val field = m.getClass.getDeclaredField("deleted") ... % git add -u