Build info | +Build highlights | +||||
---|---|---|---|---|---|
1.9.20-Beta2
+ Released: September 21, 2023 + + |
+
+
For more details, please refer to the changelog or What's new in Kotlin 1.9.20-Beta2. + |
+ ||||
Build info | Build highlights | diff --git a/docs/topics/equality.md b/docs/topics/equality.md index 46f33aaf699..d95700b2d2b 100644 --- a/docs/topics/equality.md +++ b/docs/topics/equality.md @@ -41,4 +41,10 @@ When an equality check operands are statically known to be `Float` or `Double` ( Otherwise, structural equality is used, which disagrees with the standard so that `NaN` is equal to itself, `NaN` is considered greater than any other element, including `POSITIVE_INFINITY`, and `-0.0` is not equal to `0.0`. -See: [Floating-point numbers comparison](numbers.md#floating-point-numbers-comparison). +For more information, see [Floating-point numbers comparison](numbers.md#floating-point-numbers-comparison). + +## Array equality + +To compare whether two arrays have the same elements in the same order, use [`contentEquals()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/content-equals.html). + +For more information, see [Compare arrays](arrays.md#compare-arrays). \ No newline at end of file diff --git a/docs/topics/lambdas.md b/docs/topics/lambdas.md index 8580d6458c3..3f3d1f21671 100644 --- a/docs/topics/lambdas.md +++ b/docs/topics/lambdas.md @@ -1,4 +1,4 @@ -[//]: # (title: High-order functions and lambdas) +[//]: # (title: Higher-order functions and lambdas) Kotlin functions are [first-class](https://en.wikipedia.org/wiki/First-class_function), which means they can be stored in variables and data structures, and can be passed as arguments to and returned from other diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-create-first-app.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-create-first-app.md index bef37210716..3d02bac7df9 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-create-first-app.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-create-first-app.md @@ -2,26 +2,26 @@
Kotlin 1.9.0 and earlier (a standard setup) | -Kotlin 1.9.20-Beta | +Kotlin %kotlinEapVersion% |
@@ -221,6 +221,7 @@ For more details and setup instructions, see the [Gradle documentation](https://
* [Custom memory allocator enabled by default](#custom-memory-allocator-enabled-by-default)
* [Performance improvements for garbage collector](#performance-improvements-for-the-garbage-collector)
+* [Incremental compilation of klib artifacts](#incremental-compilation-of-klib-artifacts)
### Custom memory allocator enabled by default
@@ -286,6 +287,37 @@ allocator nor the `mimalloc` memory allocator allocates separate storage for eac
In Kotlin %kotlinEapVersion%, the GC tracks areas instead of individual objects. This speeds up the allocation of small objects by reducing
the number of tasks performed on each allocation and, therefore, helps to minimize the garbage collector's memory usage.
+### Incremental compilation of klib artifacts
+
+> This feature is [Experimental](components-stability.md#stability-levels-explained).
+> It may be dropped or changed at any time. Opt-in is required (see details below).
+> Use it only for evaluation purposes. We would appreciate your feedback on it in [YouTrack](https://kotl.in/issue).
+>
+{type="warning"}
+
+Kotlin %kotlinEapVersion% introduces a new compilation time optimization for Kotlin/Native.
+The compilation of `klib` artifacts into native code is now partially incremental.
+
+When compiling Kotlin source code into native binary in debug mode, the compilation goes through two stages:
+
+1. Source code is compiled into `klib` artifacts.
+2. `klib` artifacts, along with dependencies, are compiled into a binary.
+
+To optimize the compilation time in the second stage, the team has already implemented compiler caches for dependencies.
+They are compiled into native code only once, and the result is reused every time a binary is compiled.
+But `klib` artifacts built from project sources were always fully recompiled into native code at every project change.
+
+With new incremental compilation, if the project module change causes only a partial recompilation of source code into
+`klib` artifacts, just a part of the `klib` is further recompiled into a binary.
+
+To enable incremental compilation, add the following option to your `gradle.properties` file:
+
+```none
+kotlin.incremental.native=true
+```
+
+If you face any issues, report such cases to [YouTrack](https://kotl.in/issue).
+
## Kotlin/Wasm
* [New `wasm-wasi` target, and the renaming of the `wasm` target to `wasm-js`](#new-wasm-wasi-target-and-the-renaming-of-the-wasm-target-to-wasm-js)
diff --git a/docs/topics/whatsnew13.md b/docs/topics/whatsnew13.md
index 1c3d528f8d3..f5b3ca93c88 100644
--- a/docs/topics/whatsnew13.md
+++ b/docs/topics/whatsnew13.md
@@ -74,7 +74,7 @@ fun foo(s: String?) {
}
```
-* Improving the variable initialization analysis in the presence of high-order functions:
+* Improving the variable initialization analysis in the presence of higher-order functions:
```kotlin
fun synchronize(lock: Any?, block: () -> Unit) {
diff --git a/docs/topics/whatsnew19.md b/docs/topics/whatsnew19.md
index 7d395bd3194..4150cbcf17b 100644
--- a/docs/topics/whatsnew19.md
+++ b/docs/topics/whatsnew19.md
@@ -60,8 +60,8 @@ If you encounter any issues when using kapt with the K2 compiler, please report
### Try the K2 compiler in your project
-Starting with 1.9.0 and until the release of Kotlin 2.0, you can easily test the K2 compiler with the `kotlin.experimental.tryK2=true`
-Gradle property. You can also run the following command:
+Starting with 1.9.0 and until the release of Kotlin 2.0, you can easily test the K2 compiler by adding the `kotlin.experimental.tryK2=true`
+Gradle property to your `gradle.properties` file. You can also run the following command:
```shell
./gradlew assemble -Pkotlin.experimental.tryK2=true
diff --git a/docs/v.list b/docs/v.list
index 81a4e0f5234..9c833b80c06 100644
--- a/docs/v.list
+++ b/docs/v.list
@@ -6,13 +6,13 @@
-
+
-
+
diff --git a/package.json b/package.json
index e9905ffd351..7fde845fc1e 100644
--- a/package.json
+++ b/package.json
@@ -59,6 +59,7 @@
"query-string": "3.0.0",
"react": "17.0.2",
"react-dom": "17.0.2",
+ "react-error-boundary": "4.0.11",
"react-outside-click-handler": "1.3.0",
"react-remove-scroll-bar": "2.3.4",
"react-scrollbar-size": "5.0.0",
diff --git a/static/js/ktl-component/teach/components/teach-map/teach-map.jsx b/static/js/ktl-component/teach/components/teach-map/teach-map.jsx
index f9cee0c37c1..3a17f02851a 100644
--- a/static/js/ktl-component/teach/components/teach-map/teach-map.jsx
+++ b/static/js/ktl-component/teach/components/teach-map/teach-map.jsx
@@ -3,6 +3,7 @@ import GoogleMapReact from 'google-map-react';
import {TeachMapMarker} from './teach-map-marker.jsx';
import './teach-map.scss';
import {settings} from "../../../../util/map-settings";
+import { ErrorBoundary } from "react-error-boundary";
export const TeachMap = ({className}) => {
const [universities, setUniversities] = useState([]);
@@ -29,26 +30,28 @@ export const TeachMap = ({className}) => {
}, []);
return (
-
- }>
+
+
+
+
+
);
}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 6b90f68ca1f..b70f306e055 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1121,6 +1121,13 @@
dependencies:
regenerator-runtime "^0.12.0"
+"@babel/runtime@^7.12.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
+ integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/runtime@^7.14.0", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200"
@@ -6906,6 +6913,13 @@ react-dom@17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
+react-error-boundary@4.0.11:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz#36bf44de7746714725a814630282fee83a7c9a1c"
+ integrity sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+
react-event-listener@^0.6.0:
version "0.6.6"
resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.6.tgz#758f7b991cad9086dd39fd29fad72127e1d8962a"
@@ -7140,6 +7154,11 @@ regenerator-runtime@^0.13.11:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
+
regenerator-transform@^0.15.1:
version "0.15.1"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
|