diff --git a/Gemfile.lock b/Gemfile.lock index 3f98ac325..8aed1071f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -57,6 +57,7 @@ GEM logger faraday-net_http (3.4.0) net-http (>= 0.5.0) + ffi (1.17.1-x64-mingw-ucrt) ffi (1.17.1-x86_64-linux-gnu) fiber-annotation (0.2.0) fiber-local (1.1.0) @@ -262,7 +263,9 @@ GEM minitest (5.25.4) net-http (0.6.0) uri - nokogiri (1.18.8-x86_64-linux-gnu) + nokogiri (1.18.9-x64-mingw-ucrt) + racc (~> 1.4) + nokogiri (1.18.9-x86_64-linux-gnu) racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) @@ -281,7 +284,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.4.1) + rexml (3.4.2) rouge (3.30.0) ruby-rc4 (0.1.5) rubyzip (2.4.1) @@ -312,6 +315,7 @@ GEM zeitwerk (2.7.2) PLATFORMS + x64-mingw-ucrt x86_64-linux DEPENDENCIES diff --git a/_config.yml b/_config.yml index cd3697750..2d4179544 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ title: The Scala Programming Language -scalaversion: "2.13.16" +scalaversion: "2.13.17" url: https://www.scala-lang.org baseurl: "" diff --git a/_data/ambassadors.yml b/_data/ambassadors.yml index 181297b5f..6d9efd1e3 100644 --- a/_data/ambassadors.yml +++ b/_data/ambassadors.yml @@ -128,17 +128,8 @@ discord: monmcguigan linkedin: https://www.linkedin.com/in/monica-mcguigan/ -- name: Jonathan Winandy - description: Data Engineering Manager, Org at Scala.IO, Scala-FR discord admin - image: /ambassadors/jonathanw.jpeg - city: Nantes, France - discord: ahoyjon - twitter: ahoy_jon - github: ahoy-jon - linkedin: https://www.linkedin.com/in/jwinandy/ - - name: Jakub Kozłowski - description: Open-source contributor and maintainer, conference speaker and small-time YouTuber. + description: Open-source contributor and maintainer, conference speaker and small-time YouTuber. image: https://github.com/kubukoz.png city: Wrocław, Poland discord: kubukoz diff --git a/_data/scala-compiler-team.yml b/_data/scala-compiler-team.yml index 6631c878d..9211651ac 100644 --- a/_data/scala-compiler-team.yml +++ b/_data/scala-compiler-team.yml @@ -71,7 +71,7 @@ - name: Sébastien Doeraene description: Spec Supervisor, Compiler Engineer github: sjrd - org: Scala Center + org: EPFL - name: Jędrzej Rochala description: Tooling Engineer, Specialised Engineer (Pres. Compiler) diff --git a/_data/scala-core.yml b/_data/scala-core.yml index f7c94c38f..2141fd3bc 100644 --- a/_data/scala-core.yml +++ b/_data/scala-core.yml @@ -35,13 +35,13 @@ org: VirtusLab - name: Sébastien Doeraene - description: Scala Center Representative, Spec Supervisor + description: Scala.js Representative, Spec Supervisor image: /scala-core/sjrd.png city: Lausanne, Switzerland discord: sjrd github: sjrd twitter: sjrdoeraene - org: Scala Center + org: EPFL - name: Lukas Rytz description: Akka Representative @@ -53,7 +53,7 @@ org: Akka - name: Tomasz Godzik - description: VirtusLab Representative, Coordinator + description: VirtusLab Representative, Coordinator image: /scala-core/tgodzik.jpg city: Kraków, Poland discord: tgodzik @@ -64,7 +64,7 @@ org: VirtusLab - name: Wojciech Mazur - description: Scala Native Representative, Release Officer, Community Build Maintainer + description: Scala Native Representative, Release Officer, Community Build Maintainer image: /scala-core/wojciech-mazur.jpg city: Kraków, Poland discord: wmazur @@ -81,4 +81,4 @@ github: SethTisue mastodon: https://fosstodon.org/@SethTisue linkedin: https://www.linkedin.com/in/sethtisue/ - org: Akka + org: independent diff --git a/_data/scala-days-sponsors.yml b/_data/scala-days-sponsors.yml new file mode 100644 index 000000000..d38a5e885 --- /dev/null +++ b/_data/scala-days-sponsors.yml @@ -0,0 +1,19 @@ +# Sponsors Data +# ---------------------------------------------------------------------------------------------------------- +# ---------------------------------------------------------------------------------------------------------- + +sponsorship-types: + - title: Platinum + icon: img/assets/icon-platinum.svg + css-class: scaladays-org-logo-platinum + - title: Gold + icon: img/assets/icon-gold.svg + css-class: scaladays-org-logo-gold + - title: Silver + icon: img/assets/icon-silver.svg + css-class: scaladays-org-logo-silver + - title: Bronze + icon: img/assets/icon-bronze.svg + css-class: scaladays-org-logo-bronze + +sponsors: [] diff --git a/_data/scala-releases.yml b/_data/scala-releases.yml index 715e58e8b..d28f33136 100644 --- a/_data/scala-releases.yml +++ b/_data/scala-releases.yml @@ -1,15 +1,15 @@ - category: current_version title: Current 3.7.x release - version: 3.7.0 - release_date: May 7, 2025 + version: 3.7.3 + release_date: September 9, 2025 - category: current_version title: Current 3.3.x LTS release version: 3.3.6 release_date: May 8, 2025 - category: current_version title: Current 2.13.x release - version: 2.13.16 - release_date: January 15, 2025 + version: 2.13.17 + release_date: October 6, 2025 - category: maintenance_version title: Latest 2.12.x maintenance release version: 2.12.20 diff --git a/_data/setup-scala.yml b/_data/setup-scala.yml index ad8db6f59..d3938b086 100644 --- a/_data/setup-scala.yml +++ b/_data/setup-scala.yml @@ -1,6 +1,6 @@ linux-x86-64: curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup linux-arm64: curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup macOS-x86-64: curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup -macOS-arm64: curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup +macOS-arm64: curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-aarch64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup macOS-brew: brew install coursier/formulas/coursier && cs setup windows-link: https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-win32.zip diff --git a/_data/teachers.yml b/_data/teachers.yml index 5ecb4fb06..2d4f5dfe4 100644 --- a/_data/teachers.yml +++ b/_data/teachers.yml @@ -148,3 +148,8 @@ location: longitude: -122.968487 latitude: 45.303216 +- institution: Umwelt-Campus Birkenfeld, Hochschule Trier, Germany + name: Stephan Didas + location: + longitude: 7.16896 + latitude: 49.60773 diff --git a/_downloads/2013-03-13-2.10.1.md b/_downloads/2013-03-13-2.10.1.md index 0cb4b7389..7e4d0de7c 100644 --- a/_downloads/2013-03-13-2.10.1.md +++ b/_downloads/2013-03-13-2.10.1.md @@ -6,7 +6,7 @@ release_version: 2.10.1 release_date: "March 13, 2013" show_resources: "true" permalink: /download/2.10.1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.1.tgz", "https://scala-lang.org/files/archive/scala-2.10.1.tgz", "Mac OS X, Unix, Cygwin", "23.9 MB"], diff --git a/_downloads/2013-05-31-2.10.2-RC2.md b/_downloads/2013-05-31-2.10.2-RC2.md index b4e54d197..901961bf8 100644 --- a/_downloads/2013-05-31-2.10.2-RC2.md +++ b/_downloads/2013-05-31-2.10.2-RC2.md @@ -6,7 +6,7 @@ release_version: 2.10.2-RC2 release_date: "May 31, 2013" show_resources: "true" permalink: /download/2.10.2-RC2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.2-RC2.tgz", "https://scala-lang.org/files/archive/scala-2.10.2-RC2.tgz", "Mac OS X, Unix, Cygwin", "20 MB"], diff --git a/_downloads/2013-06-06-2.10.2.md b/_downloads/2013-06-06-2.10.2.md index cc99e3b74..3f561024a 100644 --- a/_downloads/2013-06-06-2.10.2.md +++ b/_downloads/2013-06-06-2.10.2.md @@ -6,7 +6,7 @@ release_version: 2.10.2 release_date: "June 6, 2013" show_resources: "true" permalink: /download/2.10.2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.2.tgz", "https://scala-lang.org/files/archive/scala-2.10.2.tgz", "Mac OS X, Unix, Cygwin", "20 MB"], diff --git a/_downloads/2013-09-18-2.10.3-RC2.md b/_downloads/2013-09-18-2.10.3-RC2.md index 2bcc944df..539e815a3 100644 --- a/_downloads/2013-09-18-2.10.3-RC2.md +++ b/_downloads/2013-09-18-2.10.3-RC2.md @@ -6,7 +6,7 @@ release_version: 2.10.3-RC2 release_date: "September 18, 2013" show_resources: "true" permalink: /download/2.10.3-RC2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.3-RC2.tgz", "https://scala-lang.org/files/archive/scala-2.10.3-RC2.tgz", "Mac OS X, Unix, Cygwin", "20 MB"], diff --git a/_downloads/2013-09-24-2.10.3-RC3.md b/_downloads/2013-09-24-2.10.3-RC3.md index 30d4c81cc..53351b71b 100644 --- a/_downloads/2013-09-24-2.10.3-RC3.md +++ b/_downloads/2013-09-24-2.10.3-RC3.md @@ -6,7 +6,7 @@ release_version: 2.10.3-RC3 release_date: "September 24, 2013" show_resources: "true" permalink: /download/2.10.3-RC3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.3-RC3.tgz", "https://scala-lang.org/files/archive/scala-2.10.3-RC3.tgz", "Mac OS X, Unix, Cygwin", "20 MB"], diff --git a/_downloads/2013-10-01-2.10.3.md b/_downloads/2013-10-01-2.10.3.md index ae1fac0f2..ad95273de 100644 --- a/_downloads/2013-10-01-2.10.3.md +++ b/_downloads/2013-10-01-2.10.3.md @@ -6,7 +6,7 @@ release_version: 2.10.3 release_date: "October 1, 2013" show_resources: "true" permalink: /download/2.10.3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.3.tgz", "https://scala-lang.org/files/archive/scala-2.10.3.tgz", "Mac OS X, Unix, Cygwin", "20 MB"], diff --git a/_downloads/2013-12-20-2.10.4-RC1.md b/_downloads/2013-12-20-2.10.4-RC1.md index 1a9c5d6c5..0c0827d2d 100644 --- a/_downloads/2013-12-20-2.10.4-RC1.md +++ b/_downloads/2013-12-20-2.10.4-RC1.md @@ -6,7 +6,7 @@ release_version: 2.10.4-RC1 release_date: "December 20, 2013" show_resources: "true" permalink: /download/2.10.4-RC1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.4-RC1.tgz", "https://scala-lang.org/files/archive/scala-2.10.4-RC1.tgz", "Mac OS X, Unix, Cygwin", "28.55M"], diff --git a/_downloads/2014-02-04-2.10.4-RC2.md b/_downloads/2014-02-04-2.10.4-RC2.md index fda7c1af9..aac6a09be 100644 --- a/_downloads/2014-02-04-2.10.4-RC2.md +++ b/_downloads/2014-02-04-2.10.4-RC2.md @@ -1,12 +1,12 @@ --- title: Scala 2.10.4-RC2 -start: 4 Februrary 2014 +start: 4 February 2014 layout: downloadpage release_version: 2.10.4-RC2 -release_date: "Feburary 4, 2014" +release_date: "February 4, 2014" show_resources: "true" permalink: /download/2.10.4-RC2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.4-RC2.tgz", "https://scala-lang.org/files/archive/scala-2.10.4-RC2.tgz", "Mac OS X, Unix, Cygwin", "28.55M"], diff --git a/_downloads/2014-02-25-2.10.4-RC3.md b/_downloads/2014-02-25-2.10.4-RC3.md index 5028ba416..0f3b8f180 100644 --- a/_downloads/2014-02-25-2.10.4-RC3.md +++ b/_downloads/2014-02-25-2.10.4-RC3.md @@ -6,7 +6,7 @@ release_version: 2.10.4-RC3 release_date: "February 25, 2014" show_resources: "true" permalink: /download/2.10.4-RC3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.4-RC3.tgz", "https://scala-lang.org/files/archive/scala-2.10.4-RC3.tgz", "Mac OS X, Unix, Cygwin", "28.55M"], diff --git a/_downloads/2014-03-06-2.11.0-RC1.md b/_downloads/2014-03-06-2.11.0-RC1.md index d38b9b61f..2398c2290 100644 --- a/_downloads/2014-03-06-2.11.0-RC1.md +++ b/_downloads/2014-03-06-2.11.0-RC1.md @@ -6,7 +6,7 @@ release_version: 2.11.0-RC1 release_date: "March 06, 2014" show_resources: "true" permalink: /download/2.11.0-RC1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.0-RC1.tgz", "https://github.com/scala/scala/releases/download/v2.11.0-RC1/scala-2.11.0-RC1.tgz", "Mac OS X, Unix, Cygwin", "24.73M"], diff --git a/_downloads/2014-03-20-2.11.0-RC3.md b/_downloads/2014-03-20-2.11.0-RC3.md index 75c05e756..45581e03a 100644 --- a/_downloads/2014-03-20-2.11.0-RC3.md +++ b/_downloads/2014-03-20-2.11.0-RC3.md @@ -6,7 +6,7 @@ release_version: 2.11.0-RC3 release_date: "March 20, 2014" show_resources: "true" permalink: /download/2.11.0-RC3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.0-RC3.tgz", "https://github.com/scala/scala/releases/download/v2.11.0-RC3/scala-2.11.0-RC3.tgz", "Mac OS X, Unix, Cygwin", "24.77M"], diff --git a/_downloads/2014-03-24-2.10.4.md b/_downloads/2014-03-24-2.10.4.md index 257c9122e..64a131a55 100644 --- a/_downloads/2014-03-24-2.10.4.md +++ b/_downloads/2014-03-24-2.10.4.md @@ -6,7 +6,7 @@ release_version: 2.10.4 release_date: "March 24, 2014" show_resources: "true" permalink: /download/2.10.4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.4.tgz", "https://scala-lang.org/files/archive/scala-2.10.4.tgz", "Mac OS X, Unix, Cygwin", "28.55M"], diff --git a/_downloads/2014-04-08-2.11.0-RC4.md b/_downloads/2014-04-08-2.11.0-RC4.md index 9d610bd26..5bfda3099 100644 --- a/_downloads/2014-04-08-2.11.0-RC4.md +++ b/_downloads/2014-04-08-2.11.0-RC4.md @@ -6,7 +6,7 @@ release_version: 2.11.0-RC4 release_date: "April 08, 2014" show_resources: "true" permalink: /download/2.11.0-RC4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.0-RC4.tgz", "https://github.com/scala/scala/releases/download/v2.11.0-RC4/scala-2.11.0-RC4.tgz", "Mac OS X, Unix, Cygwin", "24.79M"], diff --git a/_downloads/2014-04-21-2.11.0.md b/_downloads/2014-04-21-2.11.0.md index 9f88502d3..35329c958 100644 --- a/_downloads/2014-04-21-2.11.0.md +++ b/_downloads/2014-04-21-2.11.0.md @@ -6,7 +6,7 @@ release_version: 2.11.0 release_date: "April 21, 2014" show_resources: "true" permalink: /download/2.11.0.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.0.tgz", "https://github.com/scala/scala/releases/download/v2.11.0/scala-2.11.0.tgz", "Mac OS X, Unix, Cygwin", "24.80M"], diff --git a/_downloads/2014-05-21-2.11.1.md b/_downloads/2014-05-21-2.11.1.md index 8e844d406..a33998598 100644 --- a/_downloads/2014-05-21-2.11.1.md +++ b/_downloads/2014-05-21-2.11.1.md @@ -6,7 +6,7 @@ release_version: 2.11.1 release_date: "May 21, 2014" show_resources: "true" permalink: /download/2.11.1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.1.tgz", "https://github.com/scala/scala/releases/download/v2.11.1/scala-2.11.1.tgz", "Mac OS X, Unix, Cygwin", "24.50M"], diff --git a/_downloads/2014-07-24-2.11.2.md b/_downloads/2014-07-24-2.11.2.md index 3cee9e335..9f583a7d9 100644 --- a/_downloads/2014-07-24-2.11.2.md +++ b/_downloads/2014-07-24-2.11.2.md @@ -6,7 +6,7 @@ release_version: 2.11.2 release_date: "July 24, 2014" show_resources: "true" permalink: /download/2.11.2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.2.tgz", "https://github.com/scala/scala/releases/download/v2.11.2/scala-2.11.2.tgz", "Mac OS X, Unix, Cygwin", "25.26M"], diff --git a/_downloads/2014-10-30-2.11.4.md b/_downloads/2014-10-30-2.11.4.md index d5957f7ca..a8f4f210b 100644 --- a/_downloads/2014-10-30-2.11.4.md +++ b/_downloads/2014-10-30-2.11.4.md @@ -6,7 +6,7 @@ release_version: 2.11.4 release_date: "October 30, 2014" show_resources: "true" permalink: /download/2.11.4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.4.tgz", "https://github.com/scala/scala/releases/download/v2.11.4/scala-2.11.4.tgz", "Mac OS X, Unix, Cygwin", "25.28M"], diff --git a/_downloads/2015-01-14-2.11.5.md b/_downloads/2015-01-14-2.11.5.md index 5304b3f78..8e2670bf6 100644 --- a/_downloads/2015-01-14-2.11.5.md +++ b/_downloads/2015-01-14-2.11.5.md @@ -6,7 +6,7 @@ release_version: 2.11.5 release_date: "January 14, 2015" show_resources: "true" permalink: /download/2.11.5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.5.tgz", "https://github.com/scala/scala/releases/download/v2.11.5/scala-2.11.5.tgz", "Mac OS X, Unix, Cygwin", "25.88M"], diff --git a/_downloads/2015-03-05-2.10.5.md b/_downloads/2015-03-05-2.10.5.md index 1ec55a30e..b3e3e02ae 100644 --- a/_downloads/2015-03-05-2.10.5.md +++ b/_downloads/2015-03-05-2.10.5.md @@ -6,7 +6,7 @@ release_version: 2.10.5 release_date: "March 05, 2015" show_resources: "true" permalink: /download/2.10.5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.5.tgz", "https://github.com/scala/scala/releases/download/v2.10.5/scala-2.10.5.tgz", "Mac OS X, Unix, Cygwin", "28.54M"], diff --git a/_downloads/2015-03-05-2.11.6.md b/_downloads/2015-03-05-2.11.6.md index a314f96ab..f610bdb0d 100644 --- a/_downloads/2015-03-05-2.11.6.md +++ b/_downloads/2015-03-05-2.11.6.md @@ -6,7 +6,7 @@ release_version: 2.11.6 release_date: "March 05, 2015" show_resources: "true" permalink: /download/2.11.6.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.6.tgz", "https://github.com/scala/scala/releases/download/v2.11.6/scala-2.11.6.tgz", "Mac OS X, Unix, Cygwin", "25.87M"], diff --git a/_downloads/2015-05-05-2.12.0-M1.md b/_downloads/2015-05-05-2.12.0-M1.md index 097802c73..9833de0ba 100644 --- a/_downloads/2015-05-05-2.12.0-M1.md +++ b/_downloads/2015-05-05-2.12.0-M1.md @@ -6,7 +6,7 @@ release_version: 2.12.0-M1 release_date: "May 05, 2015" show_resources: "true" permalink: /download/2.12.0-M1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-M1.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-M1/scala-2.12.0-M1.tgz", "Mac OS X, Unix, Cygwin", "23.85M"], diff --git a/_downloads/2015-06-23-2.11.7.md b/_downloads/2015-06-23-2.11.7.md index 135b0fab8..21f32d0b6 100644 --- a/_downloads/2015-06-23-2.11.7.md +++ b/_downloads/2015-06-23-2.11.7.md @@ -6,7 +6,7 @@ release_version: 2.11.7 release_date: "June 23, 2015" show_resources: "true" permalink: /download/2.11.7.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.7.tgz", "https://github.com/scala/scala/releases/download/v2.11.7/scala-2.11.7.tgz", "Mac OS X, Unix, Cygwin", "27.14M"], diff --git a/_downloads/2015-07-14-2.12.0-M2.md b/_downloads/2015-07-14-2.12.0-M2.md index 9a87eb083..35c60e28d 100644 --- a/_downloads/2015-07-14-2.12.0-M2.md +++ b/_downloads/2015-07-14-2.12.0-M2.md @@ -6,7 +6,7 @@ release_version: 2.12.0-M2 release_date: "July 14, 2015" show_resources: "true" permalink: /download/2.12.0-M2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-M2.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-M2/scala-2.12.0-M2.tgz", "Mac OS X, Unix, Cygwin", "18.68M"], diff --git a/_downloads/2015-09-18-2.10.6.md b/_downloads/2015-09-18-2.10.6.md index 2f55b8015..eb7573d63 100644 --- a/_downloads/2015-09-18-2.10.6.md +++ b/_downloads/2015-09-18-2.10.6.md @@ -6,7 +6,7 @@ release_version: 2.10.6 release_date: "September 18, 2015" show_resources: "true" permalink: /download/2.10.6.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.10.6.tgz", "https://github.com/scala/scala/releases/download/v2.10.6/scala-2.10.6.tgz", "Max OS X, Unix, Cygwin", "28.54M"], diff --git a/_downloads/2015-10-06-2.12.0-M3.md b/_downloads/2015-10-06-2.12.0-M3.md index 815170ade..3585c6be1 100644 --- a/_downloads/2015-10-06-2.12.0-M3.md +++ b/_downloads/2015-10-06-2.12.0-M3.md @@ -6,7 +6,7 @@ release_version: 2.12.0-M3 release_date: "October 06, 2015" show_resources: "true" permalink: /download/2.12.0-M3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-M3.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-M3/scala-2.12.0-M3.tgz", "Mac OS X, Unix, Cygwin", "19.97M"], diff --git a/_downloads/2016-03-08-2.11.8.md b/_downloads/2016-03-08-2.11.8.md index 82f8b3fd1..903099cd0 100644 --- a/_downloads/2016-03-08-2.11.8.md +++ b/_downloads/2016-03-08-2.11.8.md @@ -6,7 +6,7 @@ release_version: 2.11.8 release_date: "March 08, 2016" show_resources: "true" permalink: /download/2.11.8.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.8.tgz", "https://github.com/scala/scala/releases/download/v2.11.8/scala-2.11.8.tgz", "Mac OS X, Unix, Cygwin", "27.35M"], diff --git a/_downloads/2016-04-11-2.12.0-M4.md b/_downloads/2016-04-11-2.12.0-M4.md index d0b81f684..6dbf02038 100644 --- a/_downloads/2016-04-11-2.12.0-M4.md +++ b/_downloads/2016-04-11-2.12.0-M4.md @@ -6,7 +6,7 @@ release_version: 2.12.0-M4 release_date: "April 11, 2016" show_resources: "true" permalink: /download/2.12.0-M4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-M4.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-M4/scala-2.12.0-M4.tgz", "Mac OS X, Unix, Cygwin", "18.04M"], diff --git a/_downloads/2016-06-29-2.12.0-M5.md b/_downloads/2016-06-29-2.12.0-M5.md index bce4d2310..b28e7d72c 100644 --- a/_downloads/2016-06-29-2.12.0-M5.md +++ b/_downloads/2016-06-29-2.12.0-M5.md @@ -6,7 +6,7 @@ release_version: 2.12.0-M5 release_date: "June 29, 2016" show_resources: "true" permalink: /download/2.12.0-M5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-M5.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-M5/scala-2.12.0-M5.tgz", "Mac OS X, Unix, Cygwin", "17.53M"], diff --git a/_downloads/2016-09-06-2.12.0-RC1.md b/_downloads/2016-09-06-2.12.0-RC1.md index 2c744ff1b..31454335e 100644 --- a/_downloads/2016-09-06-2.12.0-RC1.md +++ b/_downloads/2016-09-06-2.12.0-RC1.md @@ -6,7 +6,7 @@ release_version: 2.12.0-RC1 release_date: "September 06, 2016" show_resources: "true" permalink: /download/2.12.0-RC1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-RC1.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-RC1/scala-2.12.0-RC1.tgz", "Mac OS X, Unix, Cygwin", "17.65M"], diff --git a/_downloads/2016-10-18-2.12.0-RC2.md b/_downloads/2016-10-18-2.12.0-RC2.md index a2e8b9bd4..9e8bf24c0 100644 --- a/_downloads/2016-10-18-2.12.0-RC2.md +++ b/_downloads/2016-10-18-2.12.0-RC2.md @@ -6,7 +6,7 @@ release_version: 2.12.0-RC2 release_date: "October 18, 2016" show_resources: "true" permalink: /download/2.12.0-RC2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.12.0-RC2.tgz", "https://github.com/scala/scala/releases/download/v2.12.0-RC2/scala-2.12.0-RC2.tgz", "Mac OS X, Unix, Cygwin", "19.24M"], diff --git a/_downloads/2016-12-05-2.12.1.md b/_downloads/2016-12-05-2.12.1.md index eeef9f695..cdd339cb9 100644 --- a/_downloads/2016-12-05-2.12.1.md +++ b/_downloads/2016-12-05-2.12.1.md @@ -6,7 +6,7 @@ release_version: 2.12.1 release_date: "December 05, 2016" show_resources: "true" permalink: /download/2.12.1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.1/ resources: [ diff --git a/_downloads/2017-04-17-2.13.0-M1.md b/_downloads/2017-04-17-2.13.0-M1.md index 1819df607..a4a9b12cb 100644 --- a/_downloads/2017-04-17-2.13.0-M1.md +++ b/_downloads/2017-04-17-2.13.0-M1.md @@ -6,7 +6,7 @@ release_version: 2.13.0-M1 release_date: "April 18, 2017" show_resources: "true" permalink: /download/2.13.0-M1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-M1.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-M1/scala-2.13.0-M1.tgz", "Mac OS X, Unix, Cygwin", "16.95M"], diff --git a/_downloads/2017-04-18-2.11.11.md b/_downloads/2017-04-18-2.11.11.md index f46722b8c..5ebcdedb8 100644 --- a/_downloads/2017-04-18-2.11.11.md +++ b/_downloads/2017-04-18-2.11.11.md @@ -6,7 +6,7 @@ release_version: 2.11.11 release_date: "April 18, 2017" show_resources: "true" permalink: /download/2.11.11.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license resources: [ ["-main-unixsys", "scala-2.11.11.tgz", "https://github.com/scala/scala/releases/download/v2.11.11/scala-2.11.11.tgz", "Mac OS X, Unix, Cygwin", "27.74M"], diff --git a/_downloads/2017-04-18-2.12.2.md b/_downloads/2017-04-18-2.12.2.md index 058709e7f..6239819c8 100644 --- a/_downloads/2017-04-18-2.12.2.md +++ b/_downloads/2017-04-18-2.12.2.md @@ -6,7 +6,7 @@ release_version: 2.12.2 release_date: "April 18, 2017" show_resources: "true" permalink: /download/2.12.2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.8 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.2/ resources: [ diff --git a/_downloads/2017-07-26-2.12.3.md b/_downloads/2017-07-26-2.12.3.md index 683e86c16..887ea038e 100644 --- a/_downloads/2017-07-26-2.12.3.md +++ b/_downloads/2017-07-26-2.12.3.md @@ -6,7 +6,7 @@ release_version: 2.12.3 release_date: "July 26, 2017" show_resources: "true" permalink: /download/2.12.3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.3/ resources: [ diff --git a/_downloads/2017-08-08-2.13.0-M2.md b/_downloads/2017-08-08-2.13.0-M2.md index dadefb82f..81ffdb83e 100644 --- a/_downloads/2017-08-08-2.13.0-M2.md +++ b/_downloads/2017-08-08-2.13.0-M2.md @@ -6,7 +6,7 @@ release_version: 2.13.0-M2 release_date: "August 08, 2017" show_resources: "true" permalink: /download/2.13.0-M2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-M2.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-M2/scala-2.13.0-M2.tgz", "Mac OS X, Unix, Cygwin", "16.85M"], diff --git a/_downloads/2017-10-17-2.12.4.md b/_downloads/2017-10-17-2.12.4.md index 0140960d2..6f8154b03 100644 --- a/_downloads/2017-10-17-2.12.4.md +++ b/_downloads/2017-10-17-2.12.4.md @@ -6,7 +6,7 @@ release_version: 2.12.4 release_date: "October 17, 2017" show_resources: "true" permalink: /download/2.12.4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.4/ resources: [ diff --git a/_downloads/2017-11-09-2.10.7.md b/_downloads/2017-11-09-2.10.7.md index 5b1555216..bf572f546 100644 --- a/_downloads/2017-11-09-2.10.7.md +++ b/_downloads/2017-11-09-2.10.7.md @@ -6,7 +6,7 @@ release_version: 2.10.7 release_date: "November 09, 2017" show_resources: "true" permalink: /download/2.10.7.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.10.7/ resources: [ diff --git a/_downloads/2017-11-09-2.11.12.md b/_downloads/2017-11-09-2.11.12.md index 9210534b0..93650c489 100644 --- a/_downloads/2017-11-09-2.11.12.md +++ b/_downloads/2017-11-09-2.11.12.md @@ -6,7 +6,7 @@ release_version: 2.11.12 release_date: "November 09, 2017" show_resources: "true" permalink: /download/2.11.12.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java runtime version 1.6 or later, which can be downloaded here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires the Java Runtime Environment, version 1.6 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.11.12/ resources: [ diff --git a/_downloads/2018-01-31-2.13.0-M3.md b/_downloads/2018-01-31-2.13.0-M3.md index f07ddcf8d..5123b34de 100644 --- a/_downloads/2018-01-31-2.13.0-M3.md +++ b/_downloads/2018-01-31-2.13.0-M3.md @@ -6,7 +6,7 @@ release_version: 2.13.0-M3 release_date: "January 31, 2018" show_resources: "true" permalink: /download/2.13.0-M3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-M3.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-M3/scala-2.13.0-M3.tgz", "Mac OS X, Unix, Cygwin", "17.31M"], diff --git a/_downloads/2018-03-15-2.12.5.md b/_downloads/2018-03-15-2.12.5.md index 24e8f35a6..2d1acb61f 100644 --- a/_downloads/2018-03-15-2.12.5.md +++ b/_downloads/2018-03-15-2.12.5.md @@ -6,7 +6,7 @@ release_version: 2.12.5 release_date: "March 19, 2018" show_resources: "true" permalink: /download/2.12.5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.5/ resources: [ diff --git a/_downloads/2018-04-27-2.12.6.md b/_downloads/2018-04-27-2.12.6.md index 57bc0398a..b1410e095 100644 --- a/_downloads/2018-04-27-2.12.6.md +++ b/_downloads/2018-04-27-2.12.6.md @@ -6,7 +6,7 @@ release_version: 2.12.6 release_date: "April 27, 2018" show_resources: "true" permalink: /download/2.12.6.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.6/ resources: [ diff --git a/_downloads/2018-05-15-2.13.0-M4.md b/_downloads/2018-05-15-2.13.0-M4.md index aeace5148..90047fa8a 100644 --- a/_downloads/2018-05-15-2.13.0-M4.md +++ b/_downloads/2018-05-15-2.13.0-M4.md @@ -6,7 +6,7 @@ release_version: 2.13.0-M4 release_date: "May 15, 2018" show_resources: "true" permalink: /download/2.13.0-M4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-M4.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-M4/scala-2.13.0-M4.tgz", "Mac OS X, Unix, Cygwin", "16.54M"], diff --git a/_downloads/2018-08-30-2.13.0-M5.md b/_downloads/2018-08-30-2.13.0-M5.md index 6e89ab032..22c8059b7 100644 --- a/_downloads/2018-08-30-2.13.0-M5.md +++ b/_downloads/2018-08-30-2.13.0-M5.md @@ -6,7 +6,7 @@ release_version: 2.13.0-M5 release_date: "August 30, 2018" show_resources: "true" permalink: /download/2.13.0-M5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-M5.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-M5/scala-2.13.0-M5.tgz", "Mac OS X, Unix, Cygwin", "16.90M"], diff --git a/_downloads/2018-09-27-2.12.7.md b/_downloads/2018-09-27-2.12.7.md index 23c9d6fe5..eb670518b 100644 --- a/_downloads/2018-09-27-2.12.7.md +++ b/_downloads/2018-09-27-2.12.7.md @@ -6,7 +6,7 @@ release_version: 2.12.7 release_date: "September 27, 2018" show_resources: "true" permalink: /download/2.12.7.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: 3-clause BSD license api_docs: https://www.scala-lang.org/api/2.12.7/ resources: [ diff --git a/_downloads/2018-12-04-2.12.8.md b/_downloads/2018-12-04-2.12.8.md index f7fafe929..4898fb2d5 100644 --- a/_downloads/2018-12-04-2.12.8.md +++ b/_downloads/2018-12-04-2.12.8.md @@ -6,7 +6,7 @@ release_version: 2.12.8 release_date: "December 04, 2018" show_resources: "true" permalink: /download/2.12.8.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.8/ resources: [ diff --git a/_downloads/2019-04-08-2.13.0-RC1.md b/_downloads/2019-04-08-2.13.0-RC1.md index a5b150f3f..ecfc3f709 100644 --- a/_downloads/2019-04-08-2.13.0-RC1.md +++ b/_downloads/2019-04-08-2.13.0-RC1.md @@ -6,7 +6,7 @@ release_version: 2.13.0-RC1 release_date: "April 08, 2019" show_resources: "true" permalink: /download/2.13.0-RC1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-RC1.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-RC1/scala-2.13.0-RC1.tgz", "Mac OS X, Unix, Cygwin", "18.35M"], diff --git a/_downloads/2019-05-17-2.13.0-RC2.md b/_downloads/2019-05-17-2.13.0-RC2.md index f57b48d3c..75d651b4f 100644 --- a/_downloads/2019-05-17-2.13.0-RC2.md +++ b/_downloads/2019-05-17-2.13.0-RC2.md @@ -6,7 +6,7 @@ release_version: 2.13.0-RC2 release_date: "May 17, 2019" show_resources: "true" permalink: /download/2.13.0-RC2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-RC2.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-RC2/scala-2.13.0-RC2.tgz", "Mac OS X, Unix, Cygwin", "18.51M"], diff --git a/_downloads/2019-05-31-2.13.0-RC3.md b/_downloads/2019-05-31-2.13.0-RC3.md index 824c6b12c..db2999141 100644 --- a/_downloads/2019-05-31-2.13.0-RC3.md +++ b/_downloads/2019-05-31-2.13.0-RC3.md @@ -6,7 +6,7 @@ release_version: 2.13.0-RC3 release_date: "May 31, 2019" show_resources: "true" permalink: /download/2.13.0-RC3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 resources: [ ["-main-unixsys", "scala-2.13.0-RC3.tgz", "https://github.com/scala/scala/releases/download/v2.13.0-RC3/scala-2.13.0-RC3.tgz", "Mac OS X, Unix, Cygwin", "18.51M"], diff --git a/_downloads/2019-06-11-2.13.0.md b/_downloads/2019-06-11-2.13.0.md index 60674d5b0..fb06d04d8 100644 --- a/_downloads/2019-06-11-2.13.0.md +++ b/_downloads/2019-06-11-2.13.0.md @@ -6,7 +6,7 @@ release_version: 2.13.0 release_date: "June 11, 2019" show_resources: "true" permalink: /download/2.13.0.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.0/ resources: [ diff --git a/_downloads/2019-08-05-2.12.9.md b/_downloads/2019-08-05-2.12.9.md index 481ff3972..ce104ff26 100644 --- a/_downloads/2019-08-05-2.12.9.md +++ b/_downloads/2019-08-05-2.12.9.md @@ -6,7 +6,7 @@ release_version: 2.12.9 release_date: "August 05, 2019" show_resources: "true" permalink: /download/2.12.9.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.9/ resources: [ diff --git a/_downloads/2019-09-10-2.12.10.md b/_downloads/2019-09-10-2.12.10.md index 86ec64d79..87c09af2f 100644 --- a/_downloads/2019-09-10-2.12.10.md +++ b/_downloads/2019-09-10-2.12.10.md @@ -6,7 +6,7 @@ release_version: 2.12.10 release_date: "September 10, 2019" show_resources: "true" permalink: /download/2.12.10.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.10/ resources: [ diff --git a/_downloads/2019-09-18-2.13.1.md b/_downloads/2019-09-18-2.13.1.md index f0c28b7ec..c43349391 100644 --- a/_downloads/2019-09-18-2.13.1.md +++ b/_downloads/2019-09-18-2.13.1.md @@ -6,7 +6,7 @@ release_version: 2.13.1 release_date: "September 18, 2019" show_resources: "true" permalink: /download/2.13.1.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.1/ resources: [ diff --git a/_downloads/2020-03-16-2.12.11.md b/_downloads/2020-03-16-2.12.11.md index 0e5841d8d..fa8b0b3e8 100644 --- a/_downloads/2020-03-16-2.12.11.md +++ b/_downloads/2020-03-16-2.12.11.md @@ -6,7 +6,7 @@ release_version: 2.12.11 release_date: "March 16, 2020" show_resources: "true" permalink: /download/2.12.11.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.11/ resources: [ diff --git a/_downloads/2020-04-22-2.13.2.md b/_downloads/2020-04-22-2.13.2.md index 94494841a..cb53d8051 100644 --- a/_downloads/2020-04-22-2.13.2.md +++ b/_downloads/2020-04-22-2.13.2.md @@ -6,7 +6,7 @@ release_version: 2.13.2 release_date: "April 22, 2020" show_resources: "true" permalink: /download/2.13.2.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.2/ resources: [ diff --git a/_downloads/2020-06-25-2.13.3.md b/_downloads/2020-06-25-2.13.3.md index 82f840082..428232848 100644 --- a/_downloads/2020-06-25-2.13.3.md +++ b/_downloads/2020-06-25-2.13.3.md @@ -6,7 +6,7 @@ release_version: 2.13.3 release_date: "June 25, 2020" show_resources: "true" permalink: /download/2.13.3.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.3/ resources: [ diff --git a/_downloads/2020-07-13-2.12.12.md b/_downloads/2020-07-13-2.12.12.md index b4b8707c4..83abdcb5b 100644 --- a/_downloads/2020-07-13-2.12.12.md +++ b/_downloads/2020-07-13-2.12.12.md @@ -6,7 +6,7 @@ release_version: 2.12.12 release_date: "July 13, 2020" show_resources: "true" permalink: /download/2.12.12.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.12/ resources: [ diff --git a/_downloads/2020-11-19-2.13.4.md b/_downloads/2020-11-19-2.13.4.md index 0a5cdbd22..1674387ce 100644 --- a/_downloads/2020-11-19-2.13.4.md +++ b/_downloads/2020-11-19-2.13.4.md @@ -6,7 +6,7 @@ release_version: 2.13.4 release_date: "November 19, 2020" show_resources: "true" permalink: /download/2.13.4.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.4/ resources: [ diff --git a/_downloads/2021-01-12-2.12.13.md b/_downloads/2021-01-12-2.12.13.md index df3bb661c..2b961c009 100644 --- a/_downloads/2021-01-12-2.12.13.md +++ b/_downloads/2021-01-12-2.12.13.md @@ -6,7 +6,7 @@ release_version: 2.12.13 release_date: "January 12, 2021" show_resources: "true" permalink: /download/2.12.13.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.13/ resources: [ diff --git a/_downloads/2021-02-22-2.13.5.md b/_downloads/2021-02-22-2.13.5.md index 46f51f648..b9d1ac43e 100644 --- a/_downloads/2021-02-22-2.13.5.md +++ b/_downloads/2021-02-22-2.13.5.md @@ -6,7 +6,7 @@ release_version: 2.13.5 release_date: "February 22, 2021" show_resources: "true" permalink: /download/2.13.5.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.5/ resources: [ diff --git a/_downloads/2021-05-17-2.13.6.md b/_downloads/2021-05-17-2.13.6.md index e5184d18b..432aeea98 100644 --- a/_downloads/2021-05-17-2.13.6.md +++ b/_downloads/2021-05-17-2.13.6.md @@ -6,7 +6,7 @@ release_version: 2.13.6 release_date: "May 17, 2021" show_resources: "true" permalink: /download/2.13.6.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.6/ resources: [ ["-main-unixsys", "scala-2.13.6.tgz", "https://github.com/scala/scala/releases/download/v2.13.6/scala-2.13.6.tgz", "Mac OS X, Unix, Cygwin", "22.32M"], diff --git a/_downloads/2021-05-28-2.12.14.md b/_downloads/2021-05-28-2.12.14.md index 0a55dfaaa..8e629dc68 100644 --- a/_downloads/2021-05-28-2.12.14.md +++ b/_downloads/2021-05-28-2.12.14.md @@ -6,7 +6,7 @@ release_version: 2.12.14 release_date: "May 28, 2021" show_resources: "true" permalink: /download/2.12.14.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.14/ resources: [ diff --git a/_downloads/2021-09-14-2.12.15.md b/_downloads/2021-09-14-2.12.15.md index 41e575695..7cd6bd26a 100644 --- a/_downloads/2021-09-14-2.12.15.md +++ b/_downloads/2021-09-14-2.12.15.md @@ -6,7 +6,7 @@ release_version: 2.12.15 release_date: "September 14, 2021" show_resources: "true" permalink: /download/2.12.15.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.12.15/ resources: [ diff --git a/_downloads/2021-11-01-2.13.7.md b/_downloads/2021-11-01-2.13.7.md index 5e6a86130..1a14a4752 100644 --- a/_downloads/2021-11-01-2.13.7.md +++ b/_downloads/2021-11-01-2.13.7.md @@ -6,7 +6,7 @@ release_version: 2.13.7 release_date: "November 01, 2021" show_resources: "true" permalink: /download/2.13.7.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.7/ resources: [ diff --git a/_downloads/2022-01-12-2.13.8.md b/_downloads/2022-01-12-2.13.8.md index 021375c70..21a2e9583 100644 --- a/_downloads/2022-01-12-2.13.8.md +++ b/_downloads/2022-01-12-2.13.8.md @@ -6,7 +6,7 @@ release_version: 2.13.8 release_date: "January 12, 2022" show_resources: "true" permalink: /download/2.13.8.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." license: Apache License, Version 2.0 api_docs: https://www.scala-lang.org/api/2.13.8/ resources: [ diff --git a/_downloads/2022-06-10-2.12.16.md b/_downloads/2022-06-10-2.12.16.md index b8172b277..48a562336 100644 --- a/_downloads/2022-06-10-2.12.16.md +++ b/_downloads/2022-06-10-2.12.16.md @@ -6,7 +6,7 @@ release_version: 2.12.16 release_date: "June 10, 2022" show_resources: "true" permalink: /download/2.12.16.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.12.16/ resources: [ ["-main-unixsys", "scala-2.12.16.tgz", "https://github.com/scala/scala/releases/download/v2.12.16/scala-2.12.16.tgz", "Mac OS X, Unix, Cygwin", "20.06M"], diff --git a/_downloads/2022-09-16-2.12.17.md b/_downloads/2022-09-16-2.12.17.md index 83b43c9dc..b224783e4 100644 --- a/_downloads/2022-09-16-2.12.17.md +++ b/_downloads/2022-09-16-2.12.17.md @@ -6,7 +6,7 @@ release_version: 2.12.17 release_date: "September 16, 2022" show_resources: "true" permalink: /download/2.12.17.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.12.17/ resources: [ ["-main-unixsys", "scala-2.12.17.tgz", "https://github.com/scala/scala/releases/download/v2.12.17/scala-2.12.17.tgz", "Mac OS X, Unix, Cygwin", "19.99M"], diff --git a/_downloads/2022-09-21-2.13.9.md b/_downloads/2022-09-21-2.13.9.md index 4e8e03f52..99f00333a 100644 --- a/_downloads/2022-09-21-2.13.9.md +++ b/_downloads/2022-09-21-2.13.9.md @@ -6,7 +6,7 @@ release_version: 2.13.9 release_date: "September 21, 2022" show_resources: "true" permalink: /download/2.13.9.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.9/ resources: [ ["-main-unixsys", "scala-2.13.9.tgz", "https://github.com/scala/scala/releases/download/v2.13.9/scala-2.13.9.tgz", "Mac OS X, Unix, Cygwin", "22.51M"], diff --git a/_downloads/2022-10-13-2.13.10.md b/_downloads/2022-10-13-2.13.10.md index f75e9f57b..156eb6228 100644 --- a/_downloads/2022-10-13-2.13.10.md +++ b/_downloads/2022-10-13-2.13.10.md @@ -6,7 +6,7 @@ release_version: 2.13.10 release_date: "October 13, 2022" show_resources: "true" permalink: /download/2.13.10.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.10/ resources: [ ["-main-unixsys", "scala-2.13.10.tgz", "https://github.com/scala/scala/releases/download/v2.13.10/scala-2.13.10.tgz", "Mac OS X, Unix, Cygwin", "22.57M"], diff --git a/_downloads/2023-06-07-2.12.18.md b/_downloads/2023-06-07-2.12.18.md index 8e35f5b6f..28d0fb73a 100644 --- a/_downloads/2023-06-07-2.12.18.md +++ b/_downloads/2023-06-07-2.12.18.md @@ -6,7 +6,7 @@ release_version: 2.12.18 release_date: "June 07, 2023" show_resources: "true" permalink: /download/2.12.18.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.12.18/ resources: [ ["-main-unixsys", "scala-2.12.18.tgz", "https://github.com/scala/scala/releases/download/v2.12.18/scala-2.12.18.tgz", "Mac OS X, Unix, Cygwin", "20.01M"], diff --git a/_downloads/2023-06-07-2.13.11.md b/_downloads/2023-06-07-2.13.11.md index 3cabb6717..730c234c9 100644 --- a/_downloads/2023-06-07-2.13.11.md +++ b/_downloads/2023-06-07-2.13.11.md @@ -6,7 +6,7 @@ release_version: 2.13.11 release_date: "June 7, 2023" show_resources: "true" permalink: /download/2.13.11.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.11/ resources: [ ["-main-unixsys", "scala-2.13.11.tgz", "https://github.com/scala/scala/releases/download/v2.13.11/scala-2.13.11.tgz", "Mac OS X, Unix, Cygwin", "22.88M"], diff --git a/_downloads/2023-09-11-2.13.12.md b/_downloads/2023-09-11-2.13.12.md index 1b7e6c157..37e36bbde 100644 --- a/_downloads/2023-09-11-2.13.12.md +++ b/_downloads/2023-09-11-2.13.12.md @@ -6,7 +6,7 @@ release_version: 2.13.12 release_date: "September 11, 2023" show_resources: "true" permalink: /download/2.13.12.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.12/ resources: [ ["-main-unixsys", "scala-2.13.12.tgz", "https://github.com/scala/scala/releases/download/v2.13.12/scala-2.13.12.tgz", "Mac OS X, Unix, Cygwin", "22.90M"], diff --git a/_downloads/2024-02-20-2.12.19.md b/_downloads/2024-02-20-2.12.19.md index 0ef272606..148a37e04 100644 --- a/_downloads/2024-02-20-2.12.19.md +++ b/_downloads/2024-02-20-2.12.19.md @@ -6,7 +6,7 @@ release_version: 2.12.19 release_date: "February 26, 2024" show_resources: "true" permalink: /download/2.12.19.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.12.19/ resources: [ ["-main-unixsys", "scala-2.12.19.tgz", "https://github.com/scala/scala/releases/download/v2.12.19/scala-2.12.19.tgz", "Mac OS X, Unix, Cygwin", "20.08M"], diff --git a/_downloads/2024-02-26-2.13.13.md b/_downloads/2024-02-26-2.13.13.md index ddb12bae7..1a4e20ffd 100644 --- a/_downloads/2024-02-26-2.13.13.md +++ b/_downloads/2024-02-26-2.13.13.md @@ -6,7 +6,7 @@ release_version: 2.13.13 release_date: "February 26, 2024" show_resources: "true" permalink: /download/2.13.13.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.13/ resources: [ ["-main-unixsys", "scala-2.13.13.tgz", "https://github.com/scala/scala/releases/download/v2.13.13/scala-2.13.13.tgz", "Mac OS X, Unix, Cygwin", "23.02M"], diff --git a/_downloads/2024-05-01-2.13.14.md b/_downloads/2024-05-01-2.13.14.md index b527d01ac..ff7a4126d 100644 --- a/_downloads/2024-05-01-2.13.14.md +++ b/_downloads/2024-05-01-2.13.14.md @@ -6,7 +6,7 @@ release_version: 2.13.14 release_date: "May 1, 2024" show_resources: "true" permalink: /download/2.13.14.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.14/ resources: [ ["-main-unixsys", "scala-2.13.14.tgz", "https://github.com/scala/scala/releases/download/v2.13.14/scala-2.13.14.tgz", "Mac OS X, Unix, Cygwin", "23.31M"], diff --git a/_downloads/2024-09-04-2.12.20.md b/_downloads/2024-09-04-2.12.20.md index 0f1bec45e..2bee5957c 100644 --- a/_downloads/2024-09-04-2.12.20.md +++ b/_downloads/2024-09-04-2.12.20.md @@ -6,7 +6,7 @@ release_version: 2.12.20 release_date: "September 4, 2024" show_resources: "true" permalink: /download/2.12.20.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.12.20/ resources: [ ["-main-unixsys", "scala-2.12.20.tgz", "https://github.com/scala/scala/releases/download/v2.12.20/scala-2.12.20.tgz", "Mac OS X, Unix, Cygwin", "20.08M"], diff --git a/_downloads/2024-09-25-2.13.15.md b/_downloads/2024-09-25-2.13.15.md index 41e6ce4af..aa875312d 100644 --- a/_downloads/2024-09-25-2.13.15.md +++ b/_downloads/2024-09-25-2.13.15.md @@ -6,7 +6,7 @@ release_version: 2.13.15 release_date: "September 25, 2024" show_resources: "true" permalink: /download/2.13.15.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.15/ resources: [ ["-main-unixsys", "scala-2.13.15.tgz", "https://github.com/scala/scala/releases/download/v2.13.15/scala-2.13.15.tgz", "Mac OS X, Unix, Cygwin", "23.36M"], diff --git a/_downloads/2025-01-15-2.13.16.md b/_downloads/2025-01-15-2.13.16.md index 91997db79..02e0726e8 100644 --- a/_downloads/2025-01-15-2.13.16.md +++ b/_downloads/2025-01-15-2.13.16.md @@ -6,7 +6,7 @@ release_version: 2.13.16 release_date: "January 15, 2025" show_resources: "true" permalink: /download/2.13.16.html -requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java, version 8 or later, which can be downloaded from java.com." api_docs: https://www.scala-lang.org/api/2.13.16/ resources: [ ["-main-unixsys", "scala-2.13.16.tgz", "https://github.com/scala/scala/releases/download/v2.13.16/scala-2.13.16.tgz", "Mac OS X, Unix, Cygwin", "21.57M"], diff --git a/_downloads/2025-06-04-3.7.1.md b/_downloads/2025-06-04-3.7.1.md new file mode 100644 index 000000000..a45a9fc9b --- /dev/null +++ b/_downloads/2025-06-04-3.7.1.md @@ -0,0 +1,10 @@ +--- +title: Scala 3.7.1 +start: 4 June 2025 +layout: downloadpage +release_version: 3.7.1 +release_date: "June 4, 2025" +permalink: /download/3.7.1.html +license: Apache License, Version 2.0 +api_docs: https://www.scala-lang.org/api/3.7.1/ +--- diff --git a/_downloads/2025-08-01-3.7.2.md b/_downloads/2025-08-01-3.7.2.md new file mode 100644 index 000000000..6d7de8d41 --- /dev/null +++ b/_downloads/2025-08-01-3.7.2.md @@ -0,0 +1,10 @@ +--- +title: Scala 3.7.2 +start: 1 August 2025 +layout: downloadpage +release_version: 3.7.2 +release_date: "August 1, 2025" +permalink: /download/3.7.2.html +license: Apache License, Version 2.0 +api_docs: https://www.scala-lang.org/api/3.7.2/ +--- diff --git a/_downloads/2025-09-09-3.7.3.md b/_downloads/2025-09-09-3.7.3.md new file mode 100644 index 000000000..7b693b3eb --- /dev/null +++ b/_downloads/2025-09-09-3.7.3.md @@ -0,0 +1,10 @@ +--- +title: Scala 3.7.3 +start: 9 September 2025 +layout: downloadpage +release_version: 3.7.3 +release_date: "September 9, 2025" +permalink: /download/3.7.3.html +license: Apache License, Version 2.0 +api_docs: https://www.scala-lang.org/api/3.7.3/ +--- diff --git a/_downloads/2025-10-06-2.13.17.md b/_downloads/2025-10-06-2.13.17.md new file mode 100644 index 000000000..d4989e70e --- /dev/null +++ b/_downloads/2025-10-06-2.13.17.md @@ -0,0 +1,21 @@ +--- +title: Scala 2.13.17 +start: 06 October 2025 +layout: downloadpage +release_version: 2.13.17 +release_date: "October 06, 2025" +show_resources: "true" +permalink: /download/2.13.17.html +requirements: "This Scala software distribution can be installed on any Unix-like or Windows system. It requires Java 8 or later, available here." +api_docs: https://www.scala-lang.org/api/2.13.17/ +resources: [ + ["-main-unixsys", "scala-2.13.17.tgz", "https://github.com/scala/scala/releases/download/v2.13.17/scala-2.13.17.tgz", "Mac OS X, Unix, Cygwin", "21.65M"], + ["-main-windows", "scala-2.13.17.msi", "https://github.com/scala/scala/releases/download/v2.13.17/scala-2.13.17.msi", "Windows (msi installer)", "130.65M"], + ["-non-main-sys", "scala-2.13.17.zip", "https://github.com/scala/scala/releases/download/v2.13.17/scala-2.13.17.zip", "Windows", "21.68M"], + ["-non-main-sys", "scala-2.13.17.deb", "https://github.com/scala/scala/releases/download/v2.13.17/scala-2.13.17.deb", "Debian", "654.65M"], + ["-non-main-sys", "scala-2.13.17.rpm", "https://github.com/scala/scala/releases/download/v2.13.17/scala-2.13.17.rpm", "RPM package", "130.86M"], + ["-non-main-sys", "scala-docs-2.13.17.txz", "https://github.com/scala/scala/releases/download/v2.13.17/scala-docs-2.13.17.txz", "API docs", "56.36M"], + ["-non-main-sys", "scala-docs-2.13.17.zip", "https://github.com/scala/scala/releases/download/v2.13.17/scala-docs-2.13.17.zip", "API docs", "112.37M"], + ["-non-main-sys", "scala-sources-2.13.17.tar.gz", "https://github.com/scala/scala/archive/v2.13.17.tar.gz", "Sources", ""] +] +--- diff --git a/_events/2015-07-06-curryon.md b/_events/2015-07-06-curryon.md index 5a4cee1e3..2c5aa14ec 100644 --- a/_events/2015-07-06-curryon.md +++ b/_events/2015-07-06-curryon.md @@ -6,5 +6,5 @@ location: Prague, Czech Republic description: "Academia and industry need to have a talk." start: 6 July 2015 end: 7 July 2015 -link-out: https://www.curry-on.org/2015/ +link-out: https://web.archive.org/web/20250730122351/http://www.curry-on.org/2015/ --- diff --git a/_events/2015-09-25-scalaupnorth.md b/_events/2015-09-25-scalaupnorth.md index b510c91f3..6c0f02b89 100644 --- a/_events/2015-09-25-scalaupnorth.md +++ b/_events/2015-09-25-scalaupnorth.md @@ -6,5 +6,5 @@ location: Toronto, ON, Canada description: "" start: 25 September 2015 end: 26 September 2015 -link-out: http://scalaupnorth.com/2015.html +link-out: https://web.archive.org/web/20160503224847/http://scalaupnorth.com/2015.html --- diff --git a/_events/2016-07-18-curryon.md b/_events/2016-07-18-curryon.md index b0fcb55d8..7e45d1ff3 100644 --- a/_events/2016-07-18-curryon.md +++ b/_events/2016-07-18-curryon.md @@ -6,5 +6,5 @@ location: Rome, Italy description: "Academia and industry need to have a talk." start: 18 July 2016 end: 19 July 2016 -link-out: https://www.curry-on.org/2016/ +link-out: https://web.archive.org/web/20250730122352/http://www.curry-on.org/2016/ --- diff --git a/_events/2016-08-05-scalaupnorth.md b/_events/2016-08-05-scalaupnorth.md index 621bb87ad..4061a97ea 100644 --- a/_events/2016-08-05-scalaupnorth.md +++ b/_events/2016-08-05-scalaupnorth.md @@ -6,5 +6,5 @@ location: Montreal, QC, Canada description: "" start: 5 August 2016 end: 6 August 2016 -link-out: http://scalaupnorth.com/2016.html +link-out: https://web.archive.org/web/20170626002559/http://scalaupnorth.com/2016.html --- diff --git a/_events/2017-06-19-curryon.md b/_events/2017-06-19-curryon.md index b3cbf0f82..ad345a540 100644 --- a/_events/2017-06-19-curryon.md +++ b/_events/2017-06-19-curryon.md @@ -6,5 +6,5 @@ location: Barcelona, Spain description: "Academia and industry need to have a talk." start: 19 June 2017 end: 20 June 2017 -link-out: https://www.curry-on.org/2017/ +link-out: https://web.archive.org/web/20240812131857/http://www.curry-on.org/2017/ --- diff --git a/_events/2017-10-26-lambda-world.md b/_events/2017-10-26-lambda-world.md index 9a9eef849..d17199cb0 100644 --- a/_events/2017-10-26-lambda-world.md +++ b/_events/2017-10-26-lambda-world.md @@ -3,7 +3,7 @@ category: event title: Lambda World logo: /resources/img/lambda-world-2.png location: Cádiz, Spain -description: Lambda World is the largest functional programming event in Spain and orients around various FP languages such as Scala, Kotlin, Java, Haskell, Elm, Clojure, and Javascript +description: Lambda World is the largest functional programming event in Spain and orients around various FP languages such as Scala, Kotlin, Java, Haskell, Elm, Clojure, and JavaScript start: 26 October 2017 end: 27 October 2017 link-out: https://www.lambda.world/ diff --git a/_events/2018-07-16-curryon.md b/_events/2018-07-16-curryon.md index fa1d6f118..ea2d15c82 100644 --- a/_events/2018-07-16-curryon.md +++ b/_events/2018-07-16-curryon.md @@ -6,5 +6,5 @@ location: Amsterdam, The Netherlands description: "Academia and industry need to have a talk." start: 16 July 2018 end: 17 July 2018 -link-out: https://www.curry-on.org/2018/ +link-out: https://web.archive.org/web/20240225073656/http://www.curry-on.org/2018/ --- diff --git a/_events/2019-07-15-curryon.md b/_events/2019-07-15-curryon.md index d7041b0c6..fa5cfdf65 100644 --- a/_events/2019-07-15-curryon.md +++ b/_events/2019-07-15-curryon.md @@ -6,5 +6,5 @@ location: London, UK description: "Academia and industry need to have a talk." start: 15 July 2019 end: 16 July 2019 -link-out: https://www.curry-on.org/2019/ +link-out: https://web.archive.org/web/20231201170726/https://www.curry-on.org/2019/ --- diff --git a/_events/2025-05-10-lambdaconf.md b/_events/2025-05-10-lambdaconf.md deleted file mode 100644 index 236d2699a..000000000 --- a/_events/2025-05-10-lambdaconf.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -category: event -title: LambdaConf -logo: /resources/img/lambdaconf-2023-logo.svg -location: Estes Park, Colorado -description: LambdaConf returns in its second edition after the pandemic, reimagined as a multi-disciplinary developer conference featuring thought-provoking, entertaining, and mind-blowing talks and workshops that will forever change the way you write software. -start: 10 May 2025 -end: 16 May 2025 -link-out: https://www.lambdaconf.us/ ---- diff --git a/_events/2025-10-15-func_prog_conf.md b/_events/2025-10-15-func_prog_conf.md new file mode 100644 index 000000000..3cd555551 --- /dev/null +++ b/_events/2025-10-15-func_prog_conf.md @@ -0,0 +1,10 @@ +--- +category: event +title: Func Prog Conf +logo: /resources/img/func-prog-conf.png +location: Stockholm, Sweden +description: "Func Prog Conf is a half-day conference about functional programming." +start: 15 October 2025 +end: 15 October 2025 +link-out: https://funcprogconf.com/ +--- diff --git a/_events/2025-10-17-scalaio.md b/_events/2025-10-17-scalaio.md new file mode 100644 index 000000000..e52b9d768 --- /dev/null +++ b/_events/2025-10-17-scalaio.md @@ -0,0 +1,10 @@ +--- +category: event +title: ScalaIO +logo: /resources/img/scalaio.png +location: Paris, France +description: "The main Scala event in the 'pain au chocolat' part of France" +start: 17 October 2025 +end: 17 October 2025 +link-out: https://scala.io/ +--- diff --git a/_events/2026-03-26-scalar.md b/_events/2026-03-26-scalar.md new file mode 100644 index 000000000..5d41d4400 --- /dev/null +++ b/_events/2026-03-26-scalar.md @@ -0,0 +1,10 @@ +--- +category: event +title: Scalar +logo: /resources/img/scalar.png +location: Warsaw, Poland +description: "Scalar is the best Scala conference in Central Europe. Since 2014 it provides a platform to discuss latest Scala trends and use cases, and meet Scala enthusiasts from all around the world." +start: 26 March 2026 +end: 27 March 2026 +link-out: https://www.scalar-conf.com/ +--- diff --git a/_includes/downloads-list.html b/_includes/downloads-list.html index c12f33589..6438e4b9b 100644 --- a/_includes/downloads-list.html +++ b/_includes/downloads-list.html @@ -1,4 +1,4 @@ -

This page contains a comprehensive archive of previous Scala releases.

+

This page contains a comprehensive archive of Scala releases.

Current Releases

diff --git a/_includes/footer.html b/_includes/footer.html index fef2e8a90..8244d95f1 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -6,7 +6,7 @@
  • {{item.title}}

  • {% for link in item.links %} {% if link.title == "Mastodon" %} - +
  • {{link.title}}
  • {% else %}
  • {{link.title}}
  • @@ -58,7 +58,7 @@ - + diff --git a/_includes/headertop.html b/_includes/headertop.html index 15523bee9..e7b5da6a7 100644 --- a/_includes/headertop.html +++ b/_includes/headertop.html @@ -46,7 +46,7 @@ {% else %} {% endif %} - + @@ -60,4 +60,4 @@ {% if page.canonical %} - {% endif %} + {% endif %} diff --git a/_includes/navbar-inner.html b/_includes/navbar-inner.html index dee9012e5..7f89ca833 100644 --- a/_includes/navbar-inner.html +++ b/_includes/navbar-inner.html @@ -2,7 +2,7 @@ {% include alert-banner.html message_id='disabled' message=site.data.messages.scam-banner %}
    -

    Other ways to install Scala

    + +
    + + {% for release in site.data.scala-releases %} + {% assign version_slice = release.version | slice: 0, 2 %} + {% if release.category == 'current_version' %} + {% if version_slice == '3.' %} + {% unless release.title contains "LTS" %} + {% assign scala_next_release = release %} + {% endunless %} + {% if release.title contains "LTS" %} + {% assign scala_lts_release = release %} + {% endif %} + {% endif %} + {% endif %} + {% endfor %} + + +

    Which version of Scala should I choose?

    +

    There are 2 distribution lines of Scala 3:

    +
      +
    • Scala Next currently {{ scala_next_release.version }} - The default to be used by most users, containing the latest features, bug fixes and improvements.
    • +
    • Scala LTS currently {{ scala_lts_release.version }} - Advised to be used for publishing libraries.
    • +
    +
    + + +

    Other ways to install Scala

    +
    @@ -83,6 +84,7 @@

    {{page.headerSubtitle}}

    +
    diff --git a/_online_courses/big-data-analysis-with-scala-and-spark.md b/_online_courses/big-data-analysis-with-scala-and-spark.md index 15ed0cb8e..e09ab28e3 100644 --- a/_online_courses/big-data-analysis-with-scala-and-spark.md +++ b/_online_courses/big-data-analysis-with-scala-and-spark.md @@ -17,4 +17,4 @@ Learning Outcomes. By the end of this course you will be able to: - express algorithms for data analysis in a functional style, - recognize how to avoid shuffles and recomputation in Spark, -Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Parallel Programming: https://www.coursera.org/learn/parprog1. +Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Parallel Programming: https://www.coursera.org/learn/parprog1. diff --git a/_online_courses/functional_program_design_in_scala.md b/_online_courses/functional_program_design_in_scala.md index e153931f7..49705f5d1 100644 --- a/_online_courses/functional_program_design_in_scala.md +++ b/_online_courses/functional_program_design_in_scala.md @@ -21,4 +21,4 @@ Learning Outcomes. By the end of this course you will be able to: functions and state, - write simple functional reactive applications. -Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Programming Principles in Scala: https://www.coursera.org/learn/scala-functional-programming. +Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Programming Principles in Scala: https://www.coursera.org/learn/scala-functional-programming. diff --git a/_online_courses/functional_programming_principles_scala.md b/_online_courses/functional_programming_principles_scala.md index 44960110c..c6b0f2601 100644 --- a/_online_courses/functional_programming_principles_scala.md +++ b/_online_courses/functional_programming_principles_scala.md @@ -8,7 +8,7 @@ paid: false showDate: false --- -Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as X, Tumblr and Coursera. +Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and JavaScript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as X, Tumblr and Coursera. In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically. @@ -24,4 +24,4 @@ Learning Outcomes. By the end of this course you will be able to: - reason about properties of functions, - understand generic types for functional programs -Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. +Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript or Ruby is also sufficient. You should have some familiarity using the command line. diff --git a/_online_courses/parallel_programming.md b/_online_courses/parallel_programming.md index fa90a69fa..bd41addd7 100644 --- a/_online_courses/parallel_programming.md +++ b/_online_courses/parallel_programming.md @@ -17,4 +17,4 @@ Learning Outcomes. By the end of this course you will be able to: - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance -Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala: https://www.coursera.org/learn/scala-functional-program-design. +Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, JavaScript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala: https://www.coursera.org/learn/scala-functional-program-design. diff --git a/_plugins/jekyll-tabs-lib/README.md b/_plugins/jekyll-tabs-lib/README.md index a94a51490..8b0b7da44 100644 --- a/_plugins/jekyll-tabs-lib/README.md +++ b/_plugins/jekyll-tabs-lib/README.md @@ -2,7 +2,7 @@ copied from https://github.com/scala/docs.scala-lang/tree/main/_plugins/jekyll-t originally sourced from https://github.com/Ovski4/jekyll-tabs. changes: -- template.erb adapted to match the pre-existing tab html structure for docs.scala-lang.org +- template.erb adapted to match the preexisting tab html structure for docs.scala-lang.org - `tabs` do not use secure random uuid as the id, the `tabs` name parameter is used instead. - for the `tabs` block, add an optional second `class='foo bar'` parameter to allow custom classes for the tabs. - for the `tab` block, reorder the parameters: the tab label comes first, followed by the name of the parent `tabs`. diff --git a/_posts/2013-02-28-release-notes-v2.10.1-RC2.md b/_posts/2013-02-28-release-notes-v2.10.1-RC2.md index 44aee8677..c860fdf8d 100644 --- a/_posts/2013-02-28-release-notes-v2.10.1-RC2.md +++ b/_posts/2013-02-28-release-notes-v2.10.1-RC2.md @@ -116,7 +116,7 @@ As for 2.10.0, here's an overview of the most prominent new features and improve The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! @@ -342,7 +342,7 @@ Issue(s) | Commit | Message [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [286dced](https://github.com/scala/scala/commit/286dced) | SI-6288 Remedy ill-positioned extractor binding. [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [f69b846](https://github.com/scala/scala/commit/f69b846) | SI-6288 Fix positioning of label jumps [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [79a43d7](https://github.com/scala/scala/commit/79a43d7) | SI-6288 Position argument of unapply -[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [SI-6555](https://issues.scala-lang.org/browse/SI-6555) | [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention [SI-5841](https://issues.scala-lang.org/browse/SI-5841) | [286abfc](https://github.com/scala/scala/commit/286abfc) | SI-5841 reification of renamed imports [SI-5877](https://issues.scala-lang.org/browse/SI-5877) | [0b1ae9c](https://github.com/scala/scala/commit/0b1ae9c) | SI-5877 Tweak the check for package object owner. @@ -358,7 +358,7 @@ Issue(s) | Commit | Message [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [SI-6782](https://issues.scala-lang.org/browse/SI-6782), [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. +[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. [SI-1672](https://issues.scala-lang.org/browse/SI-1672) | [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [SI-6535](https://issues.scala-lang.org/browse/SI-6535) | [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle [SI-6549](https://issues.scala-lang.org/browse/SI-6549) | [90c87fc](https://github.com/scala/scala/commit/90c87fc) | SI-6549 Improve escaping in REPL codegen. @@ -667,7 +667,7 @@ sha | Title [dfa4e23](https://github.com/scala/scala/commit/dfa4e23) | simplifies checkBounds [a0cd0f8](https://github.com/scala/scala/commit/a0cd0f81be) | prevents spurious kind bound errors [24455e2](https://github.com/scala/scala/commit/24455e2) | Recurse into instantiations when stripping type vars. -[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [e5e6d67](https://github.com/scala/scala/commit/e5e6d67) | Extract base scaladoc functionality for the IDE. [69f4e93](https://github.com/scala/scala/commit/69f4e93) | DRYer crash reports. [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention @@ -687,8 +687,8 @@ sha | Title [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. -[8434922](https://github.com/scala/scala/commit/8434922) | Addtional test cases for tail calls in catches. +[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. +[8434922](https://github.com/scala/scala/commit/8434922) | Additional test cases for tail calls in catches. [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [e4d1d93](https://github.com/scala/scala/commit/e4d1d93) | Warn when generated classfiles differ only in case. [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle @@ -740,7 +740,7 @@ sha | Title [74ca558](https://github.com/scala/scala/commit/74ca558) | SI-6551: don't insert apply call in polymorphic expression. [c656920](https://github.com/scala/scala/commit/c656920) | SI-6663: don't ignore type parameter on selectDynamic invocation [af8b45f](https://github.com/scala/scala/commit/af8b45f) | Scaladoc update for collection.mutable.MultiMap -[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the opimization apparently lost after merge. +[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the optimization apparently lost after merge. [1f0e488](https://github.com/scala/scala/commit/1f0e488) | Fixes SI-6150 - backport to 2.10.x branch. [65778d7](https://github.com/scala/scala/commit/65778d7) | SI-5330, SI-6014 deal with existential self-type [f8647ee](https://github.com/scala/scala/commit/f8647ee) | show developer guidelines on opening pull request diff --git a/_posts/2013-03-06-release-notes-v2.10.1-RC3.md b/_posts/2013-03-06-release-notes-v2.10.1-RC3.md index daef9be12..3861a6b39 100644 --- a/_posts/2013-03-06-release-notes-v2.10.1-RC3.md +++ b/_posts/2013-03-06-release-notes-v2.10.1-RC3.md @@ -117,7 +117,7 @@ As for 2.10.0, here's an overview of the most prominent new features and improve The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! @@ -347,7 +347,7 @@ Issue(s) | Commit | Message [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [286dced](https://github.com/scala/scala/commit/286dced) | SI-6288 Remedy ill-positioned extractor binding. [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [f69b846](https://github.com/scala/scala/commit/f69b846) | SI-6288 Fix positioning of label jumps [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [79a43d7](https://github.com/scala/scala/commit/79a43d7) | SI-6288 Position argument of unapply -[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [SI-6555](https://issues.scala-lang.org/browse/SI-6555) | [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention [SI-5841](https://issues.scala-lang.org/browse/SI-5841) | [286abfc](https://github.com/scala/scala/commit/286abfc) | SI-5841 reification of renamed imports [SI-5877](https://issues.scala-lang.org/browse/SI-5877) | [0b1ae9c](https://github.com/scala/scala/commit/0b1ae9c) | SI-5877 Tweak the check for package object owner. @@ -363,7 +363,7 @@ Issue(s) | Commit | Message [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [SI-6782](https://issues.scala-lang.org/browse/SI-6782), [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. +[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. [SI-1672](https://issues.scala-lang.org/browse/SI-1672) | [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [SI-6535](https://issues.scala-lang.org/browse/SI-6535) | [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle [SI-6549](https://issues.scala-lang.org/browse/SI-6549) | [90c87fc](https://github.com/scala/scala/commit/90c87fc) | SI-6549 Improve escaping in REPL codegen. @@ -677,7 +677,7 @@ sha | Title [dfa4e23](https://github.com/scala/scala/commit/dfa4e23) | simplifies checkBounds [a0cd0f8](https://github.com/scala/scala/commit/a0cd0f81be) | prevents spurious kind bound errors [24455e2](https://github.com/scala/scala/commit/24455e2) | Recurse into instantiations when stripping type vars. -[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [e5e6d67](https://github.com/scala/scala/commit/e5e6d67) | Extract base scaladoc functionality for the IDE. [69f4e93](https://github.com/scala/scala/commit/69f4e93) | DRYer crash reports. [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention @@ -697,8 +697,8 @@ sha | Title [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. -[8434922](https://github.com/scala/scala/commit/8434922) | Addtional test cases for tail calls in catches. +[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. +[8434922](https://github.com/scala/scala/commit/8434922) | Additional test cases for tail calls in catches. [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [e4d1d93](https://github.com/scala/scala/commit/e4d1d93) | Warn when generated classfiles differ only in case. [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle @@ -750,7 +750,7 @@ sha | Title [74ca558](https://github.com/scala/scala/commit/74ca558) | SI-6551: don't insert apply call in polymorphic expression. [c656920](https://github.com/scala/scala/commit/c656920) | SI-6663: don't ignore type parameter on selectDynamic invocation [af8b45f](https://github.com/scala/scala/commit/af8b45f) | Scaladoc update for collection.mutable.MultiMap -[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the opimization apparently lost after merge. +[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the optimization apparently lost after merge. [1f0e488](https://github.com/scala/scala/commit/1f0e488) | Fixes SI-6150 - backport to 2.10.x branch. [65778d7](https://github.com/scala/scala/commit/65778d7) | SI-5330, SI-6014 deal with existential self-type [f8647ee](https://github.com/scala/scala/commit/f8647ee) | show developer guidelines on opening pull request diff --git a/_posts/2013-03-13-release-notes-v2.10.1.md b/_posts/2013-03-13-release-notes-v2.10.1.md index ae73a6fa6..4f29363d1 100644 --- a/_posts/2013-03-13-release-notes-v2.10.1.md +++ b/_posts/2013-03-13-release-notes-v2.10.1.md @@ -113,7 +113,7 @@ Since 2.10.1 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! @@ -343,7 +343,7 @@ Issue(s) | Commit | Message [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [286dced](https://github.com/scala/scala/commit/286dced) | SI-6288 Remedy ill-positioned extractor binding. [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [f69b846](https://github.com/scala/scala/commit/f69b846) | SI-6288 Fix positioning of label jumps [SI-6288](https://issues.scala-lang.org/browse/SI-6288) | [79a43d7](https://github.com/scala/scala/commit/79a43d7) | SI-6288 Position argument of unapply -[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[SI-6758](https://issues.scala-lang.org/browse/SI-6758) | [089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [SI-6555](https://issues.scala-lang.org/browse/SI-6555) | [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention [SI-5841](https://issues.scala-lang.org/browse/SI-5841) | [286abfc](https://github.com/scala/scala/commit/286abfc) | SI-5841 reification of renamed imports [SI-5877](https://issues.scala-lang.org/browse/SI-5877) | [0b1ae9c](https://github.com/scala/scala/commit/0b1ae9c) | SI-5877 Tweak the check for package object owner. @@ -359,7 +359,7 @@ Issue(s) | Commit | Message [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [SI-6782](https://issues.scala-lang.org/browse/SI-6782), [SI-5789](https://issues.scala-lang.org/browse/SI-5789) | [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. +[SI-5894](https://issues.scala-lang.org/browse/SI-5894) | [b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. [SI-1672](https://issues.scala-lang.org/browse/SI-1672) | [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [SI-6535](https://issues.scala-lang.org/browse/SI-6535) | [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle [SI-6549](https://issues.scala-lang.org/browse/SI-6549) | [90c87fc](https://github.com/scala/scala/commit/90c87fc) | SI-6549 Improve escaping in REPL codegen. @@ -673,7 +673,7 @@ sha | Title [dfa4e23](https://github.com/scala/scala/commit/dfa4e23) | simplifies checkBounds [a0cd0f8](https://github.com/scala/scala/commit/a0cd0f81be) | prevents spurious kind bound errors [24455e2](https://github.com/scala/scala/commit/24455e2) | Recurse into instantiations when stripping type vars. -[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnnotationInfo for DefDef and TypeDef +[089173d](https://github.com/scala/scala/commit/089173d) | Fixes SI-6758: force LazyAnnotationInfo for DefDef and TypeDef [e5e6d67](https://github.com/scala/scala/commit/e5e6d67) | Extract base scaladoc functionality for the IDE. [69f4e93](https://github.com/scala/scala/commit/69f4e93) | DRYer crash reports. [818a2e6](https://github.com/scala/scala/commit/818a2e6) | SI-6555 Better parameter name retention @@ -693,8 +693,8 @@ sha | Title [850128d](https://github.com/scala/scala/commit/850128d) | SI-5789 Checks in the right version of the test [d699122](https://github.com/scala/scala/commit/d699122) | SI-5789 Removes assertion about implclass flag in Mixin.scala [a23cc20](https://github.com/scala/scala/commit/a23cc20) | SI-5894 Don't emit static forwarders for macros. -[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication beween GenJVM / GenASM. -[8434922](https://github.com/scala/scala/commit/8434922) | Addtional test cases for tail calls in catches. +[b828e32](https://github.com/scala/scala/commit/b828e32) | Remove some low-hanging duplication between GenJVM / GenASM. +[8434922](https://github.com/scala/scala/commit/8434922) | Additional test cases for tail calls in catches. [31a0aa7](https://github.com/scala/scala/commit/31a0aa7) | SI-1672 Catches are in tail position without finally. [e4d1d93](https://github.com/scala/scala/commit/e4d1d93) | Warn when generated classfiles differ only in case. [8a1f85d](https://github.com/scala/scala/commit/8a1f85d) | SI-6535 Step back from the precipice of a cycle @@ -746,7 +746,7 @@ sha | Title [74ca558](https://github.com/scala/scala/commit/74ca558) | SI-6551: don't insert apply call in polymorphic expression. [c656920](https://github.com/scala/scala/commit/c656920) | SI-6663: don't ignore type parameter on selectDynamic invocation [af8b45f](https://github.com/scala/scala/commit/af8b45f) | Scaladoc update for collection.mutable.MultiMap -[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the opimization apparently lost after merge. +[db0bf8f](https://github.com/scala/scala/commit/db0bf8f) | Restore the optimization apparently lost after merge. [1f0e488](https://github.com/scala/scala/commit/1f0e488) | Fixes SI-6150 - backport to 2.10.x branch. [65778d7](https://github.com/scala/scala/commit/65778d7) | SI-5330, SI-6014 deal with existential self-type [f8647ee](https://github.com/scala/scala/commit/f8647ee) | show developer guidelines on opening pull request diff --git a/_posts/2013-03-20-gsoc13.md b/_posts/2013-03-20-gsoc13.md index 77cf83562..2d81a2c54 100644 --- a/_posts/2013-03-20-gsoc13.md +++ b/_posts/2013-03-20-gsoc13.md @@ -76,7 +76,7 @@ The goal of this project is to extend Slick to support database schema manipulat ### Data migration tool -The goal of this project is creating a tool for managing data migration scripts based on Slick. We have a rough proof of concept implementation you can base work on at [https://github.com/cvogt/migrations](https://github.com/cvogt/migrations "https://github.com/cvogt/migrations") . The idea is roughly similar to migrations/evolutions in Ruby on Rails or Scala Play 2. You will need to significantly improve (or re-write) the code of the proof of concept implementation to make it production ready, extend it by futher features and explore some exciting ideas like reliable migrations in a development scenario with branches (like git branches). Your ideas are important to this project. Here is how we see it right now: +The goal of this project is creating a tool for managing data migration scripts based on Slick. We have a rough proof of concept implementation you can base work on at [https://github.com/cvogt/migrations](https://github.com/cvogt/migrations "https://github.com/cvogt/migrations") . The idea is roughly similar to migrations/evolutions in Ruby on Rails or Scala Play 2. You will need to significantly improve (or re-write) the code of the proof of concept implementation to make it production ready, extend it by further features and explore some exciting ideas like reliable migrations in a development scenario with branches (like git branches). Your ideas are important to this project. Here is how we see it right now: Existing features (which all require revision) @@ -113,7 +113,7 @@ With this project the deep DSL embedding would be greatly simplified. The DSL au The deep embedding of run-time compiled DSLs can further improve performance by utilizing the run-time collected data for optimizations. However, when this data changes the costly recompilation must be performed greatly increasing delay. Another goal of this project would be to investigate the DSL author guided JIT compilation of DSLs. With JIT compilation the run-time compiled DSLs could be utilized in latency critical programs that operate on smaller data (e.g. web servers, compilers, GUI applications). -The grand vision for the project is to generate the DSL modules from the whole Scala Library and provide DSL optimizations for them. These modules could then be used in critical paths of all Scala projects. Due to the magnitude of the project the GSoC candidate would focus on one well defined part. +The grand vision for the project is to generate the DSL modules from the whole Scala Library and provide DSL optimizations for them. These modules could then be used in critical paths of all Scala projects. Due to the magnitude of the project, the GSoC candidate would focus on one well defined part. Skills required for this project are: @@ -269,7 +269,7 @@ The project would involve some of the following tasks: * develop use cases, both for client-side and server-side applications * create a translator for SubScript into JavaScript * extend an existing JavaScript interpreter to understand SubScript -* define a strategy to send over SubScript in HTML pagesand have it translated +* define a strategy to send over SubScript in HTML pages and have it translated * provide a translator for the SubScript VM source code into JavaScript * JavaScript does not support explicit multithreading; develop an alternative @@ -321,7 +321,7 @@ The student would learn about efficient numerical computing on the JVM, as wel ## Ensime Plugin for Sublime Text -The [Sublime-Ensime](https://github.com/sublimescala/sublime-ensime) plugin enhances the [Sublime Text 2](https://www.sublimetext.com/2) editor with Scala-specific error highlighting, autocompletion and many other features. With about 1.5K downloads, and many users sucessfully using it, we are keen on introducing additional features to provide comprehensive integrated experience. We also expect that users will demand the plugin for [Sublime Text 3](https://www.sublimetext.com/3), but this requires refactoring the plugin, preparing it for running in Python 3.3 and possibly integrating with more recent features such as symbol indexing. +The [Sublime-Ensime](https://github.com/sublimescala/sublime-ensime) plugin enhances the [Sublime Text 2](https://www.sublimetext.com/2) editor with Scala-specific error highlighting, autocompletion and many other features. With about 1.5K downloads, and many users successfully using it, we are keen on introducing additional features to provide comprehensive integrated experience. We also expect that users will demand the plugin for [Sublime Text 3](https://www.sublimetext.com/3), but this requires refactoring the plugin, preparing it for running in Python 3.3 and possibly integrating with more recent features such as symbol indexing. The ideal candidate is fluent in both Python and Scala and currently uses the Sublime Text editor frequently. We also welcome candidates who are active and engage the community via issue reports, mailing lists and forums. diff --git a/_posts/2013-05-23-release-notes-v2.10.2-RC1.md b/_posts/2013-05-23-release-notes-v2.10.2-RC1.md index 38940e4ad..8d4da20de 100644 --- a/_posts/2013-05-23-release-notes-v2.10.2-RC1.md +++ b/_posts/2013-05-23-release-notes-v2.10.2-RC1.md @@ -113,7 +113,7 @@ Since 2.10.2 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! diff --git a/_posts/2013-05-29-release-notes-v2.11.0-M3.md b/_posts/2013-05-29-release-notes-v2.11.0-M3.md index ef0e2c6e0..5c5368f9f 100644 --- a/_posts/2013-05-29-release-notes-v2.11.0-M3.md +++ b/_posts/2013-05-29-release-notes-v2.11.0-M3.md @@ -12,7 +12,7 @@ The Scala team and contributors [fixed 108 issues](https://issues.scala-lang.org Please give 2.11.0-M3 a spin! This release is *not* binary compatible with the 2.10.x series, so you will need to obtain builds of your dependencies. Once we start the release candidates, we will coordinate with the open source community to release these simultaneously, but for these milestones we are not asking library authors to go to that trouble. -We'd love to hear about any regressions since 2.10.1. You can file bugs in [JIRA](https://issues.scala-lang.org/secure/CreateIssue.jspa?pid=10005&issuetype=1). Before doing so, please search for existing bugs and/or consult with the [scala-user](https://groups.google.com/forum/?fromgroups#!forum/scala-user) mailing list to be sure it is a geniune problem. Please set the 'Affects Version' field to 2.11.0-M3 and add the tag `regression`. +We'd love to hear about any regressions since 2.10.1. You can file bugs in [Jira](https://issues.scala-lang.org/secure/CreateIssue.jspa?pid=10005&issuetype=1). Before doing so, please search for existing bugs and/or consult with the [scala-user](https://groups.google.com/forum/?fromgroups#!forum/scala-user) mailing list to be sure it is a genuine problem. Please set the 'Affects Version' field to 2.11.0-M3 and add the tag `regression`. In particular, be aware that the complete fix for [SI-7486](https://issues.scala-lang.org/browse/SI-7486) is not included in this milestone. If you encounter this, the workaround is to annotate the return type diff --git a/_posts/2013-05-31-release-notes-v2.10.2-RC2.md b/_posts/2013-05-31-release-notes-v2.10.2-RC2.md index 59bfa221e..fe686ed56 100644 --- a/_posts/2013-05-31-release-notes-v2.10.2-RC2.md +++ b/_posts/2013-05-31-release-notes-v2.10.2-RC2.md @@ -113,7 +113,7 @@ Since 2.10.2 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! diff --git a/_posts/2013-06-06-release-notes-v2.10.2.md b/_posts/2013-06-06-release-notes-v2.10.2.md index c6b82e8d8..af6e9a05b 100644 --- a/_posts/2013-06-06-release-notes-v2.10.2.md +++ b/_posts/2013-06-06-release-notes-v2.10.2.md @@ -82,7 +82,7 @@ Since 2.10.2 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). #### A big thank you to all the contributors! diff --git a/_posts/2013-09-18-release-notes-v2.10.3-RC2.md b/_posts/2013-09-18-release-notes-v2.10.3-RC2.md index cca6eaf08..77e397ed1 100644 --- a/_posts/2013-09-18-release-notes-v2.10.3-RC2.md +++ b/_posts/2013-09-18-release-notes-v2.10.3-RC2.md @@ -112,7 +112,7 @@ Since 2.10.3 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). @@ -198,7 +198,7 @@ Issue(s) | Commit | Message [SI-6138](https://issues.scala-lang.org/browse/SI-6138) | [b941551](https://github.com/scala/scala/commit/b941551) | SI-6138 Centralize and refine detection of `getClass` calls [SI-7236](https://issues.scala-lang.org/browse/SI-7236), [SI-7237](https://issues.scala-lang.org/browse/SI-7237), [SI-7391](https://issues.scala-lang.org/browse/SI-7391) | [f92ef91](https://github.com/scala/scala/commit/f92ef91) | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except [SI-7473](https://issues.scala-lang.org/browse/SI-7473) | [5b54681](https://github.com/scala/scala/commit/5b54681) | SI-7473 Bad for expr crashes postfix -[SI-7421](https://issues.scala-lang.org/browse/SI-7421) | [e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachement in maven deploy +[SI-7421](https://issues.scala-lang.org/browse/SI-7421) | [e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachment in maven deploy [SI-7497](https://issues.scala-lang.org/browse/SI-7497) | [d38e8ae](https://github.com/scala/scala/commit/d38e8ae) | SI-7497 Fix scala.util.Properties.isMac @@ -285,7 +285,7 @@ sha | Title [f92ef91](https://github.com/scala/scala/commit/f92ef91) | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except [5b54681](https://github.com/scala/scala/commit/5b54681) | SI-7473 Bad for expr crashes postfix [bae4196](https://github.com/scala/scala/commit/bae4196) | A test case for a recent LUB progression. -[e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachement in maven deploy +[e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachment in maven deploy [d38e8ae](https://github.com/scala/scala/commit/d38e8ae) | SI-7497 Fix scala.util.Properties.isMac [b89dc03](https://github.com/scala/scala/commit/b89dc03) | Increase build.number to 2.10.3 [658d90a](https://github.com/scala/scala/commit/658d90a) | c.typeCheck(silent = true) now suppresses ambiguous errors diff --git a/_posts/2013-09-24-release-notes-v2.10.3-RC3.md b/_posts/2013-09-24-release-notes-v2.10.3-RC3.md index fb5a80229..a4803fcf5 100644 --- a/_posts/2013-09-24-release-notes-v2.10.3-RC3.md +++ b/_posts/2013-09-24-release-notes-v2.10.3-RC3.md @@ -118,7 +118,7 @@ Since 2.10.3 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). diff --git a/_posts/2013-09-28-release-notes-v2.11.0-M5.md b/_posts/2013-09-28-release-notes-v2.11.0-M5.md index 585dffc15..b0806edc5 100644 --- a/_posts/2013-09-28-release-notes-v2.11.0-M5.md +++ b/_posts/2013-09-28-release-notes-v2.11.0-M5.md @@ -21,7 +21,7 @@ Scala was released with slightly modified variant of 3-clause BSD license. The f We've clarified the situation but switching to standard wording of 3-clause BSD license. The intent and meaning of the license hasn't change because previous version was just reworded version of 3-clause BSD license. ## Known issues -Scala compiler artifact (due to scaladoc) depends on previous version (2.11.0-M4) of `scala-xml` and `scala-parser-combinators` modules. If you depend on `scala-compiler` (e.g. your are a macro writer) then you need to use extra care when upgrading to M5. See [scala-partest#3](https://github.com/scala/scala-partest/pull/3) which discusses the problem in depth and offers a work-around for sbt-based builds. +Scala compiler artifact (due to scaladoc) depends on previous version (2.11.0-M4) of `scala-xml` and `scala-parser-combinators` modules. If you depend on `scala-compiler` (e.g. your are a macro writer) then you need to use extra care when upgrading to M5. See [scala-partest#3](https://github.com/scala/scala-partest/pull/3) which discusses the problem in depth and offers a workaround for sbt-based builds. ## Regressions We'd [love to hear](https://issues.scala-lang.org/) about any regressions since 2.10.3 or 2.11.0-M4. Before doing so, please search for existing bugs and/or consult with the [scala-user](https://groups.google.com/forum/#!forum/scala-user) mailing list to be sure it is a genuine problem. diff --git a/_posts/2013-10-01-release-notes-v2.10.3.md b/_posts/2013-10-01-release-notes-v2.10.3.md index 7313aa818..10f0ea023 100644 --- a/_posts/2013-10-01-release-notes-v2.10.3.md +++ b/_posts/2013-10-01-release-notes-v2.10.3.md @@ -118,7 +118,7 @@ Since 2.10.3 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). @@ -207,7 +207,7 @@ Issue(s) | Commit | Message [SI-6138](https://issues.scala-lang.org/browse/SI-6138) | [b941551](https://github.com/scala/scala/commit/b941551) | SI-6138 Centralize and refine detection of `getClass` calls [SI-7236](https://issues.scala-lang.org/browse/SI-7236), [SI-7237](https://issues.scala-lang.org/browse/SI-7237), [SI-7391](https://issues.scala-lang.org/browse/SI-7391) | [f92ef91](https://github.com/scala/scala/commit/f92ef91) | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except [SI-7473](https://issues.scala-lang.org/browse/SI-7473) | [5b54681](https://github.com/scala/scala/commit/5b54681) | SI-7473 Bad for expr crashes postfix -[SI-7421](https://issues.scala-lang.org/browse/SI-7421) | [e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachement in maven deploy +[SI-7421](https://issues.scala-lang.org/browse/SI-7421) | [e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachment in maven deploy [SI-7497](https://issues.scala-lang.org/browse/SI-7497) | [d38e8ae](https://github.com/scala/scala/commit/d38e8ae) | SI-7497 Fix scala.util.Properties.isMac @@ -296,7 +296,7 @@ sha | Title [f92ef91](https://github.com/scala/scala/commit/f92ef91) | SI-7391 Always use ForkJoin in Scala actors on ... ... Java 6 and above (except [5b54681](https://github.com/scala/scala/commit/5b54681) | SI-7473 Bad for expr crashes postfix [bae4196](https://github.com/scala/scala/commit/bae4196) | A test case for a recent LUB progression. -[e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachement in maven deploy +[e18e48d](https://github.com/scala/scala/commit/e18e48d) | SI-7421 remove unneeded extra-attachment in maven deploy [d38e8ae](https://github.com/scala/scala/commit/d38e8ae) | SI-7497 Fix scala.util.Properties.isMac [b89dc03](https://github.com/scala/scala/commit/b89dc03) | Increase build.number to 2.10.3 [658d90a](https://github.com/scala/scala/commit/658d90a) | c.typeCheck(silent = true) now suppresses ambiguous errors diff --git a/_posts/2013-12-20-release-notes-v2.10.4-RC1.md b/_posts/2013-12-20-release-notes-v2.10.4-RC1.md index 3e5ce9b93..b97a3108f 100644 --- a/_posts/2013-12-20-release-notes-v2.10.4-RC1.md +++ b/_posts/2013-12-20-release-notes-v2.10.4-RC1.md @@ -118,7 +118,7 @@ Since 2.10.4 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). diff --git a/_posts/2014-02-04-release-notes-2.10.4-RC2.md b/_posts/2014-02-04-release-notes-2.10.4-RC2.md index e5f3d4de4..e47871eac 100644 --- a/_posts/2014-02-04-release-notes-2.10.4-RC2.md +++ b/_posts/2014-02-04-release-notes-2.10.4-RC2.md @@ -117,7 +117,7 @@ Since 2.10.4 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). diff --git a/_posts/2014-02-25-release-notes-2.10.4-RC3.md b/_posts/2014-02-25-release-notes-2.10.4-RC3.md index 86c1afd99..8a02b0713 100644 --- a/_posts/2014-02-25-release-notes-2.10.4-RC3.md +++ b/_posts/2014-02-25-release-notes-2.10.4-RC3.md @@ -117,7 +117,7 @@ Since 2.10.4 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). diff --git a/_posts/2014-03-06-release-notes-2.11.0-RC1.md b/_posts/2014-03-06-release-notes-2.11.0-RC1.md index 384cb7968..8f4872357 100644 --- a/_posts/2014-03-06-release-notes-2.11.0-RC1.md +++ b/_posts/2014-03-06-release-notes-2.11.0-RC1.md @@ -127,7 +127,7 @@ We'd like to emphasize the following library deprecations: Deprecation is closely linked to source and binary compatibility. We say two versions are source compatible when they compile the same programs with the same results. Deprecation requires qualifying this statement: "assuming there are no deprecation warnings". This is what allows us to evolve the Scala platform and keep it healthy. We move slowly to guarantee smooth upgrades, but we want to keep improving as well! ### Binary Compatibility -When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. +When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). We strive to maintain a similar invariant for the `behavior` (as opposed to just linkage) of the standard library, but this is not checked mechanically (Scala is not a proof assistant so this is out of reach for its type system). @@ -136,7 +136,7 @@ We distinguish forwards and backwards compatibility (think of these as propertie Thus, backwards compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forwards compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same compilation unit). -These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/browse/SI-8168?filter=12405&jql=project%20%3D%20SI%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20%3E%20%22Scala%202.10.0%22%20and%20fixVersion%20%3C%3D%20%22scala%202.10.4-RC3%22) in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet commiting!) to extend it to include major versions in the future. +These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/browse/SI-8168?filter=12405&jql=project%20%3D%20SI%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20%3E%20%22Scala%202.10.0%22%20and%20fixVersion%20%3C%3D%20%22scala%202.10.4-RC3%22) in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet committing!) to extend it to include major versions in the future. #### Concretely Just like the 2.10.x series, we guarantee forwards and backwards compatibility of the `"org.scala-lang" % "scala-library" % "2.11.x"` and `"org.scala-lang" % "scala-reflect" % "2.11.x"` artifacts, except for anything under the `scala.reflect.internal` package, as scala-reflect is still experimental. We also strongly discourage relying on the stability of `scala.concurrent.impl` and `scala.reflect.runtime`, though we will only break compatibility for severe bugs here. @@ -160,7 +160,7 @@ This release contains all of the bug fixes and improvements made in the 2.10 ser * The compiler has been modularized internally, to separate the presentation compiler, scaladoc and the REPL. We hope this will make it easier to contribute. In this release, all of these modules are still packaged in scala-compiler.jar. We plan to ship them in separate JARs in 2.12.x. * Reflection, macros and quasiquotes * Please see [this detailed changelog](https://docs.scala-lang.org/overviews/macros/changelog211.html) that lists all significant changes and provides advice on forward and backward compatibility. - * See also this [summary](hxxp://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. + * See also this [summary](https://web.archive.org/web/20140507100409/http://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. * [#3321](https://github.com/scala/scala/pull/3321) introduced [Sprinter](https://vladimirnik.github.io/sprinter/), a new AST pretty-printing library! Very useful for tools that deal with source code. * Back-end * The [GenBCode back-end](https://github.com/scala/scala/pull/2620) (experimental in 2.11). See [@magarciaepfl's extensive documentation](https://magarciaepfl.github.io/scala/). diff --git a/_posts/2014-03-20-release-notes-2.11.0-RC3.md b/_posts/2014-03-20-release-notes-2.11.0-RC3.md index 3a6e78e41..89e0d16a1 100644 --- a/_posts/2014-03-20-release-notes-2.11.0-RC3.md +++ b/_posts/2014-03-20-release-notes-2.11.0-RC3.md @@ -136,7 +136,7 @@ We'd like to emphasize the following library deprecations: Deprecation is closely linked to source and binary compatibility. We say two versions are source compatible when they compile the same programs with the same results. Deprecation requires qualifying this statement: "assuming there are no deprecation warnings". This is what allows us to evolve the Scala platform and keep it healthy. We move slowly to guarantee smooth upgrades, but we want to keep improving as well! ### Binary Compatibility -When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. +When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). We strive to maintain a similar invariant for the `behavior` (as opposed to just linkage) of the standard library, but this is not checked mechanically (Scala is not a proof assistant so this is out of reach for its type system). @@ -145,7 +145,7 @@ We distinguish forwards and backwards compatibility (think of these as propertie Thus, backwards compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forwards compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same compilation unit). -These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet commiting!) to extend it to include major versions in the future. +These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet committing!) to extend it to include major versions in the future. #### Concretely Just like the 2.10.x series, we guarantee forwards and backwards compatibility of the `"org.scala-lang" % "scala-library" % "2.11.x"` and `"org.scala-lang" % "scala-reflect" % "2.11.x"` artifacts, except for anything under the `scala.reflect.internal` package, as scala-reflect is still experimental. We also strongly discourage relying on the stability of `scala.concurrent.impl` and `scala.reflect.runtime`, though we will only break compatibility for severe bugs here. @@ -169,7 +169,7 @@ This release contains all of the bug fixes and improvements made in the 2.10 ser * The compiler has been modularized internally, to separate the presentation compiler, scaladoc and the REPL. We hope this will make it easier to contribute. In this release, all of these modules are still packaged in scala-compiler.jar. We plan to ship them in separate JARs in 2.12.x. * Reflection, macros and quasiquotes * Please see [this detailed changelog](https://docs.scala-lang.org/overviews/macros/changelog211.html) that lists all significant changes and provides advice on forward and backward compatibility. - * See also this [summary](hxxp://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. + * See also this [summary](https://web.archive.org/web/20140507100409/http://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. * [#3321](https://github.com/scala/scala/pull/3321) introduced [Sprinter](https://vladimirnik.github.io/sprinter/), a new AST pretty-printing library! Very useful for tools that deal with source code. * Back-end * The [GenBCode back-end](https://github.com/scala/scala/pull/2620) (experimental in 2.11). See [@magarciaepfl's extensive documentation](https://magarciaepfl.github.io/scala/). diff --git a/_posts/2014-03-24-release-notes-2.10.4.md b/_posts/2014-03-24-release-notes-2.10.4.md index 5dcb2570d..4cc16e920 100644 --- a/_posts/2014-03-24-release-notes-2.10.4.md +++ b/_posts/2014-03-24-release-notes-2.10.4.md @@ -115,7 +115,7 @@ Since 2.10.4 is strictly a bug-fix release, here's an overview of the most promi The API is subject to (possibly major) changes in the 2.11.x series, but don't let that stop you from experimenting with them! A lot of developers have already come up with very cool applications for them. -Some examples can be seen at [hxxp://scalamacros.org/news/2012/11/05/status-update.html](hxxp://scalamacros.org/news/2012/11/05/status-update.html). +Some examples can be seen at [http://scalamacros.org/news/2012/11/05/status-update.html](https://web.archive.org/web/20121112211549/scalamacros.org/news/2012/11/05/status-update.html). diff --git a/_posts/2014-04-08-release-notes-2.11.0-RC4.md b/_posts/2014-04-08-release-notes-2.11.0-RC4.md index b92f93b8d..15a321317 100644 --- a/_posts/2014-04-08-release-notes-2.11.0-RC4.md +++ b/_posts/2014-04-08-release-notes-2.11.0-RC4.md @@ -140,7 +140,7 @@ We'd like to emphasize the following library deprecations: Deprecation is closely linked to source and binary compatibility. We say two versions are source compatible when they compile the same programs with the same results. Deprecation requires qualifying this statement: "assuming there are no deprecation warnings". This is what allows us to evolve the Scala platform and keep it healthy. We move slowly to guarantee smooth upgrades, but we want to keep improving as well! ### Binary Compatibility -When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. +When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). We strive to maintain a similar invariant for the `behavior` (as opposed to just linkage) of the standard library, but this is not checked mechanically (Scala is not a proof assistant so this is out of reach for its type system). @@ -149,7 +149,7 @@ We distinguish forwards and backwards compatibility (think of these as propertie Thus, backwards compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forwards compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same compilation unit). -These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet commiting!) to extend it to include major versions in the future. +These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet committing!) to extend it to include major versions in the future. #### Meta Note that so far we've only talked about the jars generated by scalac for the standard library and reflection. @@ -180,7 +180,7 @@ This release contains all of the bug fixes and improvements made in the 2.10 ser * The compiler has been modularized internally, to separate the presentation compiler, scaladoc and the REPL. We hope this will make it easier to contribute. In this release, all of these modules are still packaged in scala-compiler.jar. We plan to ship them in separate JARs in 2.12.x. * Reflection, macros and quasiquotes * Please see [this detailed changelog](https://docs.scala-lang.org/overviews/macros/changelog211.html) that lists all significant changes and provides advice on forward and backward compatibility. - * See also this [summary](hxxp://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. + * See also this [summary](https://web.archive.org/web/20150219035618/http://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. * [#3321](https://github.com/scala/scala/pull/3321) introduced [Sprinter](https://vladimirnik.github.io/sprinter/), a new AST pretty-printing library! Very useful for tools that deal with source code. * Back-end * The [GenBCode back-end](https://github.com/scala/scala/pull/2620) (experimental in 2.11). See [@magarciaepfl's extensive documentation](https://magarciaepfl.github.io/scala/). diff --git a/_posts/2014-04-21-release-notes-2.11.0.md b/_posts/2014-04-21-release-notes-2.11.0.md index f1b8d194a..e9e912f32 100644 --- a/_posts/2014-04-21-release-notes-2.11.0.md +++ b/_posts/2014-04-21-release-notes-2.11.0.md @@ -34,7 +34,7 @@ This release contains all of the bug fixes and improvements made in the 2.10 ser * The compiler has been modularized internally, to separate the presentation compiler, scaladoc and the REPL. We hope this will make it easier to contribute. In this release, all of these modules are still packaged in scala-compiler.jar. We plan to ship them in separate JARs in 2.12.x. * Reflection, macros and quasiquotes * Please see [this detailed changelog](https://docs.scala-lang.org/overviews/macros/changelog211.html) that lists all significant changes and provides advice on forward and backward compatibility. - * See also this [summary](hxxp://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. + * See also this [summary](https://web.archive.org/web/20150219035618/http://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. * [#3321](https://github.com/scala/scala/pull/3321) introduced [Sprinter](https://vladimirnik.github.io/sprinter/), a new AST pretty-printing library! Very useful for tools that deal with source code. * Back-end * The [GenBCode back-end](https://github.com/scala/scala/pull/2620) (experimental in 2.11). See [@magarciaepfl's extensive documentation](https://magarciaepfl.github.io/scala/). @@ -201,7 +201,7 @@ We'd like to emphasize the following library deprecations: Deprecation is closely linked to source and binary compatibility. We say two versions are source compatible when they compile the same programs with the same results. Deprecation requires qualifying this statement: "assuming there are no deprecation warnings". This is what allows us to evolve the Scala platform and keep it healthy. We move slowly to guarantee smooth upgrades, but we want to keep improving as well! ### Binary Compatibility -When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. +When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). We strive to maintain a similar invariant for the `behavior` (as opposed to just linkage) of the standard library, but this is not checked mechanically (Scala is not a proof assistant so this is out of reach for its type system). @@ -210,7 +210,7 @@ We distinguish forwards and backwards compatibility (think of these as propertie Thus, backwards compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forwards compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same compilation unit). -These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet commiting!) to extend it to include major versions in the future. +These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet committing!) to extend it to include major versions in the future. #### Meta Note that so far we've only talked about the jars generated by scalac for the standard library and reflection. diff --git a/_posts/2014-05-21-release-notes-2.11.1.md b/_posts/2014-05-21-release-notes-2.11.1.md index 19119d493..ce86d16b7 100644 --- a/_posts/2014-05-21-release-notes-2.11.1.md +++ b/_posts/2014-05-21-release-notes-2.11.1.md @@ -46,7 +46,7 @@ This release contains all of the bug fixes and improvements made in the 2.10 ser * The compiler has been modularized internally, to separate the presentation compiler, scaladoc and the REPL. We hope this will make it easier to contribute. In this release, all of these modules are still packaged in scala-compiler.jar. We plan to ship them in separate JARs in 2.12.x. * Reflection, macros and quasiquotes * Please see [this detailed changelog](https://docs.scala-lang.org/overviews/macros/changelog211.html) that lists all significant changes and provides advice on forward and backward compatibility. - * See also this [summary](hxxp://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. + * See also this [summary](https://web.archive.org/web/20150219035618/http://scalamacros.org/news/index.html) of the experimental side of the 2.11 development cycle. * [#3321](https://github.com/scala/scala/pull/3321) introduced [Sprinter](https://vladimirnik.github.io/sprinter/), a new AST pretty-printing library! Very useful for tools that deal with source code. * Back-end * The [GenBCode back-end](https://github.com/scala/scala/pull/2620) (experimental in 2.11). See [@magarciaepfl's extensive documentation](https://magarciaepfl.github.io/scala/). @@ -226,7 +226,7 @@ We'd like to emphasize the following library deprecations: Deprecation is closely linked to source and binary compatibility. We say two versions are source compatible when they compile the same programs with the same results. Deprecation requires qualifying this statement: "assuming there are no deprecation warnings". This is what allows us to evolve the Scala platform and keep it healthy. We move slowly to guarantee smooth upgrades, but we want to keep improving as well! ### Binary Compatibility -When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. +When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). We strive to maintain a similar invariant for the `behavior` (as opposed to just linkage) of the standard library, but this is not checked mechanically (Scala is not a proof assistant so this is out of reach for its type system). @@ -235,7 +235,7 @@ We distinguish forwards and backwards compatibility (think of these as propertie Thus, backwards compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forwards compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same compilation unit). -These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet commiting!) to extend it to include major versions in the future. +These are strict constraints, but they have worked well for us in the Scala 2.10.x series. They didn't stop us from fixing [372 issues](https://issues.scala-lang.org/issues/?jql=project%20%3D%20"SI"%20AND%20resolution%3D"fixed"%20and%20fixVersion%20>%20"Scala%202.10.0"%20and%20fixVersion%20<%3D%20"Scala%202.10.4") in the 2.10.x series post 2.10.0. The advantages are clear, so we will maintain this policy in the 2.11.x series, and are looking (but not yet committing!) to extend it to include major versions in the future. #### Meta Note that so far we've only talked about the jars generated by scalac for the standard library and reflection. diff --git a/_posts/2014-07-28-roadmap-next.md b/_posts/2014-07-28-roadmap-next.md index 8f03c7b62..5a4bccbed 100644 --- a/_posts/2014-07-28-roadmap-next.md +++ b/_posts/2014-07-28-roadmap-next.md @@ -27,7 +27,7 @@ This release focuses on improving the standard library. 1. Lazy collections through improved views, including Java 8 streams interop. 2. Parallel collections with performance improvements obtained from operation fusion and more efficient parallel scheduling. 3. An integrated abstraction to handle validation. -3. The (independent) [scala.meta](hxxp://scalamacros.org/news/2014/07/16/roadmap-for-scala-macros.html) project aims to establish a new standard for reflection and macro programming. It will be considered for integration in the standard library once it is mature and stable. +3. The (independent) [scala.meta](https://web.archive.org/web/20140801143621/https://scalamacros.org/news/2014/07/16/roadmap-for-scala-macros.html) project aims to establish a new standard for reflection and macro programming. It will be considered for integration in the standard library once it is mature and stable. 4. As in every Scala release, we’ll also work on improving compiler performance. Since this release focuses on the library, compiler changes will be strictly internal. Backwards compatibility and migration strategy: The changes to collections might require source code to be rewritten, even though this should be rare. However, we aim to maintain source code compatibility modulo an automatic migration tool (analogous to `go fix` for Go) that can do the rewriting automatically. Ideally, that tool should be robust and expressive enough to support cross-building. diff --git a/_posts/2015-05-05-release-notes-2.12.0-M1.md b/_posts/2015-05-05-release-notes-2.12.0-M1.md index 9ae3cf79e..2b697f568 100644 --- a/_posts/2015-05-05-release-notes-2.12.0-M1.md +++ b/_posts/2015-05-05-release-notes-2.12.0-M1.md @@ -33,7 +33,7 @@ The following changes are planned for Scala 2.12: The design notes for this feature are available in [this gist](https://gist.github.com/retronym/0178c212e4bacffed568). * Lambda syntax for SAM types. Similar to Java 8, Scala 2.12 allows instantiating any type with one single abstract method by passing a lambda. - This feature is already avalable in Scala 2.11 using the `-Xexperimental` compiler option. + This feature is already available in Scala 2.11 using the `-Xexperimental` compiler option. It improves the experience of using libraries written for Java 8 in Scala. * New backend and optimizer. The "GenBCode" backend, which is already available in Scala 2.11 using the `-Ybackend:GenBCode` compiler option, will be enabled by default. @@ -84,7 +84,7 @@ The following modules have been removed from the Scala 2.12 distribution: * The Scala actors library is no longer released with Scala 2.12. We recommend that you use the [Akka actors library](https://akka.io/) instead. -* The Scala distribution archives and the `scala-library-all` maven dependency no longer inlcude Akka actors. +* The Scala distribution archives and the `scala-library-all` maven dependency no longer include Akka actors. To use the Akka actors library, add it to your project as a dependency. * The continuations plugin is no longer shipped with the Scala 2.12 distribution. @@ -106,7 +106,7 @@ You are kindly invited to contribute! Please file any bugs you encounter on [our issue tracker](https://issues.scala-lang.org). If you're unsure whether something is a bug, please contact the [scala-user](https://groups.google.com/forum/?fromgroups#!forum/scala-user) mailing list. -Before creating a new issue, search search the issue tracker to see if your bug has already been reported. +Before creating a new issue, search the issue tracker to see if your bug has already been reported. ### Scala IDE for Eclipse @@ -135,7 +135,7 @@ Note that milestone releases and release candidates are **not** binary compatibl When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) [`LinkageError`](https://docs.oracle.com/javase/7/docs/api/java/lang/LinkageError.html) when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. -Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatibile. +Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you're compiling with, as long as they're binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala. We check binary compatibility automatically with [MiMa](https://github.com/typesafehub/migration-manager). diff --git a/_posts/2015-10-06-release-notes-2.12.0-M3.md b/_posts/2015-10-06-release-notes-2.12.0-M3.md index 5bcbcdcf9..07ea3951a 100644 --- a/_posts/2015-10-06-release-notes-2.12.0-M3.md +++ b/_posts/2015-10-06-release-notes-2.12.0-M3.md @@ -67,7 +67,7 @@ This feature was also available in Scala 2.11, also via `-Xexperimental`. #### New tab-completion in the Scala REPL -The implementation of tab-completion in the Scala REPL has been rewritten and now uses the same infrastruture as for example the Scala IDE or Ensime. Note that this feature will also be available in 2.11.8. +The implementation of tab-completion in the Scala REPL has been rewritten and now uses the same infrastructure as for example the Scala IDE or Ensime. Note that this feature will also be available in 2.11.8. There are a number of improvements: * Reliable completion, also in partial expressions and syntactically incorrect programs: try `class C { def f(l: List[Int]) = l.` diff --git a/_posts/2015-11-16-minutes-from-nov-2015.md b/_posts/2015-11-16-minutes-from-nov-2015.md index ba18dde48..ea173e8dc 100644 --- a/_posts/2015-11-16-minutes-from-nov-2015.md +++ b/_posts/2015-11-16-minutes-from-nov-2015.md @@ -184,7 +184,7 @@ Link to issue and document: [https://github.com/scala/slip/issues/31](https://gi The document proposes a solution similar to Haskell: - a "core": which consists only what the compiler needs and not more ([@odersky](https://github.com/odersky) thinks for Scala this should be explained slightly) -- a "platform": can vary and be much bigger. The platform would be maintained by a different set of people from the core (and have it's own committee), it would be handled by the people who contribute modules to the platform +- a "platform": can vary and be much bigger. The platform would be maintained by a different set of people from the core (and have its own committee), it would be handled by the people who contribute modules to the platform [@odersky](https://github.com/odersky) thinks this would be a good model for us as well - the SLIP/SIP committee would look after the core and language, leave the platform to those who work on the platform. The SLIP committee would probably need to jumpstart the platform process in the beginning, but would like to hand over it's running to the community as soon as possible @@ -225,7 +225,7 @@ Conversation over the proposal: Splitting out core: -- [@odersky](https://github.com/odersky) thinks we should appeal to the community to help, since even Typesafe can't do all of this on it's own +- [@odersky](https://github.com/odersky) thinks we should appeal to the community to help, since even Typesafe can't do all of this on its own - [@SethTisue](https://github.com/SethTisue) splitting the library up was already on Typesafe's plate for Scala 2.13. Could use help from the community, since disentangling the compiler from everything else involves a lot of work - [@dickwall](https://github.com/dickwall) thinks this should be tracked through the SIP/SLIP site - SIP/SLIPs are much more than adding new things to the language @@ -269,7 +269,7 @@ a discussion needs to happen around that Also, should this go into the Scala namespace? -[@SethTisue](https://github.com/SethTisue) points out that part the reason the reaction of this was hard to gauge was it wasn't clear if people realized this wasn't for core (it's not). +[@SethTisue](https://github.com/SethTisue) points out that part the reason that the reaction of this was hard to gauge was it wasn't clear if people realized this wasn't for core (it's not). [@heathermiller](https://github.com/heathermiller) even we are confused about what is and isn't core diff --git a/_posts/2016-04-11-release-notes-2.12.0-M4.md b/_posts/2016-04-11-release-notes-2.12.0-M4.md index b635be856..f49ca1270 100644 --- a/_posts/2016-04-11-release-notes-2.12.0-M4.md +++ b/_posts/2016-04-11-release-notes-2.12.0-M4.md @@ -10,7 +10,7 @@ Scala 2.12 is all about making optimal use of Java 8's new features. Traits ([#5 For more details about what's new in this milestone, including some breaking changes, please take a look at [these 14 noteworthy PRs](https://github.com/scala/scala/pulls?q=is%3Apr+label%3Arelease-notes+milestone%3A2.12.0-M4+is%3Amerged). -In total, we merged [135 pull requests](https://github.com/scala/scala/pulls?q=is%3Apr+is%3Amerged+milestone%3A2.12.0-M4), of which [16 are by new contributors](https://github.com/scala/scala/pulls?q=is%3Apr+milestone%3A2.12.0-M4+label%3Awelcome) -- welcome! This milestone resolves [49 JIRA tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-M4%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). +In total, we merged [135 pull requests](https://github.com/scala/scala/pulls?q=is%3Apr+is%3Amerged+milestone%3A2.12.0-M4), of which [16 are by new contributors](https://github.com/scala/scala/pulls?q=is%3Apr+milestone%3A2.12.0-M4+label%3Awelcome) -- welcome! This milestone resolves [49 Jira tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-M4%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). We'd especially like to thank Felix Mulder for his [excellent work on the new Scaladoc interface](https://github.com/scala/scala/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+author%3Afelixmulder++milestone%3A2.12.0-M4)! Check it out! @@ -73,7 +73,7 @@ As of [#4971](https://github.com/scala/scala/pull/4971), we treat Single Abstrac (new C[Int]) sort ((a: Int, b: Int) => a - b) // ok The first attempt fails because the type checker cannot infer the types for `_ - _`'s arguments anymore. -Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments the methods are applied to. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). +Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments to which methods are applied. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). Finally, implicit conversion of SAM types to Function types won't kick in anymore, since the compiler does this conversion itself first: diff --git a/_posts/2016-05-30-scala-center-advisory-board.md b/_posts/2016-05-30-scala-center-advisory-board.md index cc1eb9c63..3df4b353c 100644 --- a/_posts/2016-05-30-scala-center-advisory-board.md +++ b/_posts/2016-05-30-scala-center-advisory-board.md @@ -11,7 +11,7 @@ Scala Center and how it influences the Scala community and ecosystem. It was never intentional, but it's become a bit of a joke at EPFL that the "Scala Center Advisory Board" was born with an unfortunate acronym! So, when I -chaired our inaugral meeting in New York two weeks ago, one of the first points +chaired our inaugural meeting in New York two weeks ago, one of the first points I made to the attendees was that we have to exceed our acronym and earn the community's trust and respect, ensuring we provide a worthwhile and beneficial service to all users of Scala. @@ -101,11 +101,11 @@ As the process was new for all of the members and less time was available for preparing proposals, we made the concession to allow proposals to be presented *at* the meeting (without prior submission), but in future, we will require that proposals be submitted to the repository at least a week before the -meeting to give all the members an opportunity to consider them before meeting. +meeting to give all members an opportunity to consider them before meeting. During the first meeting, we also elected Seth Tisue as the secretary, and his -minutes ~~will be published in the next few days~~ have been published -[here](https://scala.epfl.ch/records.html). +minutes ~~will be published in the next few days~~ have been published in the +[Scala Center at EPFL](https://scala.epfl.ch/records.html). The meeting itself was a success! We deferred one proposal until the next meeting (which will take place in August), but adopted four others: diff --git a/_posts/2016-06-29-release-notes-2.12.0-M5.md b/_posts/2016-06-29-release-notes-2.12.0-M5.md index 1cb3931f6..9ccd62243 100644 --- a/_posts/2016-06-29-release-notes-2.12.0-M5.md +++ b/_posts/2016-06-29-release-notes-2.12.0-M5.md @@ -31,7 +31,7 @@ the issue, but we are still investigating the details. The 2.12 release notes wi impact of changes to traits on binary compatibility. In total, we merged [96 pull requests](https://github.com/scala/scala/pulls?q=is%3Apr+is%3Amerged+milestone%3A2.12.0-M5), of which [9 are by new contributors](https://github.com/scala/scala/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Amerged%20milestone%3A2.12.0-M5%20label%3Awelcome) -- welcome! -This milestone resolves [49 JIRA tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-M5%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). +This milestone resolves [49 Jira tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-M5%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). As usual for milestones, 2.12.0-M5 is not binary compatible with any other Scala release, including other 2.12 milestones. Scala 2.12 requires a Java 8 runtime. @@ -96,7 +96,7 @@ As of [#4971](https://github.com/scala/scala/pull/4971), we treat Single Abstrac (new C[Int]) sort ((a: Int, b: Int) => a - b) // ok The first attempt fails because the type checker cannot infer the types for `_ - _`'s arguments anymore. -Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments the methods are applied to. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). +Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments to which methods are applied. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). Finally, implicit conversion of SAM types to Function types won't kick in anymore, since the compiler does this conversion itself first: diff --git a/_posts/2016-07-08-trait-method-performance.md b/_posts/2016-07-08-trait-method-performance.md index 084eea49b..82fbc40b6 100644 --- a/_posts/2016-07-08-trait-method-performance.md +++ b/_posts/2016-07-08-trait-method-performance.md @@ -13,7 +13,7 @@ discourse: true Since the writing of this post, we have made a lot of progress in narrowing down the performance issue described. The most important new insights: -- Jason has written a JMH-based test harness for measuring cold and hot perfromance of the Scala +- Jason has written a JMH-based test harness for measuring cold and hot performance of the Scala compiler ([scala/compiler-benchmark](https://github.com/scala/compiler-benchmark)). He used this to show that the performance difference discussed in this post only affects cold performance, i.e., startup time. @@ -52,7 +52,7 @@ interface classfile. In short, we have the following bytecode formats for concre extending a trait get a virtual method that implements the abstract method in the interface and forwards to the static implementation method. - 2.12.0-M4: trait method bodies are in (non-static) interface default methods, subclasses get an - virtual method (overridding the default method) that forwards to that default method using + virtual method (overriding the default method) that forwards to that default method using `invokespecial` (a `super` call). - [33e7106](https://github.com/scala/scala/commit/33e7106): in most cases, no more forwarders are generated in subclasses as they are not needed: the JVM will resolve the correct method. @@ -63,7 +63,7 @@ interface classfile. In short, we have the following bytecode formats for concre ## Performance measurements -Scala is unfortunately still lacking a proper infrastructure for montioring performance of the +Scala is unfortunately still lacking a proper infrastructure for monitoring performance of the compiler and the bytecode it generates. Improving this situation will be one of the main tasks once Scala 2.12.0 out the door. But for now we are left with measuring performance and identifying regressions by hand. @@ -397,7 +397,7 @@ The benchmark basically measures the following loop: int r = 0; for (int x = 0; x < N; x++) { c.v = x; - r += c.v // field acces either through a default or a virtual method + r += c.v // field access either through a default or a virtual method } Comparing the assembly code of the loop when using the default method or the virtual method, Paolo @@ -469,7 +469,7 @@ This code does the following: - The loop counter is increased by the constant `0x10` (decimal 16), corresponding to the 16 unfolded iterations. - The loop counter is compared against `0x3d9` (decimal 985): if it is smaller, another round of - the unfolded loop can be executed (the loop ends at 1000). Otherwise execution continues in + the unfolded loop can be executed (the loop ends at 1000). Otherwise, execution continues in a different location that performs single loop iterations. The interesting observation here is that the field `c.v` is only written once per 16 iterations. @@ -558,7 +558,7 @@ Some flags used in the examples of this post: [JITWatch](https://github.com/AdoptOpenJDK/jitwatch) is a GUI tool that helps understanding what the JIT is doing (I haven't tried it yet). -A thread (dead link: hxxp://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2015-April/thread.html#17649) +A thread (https://web.archive.org/web/20210506134240/https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2015-April/thread.html#17649) on the hotspot-compiler-dev mailing list on why CHA is disabled for interfaces. Seems to discuss the situation before default methods were a common thing. diff --git a/_posts/2016-07-20-sip-summary-minutes.md b/_posts/2016-07-20-sip-summary-minutes.md index e9f7a5d5c..758bbeb67 100644 --- a/_posts/2016-07-20-sip-summary-minutes.md +++ b/_posts/2016-07-20-sip-summary-minutes.md @@ -20,7 +20,7 @@ discussed. The SIP committee went through five SIPs in the queue. Two new SIPs received a number, meaning they passed the first phase of acceptance – that is, the change -to Scala is accepted in theory, so long as the the committee's design and +to Scala is accepted in theory, so long as the committee's design and implementation concerns can be adequately addressed in subsequent discussions on the SIP. The two SIPs which received numbers (first-round accepted) include: @@ -57,7 +57,5 @@ in and ask questions to the SIP committee, and have them answered live! You can even watch [past SIP meetings](https://plus.google.com/+ScalaProcess) at any time! -Check out the full meeting minutes from the July 13 SIP meeting -[here](https://docs.scala-lang.org/sips/minutes/2016-07-15-sip-minutes.html), or watch the -video of the meeting -[here](https://plus.google.com/events/c11vhomo86lkejevfkrm6uls900). +Check out the [full meeting minutes from the July 13 SIP meeting](https://docs.scala-lang.org/sips/minutes/2016-07-15-sip-minutes.html), or watch [the +video of the meeting](https://plus.google.com/events/c11vhomo86lkejevfkrm6uls900). diff --git a/_posts/2016-08-15-sip-meeting-august-results.md b/_posts/2016-08-15-sip-meeting-august-results.md index 758583148..983d0e3c5 100644 --- a/_posts/2016-08-15-sip-meeting-august-results.md +++ b/_posts/2016-08-15-sip-meeting-august-results.md @@ -21,8 +21,7 @@ The rejected proposals were: in if's, for and while loops, moving Scala's syntax away from Java and C-like languages. Whereas such changes may be arguably more beautiful, the Committee agreed that would give more problems - than benefits. Seth Tisue, the appointed reviewer, fully explains - the Committee's reaction [here](https://github.com/scala/scala.github.com/issues/555). + than benefits. The appointed reviewer, [Seth Tisue, fully explains the Committee's reaction](https://github.com/scala/scala.github.com/issues/555). - [SIP-16: Self-cleaning macros](https://github.com/scala/improvement-proposals/pull/15). Originally proposed in 2012. Macros add a whole new dimension to the Scala language. Their experimental implementation was adopted by a diff --git a/_posts/2016-09-06-release-notes-2.12.0-RC1.md b/_posts/2016-09-06-release-notes-2.12.0-RC1.md index b80f9e4f2..45574724a 100644 --- a/_posts/2016-09-06-release-notes-2.12.0-RC1.md +++ b/_posts/2016-09-06-release-notes-2.12.0-RC1.md @@ -27,7 +27,7 @@ The most notable changes since M5 are: sbt instead of Ant (affects only contributors, not users) In total, we merged [82 pull requests](https://github.com/scala/scala/pulls?q=is%3Apr+is%3Amerged+milestone%3A2.12.0-RC1), of which [6 are by new contributors](https://github.com/scala/scala/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Amerged%20milestone%3A2.12.0-RC1%20label%3Awelcome) -- welcome! -This milestone resolves [25 JIRA tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-RC1%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). +This milestone resolves [25 Jira tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-RC1%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC). As usual for Scala pre-releases, 2.12.0-RC1 is not binary compatible with any other Scala version, including any 2.12 milestones. @@ -153,7 +153,7 @@ As of [#4971](https://github.com/scala/scala/pull/4971), we treat Single Abstrac (new C[Int]) sort ((a: Int, b: Int) => a - b) // ok The first attempt fails because the type checker cannot infer the types for `_ - _`'s arguments anymore. -Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments the methods are applied to. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). +Type inference in this scenario only works when we can narrow the overloads down to one before type checking the arguments to which methods are applied. When a function is passed as an argument to an overloaded method, we do this by considering the "shape" of the function (essentially, its arity). Now that `Comparator[?]` and `(?, ?) => ?` are both considered functions of arity two, our clever scheme breaks down and the programmer must either select an overload (second application) or make the argument types explicit (last application, which resolves to the `Function2` overload). Finally, implicit conversion of SAM types to Function types won't kick in anymore, since the compiler does this conversion itself first: diff --git a/_posts/2016-10-18-release-notes-2.12.0-RC2.md b/_posts/2016-10-18-release-notes-2.12.0-RC2.md index 76094b703..2e1963cf2 100644 --- a/_posts/2016-10-18-release-notes-2.12.0-RC2.md +++ b/_posts/2016-10-18-release-notes-2.12.0-RC2.md @@ -25,7 +25,7 @@ The [RC1 release notes](https://scala-lang.org/news/2.12.0-RC1) have a list of i In total, we merged [29 pull requests](https://github.com/scala/scala/pulls?q=is%3Apr+is%3Amerged+milestone%3A2.12.0-RC2). -This milestone resolves [6 JIRA tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-RC2%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC) and [9 scala-dev issues](https://github.com/scala/scala-dev/milestone/9?closed=1). +This milestone resolves [6 Jira tickets](https://issues.scala-lang.org/issues/?jql=project%20%3D%20SI%20AND%20status%20%3D%20CLOSED%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%22Scala%202.12.0-RC2%22%20ORDER%20BY%20component%20ASC%2C%20priority%20DESC) and [9 scala-dev issues](https://github.com/scala/scala-dev/milestone/9?closed=1). As usual for Scala pre-releases, 2.12.0-RC2 is not guaranteed to be binary compatible with any other Scala version, including any 2.12 milestones and release candidates. diff --git a/_posts/2016-11-28-spp.md b/_posts/2016-11-28-spp.md index 42ef60046..50515a950 100644 --- a/_posts/2016-11-28-spp.md +++ b/_posts/2016-11-28-spp.md @@ -70,7 +70,7 @@ of the C4 contract](https://scalacenter.github.io/platform/policies.html#policie ### The Collective Code Construction Contract (C4) contract -The C4 process can perhaps be most succinctly motivated by its goals, taken directly from the C4 specification (dead link: rfc.zeromq.org/spec:42/C4/): +The C4 process can perhaps be most succinctly motivated by its goals, taken directly from the [C4 specification](https://rfc.zeromq.org/spec/42/):
    C4 is meant to provide a reusable optimal collaboration model for open source software projects. It has these specific goals: @@ -94,7 +94,7 @@ licensing, where all modules can choose their open-source licenses so long as they are compatible with the modules already in the Platform. For those that don't have one yet, Mozilla Public License v2 is recommended. The complete description of the rules is available -[here](https://scalacenter.github.io/platform/policies.html#policies-on-committers-and-contributors). +in [Policies on committers and contributors](https://scalacenter.github.io/platform/policies.html#policies-on-committers-and-contributors). ### A predictable release process The predictable release process allows potential contributors to more easily @@ -111,7 +111,7 @@ ready. The release process asks modules to use semantic versioning to reflect breaking behaviour. Therefore, major releases happen every 18 months or when new Scala versions are released. Maintainers that want to experiment with major changes -can use the @experimental annotation, whose semantics are documented [here](https://scalacenter.github.io/platform/platform.html#expectations). +can use the [@experimental annotation](https://scalacenter.github.io/platform/platform.html#expectations). Modules also need to be cross-compiled with the latest two Scala major versions and, in order to ensure Platform's long-term compatibility, bug fixes are diff --git a/_posts/2016-11-30-spores-release.md b/_posts/2016-11-30-spores-release.md index 95404af5a..991c3c683 100644 --- a/_posts/2016-11-30-spores-release.md +++ b/_posts/2016-11-30-spores-release.md @@ -21,7 +21,7 @@ this problem. Spores provide a way to control what a closures captures, and thus hopes to make it easier to operate with them in concurrent and distributed -enviornments. The key idea is to capture more type information than a standard +environments. The key idea is to capture more type information than a standard closure, and to use this type information to have more fine-grained control over the closures's environment. @@ -49,7 +49,7 @@ spores use type information to figure out whether or not something can be serialized at compile time, how can this work with Java Serialization? To achieve this, previously, spores required Scala Pickling to transitively -check the entire enviornment was able to be serialized, statically, at +check the entire environment was able to be serialized, statically, at compile-time. However, we now wish to perform this check instead for Java Serialization, as Java Serialization is most often used by developers. diff --git a/_posts/2017-02-27-scalafix-v0.3.md b/_posts/2017-02-27-scalafix-v0.3.md index d6b2091e5..4a5abc164 100644 --- a/_posts/2017-02-27-scalafix-v0.3.md +++ b/_posts/2017-02-27-scalafix-v0.3.md @@ -13,8 +13,7 @@ Scalafix v0.3 uses the new scala.meta semantic API to provide a re-designed `Rew Let me explain what that means word by word. > Note. This is the second post on scalafix and scala.meta. You might be -> interested in reading the first post -> [here](https://scala-lang.org/blog/2016/10/24/scalafix.html). +> interested in reading the [first post](https://scala-lang.org/blog/2016/10/24/scalafix.html). ## Scala.meta semantic API diff --git a/_posts/2017-09-11-scalafix-v0.5.md b/_posts/2017-09-11-scalafix-v0.5.md index 62210d575..802357c38 100644 --- a/_posts/2017-09-11-scalafix-v0.5.md +++ b/_posts/2017-09-11-scalafix-v0.5.md @@ -15,8 +15,7 @@ The project is developed at the [Scala Center][sc] with the mission to help automate migration between different Scala compiler and library versions. > This is the third post on Scalafix and scalameta. -> You might be interested in reading the previous post -> [here](https://www.scala-lang.org/blog/2017/02/27/scalafix-v0.3.html). +> You might be interested in reading the [previous post](https://www.scala-lang.org/blog/2017/02/27/scalafix-v0.3.html). ## Linting @@ -179,7 +178,7 @@ Next steps for Scalafix include: * more linting rules. I would love to unite efforts with Scalastyle and Wartremover to offer an extensive set of linting rules in a single tool. Scalafix can definitely benefit from their experience in this space. -* more complete `Sbt1` rewrite to accellerate sbt 1.0 migration, see +* more complete `Sbt1` rewrite to accelerate sbt 1.0 migration, see [sbtfix issues][]. * more polished integrations. Currently, running Scalafix in a large project typically results in many spurious errors and warnings. diff --git a/_posts/2017-11-13-security-update.md b/_posts/2017-11-13-security-update.md index eb12f81e3..184355958 100644 --- a/_posts/2017-11-13-security-update.md +++ b/_posts/2017-11-13-security-update.md @@ -12,7 +12,7 @@ We recommend upgrading to the latest versions of Scala ([Scala 2.12.4](https://g The compile daemon is started explicitly by the `fsc` command, or implicitly by executing -a Scala source file as a script (e.g `scala MyScript.scala`). The Scala REPL, started by `scala` is not affected as it does not use the compilation daemon, nor is running a pre-compiled class using the `scala` command. +a Scala source file as a script (e.g `scala MyScript.scala`). The Scala REPL, started by `scala` is not affected as it neither uses the compilation daemon nor runs a pre-compiled classes using the `scala` command. # Impact diff --git a/_posts/2017-12-01-fifth-dotty-milestone-release.md b/_posts/2017-12-01-fifth-dotty-milestone-release.md index fd09b1632..a760cb166 100644 --- a/_posts/2017-12-01-fifth-dotty-milestone-release.md +++ b/_posts/2017-12-01-fifth-dotty-milestone-release.md @@ -45,7 +45,7 @@ This query would now be classified as ambiguous. This makes sense, after all there are two possible solutions, `b(a1)` and `b(a2)`, neither of which is better than the other and both of which are better than the third solution, `c`. By contrast, Scala 2 would have rejected the search for `A` as -ambiguous, and subsequently have classified the query `b(implictly[A])` as a normal fail, +ambiguous, and subsequently have classified the query `b(implicitly[A])` as a normal fail, which means that the alternative `c` would be chosen as solution! Scala 2's somewhat puzzling behavior with respect to ambiguity has been exploited to implement @@ -130,7 +130,7 @@ Using sbt 0.13.13 or newer, do: sbt new lampepfl/dotty.g8 ``` -This will setup a new sbt project with Dotty as compiler. For more details on +This will set up a new sbt project with Dotty as compiler. For more details on using Dotty with sbt, see the [example project](https://github.com/lampepfl/dotty-example-project). diff --git a/_posts/2018-06-05-collections-feature-freeze.md b/_posts/2018-06-05-collections-feature-freeze.md index 578164237..225b69c70 100644 --- a/_posts/2018-06-05-collections-feature-freeze.md +++ b/_posts/2018-06-05-collections-feature-freeze.md @@ -24,4 +24,4 @@ Note that [binary compatibility](https://docs.scala-lang.org/overviews/core/bina ## Ecosystem update -Adoption of Scala 2.13.0-M4 so far has been slower than for most milestones because the number of source incompatibilities is higher than usual. We hope that an early feature freeze and further compatibility improvements will make it easier for core projects to upgrade to M5 (whether they are already on M4 or not) in order to bootstrap the Scala ecosystem in preparation for the 2.13.0 release. +Adoption of Scala 2.13.0-M4 so far has been slower than for most milestones because the number of source incompatibilities is greater than usual. We hope that an early feature freeze and further compatibility improvements will make it easier for core projects to upgrade to M5 (whether they are already on M4 or not) in order to bootstrap the Scala ecosystem in preparation for the 2.13.0 release. diff --git a/_posts/2019-01-18-community-build.md b/_posts/2019-01-18-community-build.md index d0b773bc3..3a74cf818 100644 --- a/_posts/2019-01-18-community-build.md +++ b/_posts/2019-01-18-community-build.md @@ -15,7 +15,7 @@ The community build is used to test changes to the Scala compiler, enabling Scala the language and Scala the ecosystem of libraries to evolve in tandem with each other. -This post highlights the progress the community build has made in the +This post highlights the progress that the community build has made in the last year. ## Overall growth @@ -99,7 +99,7 @@ See [last year's blog post](https://github.com/scala/community-build/issues/796). The links it contains are still valid. -And what about about Scala 3? As the Dotty team [tells us](https://dotty.epfl.ch/blog/2018/11/30/11th-dotty-milestone-release.html), "Dotty now has +And what about Scala 3? As the Dotty team [tells us](https://dotty.epfl.ch/blog/2018/11/30/11th-dotty-milestone-release.html), "Dotty now has a set of widely-used community libraries that are built against every nightly Dotty snapshot. Currently this includes ScalaPB, algebra, scalatest, scopt and squants. Join our community build to make sure @@ -107,7 +107,7 @@ that our regression suite includes your library." ## Credits -I (Seth Tisue) am the primary maintainer of the Scala community build, +I ([Seth Tisue](https://github.com/SethTisue)) am the primary maintainer of the Scala community build, as a member of the Scala team at Lightbend. Toni Cunei, from the tooling team at Lightbend, is the primary author of [dbuild](https://github.com/lightbend/dbuild), the meta-build tool diff --git a/_posts/2019-09-13-bagwell-award-2018.md b/_posts/2019-09-13-bagwell-award-2018.md index 18db0f096..cf21004cf 100644 --- a/_posts/2019-09-13-bagwell-award-2018.md +++ b/_posts/2019-09-13-bagwell-award-2018.md @@ -9,7 +9,7 @@ We are pleased to announce that the Phil Bagwell Memorial Scala Community Award -On stage, Eugene Yokota accepted the award on Yoshida-san's behalf. You can watch the ceremony [here](https://www.youtube.com/watch?v=HX3lxMhFDbs). (The ceremony also included the 2019 award to Kelley Robinson.) +On stage, Eugene Yokota accepted the award on Yoshida-san's behalf. You can [watch the ceremony](https://www.youtube.com/watch?v=HX3lxMhFDbs). (The ceremony also included the 2019 award to Kelley Robinson.) And here is a [tribute video](https://www.youtube.com/watch?v=mq-43ds0-pY) with remarks from Josh Suereth, Eugene Yokota, Rob Norris, and Miles Sabin. diff --git a/_posts/2019-09-13-bagwell-award-2019.md b/_posts/2019-09-13-bagwell-award-2019.md index 61eb98880..3833bc9b9 100644 --- a/_posts/2019-09-13-bagwell-award-2019.md +++ b/_posts/2019-09-13-bagwell-award-2019.md @@ -7,7 +7,7 @@ redirect_from: We are pleased to announce that the Phil Bagwell Memorial Scala Community Award for 2019 has been awarded to [Kelley Robinson](https://twitter.com/kelleyrobinson). The award was presented in Lausanne at the outset of [Scala Days](https://scaladays.org/) 2019. -You can watch the ceremony [here](https://www.youtube.com/watch?v=HX3lxMhFDbs). (The ceremony also included the 2018 award to Kenji Yoshida.) +You can [watch the ceremony](https://www.youtube.com/watch?v=HX3lxMhFDbs). (The ceremony also included the 2018 award to Kenji Yoshida.) And here is a [tribute video](https://www.youtube.com/watch?v=koyufYkatVc) with remarks from Noel Welsh, Yifan Xing, Eugene Yokota, Holden Karau, Rob Norris, and others. diff --git a/_posts/2020-02-20-community-build.md b/_posts/2020-02-20-community-build.md index c0163591d..fa2680b42 100644 --- a/_posts/2020-02-20-community-build.md +++ b/_posts/2020-02-20-community-build.md @@ -16,7 +16,7 @@ from January 2018, still applies. A year ago, we [updated you](https://www.scala-lang.org/2019/01/18/community-build.html) on improvements made up through January 2019. The post you are reading -highlights the progress the community build has made since then. +highlights the progress that the community build has made since then. In short, we believe **the Scala 2 community build is now essentially complete**. Still, we will continue to run and maintain it throughout diff --git a/_posts/2020-11-03-scalajs-for-scala-3.md b/_posts/2020-11-03-scalajs-for-scala-3.md index ea3d99b90..3cd7bb754 100644 --- a/_posts/2020-11-03-scalajs-for-scala-3.md +++ b/_posts/2020-11-03-scalajs-for-scala-3.md @@ -6,7 +6,7 @@ title: "Implementing Scala.js Support for Scala 3" --- These days, the JS platform has become an integral part of the language. -Yet, until last August, support for Scala.js in Scala 3 was close to non-existent. +Yet, until last August, support for Scala.js in Scala 3 was close to nonexistent. A first preview was shipped in Dotty 0.27.0-RC1, with support for the portable subset of Scala and native JS types. Since then, support for non-native JS types was added and will ship as part of Scala 3.0.0-M1. The only missing feature left is JS exports, which we will implement by the next milestone. @@ -95,7 +95,7 @@ TASTy has a very different level of abstraction than the Scala.js IR. During the compilation pipeline, the compiler first type-checks and elaborates Scala source code into a TASTy-level representation (even in Scala 2, although it is not TASTy itself). Then, a few dozens of phases successively transform that representation to eliminate Scala features and erase the type system. -It is only at the end of that process that Scala/JVM produces `.class` files while Scala.js procudes `.sjsir` files. +It is only at the end of that process that Scala/JVM produces `.class` files while Scala.js produces `.sjsir` files. We *can* compile from TASTy to JavaScript, but that does not take away the fact that we have to perform all those phases again. There is no shortcut. diff --git a/_posts/2020-11-06-explicit-term-inference-in-scala-3.md b/_posts/2020-11-06-explicit-term-inference-in-scala-3.md index 49fad2e37..90f2d321d 100644 --- a/_posts/2020-11-06-explicit-term-inference-in-scala-3.md +++ b/_posts/2020-11-06-explicit-term-inference-in-scala-3.md @@ -35,7 +35,7 @@ Scala 3 allows you to define an *extension method*. Assume that you are working with `List[Try[String]]` and that you often need to retrieve the elements for which the computation succeeded. -Then you can extend this type to have a `collectSucceded` method: +Then you can extend this type to have a `collectSucceeded` method: ```scala // ListTryOps.scala @@ -426,7 +426,7 @@ they would look like in Scala 3. While the final result is almost the same, code explicit and readable so that you can focus on solving your business problems rather than on syntax. -This is part of a larger set of usability and ergonomy improvements for Scala 3 that we believe +This is part of a larger set of usability and ergonomic improvements for Scala 3 that we believe will make the language easier and more fun to use and we are very excited to see what the community will create with them. diff --git a/_posts/2021-01-12-configuring-and-suppressing-warnings.md b/_posts/2021-01-12-configuring-and-suppressing-warnings.md index 4c992b4f6..60c1bdc40 100644 --- a/_posts/2021-01-12-configuring-and-suppressing-warnings.md +++ b/_posts/2021-01-12-configuring-and-suppressing-warnings.md @@ -146,7 +146,7 @@ Test.scala:4: error: method → in class ArrowAssoc is deprecated [...] Note that the `-Wconf:...` compiler argument is between quotes (`'`) in the command line, which prevents the shell from interpreting characters like `&` or `*`. -For some of the filters the syntax is not trivial, so we look at them in more detail. +The syntax is not trivial for some of the filters so we look at them in more detail. * **Message category**: Every message has a category that is displayed in verbose mode (`-Wconf:any:wv`). The `-Wconf:help` option displays the full list of available categories. For example, every `-Xlint` warning has its own category (`lint-infer-any`), the super-category `lint` matches all lint warnings. * **Source file**: By default, the source file filter is a regex that must match the file path relative to any path segment. For example, `b/.*Test.scala` matches `/a/b/XTest.scala` but not `/ab/Test.scala`. If the `-rootdir` compiler option is specified, the regex must match the file path relative to that root directory. diff --git a/_posts/2021-02-26-tuples-bring-generic-programming-to-scala-3.md b/_posts/2021-02-26-tuples-bring-generic-programming-to-scala-3.md index f3b034cf8..afa880f6b 100644 --- a/_posts/2021-02-26-tuples-bring-generic-programming-to-scala-3.md +++ b/_posts/2021-02-26-tuples-bring-generic-programming-to-scala-3.md @@ -149,8 +149,7 @@ tupleToCsv(("Bob", 42, false)) // List("Bob", "42", "false") Scala 3 introduces the `Mirror` type class, which provides type-level information about the components and labels of types. -For typical case classes, `Mirror` instances are generated automatically by the compiler -(see [here](https://docs.scala-lang.org/scala3/reference/contextual/derivation.html#mirror-1) for more details). +For typical case classes, [`Mirror` instances](https://docs.scala-lang.org/scala3/reference/contextual/derivation.html#mirror) are generated automatically by the compiler. That's why we can obtain a tuple from a case class using: ```scala @@ -193,8 +192,7 @@ index provided to `apply` is strictly inferior to the size of the tuple. How is this possible? The core new feature that allows such a flexible implementation of tuples are -**match types**. I invite you to read more about them -[here](http://dotty.epfl.ch/docs/reference/new-types/match-types.html). +**[match types](http://dotty.epfl.ch/docs/reference/new-types/match-types.html)**. Let's see how we can implement the `++` operator using this powerful construct. We will call our naive version `concat`. @@ -302,8 +300,8 @@ type Concat[L <: Tup, R <: Tup] <: Tup = L match You can see that the implementation closely follows the one above for the method. The syntax can be read in the following way: the `Concat` type is a subtype of `Tup` and is obtained by combining types `L` and `R` which are both -subtypes of `Tup`. To use it we need to massage a bit the method -implementation and to change its return type: +subtypes of `Tup`. To use it we need to massage the method implementation a +bit and to change its return type: ```scala def concat[L <: Tup, R <: Tup](left: L, right: R): Concat[L, R] = @@ -313,9 +311,8 @@ def concat[L <: Tup, R <: Tup](left: L, right: R): Concat[L, R] = ``` We use here a combination of match types and a form of dependent types called -*dependent match types* (docs -[here](http://dotty.epfl.ch/docs/reference/new-types/match-types.html) and -[here](http://dotty.epfl.ch/docs/reference/new-types/dependent-function-types.html)). +[dependent match types](http://dotty.epfl.ch/docs/reference/new-types/match-types.html) and +[dependent function types](http://dotty.epfl.ch/docs/reference/new-types/dependent-function-types.html)). There are some quirks to it as you might have noticed: using lower case types means using type variables and we cannot use pattern matching on the object. I think however that this implementation is extremely concise and readable. diff --git a/_posts/2021-03-08-scala-3-developers-preview-survey-results.md b/_posts/2021-03-08-scala-3-developers-preview-survey-results.md index b41d78e47..b7862324f 100644 --- a/_posts/2021-03-08-scala-3-developers-preview-survey-results.md +++ b/_posts/2021-03-08-scala-3-developers-preview-survey-results.md @@ -42,10 +42,9 @@ Conclusions are open to interpretation, which is why we offer full access to our methodology and data, so feel free to make your own and share it with us. ## 1 - About the Survey -The survey had a simple design: +The [survey](https://docs.google.com/forms/d/e/1FAIpQLSflVmTu9lhrtnSTh2tKAjUGrt3WvEgwlDqZg66O3EVSXd1aJg/viewform) had a simple design: - A total of 4 questions and a free field at the end - Each question contained a “closed” and an “open” part - Please check what it looks like [here](https://docs.google.com/forms/d/e/1FAIpQLSflVmTu9lhrtnSTh2tKAjUGrt3WvEgwlDqZg66O3EVSXd1aJg/viewform). The survey questions focused on Scala 3 features, tooling, migration, and communication. We chose this format for several reasons: @@ -79,7 +78,7 @@ With all that said, our approach to analyse the results is as follows: - Presenting the quantifiable data - Categorizing comments to provide further insight into the topics discussed; the purpose of the comment, such as: ‘advice’, ‘concern’, ‘request’; - overall tone: either positive or negative; to prioritise what needs addressing/fixing + overall tone: either positive or negative; to prioritize what needs addressing/fixing before RC1 or at later time, e.g. ‘critical’ or ‘good to have’. - Cross-referencing comments with other sources on the same topic. - Finally, creating a list of important topics that need to be addressed. @@ -104,7 +103,7 @@ with 28.2% Neutral responses being the smallest proportion of answered responses #### Potential issues with the poll In hindsight, we should have requested feedback directly about generic tuples in Scala 3. -Otherwise, their excitement can not be judged separately from the utility they bring +Otherwise, their excitement cannot be judged separately from the utility they bring to features such as Typeclass Derivation, Match Types, and Inline. #### Comments From Participants @@ -216,8 +215,7 @@ compiler options. However we received 7 requests for the `-Xlint` options, ### Communication ![Communication result survey](/resources/img/blog/scala-3-developers-preview-survey-results/communication-survey.svg) -We asked participants the question “How frequently do you use the following c -ommunication channels to stay up-to-date on the latest changes in Scala?”, +We asked participants the question “How frequently do you use the following communication channels to stay up-to-date on the latest changes in Scala?”, the results of which are displayed in the above chart. It is sorted in descending order based on the total counts for the Very Often and Often responses. diff --git a/_posts/2021-03-11-gsoc-2021-here-we-come.md b/_posts/2021-03-11-gsoc-2021-here-we-come.md index a66c498d2..2ef3c6b44 100644 --- a/_posts/2021-03-11-gsoc-2021-here-we-come.md +++ b/_posts/2021-03-11-gsoc-2021-here-we-come.md @@ -32,7 +32,7 @@ These are especially exciting times: Scala 3-RC1 has been released mid-February enjoy the fresh new approach! -If you are an eligible student and are interested in participing in Scala's +If you are an eligible student and are interested in participating in Scala's Google Summer of Code 2021, you can begin discussing project ideas with our mentors. Then you have from March 29 to April 13 to submit your draft proposals through [the program website](https://summerofcode.withgoogle.com/organizations/5449337515016192/). diff --git a/_posts/2021-09-27-gsoc-conclusion.md b/_posts/2021-09-27-gsoc-conclusion.md index b86fb78c9..07512632a 100644 --- a/_posts/2021-09-27-gsoc-conclusion.md +++ b/_posts/2021-09-27-gsoc-conclusion.md @@ -34,8 +34,8 @@ scalafix and Metals. However, the SemanticDB extractor for Scala3 was a work in progress, and some features in devtools were unavailable for Scala3. This project focuses on enriching SemanticDB with additional information from the Scala3 compiler in order to improve the developer experience of Scala 3 -developers You can read more -[here](https://github.com/tanishiking/gsoc-2021/blob/main/README.md) +developers. See the +[GSoC 2021 Final Report: Add synthetics and symbol information for semanticdb in Scala 3](https://github.com/tanishiking/gsoc-2021/blob/main/README.md) for more information. > Rikito's work enables a huge amount of features in tools used for working with @@ -53,8 +53,8 @@ Mentors: Julien Richard-Foy, Aleksander Boruch-Gruszecki Shapeless is a crucial dependency of many popular Scala libraries. This project explores how the Scala 2 version of the library could be cross-built for Scala 3 by porting some parts to Scala 3. It aims at helping library maintainers to -adopt Scala 3 faster. You can read more -[here](https://github.com/milessabin/shapeless/pull/1200) +adopt Scala 3 faster. See the +[Scala 3 port pull request](https://github.com/milessabin/shapeless/pull/1200) for more information. > Congratulations for your work on Shapeless, especially for being so autonomous > in this project! @@ -70,15 +70,15 @@ Mentors: Shadaj Laddad, Anatolii Kmetiuk ScalaPy is a library that enables Scala programs to use Python libraries. This project brings support for Scala 3 to the library to enable users to leverage all the new cool features that the new language versions ships while relying on -powerful and well known Python libraries. You can read more -[here](https://gist.github.com/jlareck/7268918d28b0c6a0efebeafa11011e3c) +powerful and well known Python libraries. See +[Google Summer of Code 2021: Implement support for ScalaPy in Scala 3](https://gist.github.com/jlareck/7268918d28b0c6a0efebeafa11011e3c) for more information. > Mykola's contributions bringing support for Scala 3 are really impressive and > will enable many new research and production use cases in the future! cit. Shadaj -A special thanks goes to **Zhendong Ang** who co-menthored Mykola and +A special thanks goes to **Zhendong Ang** who co-mentored Mykola and collaborated on the project for his semester project at EPFL. ### A Python - Scala integrated environment with Almond, Ammonite and ScalaPy @@ -88,8 +88,8 @@ Mentors: Anatolii Kmetiuk, Alexandre Archambault ScalaPy is a library that enables Scala programs to use Python libraries. This project focuses on improving developer experience by simplifying the setup process, providing autocomplete functionalities in Almond and Ammonite, -enriching the documentation and object displays. You can read more -[here](https://gist.github.com/kiendang/e6c2fc41448fabba6f1e6ae34cf65c49) +enriching the documentation and object displays. See +[Improving ScalaPy developer experience and integration with Ammonite and Almond](https://gist.github.com/kiendang/e6c2fc41448fabba6f1e6ae34cf65c49) for more information. > This work kick-started a better integration of the ScalaPy library in Scala > notebooks, making it easier to use Python libraries from there, and helping the diff --git a/_posts/2022-03-04-in-support-of-ukraine.md b/_posts/2022-03-04-in-support-of-ukraine.md index 2702b300a..5f44d430c 100644 --- a/_posts/2022-03-04-in-support-of-ukraine.md +++ b/_posts/2022-03-04-in-support-of-ukraine.md @@ -25,7 +25,7 @@ These are some of the steps we are taking, and we hope to inspire you to take ac * Support your friends and colleagues in the neighbouring countries, who are welcoming the people escaping the conflict areas. * Inform people around you about the unfolding crisis. Many, especially in the countries far from the affected areas, may not realise the extent of what's happening. Informing them is crucial to rally support. Share information responsibly -- check your sources. * Help financially, for example [donate to the Ukrainian Red Cross](https://donate.redcrossredcrescent.org/ua/donate/). -* More ways to help are listed [here](https://www.standwithukraine.app/) or [here](https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/). +* More ways to help are listed in [#StandWithUkraine](https://www.standwithukraine.app/) or [GlobalCitizen: Meaningful Ways You Can Help Ukraine](https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/). * Find out ways you can help that are specific to your country of residence. We are sincerely grateful to everyone who has taken action so far. diff --git a/_posts/2023-02-28-acceptd-to-gsoc-2023.md b/_posts/2023-02-28-accepted-to-gsoc-2023.md similarity index 100% rename from _posts/2023-02-28-acceptd-to-gsoc-2023.md rename to _posts/2023-02-28-accepted-to-gsoc-2023.md diff --git a/_posts/2023-07-17-signature-polymorphic-methods.md b/_posts/2023-07-17-signature-polymorphic-methods.md index 652546d7b..c5c556ab7 100644 --- a/_posts/2023-07-17-signature-polymorphic-methods.md +++ b/_posts/2023-07-17-signature-polymorphic-methods.md @@ -171,7 +171,7 @@ writeup on Stack Overflow].) Jason Zaugg describes his initial JDK 7 implementation in [PR 4139] and shows how the resulting bytecode looks. -See also these well-documented followups: [PR 5594] for JDK 9, +See also these well-documented follow ups: [PR 5594] for JDK 9, [PR 9530] for JDK 11, and [PR 9930] for JDK 17. [PR 4139]: https://github.com/scala/scala/pull/4139 diff --git a/_posts/2024-10-16-announcing-governance.md b/_posts/2024-10-16-announcing-governance.md index 4ff73f53d..a724cac6e 100644 --- a/_posts/2024-10-16-announcing-governance.md +++ b/_posts/2024-10-16-announcing-governance.md @@ -34,7 +34,7 @@ If you are wondering how these matters impact your daily life as a Scala program ### Product-driven decision making process -One of the most significant updates was the paradigm shift from treating Scala 3 as an open-source project to approaching it as an open-source product. Scala 3 is developed with predictable release cycles, issue reports are consistently prioritised and added to a milestone, and the roadmap for new features and improvements is well-defined. This focus on product success is fully reflected in the governance model and structure, led by the Product Manager, Piotr Chabelski from the Scala team at VirtusLab. This approach was inspired by the Scala 2 era and its ongoing success. +One of the most significant updates was the paradigm shift from treating Scala 3 as an open-source project to approaching it as an open-source product. Scala 3 is developed with predictable release cycles, issue reports are consistently prioritized and added to a milestone, and the roadmap for new features and improvements is well-defined. This focus on product success is fully reflected in the governance model and structure, led by the Product Manager, Piotr Chabelski from the Scala team at VirtusLab. This approach was inspired by the Scala 2 era and its ongoing success. ### Well defined Scala distributions diff --git a/_posts/2024-10-24-post-mortem-3.6.0.md b/_posts/2024-10-24-post-mortem-3.6.0.md index 30181f54f..2659a4639 100644 --- a/_posts/2024-10-24-post-mortem-3.6.0.md +++ b/_posts/2024-10-24-post-mortem-3.6.0.md @@ -113,7 +113,7 @@ of multiple factors: will be implemented as an improvement. The change was added in [scala3\#21011](https://github.com/scala/scala3/pull/21011). - The change introducing the issue was merged on the 11th of July. Now, three - months later, at the time of the release the side effects were not properly + months later, at the time of the release, the side effects were not properly considered as in the meantime there was a change in staff coupled with insufficient documentation. - We experienced unrelated downtime on the side of our infrastructure, which diff --git a/_posts/2024-12-10-release-notes-3.6.2.md b/_posts/2024-12-10-release-notes-3.6.2.md index b5790778d..92d2baf1b 100644 --- a/_posts/2024-12-10-release-notes-3.6.2.md +++ b/_posts/2024-12-10-release-notes-3.6.2.md @@ -20,7 +20,7 @@ We apologize to the Scala users for any inconvenience it might have caused. # What’s new in Scala 3.6? -Besides multiple bugfixes, this release stabilises multiple experimental features introduced to the Scala language after careful review and acceptance by the [Scala Improvement Proposal's Commitee](https://docs.scala-lang.org/sips/). Many of these changes can have a significant impact on the Scala syntax and are introducing new possibilities in writing concise, typesafe as well as easier, and easier to maintain code. +Besides multiple bugfixes, this release stabilises multiple experimental features introduced to the Scala language after careful review and acceptance by the [Scala Improvement Proposal's Committee](https://docs.scala-lang.org/sips/). Many of these changes can have a significant impact on the Scala syntax and are introducing new possibilities in writing concise, typesafe as well as easier, and easier to maintain code. ## SIP-47 - Clause Interleaving @@ -142,7 +142,7 @@ It also introduces changes to how your code is desugared by the compiler, leadin ## Experimental SIP-57 - Replace non-sensical `@unchecked` annotations -One of the new, experimental, features is the implementation of [SIP-57](https://docs.scala-lang.org/sips/replace-nonsensical-unchecked-annotation.html) introducing a `runtimeChecked` extension method replacing some usages of `@unchecked` annotation using a more convenient syntax. A common use case for `runtimeChecked` is to assert that a pattern will always match, either for convenience or because there is a known invariant that the types can not express. +One of the new, experimental, features is the implementation of [SIP-57](https://docs.scala-lang.org/sips/replace-nonsensical-unchecked-annotation.html) introducing a `runtimeChecked` extension method replacing some usages of `@unchecked` annotation using a more convenient syntax. A common use case for `runtimeChecked` is to assert that a pattern will always match, either for convenience or because there is a known invariant that the types cannot express. Some typical use cases might be looking up an expected entry in a dynamically loaded dictionary-like structure: diff --git a/_posts/2025-05-07-release-notes-3.7.0.md b/_posts/2025-05-07-release-notes-3.7.0.md index d0573cc33..3ba1d79d9 100644 --- a/_posts/2025-05-07-release-notes-3.7.0.md +++ b/_posts/2025-05-07-release-notes-3.7.0.md @@ -22,7 +22,7 @@ Named Tuples, introduced as experimental in Scala 3.5, are now a stable feature. Named tuples are a convenient lightweight way to return multiple results from a function or to model the data using tuples while allowing you to use meaningful names for its fields. ```scala -@main def meaningfullReturnTypes = +@main def meaningfulReturnTypes = extension [T](seq: Seq[T]) inline def partitionBy(predicate: PartialFunction[T, Boolean]): (matching: Seq[T], unmatched: Seq[T]) = seq.partition(predicate.unapply(_).getOrElse(false)) @@ -153,7 +153,7 @@ The code above previously required `a` to be defined outside the for-comprehensi }.map { case (b, c) => c } ``` -With SIP-52 the same snippet would be desugared to simpler and more efficent code: +With SIP-52 the same snippet would be desugared to simpler and more efficient code: ```Scala Some(2).map { b => @@ -246,7 +246,7 @@ Starting with Scala 3.7 the expression compiler has been migrated to the main [s ### Presentation Compiler: Show inferred type on holes in hover ([#21423](https://github.com/scala/scala3/pull/21423)) The presentation compiler is a special mode of the Scala compiler that runs interactively and is used by IDEs and language servers such as Metals. It provides immediate feedback about code correctness, type checking, symbol resolution, autocompletion, error highlighting, and other editing support functionalities. -Some of the latest improvements to the presentation compiler focus on the ability to infer more information about expected types of expressions provided by the users. As a result, presentation compiler can now show the users the expected type of expression when hovering over so called `type holes`. +Some of the latest improvements to the presentation compiler focus on the ability to infer more information about expected types of expressions provided by the users. As a result, presentation compiler can now show users the expected type of expression when hovering over so called `type holes`. ```scala def someMethod(count: Int, label: String): Unit = ??? diff --git a/_posts/2025-05-08-release-notes-3.3.6.md b/_posts/2025-05-08-release-notes-3.3.6.md index c9526f6db..44fecc14c 100644 --- a/_posts/2025-05-08-release-notes-3.3.6.md +++ b/_posts/2025-05-08-release-notes-3.3.6.md @@ -2,6 +2,7 @@ category: release permalink: /news/3.3.6/ title: "Scala 3.3.6 LTS is now available!" +by: Tomasz Godzik, VirtusLab --- Scala 3.3.6 LTS is now available! diff --git a/_posts/2025-06-04-release-notes-3.7.1.md b/_posts/2025-06-04-release-notes-3.7.1.md new file mode 100644 index 000000000..d178e976d --- /dev/null +++ b/_posts/2025-06-04-release-notes-3.7.1.md @@ -0,0 +1,18 @@ +--- +category: release +permalink: /news/3.7.1/ +title: "Scala 3.7.1 is now available!" +by: Wojciech Mazur, VirtusLab +--- +Scala 3.7.1 is now available! + +The first patch release of Scala 3.7 series introduces multiple bug-fixes, reduces the amount of false-positives in linters and adds support for a new version of the JDK. + +# Highlights of the release + +- Support for JDK 25 [#23004](https://github.com/scala/scala3/pull/23004) +- Warn if interpolator uses `toString` [#20578](https://github.com/scala/scala3/pull/20578) +- Warn if match in block is not used for `PartialFunction` [#23002](https://github.com/scala/scala3/pull/23002) +- Scala runner now uses Scala CLI 1.8.0 see [the changelog](https://github.com/VirtusLab/scala-cli/releases/tag/v1.8.0) for details + +For a full list of changes and contributor credits, please refer to the [release notes](https://github.com/scala/scala3/releases/tag/3.7.1). diff --git a/_posts/2025-06-26-highlights-june-2025.md b/_posts/2025-06-26-highlights-june-2025.md new file mode 100644 index 000000000..910180f79 --- /dev/null +++ b/_posts/2025-06-26-highlights-june-2025.md @@ -0,0 +1,133 @@ +--- +category: highlights +title: Scala Highlights, June 2025 edition +--- + +Welcome to the second edition of **Scala Highlights**, a newsletter showcasing technical achievements, online resources, and community news. + +The newsletter is a joint effort by the Scala Center, LAMP, Akka, and VirtusLab, the four core organizations involved in the Scala language development. +It also covers our collaborations with other parties, such as the Scala Center’s advisory board. + +A few of the highlights covered in this issue: + +- [Scala Days 2025](#scala-days-2025) +- [Scalar 2025](#scalar-2025) +- [JDK 17 will be the next minimum version required from Scala 3.8 onwards](#jdk-17-will-be-the-next-minimum-version-required-from-scala-38-onwards) +- [Scala 3.9 will be the new LTS](#scala-39-will-be-the-new-lts) +- [Better fors and -preview features](#better-fors-and--preview-features) +- [Model Context Protocol (MCP) for Scala](#model-context-protocol-for-scala) +- [Scalafmt now builds with Scala Native](#scalafmt-now-builds-with-scala-native) + +## Community and events + +### Scala Days 2025 + +The [12th edition of Scala Days](https://scaladays.org/) is around the corner. +It will take place August 17-19 in Lausanne, Switzerland. +This year, the conference theme is "Functional Programming and the Real World". +The event will feature keynotes from Evan Czaplicki (creator of Elm), Martin Odersky (lead designer of Scala), and Ralf Jung (Rust core-team member), followed by four tracks across two days, bringing over fifty speakers to the stage. +That is the most comprehensive tour of the Scala ecosystem yet. + +Before the main conference, we will begin the week with two-day hands-on workshops. +Scala newcomers will have the opportunity to participate in [ScalaBridge](https://scaladays.org/blog/scalabridge-lausanne/). +If you plan to come to Lausanne by train, check out this fantastic community-organized [Scala Train that runs from London and Paris to Lausanne](https://www.meetup.com/london-scala/events/307435835/). +By travelling together, attendees can enjoy sustainable travel and make connections with each other before the conference begins. +We hope you get inspired and organize your local community in this or another fun way! + +[Discover the program](https://scaladays.org/schedule) and [how the program committee selected the talks](https://www.scala-lang.org/blog/2025/05/28/scala-days-2025-announcement.html). +[Buy your tickets now](https://scaladays.org/tickets), and join us for Scala Days 2025. + +### Scalar 2025 + +The latest edition of the [Scalar Conference](https://www.scalar-conf.com/) was held in Warsaw on 27-28th March. The speakers included many known open source authors, including Scala’s creator Martin Odersky. + +There were a lot of topics ranging from more beginner focused to more advanced ones involving such things as macros or typed cloud infrastructure. +If you are interested in watching those talks you can still do it on [the YouTube channel of SoftwareMill](https://www.youtube.com/@SoftwareMillCom), who were the organizers of the conference. + +## Language and compilers + +### JDK 17 will be the next minimum version required from Scala 3.8 onwards + +As announced in [a past blog post](https://www.scala-lang.org/news/next-scala-lts-jdk.html), Scala 3 Next will drop earlier JDK versions, making Java 17 a requirement starting with Scala 3.8, which is estimated to arrive in Q4 2025. + +We will continue to build Scala 3.3 LTS, 2.12 and 2.13 with JDK 8 for as long as they receive support, as before. + +The main motivation for making this change is to address JEP 471 and add support for JDK 25 and above. +However, this also opens the opportunity for taking advantage of all the features and improvements brought by the newer JDK. + +### Scala 3.9 will be the new LTS + +We expect to release Scala 3.9 in Q2 2026. +It will become the new LTS distribution, succeeding Scala 3.3. + +Scala 3.3 will continue to receive support for at least a year after 3.9 is out, giving the community time to migrate the ecosystem. + +The aforementioned increase in the required JDK to 17 will be included in the new LTS, along with all the new features and improvements brought in Scala 3 Next versions since 3.3. + +### Better fors and -preview features + +SIP-62, known as [better fors](https://docs.scala-lang.org/sips/better-fors.html), is well on track to become a standard feature. +Starting with Scala 3.7.0, you may try it out using the brand new `-preview` compiler flag. + +Contrary to experimental features, preview features are basically ready to ship. +You may use them with confidence that they are here to stay, even in libraries. +The only catch? +The tooling ecosystem might not be ready for it. +The preview window allows IDE authors, scalameta, and other tools to catch up to the new features before we make them widely available. +Additionally, it provides a last chance to run more tests and iron them out. + +Better fors is an ideal flagship feature to introduce this new mechanism. +It is a popular SIP, which addresses long-standing limitations of for comprehensions in Scala. +It dramatically simplifies their desugaring, which will help both how we understand them as humans, and how they are compiled with performance and usability in mind. +In addition, we can now use leading `=` value declarations, as in + +```scala +for { x = 1; y <- Some(2) } yield x + y +``` + +The [motivation and solution sections of the better-for SIP](https://docs.scala-lang.org/sips/better-fors.html) are very well written. +Go check it out if you want to learn more about it. + +## Developer experience + +### Model Context Protocol for Scala + +Those of you following the recent improvements in the LLM space might have noticed a new protocol, called the Model Context Protocol (MCP), that is being embraced by a lot of different companies. +This protocol allows agents, which is a separate and more independent version of the usual chat, to invoke different tools provided by a number of servers. +These can be as simple as providing information about the weather or as complex as providing context about the current workspace. + +The latter instance of an MCP server has recently been implemented inside Metals, which is the Scala Language server. +It allows agents to query information about the classpath, compile, run tests, find dependencies and more. +Those tools allow the LLM results to be more precise and suffer less of the typical hallucinations. +To test it, set `metals.startMcpServer` to true in your editor’s settings and it should start up automatically. +For Cursor and Visual Studio Code it will also add proper JSON configuration automatically. +For some editors, you might need to reach out to the scalameta maintainers for help. + +This is an initial implementation and might still require a lot of work. +If you have any feedback about the functionalities or would like more tools to be added, let the maintainers know or reach out on the Scala Discord or forums. + +### Scalafmt now builds with Scala Native + +Thanks to the enormous amount of work done by the maintainers and then followup work from around the Scala Community, Scalafmt now publishes native binaries using Scala Native instead of Native Image. +This allows for smaller binary sizes. +It is already used by the latest versions of Scala CLI. +`scala-cli fmt` will automatically download the proper binaries if they are available. +You can also use the Scala CLI GitHub action to set that automatically: + +```yaml +- uses: VirtusLab/scala-cli-setup@v1 +- run: scala-cli fmt . +``` + +## How to support Scala + +The Scala Center is the Scala language foundation coordinating Scala governance, community, education, and open source development. +The Center contributes to the core language and to open source Scala tooling and libraries, and it delivers high-quality education materials. +It fosters conversations in the community and coordinates with various parties to unblock and improve the Scala ecosystem. +Joining the Center's Advisory Board is an effective way to participate in Scala governance and have your voice heard, as well as supporting the Center to achieve its goals. + +For more information: + +- [Scala Center home page](https://scala.epfl.ch/) +- [Joining the Advisory Board](https://scala.epfl.ch/corporate-membership.html) +- [5 Year Impact Report](https://scala.epfl.ch/records/first-five-years/) diff --git a/_posts/2025-08-01-release-notes-3.7.2.md b/_posts/2025-08-01-release-notes-3.7.2.md new file mode 100644 index 000000000..79ae3c2ba --- /dev/null +++ b/_posts/2025-08-01-release-notes-3.7.2.md @@ -0,0 +1,23 @@ +--- +category: release +permalink: /news/3.7.2/ +title: "Scala 3.7.2 is now available!" +by: Wojciech Mazur, VirtusLab +--- +Scala 3.7.2 is now available! + +# Highlights of the release + +- Bump Scala CLI to v1.8.4 (was v1.8.0) [#23538](https://github.com/scala/scala3/pull/23538) + - Support for URLs in using file directives + - Better support for the REPL with JDK 24+ + - Experimental publish support for the Sonatype Central Portal + +- Add an `-Yimplicit-to-given` flag for rewrites to easily test changes in the ecosystem [#22580](https://github.com/scala/scala3/pull/22580)
    +This experimental flag when used in conjunction with `--rewrite` allows to migrate most of `implicit` definitions as `given`. It aims to ease with migration to new syntax, or testing how it would affect your code base. + +- Implement applied constructor types [#22543](https://github.com/scala/scala3/pull/22543)
    +It introduces new syntax allowing for easier definition of `tracked` parameters under `-language:experimental.modularity` +
    You can read more about this experimental feature in the [Modularity Improvements proposal](https://www.scala-lang.org/api/3.7.2/docs/experimental/modularity.html) documentation. + +For a full list of changes and contributor credits, please refer to the [release notes](https://github.com/scala/scala3/releases/tag/3.7.2). diff --git a/_posts/2025-09-09-release-notes-3.7.3.md b/_posts/2025-09-09-release-notes-3.7.3.md new file mode 100644 index 000000000..6b7d67ef1 --- /dev/null +++ b/_posts/2025-09-09-release-notes-3.7.3.md @@ -0,0 +1,39 @@ +--- +category: release +permalink: /news/3.7.3/ +title: "Scala 3.7.3 is now available!" +by: Wojciech Mazur, VirtusLab +--- +Scala 3.7.3 is now available! + +## Highlights of the release + +### Warn when an explicit `using` argument clause with defaults shadows `given` in the scope [#23559](https://github.com/scala/scala3/pull/23559) + +If a call supplies any `using` argument explicitly, `given` search is not performed for the remaining params in that clause. If a remaining param has a default, that default is used, even if a compatible `given` is in scope. This behaviour could have been confusing for users and lead to unexpected problems at runtime. +The compiler now reports a warning when default argument would be used instead of given defined in the scope. +```scala +def f(using x: X, y: Y = defaultY) = ??? +given Y = ??? +f(using x = X()) // warns: y = defaultY +``` + +This change also adds new flag `-Wrecurse-with-default` to emit warning when a method calls itself using a default argument instead of forwarding the current value + +### Bump Scala CLI to v1.9.0 + - Supports the new Scala 3 nightly Maven repository, + - Can be used to test Scala 3.8 nightly releases, + - See the [Scala CLI changelog](https://github.com/VirtusLab/scala-cli/releases/tag/v1.9.0) for additional details + +### The new Maven repository for Scala 3 nightly releases + + Scala 3 nightly releases are no longer published to Maven Central, these can now be found in dedicated `https://repo.scala-lang.org/artifactory/maven-nightlies` repository. + + sbt 1.11.5 or later users can use a helper function to reference new repository in their builds + ```scala + resolvers += Resolver.scalaNightlyRepository + ``` + + + +For a full list of changes and contributor credits, please refer to the [release notes](https://github.com/scala/scala3/releases/tag/3.7.3). diff --git a/_posts/2025-09-18-new-scala-nightlies-repo.md b/_posts/2025-09-18-new-scala-nightlies-repo.md new file mode 100644 index 000000000..b806e6918 --- /dev/null +++ b/_posts/2025-09-18-new-scala-nightlies-repo.md @@ -0,0 +1,120 @@ +--- +category: blog +permalink: /news/new-scala-nightlies-repo.html +title: A new repository for Scala nightlies +by: Piotr Chabelski, Hamza Remmal & Scala Core Team +--- + +Recently, we introduced a new repository to which nightlies of Scala will be published. From now on, the place to look for nightly versions will be [https://repo.scala-lang.org/](https://repo.scala-lang.org/). This also applies to nightly versions published before the change. + +Both Scala 2 and Scala 3 nightly versions are available on the new repository. + +## Why was the change made? + +As a result of a number of features to be delivered in Scala 3.8, chief among them the standard library built with Scala 3, the size of the average Scala 3 release has increased considerably. Based on that fact, we have decided it is no longer suitable to publish them to Maven Central alongside stable releases, and a dedicated hosting space should be used instead. + +## What exactly was changed? + +Under the hood, it is only Scala 3 nightlies which are now published to a new repository. They used to be published to Maven Central until `3.8.0-RC1-bin-20250822-658c8bd-NIGHTLY` (or until the 23rd of August, 2025). All versions that followed have been published to [https://repo.scala-lang.org/](https://repo.scala-lang.org/). Versions from before the change are still available on [https://repo.scala-lang.org/](https://repo.scala-lang.org/), which also serves as a proxy to Maven Central. + +At the time of writing of this blog post, only Scala 3.8 nightlies are published directly to the new repository. The change is planned to be backported to Scala 3.3 LTS. + +Scala 2 nightlies have been published to [a dedicated repository](https://scala-ci.typesafe.com/artifactory/scala-integration/) for a long time and this, in fact, did not and likely will not change. The new repository does, however, serve as a proxy to [the Scala 2 nightly repository](https://scala-ci.typesafe.com/artifactory/scala-integration/), so from a user’s perspective, everything is in one place now. + +## How does it affect users? + +If you want to try out Scala nightly versions, it is now advised to use [https://repo.scala-lang.org/](https://repo.scala-lang.org/), regardless whether you are interested in Scala 3 Next, Scala 3.3 LTS, Scala 2.13 or Scala 2.12. + +To use the newest Scala 3 Next nightlies, it is now necessary to use the new repository. +This can be achieved by adding [https://repo.scala-lang.org/artifactory/maven-nightlies](https://repo.scala-lang.org/artifactory/maven-nightlies) as a resolver (details in examples provided in a later section of this blog post). + +If you have existing builds testing Scala 2.13 and 2.12 nightlies, you don’t really need to do anything, as there is no change to how these nightlies are published. The new repository serves only as a proxy for them. + +When using Scala 3 nightlies predating 23.08.2025, no change is necessary, either. + +Even if the change isn’t necessary for the nightly you need, we now advise to always rely on the new repository for simplicity and easy issue reproduction’s sake + +## Usage with tooling + +As mentioned above, additional configuration of a resolver for the new repository is necessary for some tools in the ecosystem. Check the examples below. + +### Scala CLI + +Scala CLI v1.9.0 or newer (provided in Scala 3 installations since 3.7.3) is necessary to use the new nightly repository. + +No additional resolver has to be configured, the CLI adds it implicitly when a nightly version is used. + +Nightly versions can be provided from the command line: + +```bash +scala -e 'println("Hello") -S 3.nightly +scala -e 'println("Hello") -S 3.3.nightly +scala -e 'println("Hello") -S 2.13.nightly +scala -e 'println("Hello") -S 2.nightly # same as 2.13.nightly +scala -e 'println("Hello") -S 2.12.nightly +``` + +…or via `//> using` directives, as before: + +```scala +//> using scala 3.nightly +//> using scala 3.3.nightly +//> using scala 2.nightly +//> using scala 2.13.nightly +//> using scala 2.12.nightly +``` + +See [this Scala CLI doc page](https://scala-cli.virtuslab.org/docs/commands/compile/#scala-nightlies) for details. + +### SBT + +A util has been added in SBT 1.11.5 for easy configuration of the resolver for the new nightly repository. It can be found under `Resolver.scalaNightlyRepository`. + +Here’s an example `build.sbt` file: + +```scala +ThisBuild / scalaVersion := "3.8.0-RC1-bin-20250916-eb1bb73-NIGHTLY" +ThisBuild / resolvers += Resolver.scalaNightlyRepository +lazy val root = (project in file(".")) + .settings(name := "sbt-with-scala-nightlies") +``` + +### Mill + +Mill 1.0.5 or newer is necessary to use Scala 3.8 (and as a result, all the new nightlies). + +Here’s an example `build.mill` file: + +```scala +package build +import mill.* +import mill.api.* +import scalalib.* + +def scalaNightlyRepo = "https://repo.scala-lang.org/artifactory/maven-nightlies" + +object project extends ScalaModule { + def jvmWorker = ModuleRef(CustomJvmWorkerModule) + override def scalaVersion = "3.8.0-RC1-bin-20250916-eb1bb73-NIGHTLY" + override def repositories = Task { super.repositories() ++ Seq(scalaNightlyRepo)} +} + +object CustomJvmWorkerModule extends JvmWorkerModule, CoursierModule { + override def repositories = Task { super.repositories() ++ Seq(scalaNightlyRepo)} +} +``` + +Note how the custom `JvmWorkerModule` is necessary with the added repository. It is not enough to just define it as a repository for the module dependencies. Refer to [this Mill documentation page](https://mill-build.org/mill/javalib/dependencies.html#_repository_config ) for more details regarding this syntax. + +### Other tools + +In most cases it should be sufficient to add a resolver for [https://repo.scala-lang.org/artifactory/maven-nightlies](https://repo.scala-lang.org/artifactory/maven-nightlies) to the build configuration before using a Scala nightly version. If you encounter any issues, be sure to raise them with tool maintainers. + +## Further reading + +We have updated [the nightly version documentation](https://docs.scala-lang.org/overviews/core/nightlies.html). + +Other relevant documentation: +- [Scala CLI on nightly versions](https://scala-cli.virtuslab.org/docs/commands/compile/#scala-nightlies) +- [SBT docs on resolvers](https://www.scala-sbt.org/1.x/docs/Resolvers.html) +- [Mill docs on repository config](https://mill-build.org/mill/javalib/dependencies.html#_repository_config) \ No newline at end of file diff --git a/_posts/2025-10-06-release-notes-2.13.17.md b/_posts/2025-10-06-release-notes-2.13.17.md new file mode 100644 index 000000000..8d7f6db5e --- /dev/null +++ b/_posts/2025-10-06-release-notes-2.13.17.md @@ -0,0 +1,16 @@ +--- +category: announcement +permalink: /news/2.13.17/ +title: "Scala 2.13.17 is now available!" +--- +[Scala 2.13.17](https://github.com/scala/scala/releases/tag/v2.13.17) is now available! + +This release +improves compatibility with JDK 25 LTS, +supports Scala 3.7, +improves Scala 3 compatibility and migration, +and more. + +It also has a few minor breaking changes. + +For details, refer to the [release notes](https://github.com/scala/scala/releases/tag/v2.13.17) on GitHub. diff --git a/_sass/components/countdown.scss b/_sass/components/countdown.scss new file mode 100644 index 000000000..065867775 --- /dev/null +++ b/_sass/components/countdown.scss @@ -0,0 +1,115 @@ +// COUNT DOWN FOR SCALA DAYS 2025 +//------------------------------------------------ +//------------------------------------------------ + +#countdown-clock-2025 { + width: 100%; + min-height: 120px; + background: #1793b1 url("/resources/img/scala-logo-large.svg") no-repeat center center; + position: relative; + display: flex; + align-items: center; + justify-content: center; + margin: 0 auto 0 auto; + overflow: hidden; +} + +.countdown-content { + display: flex; + width: 100%; + max-width: 1600px; + align-items: center; + justify-content: space-between; + padding: 1.2em 1.5em 1.2em 1.5em; +} + +.countdown-left { + display: flex; + flex-direction: column; + align-items: flex-start; + flex: 1 1 0; + z-index: 2; +} + +.countdown-register-btn { + display: inline-block; + color: #fff; + border: 2px solid #fff; + background: transparent; + font-size: 1em; + font-weight: 400; + padding: 0.4em 1.5em; + border-radius: 2px; + margin-bottom: 0.7em; + text-decoration: none; + transition: background 0.2s, color 0.2s; +} +.countdown-register-btn:hover { + background: #fff; + color: #c32d1c; +} + +.countdown-heading { + color: #fff; + font-size: 1.2em; + font-weight: 700; + letter-spacing: 0.01em; +} + +.countdown-right { + display: flex; + align-items: center; + justify-content: flex-end; + flex: 1 1 0; + z-index: 2; +} + +.countdown-timer { + display: flex; + gap: 1.5em; +} + +.countdown-segment { + display: flex; + flex-direction: column; + align-items: center; +} + +.countdown-value { + color: #fff; + font-size: 2.2em; + font-weight: 700; + line-height: 1; +} + +.countdown-label { + color: #fff; + font-size: 0.8em; + font-weight: 400; + text-transform: uppercase; + margin-top: 0.1em; + letter-spacing: 0.05em; +} + +@media (max-width: 900px) { + .countdown-content { + flex-direction: column; + align-items: center; + padding: 1em 0.5em; + } + .countdown-left, .countdown-right { + align-items: center; + justify-content: center; + width: 100%; + text-align: center; + } + .countdown-timer { + gap: 0.7em; + } + .countdown-heading { + font-size: 1em; + } + .countdown-value { + font-size: 1.3em; + } +} \ No newline at end of file diff --git a/_sass/components/scala-days-sponsors.scss b/_sass/components/scala-days-sponsors.scss new file mode 100644 index 000000000..539fa1dfb --- /dev/null +++ b/_sass/components/scala-days-sponsors.scss @@ -0,0 +1,198 @@ +// SCALA DAYS 2025 scaladays-orgs +//------------------------------------------------ +//------------------------------------------------ + +.scala-days-orgs-bar { + width: 100%; + overflow: hidden; + background: rgba(30, 40, 50, 0.2); + padding: 1em 0; + position: relative; +} + +.scaladays-orgs-carousel { + width: 100%; + overflow: hidden; + position: relative; + white-space: nowrap; + margin-top: 2em; +} + +.scaladays-orgs-track { + display: flex; + flex-direction: row; + align-items: center; + white-space: nowrap; + width: max-content; + animation: scaladays-orgs-scroll 180s linear infinite; + will-change: transform; +} + +.scaladays-org-logo-link { + display: flex; + align-items: center; + justify-content: center; + width: 140px; + height: 48px; + margin: 0 1em; + flex: 0 0 auto; +} + +.scaladays-org-logo { + max-height: 40px; + max-width: 120px; + width: auto; + height: auto; + filter: brightness(0) invert(1); + opacity: 0.92; + transition: opacity 0.2s; + display: block; + margin: 0 auto; +} +.scaladays-org-logo-link:hover .scaladays-org-logo { + opacity: 1; +} + +.scaladays-orgs-static-row { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + width: 100%; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + gap: 4em; + margin-bottom: 1em; + padding: 0 1em; +} + +.platinum-scaladays-orgs { + display: flex; + flex-direction: row; + align-items: center; + gap: 2em; + flex-shrink: 0; + height: 80px; +} + +.gold-scaladays-orgs { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(2, 1fr); + gap: 1.5em; + align-items: center; + justify-items: center; + flex-grow: 1; + max-width: 600px; +} + +.scaladays-org-logo-link-platinum { + display: flex; + align-items: center; + justify-content: center; + height: 80px; +} + +.scaladays-org-logo-static-row { + max-height: 80px !important; + height: 80px; + width: auto; + filter: brightness(0) invert(1); + opacity: 0.92; + transition: opacity 0.2s; +} + +.gold-scaladays-orgs-flex { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + justify-content: center; + gap: 1em 2em; + // height: 80px; + max-width: 400px; + width: 100%; +} + +.scaladays-org-logo-link-gold { + display: flex; + align-items: center; + justify-content: center; + height: 25px; + flex: 0 1 calc(33.333% - 2em); + width: 100%; +} + +.scaladays-org-logo-gold-row { + max-height: 25px !important; + height: 25px; + width: auto; + filter: brightness(0) invert(1); + opacity: 0.92; + transition: opacity 0.2s; +} + +.scaladays-orgs-brought-to-you-by { + font-size: 1.2em; + font-weight: 600; + color: #fff; + margin-bottom: 1em; + text-align: center; +} + +@keyframes scaladays-orgs-scroll { + 0% { transform: translateX(0); } + 100% { transform: translateX(-50%); } +} + +@media (max-width: 700px) { + .scaladays-orgs-static-row { + flex-direction: column; + gap: 1em; + } + .platinum-scaladays-orgs { + justify-content: center; + gap: 1.5em; + height: auto; + } + .gold-scaladays-orgs-flex { + display: none; + } + .scaladays-org-logo-link { + width: 80px; + height: 28px; + margin: 0 0.5em; + } + .scaladays-org-logo { + max-height: 24px; + max-width: 60px; + } +} + +@media (min-width: 701px) { + .scaladays-org-logo-gold-carousel { + display: none; + } +} + +@media (max-width: 1000px) and (min-width: 701px) { + .gold-scaladays-orgs { + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(3, 1fr); + gap: 1em; + } +} + +@media (max-width: 900px) and (min-width: 701px) { + .scaladays-orgs-static-row { + gap: 1.5em; + } + + .platinum-scaladays-orgs { + gap: 1.5em; + } + + .gold-scaladays-orgs { + gap: 0.8em; + } +} diff --git a/_sass/components/tab.scss b/_sass/components/tab.scss index 8207f3eb5..779139c4c 100755 --- a/_sass/components/tab.scss +++ b/_sass/components/tab.scss @@ -2,7 +2,7 @@ //------------------------------------------------ //------------------------------------------------ -// dynamic tab switching based on https: //levelup.gitconnected.com/tabbed-interfaces-without-javascript-661bab1eaec8 +// dynamic tab switching based on https://levelup.gitconnected.com/tabbed-interfaces-without-javascript-661bab1eaec8 .nav-tab { border-bottom: $base-border-gray; diff --git a/_sass/layout/navigation.scss b/_sass/layout/navigation.scss index 0cd2b7732..72d59f82a 100755 --- a/_sass/layout/navigation.scss +++ b/_sass/layout/navigation.scss @@ -8,13 +8,13 @@ @include flex-direction(row); @include align-items(center); @include justify-content(space-between); - .navigation-bdand { + .navigation-band { img { width: 104px; height: 43px; } } - .navigation-bdand-vfill-lg { + .navigation-band-vfill-lg { height: 49px; } .navigation-panel-button { @@ -51,6 +51,7 @@ text-decoration: none; } } + } } } diff --git a/_sass/layout/scala-ecosystem.scss b/_sass/layout/scala-ecosystem.scss index 3956773ce..b8da86536 100755 --- a/_sass/layout/scala-ecosystem.scss +++ b/_sass/layout/scala-ecosystem.scss @@ -1,4 +1,4 @@ -// SCALA ECOSISTEM +// SCALA ECOSYSTEM //------------------------------------------------ //------------------------------------------------ diff --git a/_sass/vendors/bourbon/css3/_linear-gradient.scss b/_sass/vendors/bourbon/css3/_linear-gradient.scss index 9e8163335..8f3d1f7b5 100755 --- a/_sass/vendors/bourbon/css3/_linear-gradient.scss +++ b/_sass/vendors/bourbon/css3/_linear-gradient.scss @@ -24,7 +24,7 @@ $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; - // Set $g1 as the default fallback color + // Set $g1 as the fallback color $fallback-color: nth($g1, 1); // If $fallback is a color use that color as the fallback color diff --git a/_sass/vendors/bourbon/css3/_radial-gradient.scss b/_sass/vendors/bourbon/css3/_radial-gradient.scss index 18f7b5b58..44b80d06e 100755 --- a/_sass/vendors/bourbon/css3/_radial-gradient.scss +++ b/_sass/vendors/bourbon/css3/_radial-gradient.scss @@ -19,7 +19,7 @@ // Strip deprecated cover/contain for spec $shape-size-spec: _shape-size-stripper($shape-size); - // Set $g1 as the default fallback color + // Set $g1 as the fallback color $first-color: nth($full, 1); $fallback-color: nth($first-color, 1); diff --git a/_sass/vendors/bourbon/css3/_transition.scss b/_sass/vendors/bourbon/css3/_transition.scss index 3c785ed52..ddfbebfb3 100755 --- a/_sass/vendors/bourbon/css3/_transition.scss +++ b/_sass/vendors/bourbon/css3/_transition.scss @@ -1,4 +1,4 @@ -// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. +// Shorthand mixin. Supports multiple parentheses-delimited values for each variable. // Example: @include transition (all 2s ease-in-out); // @include transition (opacity 1s ease-in 2s, width 2s ease-out); // @include transition-property (transform, opacity); diff --git a/_sass/vendors/bourbon/functions/_is-light.scss b/_sass/vendors/bourbon/functions/_is-light.scss index 92d90ac3c..588910031 100755 --- a/_sass/vendors/bourbon/functions/_is-light.scss +++ b/_sass/vendors/bourbon/functions/_is-light.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; -/// Programatically determines whether a color is light or dark. +/// Programmatically determines whether a color is light or dark. /// /// @link http://robots.thoughtbot.com/closer-look-color-lightness /// diff --git a/_sass/vendors/neat/functions/_new-breakpoint.scss b/_sass/vendors/neat/functions/_new-breakpoint.scss index 41ab95564..737be823d 100755 --- a/_sass/vendors/neat/functions/_new-breakpoint.scss +++ b/_sass/vendors/neat/functions/_new-breakpoint.scss @@ -7,7 +7,7 @@ /// /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. /// -/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, see [Media features](http://www.w3.org/TR/css3-mediaqueries/#media1). /// /// @param {Number (unitless)} $total-columns [$grid-columns] /// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter. diff --git a/_sass/vendors/neat/grid/_media.scss b/_sass/vendors/neat/grid/_media.scss index bd516e99a..1935e99a7 100755 --- a/_sass/vendors/neat/grid/_media.scss +++ b/_sass/vendors/neat/grid/_media.scss @@ -4,7 +4,7 @@ /// /// @param {List} $query /// A list of media query features and values, where each `$feature` should have a corresponding `$value`. -/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1). +/// For a list of valid values for `$feature`, see [Media features](http://www.w3.org/TR/css3-mediaqueries/#media1). /// /// If there is only a single `$value` in `$query`, `$default-feature` is going to be used. /// diff --git a/_sass/vendors/neat/grid/_outer-container.scss b/_sass/vendors/neat/grid/_outer-container.scss index d3f626743..c84842df8 100755 --- a/_sass/vendors/neat/grid/_outer-container.scss +++ b/_sass/vendors/neat/grid/_outer-container.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; -/// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. +/// Makes an element into an outer container by centering it in the viewport, clearing its floats, and setting its `max-width`. /// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested. /// /// @param {Number [unit]} $local-max-width [$max-width] diff --git a/_sass/vendors/neat/grid/_span-columns.scss b/_sass/vendors/neat/grid/_span-columns.scss index a7f9b0031..74c120ae7 100755 --- a/_sass/vendors/neat/grid/_span-columns.scss +++ b/_sass/vendors/neat/grid/_span-columns.scss @@ -5,7 +5,7 @@ /// @param {List} $span /// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional). /// -/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. +/// If only one value is passed, it is assumed that it's `$columns` and that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid. /// /// The values can be separated with any string such as `of`, `/`, etc. /// diff --git a/_sass/vendors/neat/grid/_to-deprecate.scss b/_sass/vendors/neat/grid/_to-deprecate.scss index aeea0795b..45bd22580 100755 --- a/_sass/vendors/neat/grid/_to-deprecate.scss +++ b/_sass/vendors/neat/grid/_to-deprecate.scss @@ -85,7 +85,7 @@ /// @example scss - Usage /// .element { /// @include row(table, RTL); -/// // Context changed to table table and right-to-left +/// // Context changed to table and right-to-left /// } /// /// @include reset-all; diff --git a/_scala_use_case_items/1-backend.md b/_scala_use_case_items/1-backend.md index 7798d6d98..6fee4b8f9 100644 --- a/_scala_use_case_items/1-backend.md +++ b/_scala_use_case_items/1-backend.md @@ -46,7 +46,7 @@ def fetch2 = fetchWeather(server2) // expensive Network IO
    -
    Compute accross distributed nodes with Akka actors
    +
    Compute across distributed nodes with Akka actors
    def Device(lastTemp: Option[Double]): Behavior[Message] =
       Behaviors.receiveMessage:
         case RecordTemperature(id, value, replyTo) =>
    diff --git a/_trainings/2015-03-15-essential-essential-scala.md b/_trainings/2015-03-15-essential-essential-scala.md
    index 6f803c57e..471c502b5 100644
    --- a/_trainings/2015-03-15-essential-essential-scala.md
    +++ b/_trainings/2015-03-15-essential-essential-scala.md
    @@ -1,7 +1,7 @@
     ---
    -title: Essential Essential Scala
    +title: Creative Scala
     description: A free and fun taste of Scala. Places available for students and teaching assistants.
    -link-out: http://underscore.io/events/2015-03-15-essential-essential-scala.html
    +link-out: http://underscore.io/events/2015-03-15-creative-scala.html
     location: San Francisco
     when: 15 March 2015
     trainers: Noel Welsh
    diff --git a/_trainings/2015-03-28-essential-essential-scala.html b/_trainings/2015-03-28-essential-essential-scala.html
    index cb2f79522..d7fc0f685 100644
    --- a/_trainings/2015-03-28-essential-essential-scala.html
    +++ b/_trainings/2015-03-28-essential-essential-scala.html
    @@ -1,7 +1,7 @@
     ---
    -title: Essential Essential Scala
    +title: Creative Scala
     description: A free and fun taste of Scala.
    -link-out: http://underscore.io/events/2015-03-28-essential-essential-scala.html
    +link-out: http://underscore.io/events/2015-03-28-creative-scala.html
     location: Edinburgh
     when: 28 March 2015
     trainers: Noel Welsh
    diff --git a/_why_scala_items/2-versatile.md b/_why_scala_items/2-versatile.md
    index 6a3fa29a5..3655307c7 100644
    --- a/_why_scala_items/2-versatile.md
    +++ b/_why_scala_items/2-versatile.md
    @@ -1,4 +1,4 @@
     ---
     shortTitle: "Scalable"
    -shortDescription: "Scala is well suited to building fast, concurrent, and distributed systems with its JVM, JavaScript and Native runtimes. Scala prioritises interoperability, giving easy access to many ecosystems of industry-proven libraries."
    +shortDescription: "Scala is well suited to building fast, concurrent, and distributed systems with its JVM, JavaScript and Native runtimes. Scala prioritizes interoperability, giving easy access to many ecosystems of industry-proven libraries."
     ---
    diff --git a/blog/_posts/2017-03-13-spark-mooc-capstone-live-on-coursera.md b/blog/_posts/2017-03-13-spark-mooc-capstone-live-on-coursera.md
    index 01114267b..a7ba7417d 100644
    --- a/blog/_posts/2017-03-13-spark-mooc-capstone-live-on-coursera.md
    +++ b/blog/_posts/2017-03-13-spark-mooc-capstone-live-on-coursera.md
    @@ -15,7 +15,7 @@ Coursera!
     The [Big Data Analysis with Scala and
     Spark](https://www.coursera.org/learn/scala-spark-big-data) course is 4 weeks
     long, and aims to teach those coming from Scala the basics of distributed
    -computation using Apache Spark. It's more than whirlwhind tour of Spark's basic
    +computation using Apache Spark. It's more than whirlwind tour of Spark's basic
     APIs – this course aims to teach you fundamentally what is going on when you're
     doing a distributed job, and it goes all the way from the basics of RDDs to
     intermediate/advanced topics such as tweaking for data locality or writing your
    diff --git a/blog/_posts/2017-05-19-scastie.md b/blog/_posts/2017-05-19-scastie.md
    index 2aa34c617..78dd8163d 100644
    --- a/blog/_posts/2017-05-19-scastie.md
    +++ b/blog/_posts/2017-05-19-scastie.md
    @@ -80,7 +80,7 @@ ones.
     
     ### Scala.js
     
    -Since the intial release of our beta, we also added support for Scala.js! In Scala.js mode, once your code is compiled, your snippet is run in your browser.
    +Since the initial release of our beta, we also added support for Scala.js! In Scala.js mode, once your code is compiled, your snippet is run in your browser.
     
     HTML DOM elements referred in your code such as images appears in the editor for convenience. This feature is illustrated in this example: [such doge!](https://scastie.scala-lang.org/MasseGuillaume/KuKtYXx1SpW7gu5HUTmPSA/1).
     
    @@ -103,7 +103,7 @@ Dmitrii Petukhov was accepted as a Google Summer of Code student to work on
     information](https://summerofcode.withgoogle.com/organizations/4568241046290432/#5494264097144832).
     Rory Graves, an ENSIME contributor, is the mentor for this project. ENSIME is an
     IDE server. It can power text editors such as vim an eclipse with IDE
    -functionnalities such as autocompletion.
    +functionalities such as autocompletion.
     
     ### Scala Center's Plan
     
    diff --git a/blog/_posts/2017-05-26-whats-new-scala-native.md b/blog/_posts/2017-05-26-whats-new-scala-native.md
    index f28f54238..75f6164b7 100644
    --- a/blog/_posts/2017-05-26-whats-new-scala-native.md
    +++ b/blog/_posts/2017-05-26-whats-new-scala-native.md
    @@ -163,7 +163,7 @@ a better integration with sbt and more additions to the standard library.
     The first releases of Scala Native use Boehm GC. A new and improved garbage
     collector has been under development by [@LukasKellenberger][@LukasKellenberger]
     and will be presented at [Scala Days during Denys' talk][denys-talk]. Stay
    -tuned for more more details to come soon!
    +tuned; more details to come soon!
     
     The pull request introducing the new garbage collector can be found in
     [#726][#726].
    diff --git a/blog/_posts/2017-05-30-tribulations-canbuildfrom.md b/blog/_posts/2017-05-30-tribulations-canbuildfrom.md
    index 5c5d343a7..359a89475 100644
    --- a/blog/_posts/2017-05-30-tribulations-canbuildfrom.md
    +++ b/blog/_posts/2017-05-30-tribulations-canbuildfrom.md
    @@ -50,7 +50,7 @@ def map[B, That](f: Char => B)(implicit bf: CanBuildFrom[String, B, That]): That
     
     When the implicit `CanBuildFrom` parameter is resolved it fixes the return type `That`.
     The resolution is driven by the actual `B` type: if `B` is `Char` then `That` is fixed
    -to `String`, otherwise it is `immutable.IndexedSeq`.
    +to `String`; otherwise, it is `immutable.IndexedSeq`.
     
     The drawback of this solution is that the type signature of the `map` method looks cryptic.
     
    @@ -157,7 +157,7 @@ trait SortedIterableOps[A, CC[_]] {
     }
     ~~~
     
    -However, as mentioned in the previous section, we need to also abstract over the kind of the
    +However, as mentioned in the previous section, we also need to abstract over the kind of the
     type constructor of the concrete collections. Consequently we have in total four branches:
     
     kind        | not sorted  | sorted
    diff --git a/blog/_posts/2017-05-31-first-dotty-milestone-release.md b/blog/_posts/2017-05-31-first-dotty-milestone-release.md
    index 03e9f21d4..1ae566c68 100644
    --- a/blog/_posts/2017-05-31-first-dotty-milestone-release.md
    +++ b/blog/_posts/2017-05-31-first-dotty-milestone-release.md
    @@ -39,7 +39,7 @@ Using sbt 0.13.13 or newer, do:
     sbt new lampepfl/dotty.g8
     ```
     
    -This will setup a new sbt project with Dotty as compiler. For more details on
    +This will set up a new sbt project with Dotty as compiler. For more details on
     using Dotty with sbt, see the
     [example project](https://github.com/lampepfl/dotty-example-project).
     
    diff --git a/blog/_posts/2017-07-02-collections-0.2.0.md b/blog/_posts/2017-07-02-collections-0.2.0.md
    index 4b534f85e..4f85c78d3 100644
    --- a/blog/_posts/2017-07-02-collections-0.2.0.md
    +++ b/blog/_posts/2017-07-02-collections-0.2.0.md
    @@ -34,8 +34,7 @@ The following collection types are implemented:
     Also, most of the operations of the current `Traversable`, `Iterable`, `Seq`
     and `Set` collection types are implemented in the strawman.
     
    -For reference, a detailed list of the current implementation status is available
    -[here](https://github.com/scala/collection-strawman#implemented-collection-types).
    +This work was merged into [scala/scala](https://github.com/scala/scala) and released as part of Scala 2.13.0-M4.
     
     To experiment with this milestone, just add the following dependency:
     
    diff --git a/blog/_posts/2017-07-12-second-dotty-milestone-release.md b/blog/_posts/2017-07-12-second-dotty-milestone-release.md
    index 3bc494f1c..2261151e3 100644
    --- a/blog/_posts/2017-07-12-second-dotty-milestone-release.md
    +++ b/blog/_posts/2017-07-12-second-dotty-milestone-release.md
    @@ -306,7 +306,7 @@ Using sbt 0.13.13 or newer, do:
     sbt new lampepfl/dotty.g8
     ```
     
    -This will setup a new sbt project with Dotty as compiler. For more details on
    +This will set up a new sbt project with Dotty as compiler. For more details on
     using Dotty with sbt, see the
     [example project](https://github.com/lampepfl/dotty-example-project).
     
    diff --git a/blog/_posts/2017-09-07-third-dotty-milestone-release.md b/blog/_posts/2017-09-07-third-dotty-milestone-release.md
    index f9f383a72..5669b7bda 100644
    --- a/blog/_posts/2017-09-07-third-dotty-milestone-release.md
    +++ b/blog/_posts/2017-09-07-third-dotty-milestone-release.md
    @@ -55,7 +55,7 @@ Using sbt 0.13.13 or newer, do:
     sbt new lampepfl/dotty.g8
     ```
     
    -This will setup a new sbt project with Dotty as compiler. For more details on
    +This will set up a new sbt project with Dotty as compiler. For more details on
     using Dotty with sbt, see the
     [example project](https://github.com/lampepfl/dotty-example-project).
     
    diff --git a/blog/_posts/2017-10-16-fourth-dotty-milestone-release.md b/blog/_posts/2017-10-16-fourth-dotty-milestone-release.md
    index 86cce0f73..76d798800 100644
    --- a/blog/_posts/2017-10-16-fourth-dotty-milestone-release.md
    +++ b/blog/_posts/2017-10-16-fourth-dotty-milestone-release.md
    @@ -70,7 +70,7 @@ Using sbt 0.13.13 or newer, do:
     sbt new lampepfl/dotty.g8
     ```
     
    -This will setup a new sbt project with Dotty as compiler. For more details on
    +This will set up a new sbt project with Dotty as compiler. For more details on
     using Dotty with sbt, see the
     [example project](https://github.com/lampepfl/dotty-example-project).
     
    diff --git a/blog/_posts/2017-11-03-zinc-blog-1.0.md b/blog/_posts/2017-11-03-zinc-blog-1.0.md
    index 18cca4eef..15cbcaa2b 100644
    --- a/blog/_posts/2017-11-03-zinc-blog-1.0.md
    +++ b/blog/_posts/2017-11-03-zinc-blog-1.0.md
    @@ -159,7 +159,7 @@ All in all, this is a high-level summary of our contributions to Zinc 1.0:
     * Improve infrastructure to attract contributors:
       * Speed up CI by 7x to have a fast turnaround time,
       * Add more tests to the project,
    -  * Add more documentation to the APIs, a README and a CONTRIBUTING guide; and,
    +  * Add more documentation to the APIs, a README, and a CONTRIBUTING guide; and,
       * Add similar high-quality improvements to the build and scripted tests.
     
     Find the [list of PRs here](https://github.com/sbt/zinc/pulls?utf8=%E2%9C%93&q=author%3Ajvican%20is%3Ap://github.com/sbt/zinc/pulls?utf8=%E2%9C%93&q=author%3Ajvican%20is%3Apr).
    @@ -241,8 +241,8 @@ it a spin!
     If you're a library author, add [Zinc
     1.0.3](https://search.maven.org/#artifactdetails%7Corg.scala-sbt%7Czinc_2.11%7C1.0.3%7Cjar)
     to your `build.sbt` with `libraryDependencies += "org.scala-sbt" % "zinc_2.11" %
    -"1.0.3"`. To add it to other builds tools like Maven, click
    -[here](https://search.maven.org/#artifactdetails%7Corg.scala-sbt%7Czinc_2.11%7C1.0.3%7Cjar).
    +"1.0.3"`. To add it to other builds tools like Maven, see
    +[search.maven.org](https://search.maven.org/#artifactdetails%7Corg.scala-sbt%7Czinc_2.11%7C1.0.3%7Cjar).
     
     ## Special acknowledgements
     
    diff --git a/blog/_posts/2018-02-09-collections-performance.md b/blog/_posts/2018-02-09-collections-performance.md
    index 64a9c5859..5d09a4758 100644
    --- a/blog/_posts/2018-02-09-collections-performance.md
    +++ b/blog/_posts/2018-02-09-collections-performance.md
    @@ -83,8 +83,8 @@ default implementations of transformation operations to make them non strict.
     Now it seems that the situation is just reversed: the default implementations work well
     with non strict collections, but we have to override them in strict collections.
     
    -So, is the new design worth it? To answer this question I will quote a comment posted
    -by Stefan Zeiger [here](https://www.reddit.com/r/scala/comments/7g52cy/let_them_be_lazy/dqixt8d/):
    +So, is the new design worth it? To answer this question I will quote a [comment posted
    +by Stefan Zeiger](https://www.reddit.com/r/scala/comments/7g52cy/let_them_be_lazy/dqixt8d/):
     
     > The lazy-by-default approach is mostly beneficial when you're implementing lazy
     > collections because you don't have to override pretty much everything or get
    @@ -113,8 +113,7 @@ operations execution compared to the old `Vector`, for various number of element
     The blue line shows the old `Vector`,
     the red line shows the new `Vector` if it used only view based
     implementations, and the yellow line shows the actual new `Vector`
    -(with strict optimized implementations). Benchmark source code and numbers can be found
    -[here](https://gist.github.com/julienrf/f1cb2b062cd9783a35e2f35778959c76).
    +(with strict optimized implementations). See [Benchmark source code and numbers](https://gist.github.com/julienrf/f1cb2b062cd9783a35e2f35778959c76).
     
     Since operation implementations end up being the same, why do we get better performance
     at all? Well, these numbers are specific to `Vector` and the tested operations, they
    diff --git a/blog/_posts/2018-02-27-moocs-edx-support.md b/blog/_posts/2018-02-27-moocs-edx-support.md
    index ca101dfd8..5f8c80194 100644
    --- a/blog/_posts/2018-02-27-moocs-edx-support.md
    +++ b/blog/_posts/2018-02-27-moocs-edx-support.md
    @@ -8,8 +8,7 @@ redirect_from: /news/2018/02/27/moocs-edx-support.html
     ---
     
     > **Update**: After a couple of years experimenting with Open edX, we decided
    -> to shut down these course instances. You can find an up-to-date list of
    -> online courses [here](https://docs.scala-lang.org/online-courses.html).
    +> to shut down these course instances. You can find an [up-to-date list of online courses](https://docs.scala-lang.org/online-courses.html).
     
     We are thrilled to announce that our 4 main MOOCs are now also available
     on an [Open edX instance managed at EPFL](https://courseware.epfl.ch).
    diff --git a/blog/_posts/2018-03-19-accessible-scala.md b/blog/_posts/2018-03-19-accessible-scala.md
    index 37bc7dca2..c102f6dee 100644
    --- a/blog/_posts/2018-03-19-accessible-scala.md
    +++ b/blog/_posts/2018-03-19-accessible-scala.md
    @@ -79,7 +79,7 @@ partially-sighted users, which is by no means a "solved problem", and offers
     much room for improvement.
     
     
    -Most of the work the Scala Center does contributes small differences to the
    +Most of the work that the Scala Center does contributes small differences to the
     lives of many developers in the Scala community. This proposal is different in
     that it provides a potentially enormous difference to the experience of
     programming in Scala to a small number of users.
    diff --git a/blog/_posts/2018-04-30-in-a-nutshell.md b/blog/_posts/2018-04-30-in-a-nutshell.md
    index 6ce507f26..d801b9d54 100644
    --- a/blog/_posts/2018-04-30-in-a-nutshell.md
    +++ b/blog/_posts/2018-04-30-in-a-nutshell.md
    @@ -138,7 +138,7 @@ principled macro system based on quotes and splices. This looks not very difficu
     need to define a pair of mappings between high level trees of type
     `scala.quoted.Expr[T]` and lower-level Tasty trees of type
     `tasty.Term`. Mapping a high-level tree to a low-level one simply
    -means exposing its structure. Mapping a a low-level tree to a
    +means exposing its structure. Mapping a low-level tree to a
     high-level tree of type `scala.quoted.Expr[T]` means checking that the
     low-level tree has indeed the given type `T`. That should be all.
     
    diff --git a/blog/_posts/2018-06-04-scalac-profiling.md b/blog/_posts/2018-06-04-scalac-profiling.md
    index 8337d9031..71b9891eb 100644
    --- a/blog/_posts/2018-06-04-scalac-profiling.md
    +++ b/blog/_posts/2018-06-04-scalac-profiling.md
    @@ -394,8 +394,8 @@ directory of the cloned bloop repository.
     The first two flags set up the compiler plugin.
     
     The flag `-P:scalac-profiling:no-profiledb` disables the generation of
    -`profiledb`s and `-P:scalac-profiling:sourceroot` tells the plugin the base
    -directory of the project. The profiledb is only required when we process the
    +`profiledb`s and `-P:scalac-profiling:sourceroot` gives the base directory of
    +the project to the plugin. The profiledb is only required when we process the
     data with other tools, so by disabling it we keep the overhead of the plugin
     to the bare minimum.
     
    @@ -704,7 +704,7 @@ shapeless.Strict[caseapp.core.Parser[bloop.cli.Commands.Run]] (id 12121) (expand
     On every stack trace, you have also the information about the timing. The
     unit of time is microseconds. So one million μs is one second. We use
     microseconds because flamegraphs cannot display decimal values and we want
    -to lose as litle time precision as possible.
    +to lose as little time precision as possible.
     
     Beware that an implicit search may not appear in the flamegraph even if it's
     performed by `scalac`. There could be implicit searches that are so fast to
    @@ -787,7 +787,7 @@ options of the bloop configuration file.
     This is a good moment to try to minimize the problem. `-Xlog-implicits` will
     log a lot of failed searches and we want to be able to see through the noise.
     I did minimise the issue
    -[here](https://github.com/scalacenter/scalac-profiling/pull/23/commits/dbcb8d480e9b402899d21620055bc555b2841382).
    +with [Add reproduced version of case-app inefficiency](https://github.com/scalacenter/scalac-profiling/pull/23/commits/dbcb8d480e9b402899d21620055bc555b2841382).
     Doing `implicitly[Parser[CliOptions]]` also reproduces it.
     
     Among all the logs, this is the one that attracts my attention the most.
    @@ -826,7 +826,7 @@ and
     [`materializeCoproduct`](Xhttps://github.com/milessabin/shapeless/blob/a42cd4c1c99e4a7be36e0239d3ee944a6355e321/core/src/main/scala/shapeless/generic.scala#L232-L245).
     
     The problem of incorrect instantiated type arguments we saw before seems
    -specific to the way the compiler carries out the implicit search. Fixing it
    +specific to the way that the compiler carries out the implicit search. Fixing it
     requires most likely changes to the implicit search algorithm, as [a similar
     Scala compiler issue](https://github.com/scala/bug/issues/10528) did. I tried porting
     these changes to 2.12.x and use `-Xsource:2.13` but the failed macro
    @@ -948,7 +948,7 @@ And inspect the generated code by the macro expansion by using
     logs). That extra inspection gave me some hints.
     
     The issue seems to be in the refinement of `HListParser`. In the previous log the last type parameter of `HListParser.Aux` (the refinement type) was `HD`, an abstract type used
    -[here](https://github.com/alexarchambault/case-app/blob/v1.2.0/core/shared/src/main/scala/caseapp/core/HListParser.scala#L131-L159),
    +in [`hconsRecursive`](https://github.com/alexarchambault/case-app/blob/v1.2.0/core/shared/src/main/scala/caseapp/core/HListParser.scala#L131-L159),
     and the returned refinement type from the macro was `Option[String] ::
     this.P`.
     
    @@ -1059,7 +1059,7 @@ happening in every branch, so let's have a look at the data emitted by
     The "Macro expansions by type" and "Implicit searches by type" tells us
     how many repeated macros and implicit searches we have per type.
     
    -For example, let's look at the most important entries from from the "Implicit
    +For example, let's look at the most important entries from the "Implicit
     searches by type" section.
     
     ```
    diff --git a/blog/_posts/2018-06-13-scala-213-collections.md b/blog/_posts/2018-06-13-scala-213-collections.md
    index 99ffa0925..8c109dabc 100644
    --- a/blog/_posts/2018-06-13-scala-213-collections.md
    +++ b/blog/_posts/2018-06-13-scala-213-collections.md
    @@ -68,7 +68,7 @@ confusion to the users. Especially when you look at the
     
     ![wtf](/resources/img/blog/scaladoc-treemap-map.png)
     
    -This type signature makes no sense: the result type can not be `TreeMap[B]` since
    +This type signature makes no sense: the result type cannot be `TreeMap[B]` since
     `TreeMap` takes *two* type parameters (the type of keys and the type
     of values). Also, the function `f` actually takes a *key-value pair* as parameter,
     not just a key (as incorrectly indicated by the type `A`).
    diff --git a/blog/_posts/2019-01-17-scala-days-2019-celebrating-collaborative-success.md b/blog/_posts/2019-01-17-scala-days-2019-celebrating-collaborative-success.md
    index 46d5c214f..7a08688a2 100644
    --- a/blog/_posts/2019-01-17-scala-days-2019-celebrating-collaborative-success.md
    +++ b/blog/_posts/2019-01-17-scala-days-2019-celebrating-collaborative-success.md
    @@ -74,7 +74,7 @@ We encourage people from under-represented groups in programming to attend Scala
     For ticket and travel support, we will add our event to DiversityTickets once the registration opens. The same form can also be used to apply for a ticket to the Typelevel Summit that happens the day after Scala Days. If you're unsure whether you'd be eligible, or if you have any other questions, please contact [events@typelevel.org](mailto:events@typelevel.org).
     
     ### Become a volunteer
    -We are looking for motivated, enthusiastic, Scala loving volunteers. And not only during the conference, but during the whole week. Volunteers would help us to cover the ground at Scala Days, welcome participants, be the first point of contact, assisting with directions and much more. We are looking for 10 to 15 individuals that are up for the challenge! If you want to help and get the free entrance, submit your proposal [here](https://docs.google.com/forms/d/e/1FAIpQLSem6E_b98jhyeub5JsTIIlUUsWii13mtH8CvWSj9foW8rPAvw/viewform?usp=sf_link) and we will get back to you by the end of February.
    +We are looking for motivated, enthusiastic, Scala loving volunteers. And not only during the conference, but during the whole week. Volunteers would help us to cover the ground at Scala Days, welcome participants, be the first point of contact, assisting with directions and much more. We are looking for 10 to 15 individuals that are up for the challenge! If you want to help and get the free entrance, submit your proposal to [Scala Days 2019 Volunteer Form](https://docs.google.com/forms/d/e/1FAIpQLSem6E_b98jhyeub5JsTIIlUUsWii13mtH8CvWSj9foW8rPAvw/viewform?usp=sf_link) and we will get back to you by the end of February.
     
     ### Speaker support
     To be eligible for speaker support, you first need to get your proposal accepted. If your company or university are not supporting you, please just reply to your “Accepted” email listing the reasons you would need a support and what kind. Our team will be communicating with you until all elements for the decision are in place and give you an answer in due time.
    diff --git a/blog/_posts/2019-05-02-community.md b/blog/_posts/2019-05-02-community.md
    index 034a57458..73edacfce 100644
    --- a/blog/_posts/2019-05-02-community.md
    +++ b/blog/_posts/2019-05-02-community.md
    @@ -9,7 +9,7 @@ The Scala language is a big tent. It supports object-oriented and
     functional code working together. The point of Scala was always to
     show that these paradigms can be combined in a compact set of unified
     language features. But while the language design stresses unification,
    -the same can not (yet?)  be said about the community of Scala
    +the same cannot (yet?) be said about the community of Scala
     programmers.
     
     In fact, Scala is used in many different ways. There are the people who
    diff --git a/blog/_posts/2019-09-25-scala-contributors-summit.md b/blog/_posts/2019-09-25-scala-contributors-summit.md
    index c42d679ee..387ad05de 100644
    --- a/blog/_posts/2019-09-25-scala-contributors-summit.md
    +++ b/blog/_posts/2019-09-25-scala-contributors-summit.md
    @@ -35,13 +35,13 @@ If you are interested more about broader context: check out most recent podcast
     
     ### Scala Days Berlin, 18th May 2018, all day, hosted and sponsored by Zalando
     
    - 
    + 
     
     Around 50 Scala library contributors, authors, and maintainers gathered and discussed various topics, such as the upcoming changes in Scala 3, improvements to the documentation and the website, the future of Scala tooling for both OSS developers and big companies, proposals to better collaborate online and welcome more contributors, etc. Participants shared with us that they learned a lot from each other, how helpful it was to be present in person and meet many of their colleagues, and exchange experience.
     
     No specific program was proposed. Instead, topics and groups were formed on the spot: anyone could propose a topic and interested participants would join for discussion.
     
    -Significant result: Scala Improvement Process took place during the Contributors Summit, and public was for the first time present during the meeting in person. In this particular meeting the SIP committee agreed on approaching Scala 3 changes, dividing worklad in batches as well as giving a month per batch to collect community's input. For more on this, please read the [SIP minutes](https://docs.scala-lang.org/sips/minutes/2018-05-18-sip-minutes.html).
    +Significant result: Scala Improvement Process took place during the Contributors Summit, and public was for the first time present during the meeting in person. In this particular meeting the SIP committee agreed on approaching Scala 3 changes, dividing workload into batches as well as giving a month per batch to collect community's input. For more on this, please read the [SIP minutes](https://docs.scala-lang.org/sips/minutes/2018-05-18-sip-minutes.html).
     
     Otherwise in this edition, even though some were taking notes, not all were collected, therefore will not be published here. (If you have notes, please share them with us scala.center@epfl.ch)
     
    @@ -65,7 +65,7 @@ This time, there were over 60 participants that were discussing, amongst other:
     
      
     
    -For more details, we invite you to read some notes taken during the discussions, [here](https://docs.google.com/document/d/1R_aqEFkjVoIKtKl52hOqbZ0doWA5umQnXAqxkcZLWJQ/edit?usp=sharing)
    +For more details, we invite you to read [some notes taken during the discussions](https://docs.google.com/document/d/1R_aqEFkjVoIKtKl52hOqbZ0doWA5umQnXAqxkcZLWJQ/edit?usp=sharing)
     
      
     
    diff --git a/blog/_posts/2020-10-27-bsp-in-sbt.md b/blog/_posts/2020-10-27-bsp-in-sbt.md
    index 8b2ed4a27..d4e263db9 100644
    --- a/blog/_posts/2020-10-27-bsp-in-sbt.md
    +++ b/blog/_posts/2020-10-27-bsp-in-sbt.md
    @@ -20,7 +20,7 @@ Today we are proud to announce that support of BSP has been shipped into [sbt 1.
     As we will see in more details, BSP in sbt improves the integration of sbt inside IDEs and code editors. It provides the user with a unified working environment that is:
     - Optimal in terms of compilation speed and reliability
     - Centralized around the sbt build definition
    -- Highly customizable, by benefitting from the sbt task graph
    +- Highly customizable, by benefiting from the sbt task graph
     
     You can already try using sbt as the build server in IntelliJ Idea or Metals by following the instructions in this [Scala contributors post][instructions] or in the [sbt 1.4.0 release note][release-note]. _(Metals integration will soon become much smoother thanks to [this PR](https://github.com/scalameta/metals/pull/2154) by [Chris Kipp](https://github.com/ckipp01))_
     
    @@ -97,7 +97,7 @@ You can have additional configurations, such as the [IntegrationTest](https://ww
     
     It may sometimes be convenient to disable the BSP support on a particular project or configuration. For instance, some projects cannot be compiled incrementally. Or you can have a configuration that is similar to another one in terms of its compiler inputs.
     
    -To this purpose you can use the `bspEnabled` key: the `bspEnabled := false` setting disables BSP on an entire project, whereas `Test / bspEnabled := false` setting disbales BSP on the `Test` configuration only.
    +To this purpose you can use the `bspEnabled` key: the `bspEnabled := false` setting disables BSP on an entire project, whereas `Test / bspEnabled := false` setting disables BSP on the `Test` configuration only.
     
     The BSP structure of an sbt project mirrors the exact structure of the build definition. It is the same across all the environments of the developers working on this project.
     
    diff --git a/blog/_posts/2020-11-19-scala-3-forward-compat.md b/blog/_posts/2020-11-19-scala-3-forward-compat.md
    index 89e625b3f..2e3580aa0 100644
    --- a/blog/_posts/2020-11-19-scala-3-forward-compat.md
    +++ b/blog/_posts/2020-11-19-scala-3-forward-compat.md
    @@ -33,7 +33,7 @@ to build and run.
     and use it from Scala 2 to validate data structures in the `shared` module.
     
     A reader applying the steps in the tutorial to their own project should note that not
    -all features of Scala 3 are forward compatibile with Scala 2, such as `inline` methods.
    +all features of Scala 3 are forward compatible with Scala 2, such as `inline` methods.
     Consequently, we recommend that the user limits their usage of Scala 3 exclusive
     features when migrating incrementally. More information is provided in the
     [forward compatibility](#forward-compatibility) section.
    diff --git a/blog/_posts/2021-01-19-scala-native-0.4-release.md b/blog/_posts/2021-01-19-scala-native-0.4-release.md
    index f06e45784..b70f8fff8 100644
    --- a/blog/_posts/2021-01-19-scala-native-0.4-release.md
    +++ b/blog/_posts/2021-01-19-scala-native-0.4-release.md
    @@ -151,7 +151,7 @@ By default, Scala Native has always compiled and optimized the resulting assembl
     Although it worked well when you were running a program on the same machine, it caused many problems when trying to run it anywhere else.
     With the latest release you're able to define a custom build target for the compiler by providing an [LLVM-style TargetTriple](https://clang.llvm.org/docs/CrossCompilation.html) in your config.
     
    -For example, if you're working on Linux and would like to create an executable suitable for MacOS without changing your whole build,
    +For example, if you're working on Linux and would like to create an executable suitable for macOS without changing your whole build,
     you can use the following sbt setting:
     ```bash
     sbt 'set nativeConfig ~= {_.withTargetTriple("x86_64-apple-darwin")}' myApp/nativeLink
    diff --git a/blog/_posts/2021-02-16-preventing-version-conflicts-with-versionscheme.md b/blog/_posts/2021-02-16-preventing-version-conflicts-with-versionscheme.md
    index c52d75359..1840a417d 100644
    --- a/blog/_posts/2021-02-16-preventing-version-conflicts-with-versionscheme.md
    +++ b/blog/_posts/2021-02-16-preventing-version-conflicts-with-versionscheme.md
    @@ -107,7 +107,7 @@ ThisBuild / versionScheme := Some("early-semver")
     
     sbt 1.4.0 includes this information into `pom.xml` and `ivy.xml` as a property. In addition, sbt uses the information to take the guessing out of eviction warning when this information is available.
     
    -In sbt 1.5.0, eviction warnings will be replaced with [eviction errors][8]. Since it can now reliably detect whether two dependencies with different versions are compatible, or if they conflict, the build will fail if an incompatibility is detected in your dependencies. This is of course possible only if the libraries provide their `versionScheme`, otherwise sbt will keep issuing eviction warnings.
    +In sbt 1.5.0, eviction warnings will be replaced with [eviction errors][8]. Since it can now reliably detect whether two dependencies with different versions are compatible, or if they conflict, the build will fail if an incompatibility is detected in your dependencies. This is of course possible only if the libraries provide their `versionScheme`; otherwise, sbt will keep issuing eviction warnings.
     
     It might take a few years for the `versionScheme` information to become prevalent in the ecosystem. In the meantime, as a user of libraries you can manually configure the versioning scheme used by your libraries by using a new setting, `libraryDependencySchemes`. For instance, here is how you can tell sbt that the `circe-core` artifact follows the Early SemVer scheme:
     
    diff --git a/blog/_posts/2021-05-14-scala3-is-here.md b/blog/_posts/2021-05-14-scala3-is-here.md
    index 6af907692..5ffac6b85 100644
    --- a/blog/_posts/2021-05-14-scala3-is-here.md
    +++ b/blog/_posts/2021-05-14-scala3-is-here.md
    @@ -19,7 +19,7 @@ One thing has changed completely in Scala 3 compared to Scala 2: it is macros. Y
     
     If you are a seasoned user of Scala 2, chances are you have some projects you'd like to port from Scala 2 to Scala 3. You may find the [Migration guide](https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html#) helpful. It outlines the compatibility story between Scala 2 and Scala 3: source compatibility, binary compatibility, changed and dropped features, metaprogramming.
     
    -And if you need any help in your Scala journey, you can find various resources to talk to fellow Scala users [here](https://www.scala-lang.org/community/).
    +And if you need any help in your Scala journey, there are [various resources to talk to fellow Scala users](https://www.scala-lang.org/community/).
     
     ## Ecosystem
     
    diff --git a/blog/_posts/2021-07-21-scala-3.0.2RC1-is-here.md b/blog/_posts/2021-07-21-scala-3.0.2RC1-is-here.md
    index 7f35d40f5..6bfd2b5e9 100644
    --- a/blog/_posts/2021-07-21-scala-3.0.2RC1-is-here.md
    +++ b/blog/_posts/2021-07-21-scala-3.0.2RC1-is-here.md
    @@ -7,11 +7,11 @@ title: Scala 3.0.1 and 3.0.2-RC1 are here!
     
     Greetings from the Scala 3 team! We are glad to announce that Scala 3.0.1 and 3.0.2-RC1 are now officially out.
     
    -As no critical bugs have been found in the previously released Scala 3.0.1-RC2, it has been promoted to 3.0.1. It is the first stable release after 3.0.0 and it incorporates the changes described in detail in the articles for its pre-releases: [3.0.1-RC1](https://dotty.epfl.ch/blog/2021/06/07/scala3.0.1-rc1-release.html) and [3.0.1-RC2](https://dotty.epfl.ch/blog/2021/06/25/scala301-rc2.html). The unified changelog can be found [here](https://github.com/scala/scala3/releases/tag/3.0.1).
    +As no critical bugs have been found in the previously released Scala 3.0.1-RC2, it has been promoted to 3.0.1. It is the first stable release after 3.0.0 and it incorporates the changes described in detail in the articles for its pre-releases: [3.0.1-RC1](https://dotty.epfl.ch/blog/2021/06/07/scala3.0.1-rc1-release.html) and [3.0.1-RC2](https://dotty.epfl.ch/blog/2021/06/25/scala301-rc2.html). There is a [unified changelog](https://github.com/scala/scala3/releases/tag/3.0.1).
     
     Scala 3.0.2-RC1, in turn, incorporates new language improvements and bug fixes described below.
     
    -You can expect the release of stable 3.0.2 and a release candidate for a the next version in 6 weeks from now (1st September).
    +You can expect the release of stable 3.0.2 and a release candidate for the next version in 6 weeks from now (1st September).
     
     ## Improved insertion of semicolons in logical conditions
     
    @@ -69,7 +69,7 @@ To find methods with the desired signature simply write in scaladoc's searchbar
     
     ## Typing escape hatch for structural types
     
    -Structural types may come in handy in many situations, e.g. when one wants to achieve a compromise between safety of static typing and ease of use when dealing with dynamically changing schemas of domain data structures. They have however some limitations. Among others structural typing doesn't normally play well with method overloading because some types of reflective dispatch algorithms (inlcuding JVM reflection) might not be able to choose the overloaded method alternative with the right signature without knowing upfront the exact types of the parameters after erasure. Consider the following snippet.
    +Structural types may come in handy in many situations, e.g. when one wants to achieve a compromise between safety of static typing and ease of use when dealing with dynamically changing schemas of domain data structures. They have however some limitations. Among others structural typing doesn't normally play well with method overloading because some types of reflective dispatch algorithms (including JVM reflection) might not be able to choose the overloaded method alternative with the right signature without knowing upfront the exact types of the parameters after erasure. Consider the following snippet.
     
     ```scala
     class Sink[A] { def put(x: A): Unit = {} }
    diff --git a/blog/_posts/2021-09-07-scala-3.0.2-released.md b/blog/_posts/2021-09-07-scala-3.0.2-released.md
    index 944bb8bc0..95cc69015 100644
    --- a/blog/_posts/2021-09-07-scala-3.0.2-released.md
    +++ b/blog/_posts/2021-09-07-scala-3.0.2-released.md
    @@ -66,7 +66,7 @@ To find methods with the desired signature simply write in scaladoc's searchbar
     
     ### Typing escape hatch for structural types
     
    -Structural types may come in handy in many situations, e.g. when one wants to achieve a compromise between safety of static typing and ease of use when dealing with dynamically changing schemas of domain data structures. They have however some limitations. Among others structural typing doesn't normally play well with method overloading because some types of reflective dispatch algorithms (inlcuding JVM reflection) might not be able to choose the overloaded method alternative with the right signature without knowing upfront the exact types of the parameters after erasure. Consider the following snippet.
    +Structural types may come in handy in many situations, e.g. when one wants to achieve a compromise between safety of static typing and ease of use when dealing with dynamically changing schemas of domain data structures. They have however some limitations. Among others structural typing doesn't normally play well with method overloading because some types of reflective dispatch algorithms (including JVM reflection) might not be able to choose the overloaded method alternative with the right signature without knowing upfront the exact types of the parameters after erasure. Consider the following snippet.
     
     ```scala
     class Sink[A] { def put(x: A): Unit = {} }
    diff --git a/blog/_posts/2021-10-21-scala-3.1.0-released.md b/blog/_posts/2021-10-21-scala-3.1.0-released.md
    index a4b8b7577..cc5b52076 100644
    --- a/blog/_posts/2021-10-21-scala-3.1.0-released.md
    +++ b/blog/_posts/2021-10-21-scala-3.1.0-released.md
    @@ -16,7 +16,7 @@ Scala 3 follows `major.minor.patch` versioning scheme (unlike Scala 2, which use
     
     Although we cannot guarantee full source compatibility between minor versions, we have put a lot of effort into assuring that all code that was working in 3.0.2, except in some rare cases, will also work in 3.1.0. This means that if you are an application developer, you can confidently update the compiler version to take advantage of the newest improvements. You will still be able to use dependencies compiled with Scala 3.0.
     
    -If you are a library maintainer, *updating to 3.1.0 will force all of your users to update to 3.1.0 as well*. We understand that the current state of binary compatibility may be unsatisfactory. We are actively working on technical solutions to support forward-compatibility in 3.2.0. In the meantime, we recommend testing your library with Scala 3.1.0 and 3.0.2, but _publishing_ it with 3.0.2. This will allow downstream users to use your library even if they can’t update to Scala 3.1.0. You can find an example of build that follows this recommendation [here](https://github.com/typelevel/scalacheck/pull/847).
    +If you are a library maintainer, *updating to 3.1.0 will force all of your users to update to 3.1.0 as well*. We understand that the current state of binary compatibility may be unsatisfactory. We are actively working on technical solutions to support forward-compatibility in 3.2.0. In the meantime, we recommend testing your library with Scala 3.1.0 and 3.0.2, but _publishing_ it with 3.0.2. This will allow downstream users to use your library even if they can’t update to Scala 3.1.0. You can find [an example of build that follows this recommendation](https://github.com/typelevel/scalacheck/pull/847).
     
     ## What's new in 3.1
     
    @@ -94,8 +94,8 @@ The only change necessary for users is that they should now consider that one of
     - Now `TastyInspector.{inspectTastyFiles, inspectTastyFilesInJar, inspectAllTastyFiles}` return a boolean value indicating whether the process succeeded
     - A `Wildcard` was made a subtype of `Ident` in the reflection API
     - `TypedOrTest` was added as a supertype of `Typed` in the reflection API
    -- `Unapply.apply` was added to allow contruction of `Unapply` trees from macros
    -- Unreductible match types now raise type errors
    +- `Unapply.apply` was added to allow construction of `Unapply` trees from macros
    +- Unreducible match types now raise type errors
     - Scala 3.1 targets Scala.js 1.7.x+. This means that users must upgrade to Scala.js 1.7.0 or later to use Scala 3.1.
     
     Beside that Scala 3.1.0 introduced multiple small improvements and fixed a handful of bugs. You can see [the detailed changelog](https://github.com/scala/scala3/releases/tag/3.1.0) on GitHub.
    diff --git a/blog/_posts/2021-12-14-sustainable-scala.md b/blog/_posts/2021-12-14-sustainable-scala.md
    index 24b856ad1..bb412c311 100644
    --- a/blog/_posts/2021-12-14-sustainable-scala.md
    +++ b/blog/_posts/2021-12-14-sustainable-scala.md
    @@ -62,7 +62,7 @@ programming languages**. On average, C and Rust programs are the most energy
     efficient. Java programs consume about 2 times more energy than C programs. 
     JavaScript/TypeScript programs consume between 4 to 20 times more energy 
     than C programs. Finally, Python programs are black sheeps, with an energy
    -consumption 75 times higher than C programs.
    +consumption 75 times greater than C programs.
     
     Where does Scala stand in this picture? Unfortunately, Scala was not 
     included in this study.
    @@ -234,7 +234,7 @@ within high-level programming languages.
     Also, we see that in Scala, two implementations of the same benchmark can 
     easily show different performances, depending on your code style. For 
     instance, the energy consumption of the `k-nucleotide` benchmark was between 
    -2 to 13 times higher than the C implementation. The differences between both 
    +2 to 13 times greater than the C implementation. The differences between both 
     versions are mainly the usage of immutable Scala collections and `for` loops in 
     the idiomatic version, as opposed to `Array`s and `while` loops in the 
     optimized version (this observation is consistent with the results of 
    diff --git a/blog/_posts/2022-02-01-scala-3.1.1-released.md b/blog/_posts/2022-02-01-scala-3.1.1-released.md
    index 95a424380..b2e1d4cbd 100644
    --- a/blog/_posts/2022-02-01-scala-3.1.1-released.md
    +++ b/blog/_posts/2022-02-01-scala-3.1.1-released.md
    @@ -32,13 +32,13 @@ For a comprehensive list of fixes, take a look at [the full changelog on GitHub]
     
     Alongside 3.1.1 we have released the first RC version of the next patch release of the compiler. 3.1.2-RC1 contains further fixes, but most importantly it is our first step in improving forward compatibility in Scala.
     
    -Scala 3 has excellent backward compatibility guarantees between the minor versions. Right now, that means that code compiled with Scala 3.1 can depend on libraries published with 3.0 without any problems. The opposite, hovewer, is not true. Code compiled with 3.0 is not able to read dependencies compiled with 3.1. After the recent release of Scala 3.1.0, we can see that libraries should be really cautious with updating the compiler version, as it forces a bump on every user of that library. We do not want library authors to be stuck on old versions of the compiler as that would mean that they are locked out of many bugfixes, or we would need to spend enormous effort on backporting every bugfix to all past versioning lines.
    +Scala 3 has excellent backward compatibility guarantees between the minor versions. Right now, that means that code compiled with Scala 3.1 can depend on libraries published with 3.0 without any problems. The opposite, however, is not true. Code compiled with 3.0 is not able to read dependencies compiled with 3.1. After the recent release of Scala 3.1.0, we can see that libraries should be really cautious with updating the compiler version, as it forces a bump on every user of that library. We do not want library authors to be stuck on old versions of the compiler as that would mean that they are locked out of many bugfixes, or we would need to spend enormous effort on backporting every bugfix to all past versioning lines.
     
     Our current plan to mitigate those difficulties is described in [the contributors discussion](https://contributors.scala-lang.org/t/improving-scala-3-forward-compatibility/5298), where you are free to leave your feedback. We already have implemented the first and most important part of the solution and have it ready for public testing. Beginning with Scala 3.1.2-RC1 the compiler is able to generate outputs that can be consumed by its older versions. To enable that, you need to specify the minimal targeted minor language version by using the experimental `-Yscala-release` flag.
     
     We expect that in the future authors will use the newest available version of the compiler with `-Yscala-release` set to the lowest language version that support all features they need. This way they will be able to benefit from all the bugfixes without restricting their potential audience.
     
    -So, for example, compiling your library using Scala 3.1.2-RC2 with `-Yscala-release:3.0` flag, you make it possible for people still using Scala 3.0 to depend on your library. This has some limitations, especially your library cannot have any dependencies compiled with `-Yscala-release` version higher than 3.0. You also won't be able to use any symbol added to the standard library after 3.0. They are marked in the code and in the documentation by the `@since` annotation that was also added in this version.
    +So, for example, compiling your library using Scala 3.1.2-RC2 with `-Yscala-release:3.0` flag, you make it possible for people still using Scala 3.0 to depend on your library. This has some limitations, especially your library cannot have any dependencies compiled with `-Yscala-release` version greater than 3.0. You also won't be able to use any symbol added to the standard library after 3.0. They are marked in the code and in the documentation by the `@since` annotation that was also added in this version.
     
     One important note is that the `-Yscala-release` flag is experimental and not yet available in any stable release of the compiler. It means the build tools, such as SBT or Mill, are not yet aware of its existence. Of course, you can declare usage of the flag in your build file, and the compiler will respect it. However, there may still be some hiccups, like generated artifacts depending on the incorrect version of the stdlib. We will do our best to help fix those minor issues before the stable release of 3.1.2.
     
    diff --git a/blog/_posts/2022-03-08-finding-awesome-libraries.md b/blog/_posts/2022-03-08-finding-awesome-libraries.md
    index c846597b9..a32471814 100644
    --- a/blog/_posts/2022-03-08-finding-awesome-libraries.md
    +++ b/blog/_posts/2022-03-08-finding-awesome-libraries.md
    @@ -41,7 +41,7 @@ How can we help experienced Scala programmers find new libraries that solve thei
     
     Open source software, similarly to commercial ones, will not thrive unless it reaches new users, sponsors and contributors.
     Aware of this issue, open source communities started to compile “awesome” lists of open source projects organized by topics.
    -Some examples are [vinta/awesome-python](https://github.com/vinta/awesome-python), [akullp/awesome-java](https://github.com/akullpp/awesome-java), [veggiemonk/awesome-docker](https://github.com/veggiemonk/awesome-docker) and many many more (see [bayandin/awesome-awesomeness](http://bayandin/awesome-awesomeness)).
    +Some examples are [vinta/awesome-python](https://github.com/vinta/awesome-python), [akullp/awesome-java](https://github.com/akullpp/awesome-java), [veggiemonk/awesome-docker](https://github.com/veggiemonk/awesome-docker) and many, many, more (see [bayandin/awesome-awesomeness](http://bayandin/awesome-awesomeness)).
     
     The high number of stars of these GitHub repositories show how popular they are in the world of open source software.
     
    diff --git a/blog/_posts/2022-11-15-gsoc-report.md b/blog/_posts/2022-11-15-gsoc-report.md
    index a0924f8b6..87d977190 100644
    --- a/blog/_posts/2022-11-15-gsoc-report.md
    +++ b/blog/_posts/2022-11-15-gsoc-report.md
    @@ -22,14 +22,14 @@ Mikail Khan, mentored by Noel Welsh, developed a domain-specific language for de
     
     The project will be especially interesting for Scala educators. For experienced and novice programmers alike, it's important to quickly get feedback on what your code is doing – this is how we learn. Even more so it is important for people who have just started their journey in programming. Having a visual feedback you can play with is a great feature that can be used to teach Scala to newcomers.
     
    -The final report for this project is available [here](https://static.mikail-khan.com/gsoc-report/).
    +See the [final report for this project](https://static.mikail-khan.com/gsoc-report/) for more information.
     
     ## Towards Scala 3 support for Scalafix `ExplicitResultTypes`: cross-compiling to Scala 3
     Scalafix is a linting and rewriting tool for Scala codebases. `ExplicitResultTypes` is one of the built-in rules, which inserts type annotations for inferred public members.
     
     Unlike most rules that only rely on the Scalafix & SemanticDB APIs, `ExplicitResultTypes` also depends on the Scala presentation compiler, requiring users to run Scalafix with the Scala binary version targeted by the source files they want to annotate. As Scalafix is currently only cross-compiled to Scala 2.11, 2.12 and 2.13, it is not trivial to interact with the Scala 3 compiler and thus `ExplicitResultTypes` cannot run on Scala 3 source files at the moment.
     
    -Razvan Vacaru, mentored by Brice Jaglin and Meriam Lachkar made a significant progress towards the goal of supporting Scala 3 in `ExplicitResultTypes` by cross-compiling all Scalafix modules to Scala 3. You can find a detailed report [here](https://github.com/rvacaru/GsoC-2022-Scalafix).
    +Razvan Vacaru, mentored by Brice Jaglin and Meriam Lachkar made a significant progress towards the goal of supporting Scala 3 in `ExplicitResultTypes` by cross-compiling all Scalafix modules to Scala 3. For a more detailed report, see [GSoC 2022 - Scalafix Final Submission](https://github.com/rvacaru/GsoC-2022-Scalafix).
     
     ## Semantic Highlighting in Metals
     Semantic Highlighting is a part of the default LSP (Language Server Protocol – what connects Metals to your favorite code editor to bring all nice developer experience to you) spec, but it is not yet supported by Metals. This would allow the highlighting of tokens (keywords etc.) based on semantic information about the code. This is especially useful with things like soft keywords in Scala 3, but not only.
    diff --git a/blog/_posts/2022-12-14-scala-developer-survey-results-2022.md b/blog/_posts/2022-12-14-scala-developer-survey-results-2022.md
    index 01271aceb..e05a6b113 100644
    --- a/blog/_posts/2022-12-14-scala-developer-survey-results-2022.md
    +++ b/blog/_posts/2022-12-14-scala-developer-survey-results-2022.md
    @@ -132,7 +132,7 @@ We asked respondents “*Which types of resources did you use to learn Scala?*
     We see that **78.1%** of respondents chose “books”; **77.5%** chose the [official documentation](https://docs.scala-lang.org); **77.21%** chose “online courses”; **8.43%** chose “university courses”; **3.72%** chose “bootcamps”.
     
     **16.7%** of respondents chose “other” which is significantly more compared to the rest of the  questions in the survey with the same field. Here’s what came up, in no particular order:
    -Work experience, hackathons, local user groups, youtube tutorials, internal company training, blogs, Stackoverflow, and more.
    +Work experience, hackathons, local user groups, YouTube tutorials, internal company training, blogs, Stackoverflow, and more.
     
     Going forward it would be useful to reinclude some of the “other” options in the main questions, and further determine which books/docs/courses were useful.
     
    diff --git a/blog/_posts/2023-01-31-scala-center-2023-roadmap.md b/blog/_posts/2023-01-31-scala-center-2023-roadmap.md
    index e2b3845e5..354a34c03 100644
    --- a/blog/_posts/2023-01-31-scala-center-2023-roadmap.md
    +++ b/blog/_posts/2023-01-31-scala-center-2023-roadmap.md
    @@ -113,8 +113,7 @@ events.** In April 2022, for the first time in 2.5 years, events could finally t
     many Scala User Groups to restart their regular Scala Meetups. We gave talks and organized [Open-Source Sprees](https://github.com/scalacenter/sprees)
     at local events in Europe. We were also involved in the online conference ScalaCon: we were in charge of the program and
     the program committee, and we presented several talks including a keynote [Towards a Healthy & Resilient Scala Community](https://youtu.be/svWnwU5PXxE)
    -where we presented our strategy for the governance of Scala. The talk videos of the whole conference are available online
    -[here](https://www.youtube.com/playlist?list=PL3t6y1EktOPhflaXB28Kw7kwRb30K0W-P).
    +where we presented our strategy for the governance of Scala. The [talk videos of the whole conference](https://www.youtube.com/playlist?list=PL3t6y1EktOPhflaXB28Kw7kwRb30K0W-P) are available online.
     
     **We published videos about Scala 3.** [Let’s Talk About Scala 3](https://www.youtube.com/playlist?list=PLTx-VKTe8yLxYQfX_eGHCxaTuWvvG28Ml)
     is a series of videos where we share interesting, useful, and cool things related to Scala 3. We published 4 new
    @@ -133,8 +132,8 @@ more about the Compiler Academy in [this blog article]({% link blog/_posts/2022-
     absence of incompatibilities between library dependencies is the cornerstone of a seamless Scala ecosystem. We have
     implemented a prototype of a new tool to detect incompatibilities between two versions of a program (like
     [MiMa](https://github.com/lightbend/mima), but based on the TASTy representation of programs instead of JVM bytecode).
    -We explained [here](https://github.com/scalacenter/tasty-mima#motivation) why we need this tool in addition to the
    -classic MiMa.
    +We [explained why we need this tool in addition to the
    +classic MiMa](https://github.com/scalacenter/tasty-mima#motivation).
     Our work is based on [TASTy Query](https://github.com/scalacenter/tasty-query), which will be the basis of tools to
     perform static analysis of Scala programs (it is already used by the Metals debugger).
     
    @@ -162,8 +161,7 @@ library, we will:
     
     - **Make the compiler error messages clearer and more actionable.** The compiler should help developers write correct code
       instead of “just complaining” about incorrect code. The compiler should also guide you to write maintainable code (ie,
    -  it should provide linting features). You can find a list of related issues
    -  [here](https://github.com/scala/scala3/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%3Areporting).
    +  it should provide linting features). You can find a [list of related issues](https://github.com/scala/scala3/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%3Areporting).
     - **Bring the compiler’s suggestions into the IDEs.** Instead of emitting only text output, the compiler
       will produce structured output that IDEs (Metals and IntelliJ) will be able to read to automatically provide “quick
       fixes” to the users. This should reduce the implementation (and maintenance) costs on the IDE side.
    @@ -256,6 +254,6 @@ outcome of our work in 2022, and our main goals for 2023.
     Thanks to your support, and with the help of all the [people behind Scala](https://www.scala-lang.org/community/#whos-behind-scala),
     we came this far! Help us go even further by [supporting the Scala Center](https://scala.epfl.ch/faqs.html).
     
    -You can find our detailed roadmap for the current quarter [here](https://scala.epfl.ch/projects.html),
    +See our [detailed roadmap for the current quarter](https://scala.epfl.ch/projects.html),
     and track our progress by looking at our [quarterly reports](https://scala.epfl.ch/records.html), or by browsing the
     [Scala Center Updates](https://contributors.scala-lang.org/c/scala-center/25) category of the Scala Contributors forum.
    diff --git a/blog/_posts/2023-04-11-march-2023-scala-tooling-summit.md b/blog/_posts/2023-04-11-march-2023-scala-tooling-summit.md
    index dd2b6a165..b60ba25a9 100644
    --- a/blog/_posts/2023-04-11-march-2023-scala-tooling-summit.md
    +++ b/blog/_posts/2023-04-11-march-2023-scala-tooling-summit.md
    @@ -246,9 +246,8 @@ Both Metals and IntelliJ users have multiple ways to import projects. This could
     be simply choosing your build server in Metals, or choosing to use BSP at all in
     IntelliJ. There are ongoing discussions and work going on in both of these tools
     to make the getting started experience on a project more seamless no matter the
    -tool or project. For example you can see the discussion choosing a default build
    -server for metals
    -[here](https://github.com/scalameta/metals/discussions/4505#discussioncomment-4571546).
    +tool or project. For example you can see the [discussion choosing a default build
    +server for metals](https://github.com/scalameta/metals/discussions/4505#discussioncomment-4571546).
     
     ### Porting Scalameta to Scala 3
     
    @@ -271,9 +270,8 @@ new upcoming BSP plugin for IntelliJ this may offer a better level of support
     for using Mill or sbt server for multi-language projects. On the Metals side,
     this is made even more trickier as LSP isn’t traditionally used for mixed
     multi-language projects. There will be some more research on seeing if it’s
    -possible to better integrate with the Java language servers. There is an ongoing
    -thread about this that can be followed
    -[here](https://github.com/scalameta/metals-feature-requests/issues/5).
    +possible to better integrate with the Java language servers. There is an [ongoing
    +thread about this](https://github.com/scalameta/metals-feature-requests/issues/5).
     
     ### Tasty Query and its use-cases
     
    @@ -323,8 +321,8 @@ implementations. During this topic
     [coursier/publish](https://github.com/coursier/publish) was mentioned as a
     possible library that could be utilized across the ecosystem. There were
     multiple questions that would need to be answered first about the reality of
    -this possibility that are being tracked
    -[here](https://github.com/coursier/publish/issues/14).
    +this possibility that are being tracked in
    +[Discussing usage in other tools](https://github.com/coursier/publish/issues/14).
     
     ### Merge Bloop mainline and scala-cli’s fork of Bloop
     
    @@ -334,13 +332,12 @@ and comments about how it works, and questions about why it works a certain way.
     Some of the answers to these questions has led scala-cli to fork Bloop resulting
     in 2 bloop servers often running on a user’s machine if they are a Metals user.
     In order to combat this and provide a smoother Bloop experience for all users,
    -we discussed what would need to happen in order to merge the fork of Bloop back
    -inline. You can follow a thread on this effort
    -[here](https://github.com/VirtusLab/scala-cli/issues/1971).
    +[we discussed what would need to happen in order to merge the fork of Bloop back
    +inline](https://github.com/VirtusLab/scala-cli/issues/1971).
     
     ## What comes next?
     
    -Overall, we consider the summit a success. With positive feedback from
    +Overall, we consider the summit to be a success. With positive feedback from
     participants and movement already visible on the topics above, we feel confident
     that these efforts will result in a more stable, feature-rich, and unified
     tooling ecosystem. The Scala Center will be continuing to facilitate and plan
    diff --git a/blog/_posts/2023-04-20-sbt-plugins-community-repository.md b/blog/_posts/2023-04-20-sbt-plugins-community-repository.md
    index fc5b3d038..1c6a4d77c 100644
    --- a/blog/_posts/2023-04-20-sbt-plugins-community-repository.md
    +++ b/blog/_posts/2023-04-20-sbt-plugins-community-repository.md
    @@ -15,17 +15,17 @@ Update: we have announced our action plan on the [Contributors Forum](https://co
     
     On the 7th of April 2023, many projects of the Scala ecosystem could not resolve
     sbt plugins from the community repository `repo.scala-sbt.org` anymore (examples
    -[here](https://github.com/sbt/sbt-dynver/issues/239#issuecomment-1499791434),
    -[here](https://github.com/playframework/playframework/issues/11675#issuecomment-1499869916),
    -[here](https://github.com/sbt/sbt/issues/7204), and
    -[here](https://github.com/spray/sbt-revolver/issues/112)).
    +[sbt/sbt-dynver#239](https://github.com/sbt/sbt-dynver/issues/239#issuecomment-1499791434),
    +[playframework/playframework#11675](https://github.com/playframework/playframework/issues/11675#issuecomment-1499869916),
    +[sbt/sbt#7204](https://github.com/sbt/sbt/issues/7204), and
    +[spray/sbt-revolver#112](https://github.com/spray/sbt-revolver/issues/112)).
     
     ## Retrospective
     
     To understand what happened, here is some background information. sbt plugins are packaged
     as modules published to Ivy or Maven repositories. Historically, sbt plugins used to be
     published primarily to the sbt community repository hosted on Bintray. However, in 2021,
    -JFrog [sunsetted the Bintray
    +JFrog [sunset the Bintray
     service](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/).
     Since then, JFrog has provided the Scala Center a cloud-hosted Artifactory instance for free.
     As explained in the [release notes of sbt
    diff --git a/blog/_posts/2023-06-20-toolkit.md b/blog/_posts/2023-06-20-toolkit.md
    index 5fd8cd2bf..c8b8f5bc1 100644
    --- a/blog/_posts/2023-06-20-toolkit.md
    +++ b/blog/_posts/2023-06-20-toolkit.md
    @@ -45,7 +45,7 @@ The Toolkit aims to offer default choices for coders who aren’t in a position
     
     ## What is the Toolkit?
     
    -The Toolkit gathers a number of pre-existing libraries of the ecosystem that focus on concrete, recurring software engineering problems, such as working with files and processes, parsing JSON, and sending HTTP requests.
    +The Toolkit gathers a number of preexisting libraries of the ecosystem that focus on concrete, recurring software engineering problems, such as working with files and processes, parsing JSON, and sending HTTP requests.
     
     Its documentation can be found at [docs.scala-lang.org/toolkit](https://docs.scala-lang.org/toolkit/introduction.html).
     It comprises a collection of concise tutorials, including short code examples, that aim at being self-contained.
    @@ -84,7 +84,7 @@ println(response.code)
     // prints: 200
     ```
     
    -This short program sends an HTTP request to the [Github REST API](https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28#update-the-authenticated-user), to update the profile of the authenticated users.
    +This short program sends an HTTP request to the [GitHub REST API](https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28#update-the-authenticated-user), to update the profile of the authenticated users.
     In a few lines, it shows:
     - how to construct a JSON object, with `ujson.Obj`
     - how to read an environment variable, with `sys.env`
    @@ -209,7 +209,7 @@ To select the libraries of the Toolkit we used the following criterion:
     
     ### Who owns the Toolkit libraries?
     
    -The Toolkit is composed of pre-existing libraries from the ecosystem, created by different organizations and individuals.
    +The Toolkit is composed of preexisting libraries from the ecosystem, created by different organizations and individuals.
     
     Those libraries are owned by their respective authors and maintainers.
     The Scala organization takes on the responsibility of curating the libraries, releasing the Toolkit artifacts and regularly updating the tutorials in [docs.scala-lang.org/toolkit](https://docs.scala-lang.org/toolkit/introduction.html).
    diff --git a/blog/_posts/2023-09-11-scala-center-fundraising.md b/blog/_posts/2023-09-11-scala-center-fundraising.md
    index a088d950b..e0e2a78eb 100644
    --- a/blog/_posts/2023-09-11-scala-center-fundraising.md
    +++ b/blog/_posts/2023-09-11-scala-center-fundraising.md
    @@ -25,4 +25,4 @@ Inspired to join forces for a sustainable Scala open source ecosystem? [Get in t
     
     And if you're not a company but an individual Scala programmer, you can still contribute to the Scala Center by becoming a [supporter](https://scala.epfl.ch/records/first-five-years/support)!
     
    -To learn more about our activities, we invite you to check out our [Five Year Report](https://scala.epfl.ch/records/first-five-years/), [team](https://scala.epfl.ch/team.html) behind the the work, and the [2023 Roadmap](https://www.scala-lang.org/blog/2023/01/31/scala-center-2023-roadmap.html).
    +To learn more about our activities, we invite you to check out our [Five Year Report](https://scala.epfl.ch/records/first-five-years/), [team](https://scala.epfl.ch/team.html) behind the work, and the [2023 Roadmap](https://www.scala-lang.org/blog/2023/01/31/scala-center-2023-roadmap.html).
    diff --git a/blog/_posts/2023-10-17-feedback-wanted-error-messages.md b/blog/_posts/2023-10-17-feedback-wanted-error-messages.md
    index 7b645d485..d491c7b54 100644
    --- a/blog/_posts/2023-10-17-feedback-wanted-error-messages.md
    +++ b/blog/_posts/2023-10-17-feedback-wanted-error-messages.md
    @@ -16,7 +16,7 @@ description: "Feedback is wanted on confusing or unhelpful error messages"
     From [suggesting to import missing extension methods](https://docs.scala-lang.org/scala3/book/ca-extension-methods.html#import-extension-method) and more, Scala 3 tries to improve the ways that warnings and errors are reported to the user.
     The idea being that when the user engages with reported problems, it should feel like having a conversation with a helpful tutor. By helping users to get back on track, we can make Scala easier to learn, friendlier to newcomers, and also keep experienced users more productive.
     
    -We know there is much more that can be done to continually improve the situation. As well as working to [expose diagnostics programatically](https://github.com/scala/scala3/issues/14904), we are starting a new campaign to seek out confusing, annoying or unhelpful error/warning messages.
    +We know there is much more that can be done to continually improve the situation. As well as working to [expose diagnostics programmatically](https://github.com/scala/scala3/issues/14904), we are starting a new campaign to seek out confusing, annoying or unhelpful error/warning messages.
     
     As compiler authors, we do try to provide good messages, but it is possible for there to be shortcomings.
     For example, the message may correctly report a problem, but not provide enough information to actually help the user.
    diff --git a/blog/_posts/2023-11-03-spotify-oss.md b/blog/_posts/2023-11-03-spotify-oss.md
    index 583f4c6ed..7c782aad1 100644
    --- a/blog/_posts/2023-11-03-spotify-oss.md
    +++ b/blog/_posts/2023-11-03-spotify-oss.md
    @@ -22,7 +22,7 @@ As an organization, Spotify's dedication to open source has been clear since its
     
     Our interviewee, Michel, was attracted to Spotify precisely because of its fervent open source culture. In recent times, the company has professionalized its open source initiatives by creating the Free and Open Source Software board (FOSS board). It aims to promote good practices and citizenship within the open source community, assist in legal/business issues and ensure the delivery of high-quality software. This step is part of Spotify's shift towards prioritizing quality over quantity in its open source contributions. The company's dedication to supporting the open source ecosystem extends beyond its walls with the launch of the [FOSS Fund](https://engineering.atspotify.com/2023/10/announcing-the-recipients-of-the-2023-spotify-foss-fund/). This fund is dedicated to financially support the maintainers of independent projects. This ambitious initiative is aimed at nurturing a more sustainable open source ecosystem for everyone to benefit from.
     
    -In addition, Spotify has a dedicated page showcasing all its [open source projects](https://spotify.github.io/). They also actively share updates and progress through blog posts and have established mechanisms to gauge the quality of their projects, such as tracking the repository activity, known vulnerabilities and the community interest with star ratings on Github.
    +In addition, Spotify has a dedicated page showcasing all its [open source projects](https://spotify.github.io/). They also actively share updates and progress through blog posts and have established mechanisms to gauge the quality of their projects, such as tracking the repository activity, known vulnerabilities and the community interest with star ratings on GitHub.
     
     Join us as we explore deeper into Spotify's journey and its symbiotic relationship with the open source world. We'd like to share some of Spotify's own experiences - the highs and the lows - of contributing to the Scala ecosystem.
     
    @@ -92,7 +92,7 @@ Spotify's effective engagement with the Scala ecosystem and open source communit
     
     We encourage you to contribute to the growing Scala ecosystem and share your unique insights. Embrace the open source philosophy, learn from the journeys of others, and start making your own impact today. Remember, every positive contribution, no matter how small, is a step forward in this collaborative journey. Let's shape the future of Scala together!
     
    -Share your contribution story [here](https://airtable.com/shr5mUxTqQs1zZ228)!
    +Share your contribution story in the [Scala Open Source Sustainability Interview](https://airtable.com/shr5mUxTqQs1zZ228)!
     
     ## Related Content and Further Reading
     
    diff --git a/blog/_posts/2023-11-23-advent-of-code-announce.md b/blog/_posts/2023-11-23-advent-of-code-announce.md
    index dda67c5a4..516ecbf79 100644
    --- a/blog/_posts/2023-11-23-advent-of-code-announce.md
    +++ b/blog/_posts/2023-11-23-advent-of-code-announce.md
    @@ -6,7 +6,7 @@ title: "Join us for the Advent of Code 2023"
     ---
     
     ### Summary
    -We are happy to announce that for the third year in a row, we are supporting the Scala Community's participation in the annual [Advent of Code](https://adventofcode.com/) challenge for 2023! _(Look [here](https://scala-lang.org/blog/2023/01/06/advent-of-code-recap.html) for a recap of 2022's edition)._
    +We are happy to announce that for the third year in a row, we are supporting the Scala Community's participation in the annual [Advent of Code](https://adventofcode.com/) challenge for 2023! _(See [Advent of Code 2022](https://scala-lang.org/blog/2023/01/06/advent-of-code-recap.html) for a recap of 2022's edition)._
     
     > Advent of Code, organised by [Eric Wastl](http://was.tl/) is a yearly event consisting of a series of small programming puzzles. The puzzles are released daily from December 1st to December 25th. The goal is to improve your understanding of your programming language of choice by solving as many puzzles as possible.
     
    diff --git a/blog/_posts/2024-02-06-scala-center-2024-roadmap.md b/blog/_posts/2024-02-06-scala-center-2024-roadmap.md
    index e4591c05b..89160f48a 100644
    --- a/blog/_posts/2024-02-06-scala-center-2024-roadmap.md
    +++ b/blog/_posts/2024-02-06-scala-center-2024-roadmap.md
    @@ -151,4 +151,4 @@ In this article, we have looked at the pillars of the Scala ecosystem, and for e
     Thanks to your support, and with the help of all the [people behind Scala](https://www.scala-lang.org/community/#whos-behind-scala), we came this far!
     Help us go even further by [supporting the Scala Center](https://scala.epfl.ch/faqs.html).
     
    -You can find our detailed roadmap for the current quarter [here](https://scala.epfl.ch/projects.html), and track our progress by looking at our [quarterly reports](https://scala.epfl.ch/records.html), or by browsing the [Scala Center Updates](https://contributors.scala-lang.org/c/scala-center/25) category of the Scala Contributors forum.
    +You can find our [detailed roadmap for the current quarter](https://scala.epfl.ch/projects.html), and track our progress by looking at our [quarterly reports](https://scala.epfl.ch/records.html), or by browsing the [Scala Center Updates](https://contributors.scala-lang.org/c/scala-center/25) category of the Scala Contributors forum.
    diff --git a/blog/_posts/2024-02-29-scala-3.4.0-and-3.3.3-released.md b/blog/_posts/2024-02-29-scala-3.4.0-and-3.3.3-released.md
    index 42dde75c5..38a800904 100644
    --- a/blog/_posts/2024-02-29-scala-3.4.0-and-3.3.3-released.md
    +++ b/blog/_posts/2024-02-29-scala-3.4.0-and-3.3.3-released.md
    @@ -105,7 +105,7 @@ Release notes of [3.4.0](https://github.com/scala/scala3/releases/tag/3.4.0) con
     
     ### Experimental changes
     
    -- An experimental `@publicInBinary` annotation can mark definitions that should be treated as a part of binary API. It is useful where some protected or private-in-package definitions are used in the inlined code. When they are marked, it is harder to accidentally break the binary compatibility by doing seemingly harmless refactoring. If the accompanying `-WunstableInlineAccessors` linting option is enabled. There will be a warning about using things not marked as binary API in inlined code. Originaly it was presented in [SIP-52](https://docs.scala-lang.org/sips/binary-api.html).
    +- An experimental `@publicInBinary` annotation can mark definitions that should be treated as a part of binary API. It is useful where some protected or private-in-package definitions are used in the inlined code. When they are marked, it is harder to accidentally break the binary compatibility by doing seemingly harmless refactoring. If the accompanying `-WunstableInlineAccessors` linting option is enabled. There will be a warning about using things not marked as binary API in inlined code. Originally it was presented in [SIP-52](https://docs.scala-lang.org/sips/binary-api.html).
     - `-experimental` compiler flags will mark all top-level definitions as `@experimental`. This means that the experimental language features and definitions can be used in the project. Note that this does not change the strong guarantees of the stability of the non-experimental code. The experimental features can only be used in an experimental scope (transitively). In 3.5, we plan to allow using this flag also in the stable releases of the compiler.
     
     ### Legacy syntax deprecation
    diff --git a/blog/_posts/2024-03-06-scala-3.3.2-post-mortem.md b/blog/_posts/2024-03-06-scala-3.3.2-post-mortem.md
    index aba11c8f9..ee1997b61 100644
    --- a/blog/_posts/2024-03-06-scala-3.3.2-post-mortem.md
    +++ b/blog/_posts/2024-03-06-scala-3.3.2-post-mortem.md
    @@ -46,7 +46,7 @@ Names in TASTy and in the compiler are not simple Strings.
     They have some amount of structure.
     For example, the name of the class behind an `object Foo` definition has a structured name `ModuleClass("Foo")`, instead of the string `"Foo$"`.
     
    -Likewise, generated names for anonymous entites, such as `implicit` parameters, have the structured name `UniqueName("evidence$", 1)`.
    +Likewise, generated names for anonymous entities, such as `implicit` parameters, have the structured name `UniqueName("evidence$", 1)`.
     The string `"evidence$"` is used in the equality definition of names, so that `UniqueName("evidence$", 1)` is not the same name as `UniqueName("foo$", 1)`, but it does not otherwise have any semantic meaning in TASTy.
     
     However, for code readability and performance reasons, the compiler maintains a fixed list of the prefixes it generates, and uses a single instance of the associated `NameKind`, one of its internal data structures.
    diff --git a/blog/_posts/2024-03-14-new-ab-community-rep.md b/blog/_posts/2024-03-14-new-ab-community-rep.md
    index 3d9b2c958..aaa3f5604 100644
    --- a/blog/_posts/2024-03-14-new-ab-community-rep.md
    +++ b/blog/_posts/2024-03-14-new-ab-community-rep.md
    @@ -30,6 +30,5 @@ We look forward to collaborating with Zainab as we continue to shape the future
     As part of the board, the community is invited to submit proposals through the Community Representatives.
     Check out the [proposal template](https://github.com/scalacenter/advisoryboard/blob/master/templates/proposal.md) or [previous proposals](https://github.com/scalacenter/advisoryboard/tree/master/proposals).
     
    -**Reminder:** all the Scala Center quarterly reports and board meeting notes are public.
    -You can find them [here](https://scala.epfl.ch/records.html).
    +**Reminder:** all the [Scala Center quarterly reports and board meeting notes](https://scala.epfl.ch/records.html) are public.
     You can also find the current Scala Center roadmap in this [blog post](https://www.scala-lang.org/blog/2024/02/06/scala-center-2024-roadmap.html).
    diff --git a/blog/_posts/2024-03-18-scam-response.md b/blog/_posts/2024-03-18-scam-response.md
    index 9926e79bd..0371ecb72 100644
    --- a/blog/_posts/2024-03-18-scam-response.md
    +++ b/blog/_posts/2024-03-18-scam-response.md
    @@ -40,10 +40,10 @@ The Scala Center has been carefully documenting all the cases brought to our att
     If you see a fraudulent domain, the following are the things you can do:
     
     - Report them at the DNS level proved helpful - they get blocked fairly quickly. You can use [who.is](https://who.is/) to find the DNS provider of a domain by looking at its NS record. Then, you can complain to that provider. For example, we reported several domains to [Dynadot](https://www.dynadot.com/report-abuse) via their abuse report system.
    -- Report the fraud to your local law enforcement. The more such reports they get, the more likely they are to prioritise the issue. If you are a victim and have revealed your identity documents to the scammers, it is especially important that you seek help from your law enforcement, as the leaked documents may be used by the scammers to impersonate you.
    -- Report the fraud to the companies the scammers impersonate.
    +- Report the fraud to your local law enforcement. The more such reports they get, the more likely they are to prioritize the issue. If you are a victim and have revealed your identity documents to the scammers, it is especially important that you seek help from your law enforcement, as the leaked documents may be used by the scammers to impersonate you.
    +- Report the fraud to the companies that the scammers are impersonating.
     - Stay informed via the Scala Center's official channels. Also, coordinate with your local community, e.g., the Scala's Indian community made a [thread](https://www.reddit.com/r/developersIndia/comments/1axvs2p/new_scam_alert_guys_it_is_a_massive_elaborate/)  on Reddit where they discuss the issue.
     
    -As this is an ongoing incident, please stay vigilant. You can read the previous article on the matter, which contains some useful tips on how to detect the scam [here](https://scala-lang.org/blog/2024/03/01/fake-scala-courses.html).
    +As this is an ongoing incident, please stay vigilant. You can read the [previous article on the matter](https://scala-lang.org/blog/2024/03/01/fake-scala-courses.html) which contains some useful tips on how to detect the scam.
     
     We would also like to extend our empathy to those who suffered from this scam. It is truly unfortunate that Scala itself got pulled in this elaborate scam. We would like to remind everyone that Scala is an open source language and that all Scala MOOCs produced and maintained by the Scala Center and EPFL employees are [available for free](https://docs.scala-lang.org/online-courses.html). And finally, whereas today Scala is targeted, tomorrow it can be another technology. Keep your eyes open and stay safe. 🙏
    diff --git a/blog/_posts/2024-03-28-ambassadors-initiative.md b/blog/_posts/2024-03-28-ambassadors-initiative.md
    index 51ac25918..1077c7098 100644
    --- a/blog/_posts/2024-03-28-ambassadors-initiative.md
    +++ b/blog/_posts/2024-03-28-ambassadors-initiative.md
    @@ -58,7 +58,7 @@ Currently, we are in the process of selecting and onboarding the first group of
     
     * [Scala Ambassadors page](https://scala-lang.org/ambassadors)
     
    -At the moment the list is short, but we aim to make it much longer in the coming weeks and months.
    +At the moment, the list is short, but we aim to make it much longer in the coming weeks and months.
     
     Stay tuned for more information about the Scala Ambassadors initiative and the Ambassadors themselves! This is only our first blog post on the subject.
     
    diff --git a/blog/_posts/2024-12-02-advent-of-code-announce.md b/blog/_posts/2024-12-02-advent-of-code-announce.md
    index f46c6b834..64b6f4139 100644
    --- a/blog/_posts/2024-12-02-advent-of-code-announce.md
    +++ b/blog/_posts/2024-12-02-advent-of-code-announce.md
    @@ -6,7 +6,7 @@ title: "Join us for the Advent of Code 2024"
     ---
     
     ### Summary
    -The Scala Center is happy to announce that for the fourth year in a row, we are supporting the Scala Community's participation in the annual [Advent of Code](https://adventofcode.com/) challenge for 2024! _(Look [here](https://scala-lang.org/blog/2024/01/10/advent-of-code-recap.html) for a recap of 2023's edition)._
    +The Scala Center is happy to announce that for the fourth year in a row, we are supporting the Scala Community's participation in the annual [Advent of Code](https://adventofcode.com/) challenge for 2024! _(See [Advent of Code Recap 2023](https://scala-lang.org/blog/2024/01/10/advent-of-code-recap.html) for a recap of 2023's edition)._
     
     > Advent of Code, organised by [Eric Wastl](http://was.tl/) is a yearly event consisting of a series of small programming puzzles. The puzzles are released daily from December 1st to December 25th. The goal is to improve your understanding of your programming language of choice by solving as many puzzles as possible.
     
    diff --git a/blog/_posts/2025-03-24-evolving-scala.md b/blog/_posts/2025-03-24-evolving-scala.md
    index d030d2fd0..9063ac930 100644
    --- a/blog/_posts/2025-03-24-evolving-scala.md
    +++ b/blog/_posts/2025-03-24-evolving-scala.md
    @@ -227,7 +227,7 @@ However, we think there is light at the end of the tunnel:
        [Bleep](https://github.com/oyvindberg/bleep), while still young, offers a different take in the build tool space that also shows a lot of promise.
     3. **sbt itself has improved greatly over time**.
        The last few years have seen improvements like the [Unified Slash Syntax](https://github.com/sbt/sbt/pull/3434), [sbt Project-Matrix](https://github.com/sbt/sbt-projectmatrix), and the upcoming [sbt 2.0](https://www.scala-sbt.org/2.x/docs/en/changes/sbt-2.0-change-summary.html) release is bringing [build queries](https://eed3si9n.com/sudori-part6/), [remote caching](https://eed3si9n.com/sbt-remote-cache/), and other improvements.
    -   While still not perfect, the experience using sbt in 2025 is greatly improved from the experience a decade ago.
    +   While still not perfect, the experience using sbt in 2025 is greatly improved from the experience of a decade ago.
     4. [**Maven**](https://github.com/davidB/scala-maven-plugin) and [**Gradle**](https://docs.gradle.org/current/userguide/scala_plugin.html) can also be used.
        These build tools have long been popular and familiar in Java shops.
        While not as popular in the open source community, we see them being used in many commercial Scala codebases.
    diff --git a/blog/_posts/2025-05-28-scala-days-2025-announcement.md b/blog/_posts/2025-05-28-scala-days-2025-announcement.md
    new file mode 100644
    index 000000000..50f1df23b
    --- /dev/null
    +++ b/blog/_posts/2025-05-28-scala-days-2025-announcement.md
    @@ -0,0 +1,76 @@
    +---
    +layout: blog-detail
    +category: blog
    +title: "Scala Days 2025 - Functional Programming And The Real World"
    +by: Darja Jovanovic
    +---
    +The [Scala Days Program Committee](https://scaladays.org/#committee) is proud to announce the 2025 [conference program](https://scaladays.org/schedule). It's buzzing with awesome talks, and there's something for everyone! A special thank you for their work, time, and expertise over the past couple of months ❤️
    +
    +The Scala Days 2025 theme is **Functional Programming And The Real World**. The event will feature keynotes from Evan Czaplicki (creator of Elm), Martin Odersky (lead designer of Scala), and Ralf Jung (Rust core-team member), followed by four tracks across two days, bringing over fifty speakers to the stage. That is the most comprehensive tour of the Scala ecosystem yet.
    +
    +Beyond the program, being a part of Scala Days means being in great company. It’s a place to reconnect with your community colleagues, exchange with Scala leaders and the Scala research team; to discover Scala companies and their products and services, individuals finding new job opportunities, and create trust relationships and lasting memories. Additionally, collocated, free events are known to complement the conference and strengthen the community bonds and spirit. Keep an eye on the upcoming announcements regarding those. Note that some of them will take place before (18th August) and after (22nd August) the conference itself. The journey to Scala Days can also be fun, see the [Scala Jam Train](https://www.meetup.com/london-scala/events/307435835/) going from London and Paris to Lausanne. The organising team is very inspired to, for the 12th time, bring Scala Days to life this August and welcome all the participants.
    +
    +> **Quick note:**
    +> 1. There’s a small window to buy your tickets at the Early Bird price while the program is announced. Standard price starts on 30th May.
    +> 2. The program is still subject to minor adjustment, due to speaker slot movements, ongoing confirmations, and alike.
    +> 3. If you have noticed any bugs, typos, other inconsistencies at the scaladays.org website, please report them to info@scaladays.org, or open a PR to the [website repo](https://github.com/scaladays/scaladays.org).
    +
    +## About the program
    +
    +[The Program Committee](https://scaladays.org/#committee) has crafted a two-day program across four parallel tracks—complete with keynotes and panels—each designed for a different audience. While we’ve worked hard to minimize topic overlap, we know you may still face tough choices between sessions. Don’t worry: every talk will be recorded and made available on the [Scala Days YouTube channel](https://www.youtube.com/channel/UCOHg8YCiyMVRRxb3mJT_0Mg), so you can catch up on anything you miss. Read on to set your track expectations.
    +
    +**Curious about what makes Scala *Scala***? We invite you to check out Panorama track (stage 1). This track is set to showcase each corner of the Scala ecosystem - from language features, tooling innovation, discussing the future of the community and language, to creative talks and more. This is a great track for newcomers who want to gain an insight into where they can head out next, for seasoned conference-goers to get an overview of where Scala is headed, and everyone in between.
    +
    +**Weighing the pros and cons of Scala for your business**? Industry track (stage 2) is for you! This track is curated to highlight the real-world case studies and best practices from companies around the world. You’ll hear straight-up stories from teams who run Scala at scale—what saved them time, where they hit snags, and the real impact on performance and ROI. Whether you're bootstrapping a startup with an aim to scale fast,  a CTO evaluating tools, an architect planning a new project, or a maintainer of a large codebase, these talks will give you the practical insight you need.
    +
    +**Want to make your daily coding smoother**? Developer experience track (stage 3) offers an in-depth overview of the tooling innovation, language features and programming tips-and-tricks. Hear from your Scala peers all about the real-world techniques and insights or from tooling developers on how to help enhance your favorite tools and much more. This track is ideal for anyone who wants to get more done in less time, or for those simply curious about what's new and cool :)
    +
    +**Having fun with Scala at work and beyond**? Join the Creative and Mix track (stage 4) to explore further industry case studies, tooling talks, and let yourself be surprised by all the ways Scala can be fun besides coding for work.
    +
    +## Beyond the program
    +
    +Complementing the conference, we begin the week with two-day hands-on workshops. Scala newcomers will have the opportunity to participate in [ScalaBridge](https://scaladays.org/blog/scalabridge-lausanne/) and we hope to announce more such events in the upcoming months, stay tuned! In the meantime, check out this fantastic community-organized **[Scala Train that runs from London and Paris to Lausanne](https://www.meetup.com/london-scala/events/307435835/)**. By travelling together, attendees can enjoy sustainable travel and make connections with each other before the conference begins. We hope you get inspired and organise your local community in this or another fun way!
    +
    +### Workshops
    +Scala Days 2025 features five [workshops](https://scaladays.org/workshops), covering beginner, intermediate, and expert levels, for Scala developers to keep learning and enhance their productivity. Workshops will take place on the 18th and 19th August, between 9 AM and 4-5 PM CEST (precise time and place will be communicated closer to the date). You can already purchase your ticket, and be aware that the places are limited:
    +
    +- [Functional Stream Processing](https://scaladays.org/editions/2025/workshops/functional-stream-processing) with Zainab Ali
    +- [Functional Programming Strategies](https://scaladays.org/editions/2025/workshops/functional-programming-strategies) with Noel Welsh
    +- [Real-World ZIO](https://scaladays.org/editions/2025/workshops/real-world-zio) with Daniel Ciocirlan
    +- [Domain-Driven Design in Scala 3](https://scaladays.org/editions/2025/workshops/ddd-in-scala-3) with David Amancio Gil Méndez
    +- [Effective Programming in Scala with Friendly Agents](https://scaladays.org/editions/2025/workshops/efficient-programming-in-scala-with-friendly-agents) with Tomasz Godzik & Łukasz Biały
    +
    +During a workshop of your choice, you will be following an experienced mentor to develop a project that will help you master a certain aspect of the language. You can use this unique opportunity to ask questions and learn from the mentors, and working in a small group is a great way to make new friends in the Scala community.
    +
    +### ScalaBridge
    +
    +On August 19—just before the opening keynote at Scala Days 2025—we’ll host [ScalaBridge](https://scaladays.org/blog/scalabridge-lausanne/) in Lausanne, a completely free, hands-on workshop designed to welcome newcomers and improve diversity in our community. Led by Scala champions Amy Lee and Monica McGuigan, ScalaBridge brings together experienced mentors from around the world to answer questions, pair-program on real exercises, and help attendees build confidence with Scala. Whether you’re just starting out or looking to deepen your skills, ScalaBridge offers a supportive environment where everyone can learn together. Spaces are limited—register now to secure your spot.
    +
    +### Call for Action
    +
    +#### Buy a ticket
    +Tickets are currently on Early Bird sale price, soon the Standard rate applies (30th May 2025).
    +
    +[Register today](https://register.event-works.com/lausanne/Scaladays2025/e/cp/)
    +
    +Conference tickets give access to all scheduled sessions and daycare, including lunch, coffee breaks, the welcome reception, and the community party.
    +
    +[More info](https://scaladays.org/tickets#tickets)
    +
    +#### Become a sponsor
    +
    +At Scala Days, it’s our goal to showcase as many companies using Scala and within the Scala ecosystem as possible at the conference alongside hundreds of local attendees and top Scala experts from around the world. By becoming a sponsor, you have a unique opportunity to position your brand at the forefront of innovation while supporting a vibrant and inclusive community. With a range of flexible sponsorship options, you’ll have the chance to create lasting connections, showcase your brand, and contribute to the growth of the Scala ecosystem.
    +
    +Get in touch with us to find out more: [info@scaladays.org](mailto:info@scaladays.org)
    +
    +Additionally, if your company is supporting five or more employees to attend the conference, you are eligible for a group discount and becoming a Bronze sponsor!
    +
    +#### Volunteer at Scala Days
    +
    +The Scala Days organizing team is looking for volunteers who are committed, reliable, kind, and enthusiastic to join us in making the whole event memorable for each and every person who walks through our doors.
    +
    +Call for volunteers is open and will close on Wednesday, June 25 at 23:59 GMT.
    +
    +Apply now [https://forms.gle/kThYakstdWTCx99M9](https://forms.gle/kThYakstdWTCx99M9) .
    +
    +The organising team is looking forward to welcoming you to Lausanne this August!
    diff --git a/community/index.md b/community/index.md
    index 43a19bde8..3904f0d37 100644
    --- a/community/index.md
    +++ b/community/index.md
    @@ -149,6 +149,7 @@ when they haven't had a Scala event in the last year.)
     #### North America
     
      - [Atlanta](https://www.meetup.com/atlanta-scala)
    + - [Boston](https://www.meetup.com/boston-area-scala-enthusiasts/)
      - [Dallas](https://www.meetup.com/dallas-scala-enthusiasts)
      - [San Francisco](http://www.meetup.com/SF-Scala/)
      - [SF Bay Area (Bay Area Scala)](https://lu.ma/scala)
    @@ -283,7 +284,6 @@ Staying current:
     - [Scala.js](https://www.scala-js.org) compiles Scala code to JavaScript
     - [Scala Native](https://www.scala-native.org) compiles Scala code to LLVM for
       native execution
    -- [Scala on Android](https://scala-android.org) community site
     
     The [Scala Discord](https://discord.com/invite/scala) has #scala-js, #scala-native, and #scala-android channels.
     
    diff --git a/conduct.md b/conduct.md
    index 02d786d04..5058c75b2 100644
    --- a/conduct.md
    +++ b/conduct.md
    @@ -93,9 +93,9 @@ listed above,
       forwards to general moderators at the Scala Center, or
     * send an e-mail to one of the following general moderators if you want to
       choose who you are talking to:
    -  * Seth Tisue, Akka ([seth.tisue@akka.io](mailto:seth.tisue@akka.io))
    +  * Seth Tisue, Scala Core Team ([seth@tisue.net](mailto:seth@tisue.net))
       * Lukas Rytz, Akka ([lukas.rytz@akka.io](mailto:lukas.rytz@akka.io))
    -  * Sébastien Doeraene, Scala Center ([sebastien.doeraene@epfl.ch](mailto:sebastien.doeraene@epfl.ch))
    +  * Sébastien Doeraene, EPFL ([sebastien.doeraene@epfl.ch](mailto:sebastien.doeraene@epfl.ch))
       * Tomasz Godzik, VirtusLab ([tgodzik@virtuslab.com](mailto:tgodzik@virtuslab.com))
     
     ### Examples of unacceptable behavior
    diff --git a/events/index.md b/events/index.md
    index 68fac8d30..ab68c362c 100644
    --- a/events/index.md
    +++ b/events/index.md
    @@ -14,4 +14,4 @@ paginate:
     
     

    Looking for Past Events?

    -Past events can be found here. +See Past events. diff --git a/gsoc/2014.md b/gsoc/2014.md index bb803fce7..dfad51707 100644 --- a/gsoc/2014.md +++ b/gsoc/2014.md @@ -57,13 +57,13 @@ optimality. In the context of the Java Virtual Machine, [miniboxing][mb1] is a new translation that sidesteps the shortcomings of previous approaches, -while maintaing the optimality of the low level non-uniform code. It +while maintaining the optimality of the low level non-uniform code. It builds on the specialization transformation, which is already included in the [Scala compiler][mb2], but produces too much bytecode to be useful in practical applications. Although miniboxing is developed for the Scala language, the same transformation could also be implemented in [Java][mb3] and in other JVM languages, such as [IBM's X10][mb4], -[JetBrains' Kotlin][mb5] and [RedHat's Ceylon][mb6]. +[JetBrains' Kotlin][mb5] and [Red Hat's Ceylon][mb6]. The miniboxing transformation matches optimal performance in microbenchmarks, but in order to make a significant impact in the diff --git a/gsoc/2015.md b/gsoc/2015.md index f9fd55300..d2dafbf5e 100644 --- a/gsoc/2015.md +++ b/gsoc/2015.md @@ -62,10 +62,10 @@ More info at gsoc2015.nsp@cvogt.org [Slick](https://scala-slick.org/) is a modern database query and access library for Scala. It allows you to work with stored data almost as if you were using Scala collections while at the same time giving you full control over when a database access happens and which data is transferred. You can write your database queries in Scala instead of SQL, thus profiting from the static checking, compile-time safety, and compositionality of Scala. Slick's interface, uses the type-based deep embedding that imposes some limitations on the interface: -* Native language constructs can not be used (e.g., `==` must be replaced with `===`). +* Native language constructs cannot be used (e.g., `==` must be replaced with `===`). * Reported type errors can get nasty. -We propose an new front-end for Slick based on libraries [scala-yinyang](https://github.com/scala-yinyang/scala-yinyang) and [direct-embedding](https://github.com/directembedding/directembedding) that will make Slick queries identical to regular Scala. +We propose a new front-end for Slick based on libraries [scala-yinyang](https://github.com/scala-yinyang/scala-yinyang) and [direct-embedding](https://github.com/directembedding/directembedding) that will make Slick queries identical to regular Scala. By doing this project you will vastly improve the user experience for many Scala users! @@ -121,7 +121,7 @@ More info at gsoc2015.nsp@cvogt.org ### Data migration tool -The goal of this project is creating a tool for managing data migration scripts based on Slick. We have a rough proof of concept implementation you can base work on at https://github.com/cvogt/migrations . The idea is roughly similar to migrations/evolutions in Ruby on Rails or Scala Play 2. You will need to significantly improve (or re-write) the code of the proof of concept implementation to make it production ready, extend it by futher features and explore some exciting ideas like reliable migrations in a development scenario with branches (like git branches). Your ideas are important to this project. Here is how we see it right now: +The goal of this project is creating a tool for managing data migration scripts based on Slick. We have a rough proof of concept implementation you can base work on at https://github.com/cvogt/migrations . The idea is roughly similar to migrations/evolutions in Ruby on Rails or Scala Play 2. You will need to significantly improve (or re-write) the code of the proof of concept implementation to make it production ready, extend it by further features and explore some exciting ideas like reliable migrations in a development scenario with branches (like git branches). Your ideas are important to this project. Here is how we see it right now: #### Existing features (which all require revision) diff --git a/gsoc/2016.md b/gsoc/2016.md index 4a5257571..74c44af8a 100644 --- a/gsoc/2016.md +++ b/gsoc/2016.md @@ -66,7 +66,7 @@ Supervised by [@cvogt](https://github.com/cvogt) and/or [@szeiger](https://githu ### Super-charged for-comprehensions -Super-charged for-comprehensions are an effort to implement an alternative direct-style dyntax for monadic comprehensions in Scala. +Super-charged for-comprehensions are an effort to implement an alternative direct-style syntax for monadic comprehensions in Scala. The goals are reduction in syntax, enabling more control flow expressions, inline Monad value extraction and transformer operations on the Monad context (as in Comprehensive Comprehensions). At the time of writing the project is in heavy flux. Depending on its status there will likely be interesting idea how to take the project further. One likely topic would be exploring type changing comprehensive comprehension transformers, such as groupBy or aggregations. The implementation heavily relies on macros and will require learning how to work with Scala's compiler ASTs and make changes to the AST transformation stages. Work in progress: [https://github.com/cvogt/flow-comprehensions](https://github.com/cvogt/flow-comprehensions) @@ -191,7 +191,7 @@ This project consists in writing a compiler from Java source code to the Intermediate Representation (IR) of Scala.js. The later phases of the existing pipeline would then be reused to compile that IR to JavaScript. -The Java-to-IR compiler should probably reuse an existing an existing Java +The Java-to-IR compiler should probably reuse an existing Java parser and typechecker. From typechecked Java ASTs, it should be relatively straightforward to compile them down to the Scala.js IR (except some corner cases, but not *everything* needs to be supported). @@ -262,9 +262,7 @@ ENSIME is a JVM process that indexes your dependencies and understands your sour using the scala interactive compiler - the same compiler that compiles your code. This brings IDE features to your favourite text editor. -A number of project ideas around ENSIME project are listed on the following page: - -(dead link to ensime.github.io/server/contributing/) +A number of project ideas around ENSIME project are listed on [ensime.github.io/server/contributing/](https://web.archive.org/web/20190724062421/http://ensime.github.io/server/contributing/) Mentored by [@fommil](https://github.com/fommil) and/or [@a_dev_musing](https://twitter.com/a_dev_musing). diff --git a/gsoc/2017.md b/gsoc/2017.md index 900a51074..b850b9408 100644 --- a/gsoc/2017.md +++ b/gsoc/2017.md @@ -69,7 +69,7 @@ existing infrastructure for xml literals. It would probably be a good idea to re-package the existing XML parser in the Scala compiler, and to map interpolated strings to constructors from the existing `scala.xml` library. Some other aspects need to be re-thought. In -particular name-space management should be handled by implicts +particular name-space management should be handled by implicits instead of being hard-coded in the Scala typer. The project is a success if it can support essentially all legal XML @@ -179,7 +179,7 @@ from *[Eugene Burmako](https://github.com/xeno-by)*. ### Dotty Documentation Compiler ### [Dotty](https://dotty.epfl.ch) is the future Scala compiler developed at EPFL. -Getting in to compiler development is usually a very difficult especially when +Getting into compiler development is usually a very difficult especially when it comes to compilers for advanced languages like Scala. Luckily, there are two compilers in the Dotty project. One for the language and @@ -227,7 +227,7 @@ Supervised by [@MasseGuillaume](https://github.com/MasseGuillaume) and/or Scala-Native is a new target for Scala. Instead of compiling to bytecode and running on the JVM, we use llvm to generate native assembly code. We currently do not compile Java to llvm. Therefore we need to reimplement some parts of JDK such as `java.net.*`, `java.io.*`, `java.nio.*` and `java.util.*`. We are already -reimplementing the JDK and we need your help to increase our coverage. It'a unique chance to learn +reimplementing the JDK and we need your help to increase our coverage. It's a unique chance to learn how to implement the java api and write low level Scala code. Supervised by [@MasseGuillaume](https://github.com/MasseGuillaume) @@ -329,7 +329,7 @@ and [clang-format](https://www.youtube.com/watch?v=s7JmdCfI__c) use a similar ap This token-based best-first algorithm has [known issues](https://olafurpg.github.io/scalafmt/#Deeplynestedcode) in scalafmt. The goal of this project would be to explore and implement an alternative line wrapping algorithm for scalafmt. -One promising alternative is the dynamic-programming algorithm employed by rfmt (dead link: httpx://www.researchgate.net/profile/Phillip_Yelland/publication/284724851_A_New_Approach_to_Optimal_Code_Formatting/links/5657f1e608ae4988a7b58558.pdf) +One promising alternative is the dynamic-programming algorithm employed by rfmt (https://www.researchgate.net/profile/Phillip-Yelland/publication/284724851_A_New_Approach_to_Optimal_Code_Formatting/links/5657f1e608ae4988a7b58558/A-New-Approach-to-Optimal-Code-Formatting.pdf) (see [Python implementation](https://github.com/google/rfmt)). Another promising algorithm is Philip Wadler's ["prettier printer"](https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf). The prettier-printer algorithm has been successfully employed by the [prettier](https://github.com/jlongster/prettier) JavaScript formatter. @@ -338,12 +338,12 @@ Supervised by [@olafurpg](https://github.com/olafurpg) ### Implementing a Benchmark Suite for Big Data and Machine Learning Applications -In this project, the aim is to design and implement several larger Big Data and Machine Learning applications, which will be used to regularly test the performance of the Scala compiler releases, and to test the performance of JVMs running these applications. By the time the project is completed, you are expected to implement one larger data-intensive application at least for these frameworks: [Spark](https://spark.apache.org/), [Flink](https://flink.apache.org/), [Storm](https://storm.apache.org/), [Kafka](https://kafka.apache.org/) and [DeepLearning4j](https://github.com/deeplearning4j). Each of the applications will have to be accompanied with a dataset used to run the application. +In this project, the aim is to design and implement several larger Big Data and Machine Learning applications, which will be used to regularly test the performance of the Scala compiler releases, and to test the performance of JVMs running these applications. By the time that the project is completed, you are expected to implement one larger data-intensive application at least for these frameworks: [Spark](https://spark.apache.org/), [Flink](https://flink.apache.org/), [Storm](https://storm.apache.org/), [Kafka](https://kafka.apache.org/) and [DeepLearning4j](https://github.com/deeplearning4j). Each of the applications will have to be accompanied with a dataset used to run the application. This project is an excellent opportunity to familiarize yourself with these modern cutting-edge frameworks for distributed computing and machine learning! -*... Mentors: please insert your projects here. You can use the following template and submit a PR [here](https://github.com/scala/scala-lang). Note that student applications will end on April 3, 2017 ...* +*... Mentors: please insert your projects here. You can use the following template and [submit a PR](https://github.com/scala/scala-lang). Note that student applications will end on April 3, 2017 ...* ### *Project name* diff --git a/gsoc/2018.md b/gsoc/2018.md index f8308a6a0..dd2b929ac 100644 --- a/gsoc/2018.md +++ b/gsoc/2018.md @@ -53,8 +53,8 @@ reviewed. [Mill](https://github.com/lihaoyi/mill) is a new Scala build tool, inspired by [CBT](https://github.com/cvogt/cbt) and [Bazel](https://bazel.build/), which aims to be a full substitute for Scala's venerable [SBT](https://www.scala-sbt.org/). -Building upon the principles laid out [here](https://www.lihaoyi.com/post/SowhatswrongwithSBT.html) -and [here](https://www.lihaoyi.com/post/BuildToolsasPureFunctionalPrograms.html), +Building upon the principles laid out in [So, what's wrong with SBT?](https://www.lihaoyi.com/post/SowhatswrongwithSBT.html) +and [Build Tools as Pure Functional Programs](https://www.lihaoyi.com/post/BuildToolsasPureFunctionalPrograms.html), Mill aims to be dramatically simpler than current build tools both inside and outside the Scala community while still preserving the rich functionality people expect from a build tool. @@ -155,7 +155,7 @@ Supervised by [@jonas](https://github.com/jonas) workflows. In this project, you'll be working on a web-based client controlling test execution with the goal of providing instant and interactive feedback. You'll have to extend the protocols that allow Bloop to communicate with other tools and develop the new client. -[Majestic](https://github.com/Raathigesh/majestic) is a similar project for Javascript tooling. +[Majestic](https://github.com/Raathigesh/majestic) is a similar project for JavaScript tooling. Supervised by [@Duhemm](https://github.com/Duhemm). diff --git a/resources/css/style.scss b/resources/css/style.scss index 69181d5ec..37bbde972 100755 --- a/resources/css/style.scss +++ b/resources/css/style.scss @@ -76,3 +76,5 @@ @import 'components/tab'; @import 'components/tag'; @import 'components/search'; +@import 'components/countdown'; +@import 'components/scala-days-sponsors'; \ No newline at end of file diff --git a/resources/img/func-prog-conf.png b/resources/img/func-prog-conf.png new file mode 100644 index 000000000..6a513fb32 Binary files /dev/null and b/resources/img/func-prog-conf.png differ diff --git a/resources/img/scala-days-sponsors/DFiant-AgnosticBG.png b/resources/img/scala-days-sponsors/DFiant-AgnosticBG.png new file mode 100644 index 000000000..e0b64f941 Binary files /dev/null and b/resources/img/scala-days-sponsors/DFiant-AgnosticBG.png differ diff --git a/resources/img/scala-days-sponsors/DFiant-DarkBG.png b/resources/img/scala-days-sponsors/DFiant-DarkBG.png new file mode 100644 index 000000000..dd2340480 Binary files /dev/null and b/resources/img/scala-days-sponsors/DFiant-DarkBG.png differ diff --git a/resources/img/scala-days-sponsors/DFiant-LightBG.png b/resources/img/scala-days-sponsors/DFiant-LightBG.png new file mode 100644 index 000000000..b1b87923b Binary files /dev/null and b/resources/img/scala-days-sponsors/DFiant-LightBG.png differ diff --git a/resources/img/scala-days-sponsors/MOIA-logo-black.png b/resources/img/scala-days-sponsors/MOIA-logo-black.png new file mode 100644 index 000000000..3b4879bd6 Binary files /dev/null and b/resources/img/scala-days-sponsors/MOIA-logo-black.png differ diff --git a/resources/img/scala-days-sponsors/MOIA-logo-white.png b/resources/img/scala-days-sponsors/MOIA-logo-white.png new file mode 100644 index 000000000..b64442137 Binary files /dev/null and b/resources/img/scala-days-sponsors/MOIA-logo-white.png differ diff --git a/resources/img/scala-days-sponsors/artima.png b/resources/img/scala-days-sponsors/artima.png new file mode 100644 index 000000000..609fecd33 Binary files /dev/null and b/resources/img/scala-days-sponsors/artima.png differ diff --git a/resources/img/scala-days-sponsors/deltek.png b/resources/img/scala-days-sponsors/deltek.png new file mode 100644 index 000000000..7bf24a236 Binary files /dev/null and b/resources/img/scala-days-sponsors/deltek.png differ diff --git a/resources/img/scala-days-sponsors/gradle.png b/resources/img/scala-days-sponsors/gradle.png new file mode 100644 index 000000000..c01df74e1 Binary files /dev/null and b/resources/img/scala-days-sponsors/gradle.png differ diff --git a/resources/img/scala-days-sponsors/hesso.png b/resources/img/scala-days-sponsors/hesso.png new file mode 100644 index 000000000..b5e69b078 Binary files /dev/null and b/resources/img/scala-days-sponsors/hesso.png differ diff --git a/resources/img/scala-days-sponsors/jetbrains.svg b/resources/img/scala-days-sponsors/jetbrains.svg new file mode 100644 index 000000000..cb3a2a0e5 --- /dev/null +++ b/resources/img/scala-days-sponsors/jetbrains.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/kpler.png b/resources/img/scala-days-sponsors/kpler.png new file mode 100644 index 000000000..8acaf523c Binary files /dev/null and b/resources/img/scala-days-sponsors/kpler.png differ diff --git a/resources/img/scala-days-sponsors/les-toises.png b/resources/img/scala-days-sponsors/les-toises.png new file mode 100644 index 000000000..52c1b7c36 Binary files /dev/null and b/resources/img/scala-days-sponsors/les-toises.png differ diff --git a/resources/img/scala-days-sponsors/mc_symbol.svg b/resources/img/scala-days-sponsors/mc_symbol.svg new file mode 100644 index 000000000..d1bf0510b --- /dev/null +++ b/resources/img/scala-days-sponsors/mc_symbol.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/netflix.png b/resources/img/scala-days-sponsors/netflix.png new file mode 100644 index 000000000..dbba2f4f7 Binary files /dev/null and b/resources/img/scala-days-sponsors/netflix.png differ diff --git a/resources/img/scala-days-sponsors/ngrok-coral.svg b/resources/img/scala-days-sponsors/ngrok-coral.svg new file mode 100644 index 000000000..7bc9d6beb --- /dev/null +++ b/resources/img/scala-days-sponsors/ngrok-coral.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/numind.png b/resources/img/scala-days-sponsors/numind.png new file mode 100644 index 000000000..381cc1f8d Binary files /dev/null and b/resources/img/scala-days-sponsors/numind.png differ diff --git a/resources/img/scala-days-sponsors/recorded-future.png b/resources/img/scala-days-sponsors/recorded-future.png new file mode 100644 index 000000000..a9660a126 Binary files /dev/null and b/resources/img/scala-days-sponsors/recorded-future.png differ diff --git a/resources/img/scala-days-sponsors/rock-the-jvm.png b/resources/img/scala-days-sponsors/rock-the-jvm.png new file mode 100644 index 000000000..582d8b731 Binary files /dev/null and b/resources/img/scala-days-sponsors/rock-the-jvm.png differ diff --git a/resources/img/scala-days-sponsors/scalac.svg b/resources/img/scala-days-sponsors/scalac.svg new file mode 100644 index 000000000..747b186c6 --- /dev/null +++ b/resources/img/scala-days-sponsors/scalac.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/scalateams.png b/resources/img/scala-days-sponsors/scalateams.png new file mode 100644 index 000000000..3f6f0a6b7 Binary files /dev/null and b/resources/img/scala-days-sponsors/scalateams.png differ diff --git a/resources/img/scala-days-sponsors/signify.png b/resources/img/scala-days-sponsors/signify.png new file mode 100644 index 000000000..d3dc1b57e Binary files /dev/null and b/resources/img/scala-days-sponsors/signify.png differ diff --git a/resources/img/scala-days-sponsors/siriusxm.png b/resources/img/scala-days-sponsors/siriusxm.png new file mode 100644 index 000000000..97d00489d Binary files /dev/null and b/resources/img/scala-days-sponsors/siriusxm.png differ diff --git a/resources/img/scala-days-sponsors/snowplow-logo.svg b/resources/img/scala-days-sponsors/snowplow-logo.svg new file mode 100644 index 000000000..d19f44707 --- /dev/null +++ b/resources/img/scala-days-sponsors/snowplow-logo.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/snowplow.svg b/resources/img/scala-days-sponsors/snowplow.svg new file mode 100644 index 000000000..a263da7ea --- /dev/null +++ b/resources/img/scala-days-sponsors/snowplow.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/resources/img/scala-days-sponsors/softwaremill-logo.png b/resources/img/scala-days-sponsors/softwaremill-logo.png new file mode 100644 index 000000000..a943f3aec Binary files /dev/null and b/resources/img/scala-days-sponsors/softwaremill-logo.png differ diff --git a/resources/img/scala-days-sponsors/swissborg.svg b/resources/img/scala-days-sponsors/swissborg.svg new file mode 100644 index 000000000..b44575fb9 --- /dev/null +++ b/resources/img/scala-days-sponsors/swissborg.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/img/scala-days-sponsors/tiko.png b/resources/img/scala-days-sponsors/tiko.png new file mode 100644 index 000000000..25a0fa4a3 Binary files /dev/null and b/resources/img/scala-days-sponsors/tiko.png differ diff --git a/resources/img/scala-days-sponsors/virtuslab.png b/resources/img/scala-days-sponsors/virtuslab.png new file mode 100644 index 000000000..de2a48e9d Binary files /dev/null and b/resources/img/scala-days-sponsors/virtuslab.png differ diff --git a/resources/img/scala-days-sponsors/writer.svg b/resources/img/scala-days-sponsors/writer.svg new file mode 100644 index 000000000..257dc440f --- /dev/null +++ b/resources/img/scala-days-sponsors/writer.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/img/scala-days-sponsors/xebia.svg b/resources/img/scala-days-sponsors/xebia.svg new file mode 100644 index 000000000..a87af96b1 --- /dev/null +++ b/resources/img/scala-days-sponsors/xebia.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/resources/img/scala-days-sponsors/youmoni.svg b/resources/img/scala-days-sponsors/youmoni.svg new file mode 100644 index 000000000..596c9c65a --- /dev/null +++ b/resources/img/scala-days-sponsors/youmoni.svg @@ -0,0 +1,88 @@ + + + + + + diff --git a/resources/img/scala-logo-large.svg b/resources/img/scala-logo-large.svg new file mode 100644 index 000000000..249040e4e --- /dev/null +++ b/resources/img/scala-logo-large.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/resources/js/functions.js b/resources/js/functions.js index 21b24315c..d8092a895 100644 --- a/resources/js/functions.js +++ b/resources/js/functions.js @@ -1,6 +1,3 @@ ---- ---- - // Sliding Panel $(document).ready(function() { $('.navigation-panel-button,.navigation-fade-screen,.navigation-panel-close').on('click touchstart', function(e) { @@ -595,3 +592,56 @@ $(document).ready(function() { }); } }); + +// Scala Days 2025 Countdown +$(document).ready(function() { + function countdownCalc(deadline, cityName) { + var now = new Date().getTime(); + var t = deadline - now; + var days = Math.floor(t / (1000 * 60 * 60 * 24)); + var hours = Math.floor((t % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + var minutes = Math.floor((t % (1000 * 60 * 60)) / (1000 * 60)); + var dayEl = document.getElementById(cityName + '-day'); + var hourEl = document.getElementById(cityName + '-hour'); + var minEl = document.getElementById(cityName + '-minute'); + if (dayEl && hourEl && minEl) { + dayEl.innerHTML = days; + hourEl.innerHTML = hours; + minEl.innerHTML = minutes; + } + if (t < 0) { + clearInterval(window.scalaDaysCountdownInterval); + var clock = document.getElementById('countdown-clock-' + cityName); + if (clock) clock.innerHTML = 'Ready!'; + if (dayEl) dayEl.innerHTML = '0'; + if (hourEl) hourEl.innerHTML = '0'; + if (minEl) minEl.innerHTML = '0'; + } + } + var deadline2025 = new Date('Aug 19, 2025 09:00:00').getTime(); + if (document.getElementById('countdown-clock-2025')) { + countdownCalc(deadline2025, '2025'); + window.scalaDaysCountdownInterval = setInterval(function() { + countdownCalc(deadline2025, '2025'); + }, 60000); + } +}); + +// Seamless infinite scroll for Scala Days scaladays-orgs bar (no memory leak, no visible jump) +document.addEventListener("DOMContentLoaded", function() { + var track = document.getElementById('scaladays-orgs-track'); + if (!track) return; + + // Get the width of one set of logos (half the track) + var totalWidth = track.scrollWidth / 2; + var pos = 0; + function animateScaladaysOrgsBar() { + pos -= 1; // px per frame, adjust for speed + if (Math.abs(pos) >= totalWidth) { + pos = 0; + } + track.style.transform = 'translateX(' + pos + 'px)'; + requestAnimationFrame(animateScaladaysOrgsBar); + } + animateScaladaysOrgsBar(); +}); diff --git a/resources/js/tweetMachine-update.js b/resources/js/tweetMachine-update.js index 0addd1b95..1221b8cf4 100755 --- a/resources/js/tweetMachine-update.js +++ b/resources/js/tweetMachine-update.js @@ -37,7 +37,7 @@ user_name: 'scala_lang', // Set your username include_retweets: true, // Set to true or false if you want to include retweets exclude_replies: false, // Set to true or false if you want to exclude replies - rate: 5000, // Rate in ms to refresh the tweets. Any higher than 5000 for search/tweets will get you rate limited + rate: 5000, // Rate in ms to refresh the tweets. Any rate greater than 5000 for search/tweets will get you rate limited limit: 5, // Number of tweets to display at a time autoRefresh: true, // CURRENTLY REQUIRED. Auto-refresh the tweets animateOut: false, // NOT YET SUPPORTED. Animate out old tweets. @@ -124,7 +124,7 @@ }, /* - * Function to parse the text of a tweet and and add links to links, hashtags, and usernames + * Function to parse the text of a tweet and add links to links, hashtags, and usernames */ parseText: function (text) { // Links @@ -317,7 +317,7 @@ // }); //} - // Increment the tweets diplayed + // Increment the tweets displayed tweetsDisplayed++; // Increase page number and wrap tweets if pagination is enabled and we're finishing a page: diff --git a/teach.md b/teach.md index 93ca3c82c..bb00f0adf 100644 --- a/teach.md +++ b/teach.md @@ -170,8 +170,8 @@ following map: {% include teachers-map.html %} -Want to add yourself to the map? Add your name -[here](https://github.com/scala/scala-lang/edit/main/_data/teachers.yml). +Want to add yourself to the map? Add your name to +[teachers.yml](https://github.com/scala/scala-lang/edit/main/_data/teachers.yml). ### Teachers Community @@ -195,7 +195,7 @@ kids do their coding in Scala within the app. Kojo is in the coding curriculum in one state in India. -You can check out examples of Kojo creations [here](https://codex.kogics.net). +You can check out examples of Kojo creations at [The Kojo Code Exchange](https://codex.kogics.net). ### Scala Bridge