| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
introducing two mutable variables per pattern match: matchRes and keepGoing
keepGoing denotes whether the result was Some or None,
and matchRes holds the Some's contents or the right zero for the match's type
Race(() => fastMatch(list), () => virtMatch_no_option(list))(100000).converge() is a virtual tie on my machine after this
see https://gist.github.com/1400910
conveniently also works around SI-5245
don't assign to Unit-typed var's, in fact, make matchRes a val when its only prospect in life is to be unit-valued
propagate eventual type for matchRes thru codegen
so that we can have more robust checks for unit¬hing, when assignment makes no sense
also, added a hack to caseResult to avoid boxed units in
if(keepGoing) { matchRes = ... } else zero
after erasure, we get
if(keepGoing) { matchRes = ...; BoxedUNIT } else zero
genicode broke because i was sharing trees:
[scalacfork] error: java.lang.AssertionError: assertion failed: type error: can't convert from UNIT to REF(class Object) in unit ScalaSig.scala at source-/Users/adriaan/git/scala-dev/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala,line-26,offset=868
fixed by duplicating -- so be it (for now -- make this more fine-grained, more efficient)
dodging inliner issues with one/zero (it won't inline, so also directly inline those methods)
|
| | | |_|/
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
behold the mythical unapplyProd: it does not exist, yet it promises to speed up pattern matching on case classes
instead of calling the synthetic unapply/unapplySeq, we don't call the mythical synthetic unapplyProd,
since -- if it existed -- it would be the identity anyway for case classes
eventually, we will allow user-defined unapplyProd's, which should give you almost the same speed as case class matching
for user-defined extractors (i.e., you don't have to wrap in an option, just return something on which we can select _i for i = 1 to N, unless it is null, which indicates match failure)
still need to figure out a way to derive the types for the subpatterns, without requiring you to wrap your result in a ProductN
unapplyProd support for vararg case classes
using caseFieldAccessors instead of synthetic _i
now the compiler bootstraps again, and after this optimization, quick.lib overhead is 70%, quick.comp is 50%
(compiling with a locker built using -Yvirtpatmat, and itself generating code for -Yvirtpatmat)
before the optimization, I think the overhead for quick.comp was close to 100% in this scenario
more robust tupleSel for case classes
TODO:
- pos/t602 -- clean up after type inference as in fromCaseClassUnapply
- run/pf-catch -- implement new-style orElse for partial function in uncurry
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Otherwise it is possible (as I discovered the hard way) for
tests running into compiler bugs to be treated as successful
compiles.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Now works in the case where TypeTrees refer to locally erased symbols.
|
| | | | |
| | | | |
| | | | |
| | | | | |
To survive IncompatibleClassChange errors.
|
| | | |/
| | |/|
| | | |
| | | | |
Otherwise they cause type errors.
|
| | |/ |
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | | |
'kepler/topic/ystopafter' into develop
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Without this fix running a compiler with the aforementioned option
leads to a crash (because namerPhase gets resolved to a NoPhase).
|
| | | | |/
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
@odersky writes: When doing reflect.mirror.ClassWithName("foo")
in the REPL, we get a NullPointerException. It goes away if we have
this fallback in defaultClassLoader.
Not sure it's the right fix, though.
Fixes SI-5226, review by @odersky
|
| | | |\| |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Local linux SBT scripts have been removed in favor of
using sbt-extras or an alternative windows solution which
is TBD.
|
| | | |\ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* SBT's version creation is now on par with tools/get-latest-version
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* SHA1 sum calculations are now done in pure Scala.
* Cache jar SHAs are checked for validity.
|
| | | |\ \ \ |
|
| | | | | | | |
|
| | | | |\ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
* One SHA resolve, now outputs lots of stack traces if parallel execution failure.
|
| | | |\| | | | |
|
| | | | |\ \ \ \ |
|
| | | |\ \ \ \ \ \
| | | | |/ / / / /
| | | |/| | | | | |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The EmitHtmlPage and EmitManPage utilities now write to a file
if there is more than one argument on the command line.
This allows the SBT build to fork them and still generate
a file without having to capture the output stream.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Retreiving STARR from SHA repo is now parallel by default.
YAY for parallel collections.
|
| | | |\ \ \ \ \ \ |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* The MSIL source code is now built at every layer as part
of the compiler project.
* The MSIL project is completely removed from other
references.
|
| | | |\ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
directories.
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
.desired.sha1 files now resolve into a local repository
before being copied into the main repo. If the local
repository exists and has a file, then there is
no download necessary.
|
| | | |\ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
Conflicts:
project/build/ScalaSBTBuilder.scala
|
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
* Cleaned up layered build settings definition
* Removed scalaVersion specification from build (not NEEDED).
* Fixed a migration from build.sbt to project/Build.scala where
publish settings were only being used on the root project and
not also used for sub-projects which are published.
|
| | | |\ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
binary libs script anymore. Only pull is implemented.
|
| | | |\ \ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
(on git SHA change *and* clean instead of just clean)
|
| | | | | | | | | | | | | | | |
|
| | | | | | | | | | | | | | | |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | |_|_|_|_|_|_|_|_|_|_|_|_|_|/
| | |/| | | | | | | | | | | | | | |
Rename .project to .project.SAMPLE
|
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
This should have been done a long time ago, when .classpath was renamed to .classpath.SAMPLE. Both files are needed to import the scala compiler in Eclipse, and having just one guarantees a broken project.
|
| | |/ / / / / / / / / / / / / /
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
This should have been done a long time ago, when .classpath was renamed to .classpath.SAMPLE. Both files are needed to import the scala compiler in Eclipse, and having just one guarantees a broken project.
|
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
Let type parameter be inferred. Closes SI-4871.
|
| | | | | | | | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
'jsuereth/fix-5053-view-unzip' into develop
|
| | | | |_|_|_|_|_|_|_|_|_|_|_|/
| | | |/| | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
* Added unzip and unzip3 to TraversableViewLike
* Added partest tests for unzip on views returning specific collection types.
Closes SI-5053
Review by @paulp
|
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
Deprecated since 2.8.0 but causing far too much inconvenience
by not being present.
|
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
This is not a long-term implementation - I haven't even benchmarked
it -- don't worry. I did find a fairly gross bug in the version I
checked in a few days ago so I wanted to erase that from the repository
memory for the weekend.
|