summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* SI-9806 Fix incorrect codegen with optimizer, constants, try/catchJason Zaugg2016-06-072-2/+20
| | | | | | | | | | | | | | The constant optimizer phase performs abstract interpretation of the icode representation of the progam in order to eliminate dead code. For each basic block, the possible and impossible states of each local variable is computed for both a normal and an exceptional exit. A bug in this code incorrectly tracked state for exception exits. This appears to have been an oversight: the new state was computed at each instruction, but it was discarded rather than folded through the intepreter.
* Merge pull request #5214 from som-snytt/issue/7898-sbtAdriaan Moors2016-06-051-1/+4
|\ | | | | SI-7898 Preserve reader against subversion
| * SI-7898 Preserve reader against subversionSom Snytt2016-06-041-1/+4
|/ | | | | | | | SBT tries to install its own SimpleReader (for some reason) if it needs to create its own IMain. Because Rube Goldberg needs to execute some postinit hooks, don't let SBT do that.
* Merge pull request #4998 from som-snytt/issue/7898-iLukas Rytz2016-06-0110-78/+285
|\ | | | | SI-7898 Read user input during REPL warmup
| * SI-7898 Label for parsing -i sourcesLukas Rytz2016-05-244-1/+35
| | | | | | | | Text-based REPL pre-parses, so use the current label for errors.
| * SI-7898 Report paste errors improvedlySom Snytt2016-05-233-19/+28
| | | | | | | | | | | | | | | | Use a "label" for errors, so that script names are shown. Position is still wrong for scripts in REPL. Initial scripts are run with `ILoop.echo` and results printing turned off, but reporter still enabled.
| * SI-7898 Quiet REPL at startupSom Snytt2016-05-221-6/+18
| | | | | | | | Enable noisy modes only when interpreting user input.
| * SI-7898 Read user input during REPL warmupSom Snytt2016-05-205-60/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler is created on main thread and user input is read on an aux thread (opposite to currently). Fixes completion when `-i` is supplied. Now `-i` means pasted and new option `-I` means line-by-line. The temporary reader uses postInit to swap in the underlying reader. Completion is disabled for the temporary reader, rather than blocking while it waits for a compiler. But manically hitting tab is one way of knowing exactly when completion is live.
* | Merge pull request #5183 from performantdata/bug/SI-9789Lukas Rytz2016-05-305-94/+257
|\ \ | | | | | | SI-9789 use quadratic probing in OpenHashMap
| * | SI-9789 use quadratic probing in OpenHashMapPerformant Data LLC2016-05-265-94/+257
|/ / | | | | | | | | | | | | | | | | | | | | | | The original probe sequence, taken from Python's hash table code, is exponential, jumping around in the hash table with poor memory locality. This replaces the probe algorithm with the more conventional quadratic probing. This also adds tests to the benchmarking code using AnyRef keys, which have pseudorandom hash codes (unlike Ints, whose hash code is simply the Int itself). The intensity of the benchmarking is reduced to make the tests complete within 9 hours, by removing unnecessary sampling.
* | Merge pull request #4959 from rjolly/scripting15Stefan Zeiger2016-05-255-12/+32
|\ \ | | | | | | Use jarlister in build
| * | Jarlist scala-library in build.sbtRaphael Jolly2016-05-212-3/+15
| | |
| * | Use jarlister in buildRaphael Jolly2016-05-213-9/+17
| |/ | | | | | | | | | | | | The goal of this change is to exercize the "manifest classpath" mechanism, meant to bring the compiler its needed classes as resources, listed in jar manifests, as opposed to files, thus enabling to use the compiler in sandboxed environments (and also the scripting engine for that matter).
* | Merge pull request #5061 from performantdata/benchmark-frameworkJason Zaugg2016-05-257-0/+457
|\ \ | | | | | | JMH-based benchmark framework
| * | Enable full compiler optimizations in JMH benchmarking.Performant Data LLC2016-05-051-1/+1
| | |
| * | Address JMH benchmark reviewer's issues.Performant Data LLC2016-05-033-59/+61
| | | | | | | | | | | | | | | Besides tweaks to the documentation, this tests smaller (25-element) maps, and rewrites OpenHashMapRunner in more idiomatic Scala.
| * | Improve the OpenHashMapBenchmark run times.Performant Data LLC2016-05-031-7/+14
| | | | | | | | | | | | | | | For the warm-up invocations, suppress setup and teardown that is only needed for the measurement iterations. Reduce the number of forks.
| * | Add a JMH runner class to the library benchmark framework.Performant Data LLC2016-05-033-9/+167
| | |
| * | Benchmark the OpenHashMap memory usage.Performant Data LLC2016-05-034-11/+35
| | | | | | | | | | | | Also add sbteclipse to the benchmark project.
| * | Add get() tests to OpenHashMap, reduce timing artifacts.Performant Data LLC2016-05-031-35/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to get a better exploration of the variance of tests in a limited time, I've reduced the number of measurement iterations and increased the number of forks. By sight, the measurement iterations seemed pretty consistent within a trial, whereas they would vary widely on occasional forks. I extended testing down to 50-entry maps, to explore the rise in service times that I was seeing at small scale. This is probably a timing artifact, from too-short invocations, since I'm using @Level.Invocation in the put() tests. To fix that, I enlarged the unit of testing, by creating multiple, sometimes thousands, of maps for the invocation to fill. This has also changed the test from filling a previously-filled map, to filling a new, but sufficiently sized map. The put()/remove() test now performs much worse (on a more realistic scenario). This also adds a couple tests for calling get() against a map that's been filled only with put()s, or with a mix of put() and remove().
| * | Add a reference to Doug Lea's benchmarks.Performant Data LLC2016-05-031-1/+2
| | |
| * | Add JMH to the benchmark framework.Performant Data LLC2016-05-035-0/+156
| | | | | | | | | | | | Add an example benchmark for OpenHashMap.
* | | Merge pull request #5169 from som-snytt/issue/4625Lukas Rytz2016-05-2311-44/+111
|\ \ \ | | | | | | | | SI-4625 Recognize App in script
| * | | SI-4625 Warn on first non-toplevel onlySom Snytt2016-05-172-42/+47
| | | | | | | | | | | | | | | | | | | | | | | | Fixed the warning when main module is accompanied by snippets. Minor clean-up so even I can follow what is returned.
| * | | SI-4625 Warn when discarding script objectSom Snytt2016-05-174-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | It's pretty confusing when your script object becomes a local and then nothing happens. Such as when you're writing a test and it takes forever to figure out what's going on.
| * | | SI-4625 Permit arbitrary top-level in scriptSom Snytt2016-05-164-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In an unwrapped script, where a `main` entry point is discovered in a top-level object, retain all top-level classes. Everything winds up in the default package.
| * | | SI-4625 App is a thingSom Snytt2016-05-162-1/+5
| | | | | | | | | | | | | | | | Scripting knows it by name.
| * | | SI-4625 Recognize App in scriptSom Snytt2016-05-164-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cheap name test: if the script object extends "App", take it for a main-bearing parent. Note that if `-Xscript` is not `Main`, the default, then the source is taken as a snippet and there is no attempt to locate an existing `main` method.
* | | | Merge pull request #5167 from martijnhoekstra/SI-9766Lukas Rytz2016-05-232-1/+20
|\ \ \ \ | | | | | | | | | | SI 9766 - allow ++ on empty ConcatIterator
| * | | | SI-9766 - allow ++ on empty ConcatIteratorMartijn Hoekstra2016-05-212-1/+20
| |/ / /
* | | / SI-9688 Make merge in immutable HashMap1 work with null kv.Łukasz Gieroń2016-05-232-1/+49
| |_|/ |/| | | | | | | | | | | | | | | | | | | | The kv field of scala.collection.immutable.HashMap.HashMap1 can be null. This commit corrects the behavior of updated0 (which is on call path for merged) to work in such cases, instead of throwing NPE. Commit contains regression test.
* | | Merge pull request #5178 from lrytz/readme211Adriaan Moors2016-05-203-185/+296
|\ \ \ | | | | | | | | [backport] identical readme in 2.11.x as in 2.12.x
| * | | [backport] identical readme in 2.11.x as in 2.12.xLukas Rytz2016-05-193-185/+296
|/ / /
* | | Merge pull request #5172 from lrytz/move-testJason Zaugg2016-05-172-0/+0
|\ \ \ | | | | | | | | Move t8449 to correct place
| * | | Move t8449 to correct placeLukas Rytz2016-05-172-0/+0
| | | | | | | | | | | | | | | | Follow-up for https://github.com/scala/scala/pull/4117
* | | | Remove default value for sourcepath in scalac (ant version). (#5166)Krzysztof Romanowski2016-05-171-2/+0
|/ / /
* | | Merge pull request #5152 from retronym/topic/silencioJason Zaugg2016-05-173-9/+46
|\ \ \ | |/ / |/| | Eliminate major sources of daily noise in SBT build.
| * | [backport] sbt build targets build/Adriaan Moors2016-05-171-5/+5
| | | | | | | | | | | | | | | It avoids confusion with existing test/partest scripts that test the compiler in build/, while sbt it targeting build-sbt/.
| * | Eliminate major sources of daily noise in SBT build.Jason Zaugg2016-05-163-4/+41
| |/ | | | | | | | | | | | | | | | | | | - Intercept incorrect "binary conflict" warning issued by SBT. Fixes https://github.com/scala/scala-dev/issues/100 - Bump to a new version of pantsbuild/jarjar to fix an incompatibility with Java 8 parameter names in class files, which we run into on the 2.12.x branch. See: https://github.com/pantsbuild/jarjar/pull/19 - Disable info level logging for dependency resolve/download.
* | Merge pull request #5090 from som-snytt/issue/9740-repl-bad-importLukas Rytz2016-05-118-92/+80
|\ \ | | | | | | SI-9740 Repl import fix -Yrepl-class-based
| * | SI-9740 Repl import fix -Yrepl-class-basedSom Snytt2016-05-028-92/+80
| |/ | | | | | | | | | | | | Under `-Yrepl-class-based`, templating must follow the same scoping as under traditional object-based. The new test shows a typical case where two values of the same simple name must be imported in different scopes.
* | Merge pull request #5128 from szeiger/wip/sbt-ivy-2.11Jason Zaugg2016-05-112-26/+53
|\ \ | |/ |/| Publish usable Scala distributions to Ivy repositories
| * Publish usable Scala distributions to Ivy repositoriesStefan Zeiger2016-05-062-26/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - sbt requires a `default` configuration in the Scala distribution but doesn’t publish such a configuration to Ivy repositories by default. This is not a problem when publishing to a Maven repository because Maven doesn’t use the concept of configurations and Ivy creates a standard set (including `default`) when resolving artifacts from Maven repositories, but it prevents the use of any Scala distribution published with `publishLocal`. The underlying issue is that sbt requires `default` instead of `default(compile)`. We work around this limitation by publishing a dummy `default` configuration. - sbt has hardcoded dependencies on the `scala-library` artifact of type `jar`. In the tradition of `sbt-osgi` we used type `bundle` when publishing via Ivy but this makes the artifacts unusable from sbt. We now publish the OSGi bundles directly as type `jar` (which is compatible with how they appear in Ivy after resolving from a Maven repository). - We have to be more aggressive about not publishing certain subprojects, otherwise `ivy.xml` files could still be published even when using `publishArtifacts := false`. - `removePomDependencies` now also modifies `ivy.xml` in addition to the Maven POM so that bogus dependencies do not leak into the Ivy descriptors. Fixes https://github.com/scala/scala-dev/issues/130
* | Merge pull request #5139 from SethTisue/disable-integrate-ideAdriaan Moors2016-04-281-0/+4
|\ \ | | | | | | disable integrate/ide script on 2.11.x
| * | disable integrate/ide script on 2.11.xSeth Tisue2016-04-281-0/+4
| | |
* | | CI: hardcode java path in integrate/windows scriptAdriaan Moors2016-04-211-5/+6
| | |
* | | Merge pull request #5113 from adriaanm/ci-win-java6Adriaan Moors2016-04-211-0/+3
|\ \ \ | | | | | | | | CI: use java 6 for windows integration
| * | | CI: use java 6 for windows integrationAdriaan Moors2016-04-211-0/+3
|/ / /
* | | SI-9734 Narrow type when import REPL history (#5084)som-snytt2016-04-203-1/+41
| | | | | | | | | | | | | | | Under `-Yrepl-class-based`, imports from historical `$read` instances must be singleton-typed so that path-dependent types remain so.
* | | SI-9735 REPL prefer standard escapes for code text (#5086)som-snytt2016-04-203-4/+48
| | | | | | | | | | | | | | | When constructing code text for compilation, the REPL should prefer standard escape sequences, in case unicode escapes are disabled.