| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These things are killing me. Constructions like
package scala.foo.bar.baz
import foo.Other
DO NOT WORK in general. Such files are not really in the
"scala" package, because it is not declared
package scala
package foo.bar.baz
And there is a second problem: using a relative path name means
compilation will fail in the presence of a directory of the same
name, e.g.
% mkdir reflect
% scalac src/reflect/scala/reflect/internal/util/Position.scala
src/reflect/scala/reflect/internal/util/Position.scala:9: error:
object ClassTag is not a member of package reflect
import reflect.ClassTag
^
src/reflect/scala/reflect/internal/util/Position.scala:10: error:
object base is not a member of package reflect
import reflect.base.Attachments
^
As a rule, do not use relative package paths unless you have
explicitly imported the path to which you think you are relative.
Better yet, don't use them at all. Unfortunately they mostly work
because scala variously thinks everything scala.* is in the scala
package and/or because you usually aren't bootstrapping and it
falls through to an existing version of the class already on the
classpath.
Making the paths explicit is not a complete solution -
in particular, we remain enormously vulnerable to any directory
or package called "scala" which isn't ours - but it greatly
limts the severity of the problem.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are the regexp replacements performed:
Sxcala
-> Scala
Copyright (\d*) LAMP/EPFL
-> Copyright $1-2012 LAMP/EPFL
Copyright (\d*)-(\d*)(,?) LAMP/EPFL
-> Copyright $1-2012 LAMP/EPFL
Copyright (\d*)-(\d*) Scala Solutions and LAMP/EPFL
-> Copyright $1-2012 Scala Solutions and LAMP/EPFL
\(C\) (\d*)-(\d*) LAMP/EPFL
-> (C) $1-2012 LAMP/EPFL
Copyright \(c\) (\d*)-(\d*)(.*?)EPFL
-> Copyright (c) $1-2012$3EPFL
The last one was needed for two HTML-ified copyright notices.
Here's the summarized diff:
Created using
```
git diff -w | grep ^- | sort | uniq | mate
git diff -w | grep ^+ | sort | uniq | mate
```
```
- <div id="footer">Scala programming documentation. Copyright (c) 2003-2011 <a href="http://www.epfl.ch" target="_top">EPFL</a>, with contributions from <a href="http://typesafe.com" target="_top">Typesafe</a>.</div>
- copyright.string=Copyright 2002-2011, LAMP/EPFL
- <meta name="Copyright" content="(C) 2002-2011 LAMP/EPFL"/>
- * Copyright 2002-2011 LAMP/EPFL
- * Copyright 2004-2011 LAMP/EPFL
- * Copyright 2005 LAMP/EPFL
- * Copyright 2005-2011 LAMP/EPFL
- * Copyright 2006-2011 LAMP/EPFL
- * Copyright 2007 LAMP/EPFL
- * Copyright 2007-2011 LAMP/EPFL
- * Copyright 2009-2011 Scala Solutions and LAMP/EPFL
- * Copyright 2009-2011 Scxala Solutions and LAMP/EPFL
- * Copyright 2010-2011 LAMP/EPFL
- * Copyright 2012 LAMP/EPFL
-# Copyright 2002-2011, LAMP/EPFL
-* Copyright 2005-2011 LAMP/EPFL
-/* NSC -- new Scala compiler -- Copyright 2007-2011 LAMP/EPFL */
-rem # Copyright 2002-2011, LAMP/EPFL
```
```
+ <div id="footer">Scala programming documentation. Copyright (c) 2003-2012 <a href="http://www.epfl.ch" target="_top">EPFL</a>, with contributions from <a href="http://typesafe.com" target="_top">Typesafe</a>.</div>
+ copyright.string=Copyright 2002-2012 LAMP/EPFL
+ <meta name="Copyright" content="(C) 2002-2012 LAMP/EPFL"/>
+ * Copyright 2002-2012 LAMP/EPFL
+ * Copyright 2004-2012 LAMP/EPFL
+ * Copyright 2005-2012 LAMP/EPFL
+ * Copyright 2006-2012 LAMP/EPFL
+ * Copyright 2007-2012 LAMP/EPFL
+ * Copyright 2009-2012 Scala Solutions and LAMP/EPFL
+ * Copyright 2010-2012 LAMP/EPFL
+ * Copyright 2011-2012 LAMP/EPFL
+# Copyright 2002-2012 LAMP/EPFL
+* Copyright 2005-2012 LAMP/EPFL
+/* NSC -- new Scala compiler -- Copyright 2007-2012 LAMP/EPFL */
+rem # Copyright 2002-2012 LAMP/EPFL
```
|
| |
|
|
|
|
|
|
|
| |
Removed all the trailing whitespace to make eugene happier.
Will try to keep it that way by protecting at the merge level.
Left the tabs in place because they can't be uniformly changed
to spaces, some are 2, some are 4, some are 8, whee.
|
|
|
|
|
|
|
| |
Custom versions of collections which methods which operate on 2 or 3
collections. Eliminated most users of zip/zipped. Cleaned up the kinds
checking code somewhat. Reduced the number of silent typechecks
being performed at named argument sites.
|
|
|
|
|
|
|
| |
Renamed scala.reflect.common to scala.reflect.internal to better
emphasize that it is not API. (The brush was overly broad, and some
files now need to be rescued from being internal.) No review.
|
|
|
|
|
|
| |
And the remainder of the scala.reflect refactoring (think of it like a
"balloon payment") no review.
|
|
|
|
|
|
|
|
|
|
|
|
| |
up the stray interpreter files and put them in the interpreter package.
Would really love to change the name of that package. Went looking for
some consistent divisions of responsibility and consistent naming.
Made some progress. There are deprecated versions of most everything I
changed so hopefully the carnage will be limited.
This isn't completely baked but I just realized I broke the build
earlier and this should fix it. I'll keep the oven on. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interpreter and the interpreter loop has become so fuzzy it can hardly
be said to exist. In this commit I take a step or two toward clearer
boundaries, and also fix some gratuitous name inconsistencies with the
rest of trunk. A Global should be called "global" in the absence of a
compelling reason otherwise.
Also, now having had a couple years to explore every inch of the design
space, I can announce that where possible to use them, distinguished
objects like NoType and NoSymbol are far superior to swaddling things
in Option. Applied this piece of canon to Completion and History. No
review.
|
| |
|
|
|
|
|
|
| |
Added some more debugging tools for printing types. Squirrelled it away
in a type debugging trait. No review.
|
|
|
|
|
|
|
|
|
|
|
| |
Generalized a pile of duplicated type caching code, but it's still
largely undeployed because I haven't figured out how to make it as fast
as the copy-pasted version, which bugs me like you wouldn't believe.
Cannot deal with making "Sophie's Choice" between performance and lack
of duplication. I left one deployment in because it fixed a bug, or at
least so I see it: can't see why one would want the two absent error
messages in t2641.check. Review by odersky.
|
|
|
|
|
|
|
|
|
|
| |
Investigating what can be done about our 2000 or so closures created
via by-name calls takes me through uncurry with a mop. Sifting through
compiler generated classfiles I am horrified at one example of decadent
closure creation perpetrated by a certain extempore. CompilerCommand
goes from 28 classfiles to 16 and manages to get smaller anyway anyway.
Some people just can't be trusted with closures. No review.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some more work on options related to showing compiler structures during
compilation. The pickler knew more than was healthy about things like
compiler settings, so I let the pickler worry about pickling and moved
that logic somewhere closer to the surface. Some convenience oriented
tweaks to command line phase parsing. The end result is as follows (some
output trimmed for brevity.)
// dippy.scala
class Dippy {
def f[T <: Dippy](x: T) = (x, x)
object DingusDippy extends util.Random { }
}
// className@phaseString should be reliably unambiguous
% scalac -Xshow-class Dippy@typer,erasure,jvm dippy.scala
<<-- class Dippy after phase 'typer' -->>
Members (excluding Any/AnyRef unless overridden):
final object DingusDippy extends object Dippy.this.DingusDippy
def f[T <: Dippy](x: T): (T, T)
<<-- class Dippy after phase 'erasure' -->>
Members (excluding Any/AnyRef unless overridden):
private lazy var DingusDippy$module: object Dippy#DingusDippy
lazy val DingusDippy(): object Dippy#DingusDippy
def f(x: Dippy): Tuple2
<<-- class Dippy after phase 'jvm' -->>
Members (excluding Any/AnyRef unless overridden):
protected var bitmap$0: Int
private lazy var DingusDippy$module: object Dippy$DingusDippy
lazy val DingusDippy(): object Dippy$DingusDippy
def f(x: Dippy): Tuple2
No review.
|
|
|
|
|
|
| |
Two comments where presentation compiler sanity assertions should be
inserted.
|
|
|
|
|
|
| |
Various fixes to optimizations, and mainly much better heuristics for
inlining. Now even the compiler is some 3% faster! Yeah!
|
|
|
|
|
| |
Removed more than 3400 svn '$Id' keywords and related junk.
|
|
|
|
|
|
|
|
|
|
|
| |
A few yards short of the goal posts attempt at making our usage of
Throwable subclasses more consistent. This patch eliminates a lot of
ad hoc Exception/Error/etc. creation and various arbitrary choices are
rendered slightly less arbitrary. From now on let's try not to use the
word "Exception" or "Error" in the names of Throwable subclasses unless
they actually derive (and make sense to derive) from Exception or Error.
Review by community.
|
|
|
|
|
|
| |
lifted out core compiler data structures into reflect.generic package.
Made Unpickler work on generic data.
|
|
|
|
|
|
| |
new doc comment generation, including some new style doc comments in
collection classes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Enhanced repl based debugger to use manifests and try to get a usable
type out of it. It works for at least a useful subset of the types which
one might want to inspect.
|
|
|
|
|
|
| |
Riffing off the removal of the cldc library, removed forCLDC and its
special cases. Not as much fun as removing inIDE, but still fun.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A big yet interim patch emerging from my attempts to centralize common
classloader-related code. As it turns out, not that much of the
patch is directly associated with that. Most of it is cleanup in the
neighborhoods I was visiting, but there are a few new library files
about which I'm open to feedback:
scala/util/control/Exception - lots of exception handling code.
scala/net/Utility - what would be the first file in scala.net.*,
more code to follow if that sounds like a good package idea.
scala/util/ScalaClassLoader - mostly convenience methods right
now, more sophistication to come
Also, this adds a :jar command to the repl which adds a jar to your
classpath and replays the session.
|
|
|
|
|
|
| |
Unreasonably satisfying patch which sets immutable final val inIDE = false
and then performs dead code elimination (human style.)
|
|
|
|
|
|
|
| |
with -Ydebugger, then calls to breakIf(assertion, arg1, arg2, ...) will
drop out to a repl if assertion proves true. This is very primitive at
present and will improve.
|
|
|
|
|
|
| |
made unsafeTypeParams transform infos less eagerly. Fixed private[this]
variance hole.
|
| |
|
|
|
|
|
| |
added Iterator.flatten method; refactoring: closure -> baseTypeSeq
|
|
|
|
|
|
|
|
| |
2. Added * operator to RichString
3. changed zip in Array to accept arrays of different length
4. changed takeWhile/dropWhile in Array to yield Projections
5. Added Manifest types
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
plugins can modify isSubType0 and typed().
|
|
|
|
|
|
| |
Structural calls should be faster thanks to method caching. Fixed issue
#192.
|
|
|
|
|
|
|
|
| |
now use compiler trees instead of reflect trees.
In many cases, annotations on types can be rewritten
instead of discarded as the types undergo various
operations. Also, -Yself-in-annots has been added.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
incremented MinorVersion, deprecated All/AllRef, remove many type
aliases
|
|
|
|
|
|
|
|
| |
- AnnotationInfo has no type parameter. It always has a parse tree, and
sometimes has a constant. - SymbolReifier is separated from LiftCode for
independent use - reification into reflect.* structures handles more
cases - unreify is added, for enough cases that annotations work
|
| |
|
| |
|