summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Preliminary support for zinc.Adriaan Moors2013-04-021-0/+67
| | | | | | | | | | | | To use Zinc with the ant build: - install zinc and symlink the installed zinc script to ${basedir}/tools/zinc (${basedir} is where build.xml and the rest of your checkout resides) - make sure to set ZINC_OPTS to match ANT_OPTS! - invoke ant as `ant -Dstarr.version="2.10.1" -Dlocker.skip=1` (zinc does not work if locker is only classfiles, needs jars TODO rework the build to pack locker and build using that when using zinc?) Mostly to enable dog fooding of incremental compilation work for now.
* Regularity for build.xml: 1 output dir / projectAdriaan Moors2013-04-021-90/+89
| | | | | | | Untangle actors, msil builds from library/compiler builds. For further regularity, always build java files. TODO: update IDE projects
* get rid of args element in staged-scalacAdriaan Moors2013-04-011-18/+10
|
* Merge pull request #2321 from kzys/js-deferAdriaan Moors2013-04-013-23/+30
|\ | | | | Scaladoc: Load scripts at the bottom, and with a defer attribute
| * Scaladoc: Load scripts at the bottom, and with a defer attributeKato Kazuyoshi2013-03-273-23/+30
| | | | | | | | | | | | | | To improve latency on modern browsers (which supports defer) and old browsers: * https://www.webkit.org/blog/1395/running-scripts-in-webkit/ * http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_5/
* | Merge pull request #2330 from adriaanm/partest-difftoolsGrzegorz Kossakowski2013-03-3110-2019/+637
|\ \ | | | | | | Use java-diff-utils for diffing in partest.
| * | Strip version suffix from diffutils.Adriaan Moors2013-03-293-11/+13
| | |
| * | Use java-diff-utils for diffing in partest.Adriaan Moors2013-03-2910-2018/+634
|/ / | | | | | | | | | | | | | | We now use the unified diff format, hence the updated check files. It's not clear to me how partest's classpath is managed, but the approach in this commit works for the ant task and script invocation. The diffutils jar is injected in the parent classloader.
* | Merge pull request #2314 from adriaanm/build-fixesGrzegorz Kossakowski2013-03-292-335/+222
|\ \ | | | | | | further tweaks to the ant build
| * | Clean up pack targets. Better dependency tracking.Adriaan Moors2013-03-271-89/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Target pack.@{project} is considered up to date iff classes emitted by quick.@{project} are. TODO: encapsulate "classes emitted by quick.@{project}". For now, they are duplicated as references to `${build-@{stage}.dir}/classes/@{destproject}` (in staged-scalac and *.build.path)
| * | ant clean only zaps the quick stageAdriaan Moors2013-03-271-2/+2
| | |
| * | Run test.scaladoc before test.suite. Fail fast.Adriaan Moors2013-03-271-1/+1
| | |
| * | Let continuations library sources determine docs.lib's actualityAdriaan Moors2013-03-261-0/+1
| | |
| * | Preparation for faster PR validationAdriaan Moors2013-03-262-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added starr.number, so that `ant -propertyfile starr.number -Dlocker.skip=1` works across branches. Introduced target `test.core`, which skips `test.stability`, since that requires `locker == quick`, whereas `locker == starr` with the above settings. (It's interesting to see for which files it fails when that assumption is broken.) Stability will still be tested on a nightly basis. It's rarely broken.
| * | Remove duplication in java builds of fjbg/asm/forkjoinAdriaan Moors2013-03-261-66/+31
| | |
| * | Formatting. Introduce {asm,forkjoin,fjbg}-classes props.Adriaan Moors2013-03-251-74/+79
| | |
| * | remove unused ant targets: test.ant, test.classload, test.positionsAdriaan Moors2013-03-251-100/+0
| | |
| * | run test.bc as part of tests on 2.10.xAdriaan Moors2013-03-251-7/+10
| | | | | | | | | | | | also added test.bc-opt target as binary compatibility differs between (non)optimized builds...
| * | restored dependency of pack.done on quick.binAdriaan Moors2013-03-251-1/+2
| |/
* | Merge pull request #2292 from retronym/ticket/7285Adriaan Moors2013-03-279-7/+170
|\ \ | | | | | | SI-7285 Fix match analysis with nested objects
| * | SI-7285 Fix match analysis with nested objects.Jason Zaugg2013-03-238-8/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fix for SI-6146 introduced `nestedMemberType` to enumerate sealed subtypes based on the (prefixed) type of the scrutinee and the symbols of its sealed subclasses. That method needed to widen `ThisType(modSym)`s to `ModuleTypeRef(modSym)` before calling `asSeenFrom`. However, this could lead to confused in the match analysis, which sees `ModuleTypeRef` as distinct from singleton types on the same modules (after all, they aren't =:=). Spurious warnings ensued. This commit makes two changes: - conditionally re-narrow the result of `asSeenFrom` in `nestedMemberType`. - present `a.b.SomeModule.type` as `SomeModule` in warnings emitted by the pattern matcher.
| * | Expand test for SI-6124 to demonstrate cause of SI-7285.Jason Zaugg2013-03-232-3/+14
| | |
* | | Merge pull request #2291 from retronym/ticket/7290Adriaan Moors2013-03-275-5/+45
|\ \ \ | | | | | | | | SI-7290 Discard duplicates in switchable alternative patterns.
| * | | SI-7290 Minor cleanups driven by review comments.Jason Zaugg2013-03-272-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | - make a def a val, we only need to compute it once - add a clarifying comment - only report the first duplicate
| * | | SI-7290 Discard duplicates in switchable alternative patterns.Jason Zaugg2013-03-235-3/+43
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | The pattern matcher must not allow duplicates to hit the backend when generating switches. It already eliminates then if they appear on different cases (with an unreachability warning.) This commit does the same for duplicated literal patterns in an alternative pattern: discard and warn.
* | | Merge pull request #2288 from paulp/pr/2273-with-editsPaul Phillips2013-03-273-11/+41
|\ \ \ | |_|/ |/| | SI-6387 Clones accessor before name expansion
| * | SI-6387 Clones accessor before name expansionEugene Vigdorchik2013-03-253-11/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a symbol's name is expanded due to a conflict during composition (e.g. multiple traits with same-named members, but which are not both visible at the language level in the concrete class) the compiler renames some symbols with expanded names which embed the full name of the declaring class to avoid clashes. In the rare cases when the accessor overrides the member in base class, such expansion either results in AbstractMethodError when the base method is abstract, or, even worse, can change the semantics of the program. To avoid such issues, we clone the accessor symbol, clear its ACCESSOR flag and enter the symbol with an unchanged name.
* | | Merge pull request #2252 from soc/SI-7237-2.10Paul Phillips2013-03-251-5/+2
|\ \ \ | | | | | | | | [backport] SI-7237 Always choose ForkJoinTaskSupport
| * | | [backport] SI-7237 Always choose ForkJoinTaskSupportSimon Ochsenreither2013-03-151-5/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... on Java 6 and above. ForkJoinTaskSupport works on Hotspot, Avian and J9, while ThreadPoolTaskSupport causes the test test/files/scalacheck/parallel-collections to reliably hang on all three. We keep ThreadPoolTaskSupport around to keep the hope alive that we still have a glimpse of 1.5 support.
* | | Merge pull request #2270 from retronym/ticket/7246-2Paul Phillips2013-03-259-22/+99
|\ \ \ | | | | | | | | SI-7246 Make $outer pointer elision Java aware
| * | | SI-7246 Make $outer pointer elision Java awareJason Zaugg2013-03-239-22/+99
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In e0853b3, a space-saving optimization elided the outer pointer of inner classes if the the (protected) outer pointer of the immediate parent class was guaranteed to point to the same instance. But, this check failed to account for Java parent classes, which don't follow the Scala scheme. This commit disables the optimization in that case. The original test case in e0853b3 was anemic, I've fleshed it out to: - test the presense or absense of $outer pointers with Java reflection - test the optimization works in the presense of aliased and annotated aliased types. (The former worked already, the latter required a change to the implementation.) - Test the negative case when the prefixes don't line up and the subclass in fact needs its own $outer. This patch is based on work by Euguene Vigdorchik with some additions by Jason Zaugg.
* | | Merge pull request #2306 from retronym/ticket/7299Paul Phillips2013-03-253-2/+21
|\ \ \ | | | | | | | | SI-7299 Improve error message for eta-expanding 23+ param method
| * | | SI-7299 Improve error message for eta-expanding 23+ param methodJason Zaugg2013-03-253-2/+21
| | | | | | | | | | | | | | | | Before, we got `error: missing arguments for method f`.
* | | | Merge pull request #2304 from adriaanm/build-cleanup-2.10Paul Phillips2013-03-251-6/+6
|\ \ \ \ | | | | | | | | | | Fix typos in build.xml
| * | | | Fix typos in build.xmlAdriaan Moors2013-03-241-6/+6
| | | | |
* | | | | Merge pull request #2257 from JamesIry/2.10.x_classfile_51Paul Phillips2013-03-259-3/+185
|\ \ \ \ \ | | | | | | | | | | | | Read version 51 (JDK 7) class files.
| * | | | | Log when invokedynamic instruction is encounteredJames Iry2013-03-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on the review of https://github.com/scala/scala/pull/2257, this commit adds a debuglog when an invokedynamic instruction is found during class file parsing as a reminder that the implementation is just a place holder.
| * | | | | Read version 51 (JDK 7) class files.James Iry2013-03-149-3/+184
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes the ClassFileReader/ICodeReader parse class files from JDK 7 (class file version 51). It does that by skipping over the method handle related entries in the constant pool and by doing some dummy processing on invoke dynamic instructions. The inliner is updated to not try to inline a method with an invoke dynamic instruction. A place holder INVOKE_DYNAMIC instruction is added to ICode but it is designed to create an error if there's ever any attempt to analyze it. Because the inliner is the only phase that ever tries to analyze ICode instructions not generated from Scala source and because Scala source will never emit an INVOKE_DYNAMIC, the place holder INVOKE_DYNAMIC should never cause any errors. A test is included that generates a class file with INVOKE_DYNAMIC and then compiles Scala code that depends on it.
* | | | | Merge pull request #2278 from kzys/jira-6580Paul Phillips2013-03-253-7/+54
|\ \ \ \ \ | | | | | | | | | | | | SI-6580 Scaladoc: Should not close void elements
| * | | | | SI-6580 Scaladoc: Should not close void elementsKato Kazuyoshi2013-03-253-7/+54
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because it will generate a useless element like "</img>". To made matters worse, Scaladoc used to generate the element with attributes (like </img src="...">). That's why we had SI-6580.
* | | | | Merge pull request #2293 from retronym/ticket/6210Adriaan Moors2013-03-252-0/+22
|\ \ \ \ \ | |/ / / / |/| | | | SI-6210 Test case for already-fixed pattern matcher bug
| * | | | SI-6210 Test case for already-fixed pattern matcher bugJason Zaugg2013-03-232-0/+22
| | | | | | | | | | | | | | | | | | | | The fix arrived in SI-6022 / #1100 / 2.10.0-M7.
* | | | | Merge pull request #2295 from adriaanm/build-cleanup-2.10Paul Phillips2013-03-234-2363/+1321
|\ \ \ \ \ | | |_|/ / | |/| | | Build cleanup 2.10
| * | | | Merge scala/2.10.x into build-cleanup-2.10Adriaan Moors2013-03-2365-133/+622
| |\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: build.xml
| * | | | Allow getting STARR via maven, also: locker.skipAdriaan Moors2013-03-231-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | Use `ant -Dstarr.version="2.11.0-M2" -Dlocker.skip=YESSIR`, to build quick using 2.11.0-M2 (skipping locker, using starr instead).
| * | | | Use stage/project for taskname instead of scalacforkAdriaan Moors2013-03-231-2/+2
| | | | |
| * | | | Sanity for build.xml: exscriptus&positus delendus est.Adriaan Moors2013-03-234-2440/+1300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduced copy/pasting to the best of my antabilities. The next person to duplicate anything without written permission will be sentenced to a week in xmhell. While I was at it, made sure that layering is respected. The quick phase exclusively uses the locker compiler for building. The jar task will fail when trying to create an empty jar. Replaced the crazy if/unless/depends constructs by if/then/else. Version suffix computation should now be comprehensible. I threw in some validation to make sure the various suffixes are consistent. Also, no more init/pre-foo tasks unless absolutely necessary. Introduced a couple of macros to capture the essence of staged compilation. Notes: - remove lib.extra, standardize on aux.libs - collapse *.javac.path and *.build.path - rename starr.classpath to starr.compiler.path - only repl needs jline, locker.compiler.path = locker.comp.build.path + forkjoin - more uniform build.paths (compiler = reflect + library) - uniformity means slightly bigger classpaths (e.g. forkjoin is only used in library, but inherited by compiler) - pruned: some spurious dependencies removed - compilerpathref = compiler build path - silence test.osgi, by hook or by crook - centralized clean tasks - reduce duplication in property usage - fix pack.xml to pack scaladoc/partest instead of scaladoc/scala-partest - TODO: -XDignore.symbol.file necessary for library? only needed for forkjoin? - document usage from jenkins, fix typo: partest.scalac*_*opts New targets: - quick-opt - strap-opt - test.bc - test.osgi - test.osgi.comp - test.osgi.init - test.stability-opt Removed/replaced targets: - asm.clean asm.lib asm.start - bc.run - dist.latest dist.latest.unix dist.latest.win dist.start - docs.all docs.manmaker docs.pre-comp docs.pre-continuations-plugin - docs.pre-jline docs.pre-lib docs.pre-man docs.pre-partest docs.pre-scalap - forkjoin.clean forkjoin.lib forkjoin.pack forkjoin.start - graph.clean - init.build.nopatch.release init.build.patch.release init.build.release - init.build.snapshot init.build.suffix.done init.extra.tasks - init.fail.bad.jdk init.hasbuildnum init.hasmavensuffix init.jars - init.jars.check init.maven.jars init.maven.tasks init.osgi.suffix - init.osgi.suffix.final init.osgi.suffix.snapshot init.testjava6 - init.version.done init.version.git init.version.release init.version.snapshot - init.warn.jdk7 locker.pre-comp locker.pre-lib locker.pre-reflect - locker.unlock.comp locker.unlock.lib locker.unlock.pre-comp - locker.unlock.pre-lib locker.unlock.pre-reflect locker.unlock.reflect - osgi.clean osgi.test osgi.test.comp osgi.test.init - pack.clean pack.pre-bin pack.pre-comp pack.pre-lib pack.pre-partest - pack.pre-plugins pack.pre-reflect pack.pre-scalap pack.start - palo.comp palo.lib palo.pre-bin palo.pre-comp palo.pre-lib palo.pre-reflect - palo.reflect palo.start quick.pre-bin - quick.pre-comp quick.pre-interactive quick.pre-lib quick.pre-partest - quick.pre-plugins quick.pre-reflect quick.pre-repl quick.pre-scalacheck - quick.pre-scaladoc quick.pre-scalap - sbt.clean sbt.compile sbt.done sbt.libs sbt.start - starr.clean - strap.clean strap.pre-comp strap.pre-lib strap.pre-reflect strap.start - test.debug test.pre-run
* | | | | Merge pull request #2279 from kzys/jira-7013Paul Phillips2013-03-231-3/+3
|\ \ \ \ \ | | | | | | | | | | | | SI-7013 Scaladoc: Fix StackOverflowError
| * | | | | SI-7013 Scaladoc: Fix StackOverflowErrorKato Kazuyoshi2013-03-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | No one see the result value of parse and if so, it's tail-recursive.
* | | | | | Merge pull request #2266 from paulp/issue/7251Paul Phillips2013-03-234-127/+135
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | SI-7251, compiler crash with $.