| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Prior to this patch <t a={ null: String }/> was not equal to <t/> and
it's string representation was "<t ></t>" instead of "<t></t>"
This includes changing MetaData.normalize() so that it doesn't reverse
the chain. On the downside, the iterate function in MetaData.normalize()
is not tail-recursive now.
|
|\
| |
| |
| | |
'jsuereth/fix-5053-view-unzip' into develop
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Usually scripts like scala.bat and scalac.bat correctly propagate
exit codes from underlying Java invocations. However, if you run these
scripts as follows: "cmd /c scala ...", then errorlevel gets swallowed.
This simple patch fixes the aforementioned problem.
Fixes SI-5295, no review.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The hash code is further improved by using a special value in the hash sets
called a `seed`. For sequential hash tables, this value depends on the size
of the hash table. It determines the number of bits the hashcode should be
rotated. This ensures that hash tables with different sizes use different
bits to compute the position of the element. This way traversing the elements
of the source hash table will yield them in the order where they had similar
hashcodes (and hence, positions) in the source table, but different ones in
the destination table.
Ideally, in the future we want to be able to have a family of hash functions
and assign a different hash function from that family to each hash table
instance. That would statistically almost completely eliminate the possibility
that the hash table element traversal causes excessive collisions.
I should probably @mention extempore here.
|
|
|
|
|
|
|
|
| |
The Java implementation is faster as it doesn't have branches.
java.lang.Math includes implementations of signum for Double and Float,
but I didn't change the ones in scala.math because there is a difference
on how negative zero is handled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make partest work with spaces in the path (from batch script and ant
task).
- The 'partest' ant task gets a new 'compilerargs' element for scalac
- options (like in scalacfork and javac). Fixed argument list handling
- in partest task. Further improvements to argument list handling for
- all ant tasks. Fixed argument list handling in DirectTest (used by
- partest shell scripts) Fixed path handling in several test cases.
Closes SI-622. Review by phaller.
|
|
|
|
|
|
|
|
|
| |
Hardened the repl against a bunch of erroneous conditions. Added a
:reset command which causes the repl to forget everything you have told
it. Added classloader tracing when repl tracing is enabled. :reset is
not that useful in its current form but it's the precursor to something
more interesting. No review.
|
| |
|
|
|
|
|
|
|
| |
Added *.log and build/ to gitignore so partest/ant artifacts don't show
up in our commit messages. Also fixed whitespace issues arising from the
filter-branch history rewrite for git move.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It took me a long time to find a trivial error while adjusting the
annotation packages, so I spent even longer trying to make sure next
time it would take me less time. It's the usual business of eliminating
duplication and unnecessary indirection.
Behavioral note: there was no consistency or deducible reasoning
regarding when annotation checks would be performed against the
typeSymbol directly (thus excluding annotation subclasses) or when they
would do a subclass check. I saw no reason it shouldn't always be a
subclass check; if the annotation isn't supposed to be subclassed it
should be final, and if it is, then the subclasses had probably better
not stop exhibiting the behavior of the base class.
Example: this now draws deprecated warnings, but did not before.
class bippy extends deprecated("hi mom", "burma shave")
@bippy def f = 5
(The deprecation message isn't printed so we're not there yet, but
closer.)
There is some new internal documentation on annotations, sadly lacking
in my famous ascii diagrams, and some new conveniences. Review by rytz.
|
|
|
|
|
|
| |
Did something eat some whitespace? I don't know. This is almost the same
commit as r25783, but with different whitespace. No review.
|
|
|
|
|
|
| |
Until I have a second to figure out how a checkfile whose contents are
*recorded from running the test case* can fail to match. No review.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hard to believe a bug like this can exist this long. Cay Horstman showed
me.
// Hey, where's my eacute?
scala> <city name="San José"/>.attributes foreach println
name="San Jos&;"
No review.
|
|
|
|
|
|
|
|
| |
The comment in SyntheticMethods and the comment in the serialization
test said exactly opposite things. The logic at work all seems to be
invalid anyway since nested objects are not treated like lazy vals, they
have no bitmap. Serialize everything serializable. Review by plocinic.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Important note for busy commit log skimmers ***
Symbol method "fullName" has been trying to serve the dual role of "how
to print a symbol" and "how to find a class file." It cannot serve both
these roles simultaneously, primarily because of package objects but
other little things as well. Since in the majority of situations we want
the one which corresponds to the idealized scala world, not the grubby
bytecode, I went with that for fullName. When you require the path to a
class (e.g. you are calling Class.forName) you should use javaClassName.
package foo { package object bar { class Bippy } }
If sym is Bippy's symbol, then
sym.fullName == foo.bar.Bippy
sym.javaClassName == foo.bar.package.Bippy
*** End important note ***
There are many situations where we (until now) forewent revealing
everything we knew about a type mismatch. For instance, this isn't very
helpful of scalac (at least in those more common cases where you didn't
define type X on the previous repl line.)
scala> type X = Int
defined type alias X
scala> def f(x: X): Byte = x
<console>:8: error: type mismatch;
found : X
required: Byte
def f(x: X): Byte = x
^
Now it says:
found : X
(which expands to) Int
required: Byte
def f(x: X): Byte = x
^
In addition I rearchitected a number of methods involving:
- finding a symbol's owner
- calculating a symbol's name
- determining whether to print a prefix
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Old Man Reflection is coming home and he's not going to like finding
out a bunch of beans have moved into his reflecting room. We had better
evict those guys before he blows his stack.
scala.reflect.*Bean* --> scala.beans.*
scala.beans, that's kind of a fancy package name for some beans. I
figure it's time to start fishing or cutting bait on this kind of thing.
I don't even know what beans are, but if we're going to have them in the
mainline, the least surprising place to find them is scala.beans. If we
don't want to put them in scala.beans for whatever reason, then I say
they don't belong in trunk at all.
Bonus round:
scala.annotation.target --> scala.beans.meta
I don't know if there is any more unfortunate name for a package
possible than "target". Maybe ".svn" or ".git" if you could have dots
in package names. Package CVS wouldn't hit too hard these days. Package
lib_managed? I'll try to come up with something. In any case this golden
opportunity could not be squandered.
There is a new starr included, because GenJVM contains all kinds of
shooting-from-the-hip Bean-related name hardcoding. (Yes, still. I ran
out of stones. So a few birds escape with their lives... this time.)
|
| |
|
|
|
|
|
|
|
| |
Removing the code which has been deprecated since 2.8.0. Contributed by
Simon Ochsenreither, although deleting code is such fun one hesitates to
call it a contribution. Still, we will. Closes SI-4860, no review.
|
|
|
|
|
|
|
| |
Fixing all the tests and source which still use the old for
comprehension syntax with vals where there are no vals and no vals where
there are vals. No review.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
possible, just far enough to avoid all kinds of undesirable consequences
which accompany the preservation of too much type information. (The
problems are akin to inferring the singleton type too freely.)
// Example of code which did not compile, but now does class A class
B[T <: A](cons: T)
object C extends B(new A {})
Closes #4110, #3048. I already ran this by moors, so review by odersky.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The eagerly awaited companion commit to r23622, the surprise hit of last
winter. Singletons now have the singleton type inferred in monomorphic
contexts as well. In english:
scala> object X
defined module X
scala> def f = X
f: X.type
Wait, that's not english. English review by moors.
|
|
|
|
|
|
|
|
|
|
|
| |
Each of the three commits preceding this are to correct regressions
which would have been caught by the interpreter test and never checked
in in the first place, were it not disabled. The windows tax claims
another victim. Or three victims.
Re-enabled the interpreter test. No way for me to know if it will pass
everywhere without trying it. No review.
|
|
|
|
|
|
| |
Fixing an interpreter output regression and updated repl debugging and
tracing code. No review.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removes SUnit (long deprecated!) from the standard library.
the relatively small number of partest tests in Scala's suite that
were still using SUnit now either just use regular asserts, or they
print stuff that partest checks with a .check file. Also fixed some bad
indentation, removed ancient useless-looking commented-out code, etc.
Contributed by Seth Tisue (way to go seth) no review.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suppress unwanted noise generated by javac when compiling test case for
#1263.
formerly the test case caused this to be printed:
Note: test/files/pos/t1263/Test.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
we suppress this using @SuppressWarnings.
Contributed by Seth Tisue, no review.
|
| |
|
|
|
|
|
|
|
|
| |
Of late the test which fires up the window server, which has already
been the source of undue quantities of inconvenience, has taken to
hanging indefinitely when I run the test suite on a remote machine. Rope
at end, goodbye test, no review.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Enhancing the repl-testing code by turning it into a transcript
producing machine. "Here's some code." "Here's a transcript!" "Good day
to you, sir!" "No, good day to YOU!"
These changes are awesome. Look at the checkfile diffs for god's sake,
they'll make you weep with joy. No review.
|
| |
|
|
|
|
|
|
|
| |
Re-enabling the disabled signature test along with changes which allow
it to pass. Closes #4238 again, no review. (But would anyone like to
expand the signature tests? Great idea, extempore!)
|
| |
|
|
|
|
|
|
|
| |
Reverting some recent signature code and temporarily disabling a test so
I can work this out without shattering the tranquility of the build. No
review.
|
|
|
|
|
|
|
| |
Break 9 tests, fix 9 tests, realize you broke the test you checked in
between +9 and -9. Fix that and generalize the repl tests a little. I
think we're all the way there. No review.
|
| |
|
|
|
|
|
|
|
|
| |
Revert "Added missing string prefixes for names of map and set
collection classes." and related commits.
No review.
|
|
|
|
|
|
|
|
| |
Another fix for a broken test case involving new set and map string
reps.
No review.
|
|
|
|
|
| |
Fixing tests depending on map and set string representations. No review.
|
|
|
|
|
|
|
|
| |
After discovering #3376 was fixed I gave in and tried to write a test.
Now that the fiddling is over you can write repl tests without creating
5000 streams and settings. Look at test/files/run/bug3376.scala or
jvm/interpreter.scala to see. Test case closes #3376, no review.
|
|
|
|
|
|
|
|
|
| |
I keep seeing huge simplifications available in the repl. Lot of
interesting features have come to town since it was first conceived. In
this commit I give the internal names some tips on aesthetics, and put
each line in its own package like civilized artificial constructs. No
review.
|
|
|
|
|
|
| |
Conflicts:
src/library/scala/concurrent/SyncVar.scala
|
|
|
|
|
|
|
| |
The empty string commit made me hungry to actually know what's in stuff.
Now it prints quotes around a string if it's empty or if either the
first or last character is whitespace. No review.
|
|
|
|
|
|
| |
Deleted duplicate test which must have been a real monkey wrench. No
review.
|
|
|
|
|
|
|
|
| |
prejudice and puts the new process code to work instead. There are still
a couple bugs on my short term partest list. If this commit causes some
weird issue which only arises on virtualized windows you can expect to
hear from me next by postcard from st. lucia. No review.
|
| |
|
|
|
|
|
|
| |
The above issue was made explicit using the dx tool for the Android SDK
to convert Java bytecode to Dalvik bytecode.
|