| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Optimize primitive Array(e1, ..., en)
|
| |
| |
| |
| | |
Canonical > home-spun.
|
| |
| |
| |
| |
| |
| |
| | |
Expands an existing optimization for reference arrays to
apply to primitives, as well.
Fixes one aspect of SI-6247.
|
|\ \
| | |
| | | |
Merge 2.10.0-wip/.x into master
|
| | \ | |
| | \ | |
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
master
Conflicts:
src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala
|
| | | |\ \
| | | | | |
| | | | | | |
SI-6644 Account for varargs in extmethod forwarder
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Which sounded difficult, so instead I offshored the work
to the friendly republic of TreeGen.
|
| | | |\ \ \
| | | | | | |
| | | | | | | |
Update tools/epfl-publish
|
| | | | |/ /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently, during each Scala nightly build, the epfl-publish script rsyncs the resulting dists/archives to the repository machine (chara).
Now, as a result of a change introduced a while back, dists/archives/ now also contains a symbolic link, created at the end of the build when the targets "pack-archives.latest.*" are invoked (in src/build/pack.xml). That was introduced in:
scala/scala@506bcfe71c93160ebfa0ca9b8b170b4b54e844e9
scala/scala@cb99853c8655686dae1288cbcd44a42cf1ea6609
This link, created in dists/archives/, is copied over as-is at the end of the rsync to chara by epfl-publish. On chara, however, the link points to an invalid target (the path is absolute).
Separately, the repository directory on chara is rsync'd every 30 minutes over to the machine that serves www.scala-lang.org, via cron. Rsynch finds that the link target does not exist, and generates an email with the crontab log, which is then duly sent to a system mailbox. Every 30 minutes. Since March. Needless to say, the mailbox is pretty large by now.
The fix is trivial, but this needs to be included in all the branches that are tested during the nightly. Since RC2 has just been cut, and the code frozen, I'm not sure how this change can be included without disruption; therefore, I'll just send a pull request on 2.10.0-wip, and let Josh/Paul take the appropriate steps.
|
| | | |\ \ \
| | | | |/ /
| | | |/| | |
SI-6646 Fix regression in for desugaring.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The previous commit regressed in these cases:
// no withFilter
for (X <- List("A single ident is always a pattern")) println(X)
for (`x` <- List("A single ident is always a pattern")) println(`x`)
At the top level of the LHS of a <-, such identifiers represent
new bindings, not stable identifier patterns.
|
| | | |/ /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The early check in the parser of pattern irrefutability,
added in c82ecab, failed to consider InitCaps and
`backquoted` identifiers.
|
| | |\ \ \
| | | | | |
| | | | | | |
SI-6539 Annotation for methods unfit for post-typer ASTs
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Don't default the message, and show it exclusively.
- Fix cut-and-pasto in the @since tag
- Be tolerant if the annotaion class is missing, as seems to
have been the case compiling the continuations plugin.
- s/\t/ / in the test file to show the errors are positioned
correctly.
- Use defensive getOrElse
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Motivated by the `.value` method in the SBT task-syntax branch,
which should only be called within the context of the argument
to a setting initialization macro.
The facility is akin to a fatal deprecation.
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
Fix for SI-6662, macro failing too early.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Don't give up before you try tupling. Who knows what
someone might be doing with a Unit.
|
| | |\ \ \ \ \
| | | |/ / / /
| | |/| | | | |
SI-6616 Check that unsafe operations are only called on the presentation...
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
compiler thread.
The method that checks the actual constraint is @elidable, expecting it to be used
for nightly builds but stripped-off in release builds. This way we don't lose any
performance, but 'fail-fast' in IDE nightlies.
This assumes that release builds will have at least `-Xelide-below ASSERTION`, but
this pull request does not do that.
|
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | | |
better error when typetagging local classes
|
| | | | |/ / /
| | | |/| | |
| | | | | | |
| | | | | | | |
Inspired by https://issues.scala-lang.org/browse/SI-6649
|
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | | |
-Yshow-trees-compact respects other options
|
| | | |/ / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The aforementioned tree printer now respects other tree printing
options such as -uniqid and -Xprint-types.
This helps debugging reify, which uses `nodePrinters`, not `showRaw`
to print its trees, because back then `showRaw` didn't exist yet.
|
| | |\ \ \ \ \
| | | |/ / / /
| | |/| | | | |
Fix type of the custom `ClassTag` in `PatternMatching.scala`
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In fb315772 custom ClassTags were introduced to optimize array
creation in hot places. The idea was that if `Array[T]` is allocated
through `ClassTag[T]` (which is essentially a factory for Array[T])
we would introduce a custom class implementing `ClassTag[T]` interface
and would have specialized array allocation instruction instead of
having reflective call as it's being done with default (compiler
synthesized) implementation of `ClassTag[T]`.
In case of `PatternMatching.scala` I made a mistake of providing
`ClassTag[Array[Clause]]` instead of `ClassTag[Clause]` so that value
would never be used and compiler still would resolve implicit through
default mechanism. This has been discovered thanks to @paulp's work
on unused value detection.
Review by @paulp.
|
| | |\ \ \ \
| | | |/ / /
| | |/| | | |
Merge 2.10.0-RC2 into 2.10.x
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
show developer guidelines on opening pull request
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Includes "Improvements and typo fixes to CONTRIBUTING.md" by @heathercmiller
as well as feedback from @retronym.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-5330, SI-6014 deal with existential self-type
|
| | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This has been broken since https://github.com/scala/scala/commit/b7b81ca2#L0L567.
The existential rash is treated in a similar manner as in fc24db4c.
Conceptually, the fix would be `def selfTypeSkolemized =
widen.skolemizeExistential.narrow`, but simply widening before
narrowing achieves the same thing. Since we're in existential voodoo
territory, let's go for the minimal fix: replacing `this.narrow` by
`widen.narrow`.
--
Original patch by @retronym in #1074, refined by @paulp to
only perform widen.narrow incantation if there are
existentials present in the widened type, as
narrowing is expensive when the type is not a singleton.
The result is that compiling the entirety of quick, that
code path is hit only 143 times. All the other calls hit
.narrow directly as before. It looks like the definition
of negligible in the diff of -Ystatistics when compiling
src/library/scala/collection:
< #symbols : 306315
---
> #symbols : 306320
12c13
< #unique types : 293859
---
> #unique types : 293865
I'm assuming based on the 2/1000ths of a percent increase
in symbol and type creation that wall clock is manageable,
but I didn't measure it.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Error for SI-6355, overloading of applyDynamic.
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
As long as it can never be called anyway, seems like we'd be
doing people a kindness to fail the compile rather than letting
it be ambiguous at every use site.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix for SI-6664, cycle in case classes.
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Scope lookup of an overloaded symbol was accidentally
forcing some lazy info. Since as usual the caller didn't
even have any interest in the symbol, but only in whether
the name existed at all, I changed it call the method I
made for this exact purpose, containsName. Also I much
reduced the number of checks being made in the quest for
an inherited copy method.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Lower confusion levels in typedApply.
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It's the usual thing, making logic more logical and removing
comments which are incorrect and/or no longer useful.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix bug in partest-ack.
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Unfortunate bug was making it far less useful than it was
supposed to be. Now it really does look in scala/check/flags
files, here are examples of things which work:
% tools/partest-ack "input ended while parsing XML"
Found 6 tests matching 'ack input ended while parsing XML'
% tools/partest-ack Xlint
Found 11 tests matching 'ack Xlint'
% tools/partest-ack -- -language:experimental.macros
Found 143 tests matching 'ack -- -language:experimental.macros'
% tools/partest-ack @unchecked
Found 13 tests matching 'ack @unchecked'
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Fix Documentation Typo
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
There was a typo on the if.
I also thought it might be worth rephrasing the paragraph because it seemed a bit contrived.
It's a trivial fix, but it would allow us to close a bug in the issue tracker which seems worthwhile to me.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Address obvious bug in MutableSettings.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
If x startsWith "-" it seems unlikely that x == "".
Free with purchase: test case with 100 argument permutations.
That's only a smidgen shy of infinity.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
SI-6637
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Move the optimization one level deeper so the expression
being tested with isInstanceOf is always evaluated.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
fix t2318.scala
|
| |/ / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fix merge error.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | | |
I fixed that already and somehow it didn't appear in my push.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Revamp of some repl mechanisms.
|