-
Notifications
You must be signed in to change notification settings - Fork 131
Merge 1.0.x to master #87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Building the index again and again for every OffsetPosition instance makes very little sense. So this makes it build it only once for a given source. I'm not sure if this is the best way to implement it and I'm afraid that a global synchronized map may be a performance bottleneck once the number of processors goes into the hundreds, but I know very little Scala/Java to do this properly. :-( Fixes http://stackoverflow.com/questions/14707127/accessing-position-information-in-a-scala-combinatorparser-kills-performance
This fixes scala#45. The problem was that whenever PagedSeqReader is constructed, source is assigned seq (although lazily) but since PagedSeq is not a subclass of java.lang.CharSequence, an implicit conversion takes place via Predef#SeqCharSequence, creating a new object. The problem is that this happens every time PagedSeqReader#rest or drop is called, breaking packrat caching entirely.
This should scale much better.
Fix packrat caching with PagedSeqReader
(cherry picked from commit b89018c)
Backport the README changes to 1.0.x branch (which is now the default)
Speed up line/column in OffsetPosition
Fixes https://issues.scala-lang.org/browse/SI-9010, see https://issues.scala-lang.org/browse/SI-4929 for discussion. The leak happened when parsers are used outside of phrase, which seems to be not so common until one realizes that that's exactly how lexers are used in Scanner, so every lexer leaked. This should fix it.
This is extremely ugly (not only does it use reflection, is uses Java reflection with hard-coded mangled symbol name because of a bug in Scala reflection), but I don't know of a better solution. :-(
Fix lastNoSuccessVar memory leak
…t the end of the line. Includes tests.
…-linecontent2 Prevent OffsetPosition.lineContents from grabbing a newline
Also restrict 2.12 to jdk8 builds.
bump scala, sbt and scala-module-plugin versions
I'm not sure if this was intentionally left with `'` instead of ` in the closing apostrophe, but just in case it was not I made the PR. Scala CLA has been signed.
Change apostrophe in error message
This commit backports the commit below, with two caveats: - the fix in scala#68 doesn't work with Scala.js, so it is only enabled on the JVM for now - the scalaVersion/crossScalaVersion madness breaks the sbt build in 1.0.x (it didn't in master for some reason), so the second backport commit below had to be squashed with this one [backport] Add support for Scala.js, with cross-compilation. Scala versions were upgraded to 2.11.7 and 2.12.0-M3. 2.12 is only used when running the build on JDK8 or later. JavaTokenParsers.identifier was rewritten not to use a regexp, but rather primitive parsers and Character.isJavaIdentifier{Start,Part}. The regexp-based implementation relies on Java-specific character ranges. JavaTokenParsers.stringLiteral was slightly adapted with an expansion of `\p{Cntrl}` into `[\x00-\x1F\x7F]`. The former character range is Java-specific. We also removed an invalid (and useless) `+` at the end of the regexp. The test t4929.scala is JVM-only. (Author: Sébastien Doeraene <[email protected]>) (cherry picked from commit 98737a2) --- [backport] set Scala version in a more dbuild-friendly way having scalaVersion and crossScalaVersions set in different places was confusing dbuild needed to fix scala/community-build#215 (Author: Seth Tisue <[email protected]>) (cherry picked from commit bde222c)
[backport] Scala.js support for 1.0.x
bump sbt, scala & dependency versions to latest
It used to be: only publish on JDK 6. But now, 2.12.x requires Java 8. So we want the 2.11.x version to be published on JDK 6, the 2.12.x version on JDK 8, and nothing on JDK 7. Outside of publishing, we just run and test everything that can run on the current JDK, like before. This is inspired by Seth's commit at scala/scala-xml@38fbbbe
Redo how cross-version publishing works
(The hostname workaround was replaced with the sudo-less variant since we can't use sudo here.) Conflicts: .travis.yml build.sbt project/plugins.sbt
I should know this, but what even is the difference between 1.0.x and master? |
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Conflicts:
.travis.yml
build.sbt
project/plugins.sbt