From b93edb050bd6dd79edb6273953abb74b93caa8c7 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 4 May 2023 01:30:20 +0200 Subject: [PATCH 1/7] Force pending saves if client closes abruptly (#6514) Force pending saves when JsonSession is terminated for the client. Potentially closes #6395. --- .../text/CollaborativeBuffer.scala | 18 ++- .../websocket/json/BaseServerTest.scala | 8 ++ .../websocket/json/TextOperationsTest.scala | 128 +++++++++++++++++- .../jsonrpc/test/JsonRpcServerTestKit.scala | 4 + .../LanguageServerController.scala | 5 + 5 files changed, 159 insertions(+), 4 deletions(-) diff --git a/engine/language-server/src/main/scala/org/enso/languageserver/text/CollaborativeBuffer.scala b/engine/language-server/src/main/scala/org/enso/languageserver/text/CollaborativeBuffer.scala index c9510c0d5293..24f3056e6eac 100644 --- a/engine/language-server/src/main/scala/org/enso/languageserver/text/CollaborativeBuffer.scala +++ b/engine/language-server/src/main/scala/org/enso/languageserver/text/CollaborativeBuffer.scala @@ -136,7 +136,23 @@ class CollaborativeBuffer( case JsonSessionTerminated(client) => if (clients.contains(client.clientId)) { - removeClient(buffer, clients, lockHolder, client.clientId, autoSave) + autoSave.get(client.clientId) match { + case Some((contentVersion, cancellable)) => + cancellable.cancel() + saveFile( + buffer, + clients, + lockHolder, + client.clientId, + contentVersion, + autoSave, + isAutoSave = true, + onClose = Some(client.clientId), + reportProgress = Some(sender()) + ) + case None => + removeClient(buffer, clients, lockHolder, client.clientId, autoSave) + } } case CloseFile(clientId, _) => diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala index e34496602e46..a7fef1577b8c 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/BaseServerTest.scala @@ -362,6 +362,14 @@ class BaseServerTest client } + def getInitialisedWsClientAndId( + debug: Boolean = false + ): (WsTestClient, ClientId) = { + val client = new WsTestClient(address, debugMessages = debug) + val uuid = initSession(client) + (client, uuid) + } + private def initSession(client: WsTestClient): UUID = { initPackage val clientId = UUID.randomUUID() diff --git a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala index 8169e5924757..50c35949babd 100644 --- a/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala +++ b/engine/language-server/src/test/scala/org/enso/languageserver/websocket/json/TextOperationsTest.scala @@ -2,8 +2,9 @@ package org.enso.languageserver.websocket.json import akka.testkit.TestProbe import io.circe.literal._ -import org.enso.languageserver.event.BufferClosed +import org.enso.languageserver.event.{BufferClosed, JsonSessionTerminated} import org.enso.languageserver.filemanager.Path +import org.enso.languageserver.session.JsonSession import org.enso.testkit.FlakySpec import scala.concurrent.duration._ @@ -2601,8 +2602,6 @@ class TextOperationsTest extends BaseServerTest with FlakySpec { "result": null } """) - Thread.sleep(5.seconds.toMillis) - // Should return the original contents of the file client2.send(json""" { "jsonrpc": "2.0", "method": "file/read", @@ -2621,6 +2620,129 @@ class TextOperationsTest extends BaseServerTest with FlakySpec { "result": { "contents": "bar123456789foo" } } """) + + } + + "be triggered when a client closed session abruptly" in { + this.timingsConfig.withAutoSave(10.seconds) + + val (client1, client1Id) = getInitialisedWsClientAndId() + val client2 = getInitialisedWsClient() + client1.send(json""" + { "jsonrpc": "2.0", + "method": "file/write", + "id": 0, + "params": { + "path": { + "rootId": $testContentRootId, + "segments": [ "foo.txt" ] + }, + "contents": "123456789" + } + } + """) + client1.expectJson(json""" + { "jsonrpc": "2.0", + "id": 0, + "result": null + } + """) + client1.send(json""" + { "jsonrpc": "2.0", + "method": "text/openFile", + "id": 1, + "params": { + "path": { + "rootId": $testContentRootId, + "segments": [ "foo.txt" ] + } + } + } + """) + client1.expectJson(json""" + { + "jsonrpc" : "2.0", + "id" : 1, + "result" : { + "writeCapability" : { + "method" : "text/canEdit", + "registerOptions" : { + "path" : { + "rootId" : $testContentRootId, + "segments" : [ + "foo.txt" + ] + } + } + }, + "content" : "123456789", + "currentVersion" : "5795c3d628fd638c9835a4c79a55809f265068c88729a1a3fcdf8522" + } + } + """) + + client1.send(json""" + { "jsonrpc": "2.0", + "method": "text/applyEdit", + "id": 2, + "params": { + "edit": { + "path": { + "rootId": $testContentRootId, + "segments": [ "foo.txt" ] + }, + "oldVersion": "5795c3d628fd638c9835a4c79a55809f265068c88729a1a3fcdf8522", + "newVersion": "ebe55342f9c8b86857402797dd723fb4a2174e0b56d6ace0a6929ec3", + "edits": [ + { + "range": { + "start": { "line": 0, "character": 0 }, + "end": { "line": 0, "character": 0 } + }, + "text": "bar" + }, + { + "range": { + "start": { "line": 0, "character": 12 }, + "end": { "line": 0, "character": 12 } + }, + "text": "foo" + } + ] + } + } + } + """) + client1.expectJson(json""" + { "jsonrpc": "2.0", + "id": 2, + "result": null + } + """) + + // Simulate client1 closing + system.eventStream.publish( + JsonSessionTerminated(JsonSession(client1Id, client1.actorRef())) + ) + client2.send(json""" + { "jsonrpc": "2.0", + "method": "file/read", + "id": 4, + "params": { + "path": { + "rootId": $testContentRootId, + "segments": [ "foo.txt" ] + } + } + } + """) + client2.expectJson(json""" + { "jsonrpc": "2.0", + "id": 4, + "result": { "contents": "bar123456789foo" } + } + """) + } } diff --git a/lib/scala/json-rpc-server-test/src/main/scala/org/enso/jsonrpc/test/JsonRpcServerTestKit.scala b/lib/scala/json-rpc-server-test/src/main/scala/org/enso/jsonrpc/test/JsonRpcServerTestKit.scala index a700a080c1be..e26dc4a948f9 100644 --- a/lib/scala/json-rpc-server-test/src/main/scala/org/enso/jsonrpc/test/JsonRpcServerTestKit.scala +++ b/lib/scala/json-rpc-server-test/src/main/scala/org/enso/jsonrpc/test/JsonRpcServerTestKit.scala @@ -140,6 +140,10 @@ abstract class JsonRpcServerTestKit } def expectNoMessage(): Unit = outActor.expectNoMessage() + + def actorRef(): ActorRef = { + outActor.ref + } } } diff --git a/lib/scala/project-manager/src/main/scala/org/enso/projectmanager/infrastructure/languageserver/LanguageServerController.scala b/lib/scala/project-manager/src/main/scala/org/enso/projectmanager/infrastructure/languageserver/LanguageServerController.scala index 0c58130a6cc9..283066070324 100644 --- a/lib/scala/project-manager/src/main/scala/org/enso/projectmanager/infrastructure/languageserver/LanguageServerController.scala +++ b/lib/scala/project-manager/src/main/scala/org/enso/projectmanager/infrastructure/languageserver/LanguageServerController.scala @@ -292,6 +292,11 @@ class LanguageServerController( maybeRequester.foreach(_ ! ServerShutdownTimedOut) stop() + case ClientDisconnected(clientId) => + logger.debug( + s"Received client ($clientId) disconnect request during shutdown. Ignoring." + ) + case m: StartServer => // This instance has not yet been shut down. Retry context.parent.forward(Retry(m)) From 7885145b6e3caf42b343950ae23646dcd789bb27 Mon Sep 17 00:00:00 2001 From: somebody1234 Date: Thu, 4 May 2023 14:00:42 +1000 Subject: [PATCH 2/7] Run typecheck and eslint on `./run lint` (#6314) --- app/ide-desktop/lib/client/src/file-associations.ts | 5 +++-- build/cli/src/lib.rs | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/ide-desktop/lib/client/src/file-associations.ts b/app/ide-desktop/lib/client/src/file-associations.ts index 02dc0bfbfd3c..4a6e1c67c330 100644 --- a/app/ide-desktop/lib/client/src/file-associations.ts +++ b/app/ide-desktop/lib/client/src/file-associations.ts @@ -104,7 +104,7 @@ export function isFileOpenable(path: string): boolean { * we manually start a new instance of the application and pass the file path to it (using the * Windows-style command). */ -export function onFileOpened(event: Event, path: string): string | void { +export function onFileOpened(event: Event, path: string): string | null { logger.log(`Received 'open-file' event for path '${path}'.`) if (isFileOpenable(path)) { logger.log(`The file '${path}' is openable.`) @@ -114,7 +114,6 @@ export function onFileOpened(event: Event, path: string): string | void { if (!electron.app.isReady() && CLIENT_ARGUMENTS.length === 0) { event.preventDefault() logger.log(`Opening file '${path}'.`) - // eslint-disable-next-line no-restricted-syntax return handleOpenFile(path) } else { // We need to start another copy of the application, as the first one is already running. @@ -128,9 +127,11 @@ export function onFileOpened(event: Event, path: string): string | void { }) // Prevent parent (this) process from waiting for the child to exit. child.unref() + return null } } else { logger.log(`The file '${path}' is not openable, ignoring the 'open-file' event.`) + return null } } diff --git a/build/cli/src/lib.rs b/build/cli/src/lib.rs index 7ab115122e0f..c6fc4f497cc7 100644 --- a/build/cli/src/lib.rs +++ b/build/cli/src/lib.rs @@ -86,6 +86,8 @@ use ide_ci::programs::git; use ide_ci::programs::git::clean; use ide_ci::programs::rustc; use ide_ci::programs::Cargo; +use ide_ci::programs::Npm; +use ide_ci::programs::Npx; use std::time::Duration; use tempfile::tempdir; use tokio::process::Child; @@ -835,6 +837,10 @@ pub async fn main_internal(config: Option) -> Result .await?; prettier::check(&ctx.repo_root).await?; + let js_modules_root = ctx.repo_root.join("app/ide-desktop"); + Npm.cmd()?.current_dir(&js_modules_root).args(["install"]).run_ok().await?; + Npm.cmd()?.current_dir(&js_modules_root).args(["run", "typecheck"]).run_ok().await?; + Npx.cmd()?.current_dir(&js_modules_root).args(["eslint", "."]).run_ok().await?; } Target::Fmt => { let prettier = prettier::write(&ctx.repo_root); From cbda170126d530cb0a0331729bcce76e5971ccc4 Mon Sep 17 00:00:00 2001 From: "Stijn (\"stain\") Seghers" Date: Thu, 4 May 2023 09:34:51 +0200 Subject: [PATCH 3/7] Delete unused websocket dependency (#6535) This unused crate is super old and has some old dependencies. Its old dependencies of `parking_lot` or `parking_lot_core` might be causing a wasm compilation bug we've been having (#6091), but it's not clear. --- Cargo.lock | 969 ++++++++++----------------------------------- app/gui/Cargo.toml | 3 - 2 files changed, 200 insertions(+), 772 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c047daa3e1e7..ad4c0a5a1be2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,7 +35,7 @@ checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ "getrandom 0.2.8", "once_cell", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -211,11 +211,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", - "autocfg 1.1.0", + "autocfg", "concurrent-queue", "futures-lite", "libc", - "log 0.4.17", + "log", "parking", "polling", "slab", @@ -244,14 +244,14 @@ dependencies = [ "async-global-executor", "async-io", "async-lock", - "crossbeam-utils 0.8.14", + "crossbeam-utils", "futures-channel", "futures-core", "futures-io", "futures-lite", "gloo-timers", "kv-log-macro", - "log 0.4.17", + "log", "memchr", "once_cell", "pin-project-lite", @@ -318,16 +318,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", -] - -[[package]] -name = "autocfg" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" -dependencies = [ - "autocfg 1.1.0", + "winapi", ] [[package]] @@ -352,10 +343,10 @@ dependencies = [ "aws-smithy-json", "aws-smithy-types", "aws-types", - "bytes 1.1.0", + "bytes", "hex", "http", - "hyper 0.14.23", + "hyper", "ring", "time 0.3.17", "tokio", @@ -387,11 +378,11 @@ dependencies = [ "aws-smithy-http", "aws-smithy-types", "aws-types", - "bytes 1.1.0", + "bytes", "http", "http-body", "lazy_static", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project-lite", "tracing", ] @@ -412,7 +403,7 @@ dependencies = [ "aws-smithy-json", "aws-smithy-types", "aws-types", - "bytes 1.1.0", + "bytes", "http", "tokio-stream", "tower", @@ -437,7 +428,7 @@ dependencies = [ "aws-smithy-types", "aws-smithy-xml", "aws-types", - "bytes 1.1.0", + "bytes", "bytes-utils", "http", "http-body", @@ -462,7 +453,7 @@ dependencies = [ "aws-smithy-json", "aws-smithy-types", "aws-types", - "bytes 1.1.0", + "bytes", "http", "tokio-stream", "tower", @@ -485,7 +476,7 @@ dependencies = [ "aws-smithy-types", "aws-smithy-xml", "aws-types", - "bytes 1.1.0", + "bytes", "http", "tower", ] @@ -512,12 +503,12 @@ checksum = "8d33790cecae42b999d197074c8a19e9b96b9e346284a6f93989e7489c9fa0f5" dependencies = [ "aws-smithy-eventstream", "aws-smithy-http", - "bytes 1.1.0", + "bytes", "form_urlencoded", "hex", "http", "once_cell", - "percent-encoding 2.1.0", + "percent-encoding", "regex", "ring", "time 0.3.17", @@ -544,7 +535,7 @@ checksum = "4b402da39bc5aae618b70a9b8d828acad21fe4a3a73b82c0205b89db55d71ce8" dependencies = [ "aws-smithy-http", "aws-smithy-types", - "bytes 1.1.0", + "bytes", "crc32c", "crc32fast", "hex", @@ -567,11 +558,11 @@ dependencies = [ "aws-smithy-http", "aws-smithy-http-tower", "aws-smithy-types", - "bytes 1.1.0", + "bytes", "fastrand", "http", "http-body", - "hyper 0.14.23", + "hyper", "hyper-rustls 0.22.1", "lazy_static", "pin-project-lite", @@ -587,7 +578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98c2a7b9490fd2bc7af3a1c486ae921102d7234d1fa5e7d91039068e7af48a01" dependencies = [ "aws-smithy-types", - "bytes 1.1.0", + "bytes", "crc32fast", ] @@ -599,14 +590,14 @@ checksum = "014a0ef5c4508fc2f6a9d3925c214725af19f020ea388db48e20196cc4cc9d6d" dependencies = [ "aws-smithy-eventstream", "aws-smithy-types", - "bytes 1.1.0", + "bytes", "bytes-utils", "futures-core", "http", "http-body", - "hyper 0.14.23", + "hyper", "once_cell", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project-lite", "tokio", "tokio-util", @@ -620,7 +611,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deecb478dc3cc40203e0e97ac0fb92947e0719754bbafd0026bdc49318e2fd03" dependencies = [ "aws-smithy-http", - "bytes 1.1.0", + "bytes", "http", "http-body", "pin-project-lite", @@ -693,16 +684,16 @@ dependencies = [ "async-trait", "axum-core", "bitflags", - "bytes 1.1.0", + "bytes", "futures-util", "http", "http-body", - "hyper 0.14.23", + "hyper", "itoa 1.0.5", "matchit", "memchr", - "mime 0.3.16", - "percent-encoding 2.1.0", + "mime", + "percent-encoding", "pin-project-lite", "rustversion", "serde", @@ -720,11 +711,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cae3e661676ffbacb30f1a824089a8c9150e71017f7e1e38f2aa32009188d34" dependencies = [ "async-trait", - "bytes 1.1.0", + "bytes", "futures-util", "http", "http-body", - "mime 0.3.16", + "mime", "rustversion", "tower-layer", "tower-service", @@ -745,25 +736,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -dependencies = [ - "byteorder", - "safemem", -] - -[[package]] -name = "base64" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" -dependencies = [ - "byteorder", -] - [[package]] name = "base64" version = "0.13.1" @@ -945,16 +917,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.1.0" @@ -967,7 +929,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9" dependencies = [ - "bytes 1.1.0", + "bytes", "either", ] @@ -981,7 +943,7 @@ dependencies = [ "async_once", "cached_proc_macro", "cached_proc_macro_types", - "futures 0.3.26", + "futures", "hashbrown", "instant", "lazy_static", @@ -1051,7 +1013,7 @@ dependencies = [ "serde", "time 0.1.45", "wasm-bindgen", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1105,15 +1067,6 @@ dependencies = [ "os_str_bytes", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - [[package]] name = "code-builder" version = "0.1.0" @@ -1150,7 +1103,7 @@ version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ - "bytes 1.1.0", + "bytes", "memchr", ] @@ -1160,7 +1113,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" dependencies = [ - "crossbeam-utils 0.8.14", + "crossbeam-utils", ] [[package]] @@ -1205,8 +1158,8 @@ checksum = "22a3a81dfaf6b66bce5d159eddae701e3a002f194d378cbf7be5f053c281d9be" dependencies = [ "console-api", "crossbeam-channel", - "crossbeam-utils 0.8.14", - "futures 0.3.26", + "crossbeam-utils", + "futures", "hdrhistogram", "humantime 2.1.0", "prost-types", @@ -1362,7 +1315,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.14", + "crossbeam-utils", ] [[package]] @@ -1373,7 +1326,7 @@ checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", - "crossbeam-utils 0.8.14", + "crossbeam-utils", ] [[package]] @@ -1382,24 +1335,13 @@ version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 1.0.0", - "crossbeam-utils 0.8.14", + "crossbeam-utils", "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.1.0", - "cfg-if 0.1.10", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.8.14" @@ -1705,7 +1647,7 @@ dependencies = [ "serde", "serde_json", "thiserror", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1780,7 +1722,7 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1840,7 +1782,7 @@ dependencies = [ name = "engine-protocol" version = "0.1.0" dependencies = [ - "bytes 1.1.0", + "bytes", "chrono", "enso-build-utilities", "enso-data-structures", @@ -1851,7 +1793,7 @@ dependencies = [ "failure", "flatbuffers", "flatc-rust", - "futures 0.3.26", + "futures", "hex", "json-rpc", "mockall", @@ -1893,7 +1835,7 @@ dependencies = [ "aws-sdk-s3", "base64 0.13.1", "byte-unit", - "bytes 1.1.0", + "bytes", "cached", "cfg-if 1.0.0", "chrono", @@ -1909,7 +1851,7 @@ dependencies = [ "flate2", "flume", "fs_extra", - "futures 0.3.26", + "futures", "futures-util", "glob", "handlebars", @@ -1920,7 +1862,7 @@ dependencies = [ "indicatif", "itertools", "lazy_static", - "mime 0.3.16", + "mime", "new_mime_guess", "nix", "octocrab", @@ -1949,8 +1891,8 @@ dependencies = [ "toml", "tracing", "tracing-subscriber", - "unicase 2.6.0", - "url 2.3.0", + "unicase", + "url", "uuid 1.2.2", "walkdir", "which", @@ -1964,7 +1906,7 @@ version = "0.1.0" dependencies = [ "anyhow", "fn-error-context", - "futures 0.3.26", + "futures", "futures-util", "serde", "serde_json", @@ -1995,7 +1937,7 @@ dependencies = [ "enso-build", "enso-build-base", "enso-formatter", - "futures 0.3.26", + "futures", "futures-util", "glob", "humantime 2.1.0", @@ -2097,7 +2039,7 @@ name = "enso-debug-api" version = "0.1.0" dependencies = [ "derivative", - "futures 0.3.26", + "futures", "js-sys", "wasm-bindgen", "web-sys", @@ -2136,7 +2078,7 @@ dependencies = [ "enso-prelude", "enso-profiler", "ensogl-core", - "futures 0.3.26", + "futures", ] [[package]] @@ -2160,7 +2102,7 @@ dependencies = [ "enso-web", "keyboard-types", "nalgebra", - "percent-encoding 2.1.0", + "percent-encoding", "unicode-segmentation", "wasm-bindgen", "web-sys", @@ -2210,7 +2152,7 @@ dependencies = [ "ensogl-text-msdf", "failure", "flo_stream", - "futures 0.3.26", + "futures", "fuzzly", "ide-view", "itertools", @@ -2231,7 +2173,6 @@ dependencies = [ "wasm-bindgen-futures", "wasm-bindgen-test", "web-sys", - "websocket", ] [[package]] @@ -2317,7 +2258,7 @@ dependencies = [ "enso-executor", "enso-prelude", "flo_stream", - "futures 0.3.26", + "futures", ] [[package]] @@ -2400,7 +2341,7 @@ dependencies = [ "enso-shapely", "enso-web", "failure", - "futures 0.3.26", + "futures", "gen-iter", "itertools", "lazy_static", @@ -2420,7 +2361,7 @@ version = "0.1.0" dependencies = [ "enso-profiler-macros", "enso-web", - "futures 0.3.26", + "futures", "serde", "serde_json", "wasm-bindgen", @@ -2433,7 +2374,7 @@ dependencies = [ "derivative", "enso-prelude", "enso-profiler", - "futures 0.3.26", + "futures", "serde", "serde_json", ] @@ -2443,7 +2384,7 @@ name = "enso-profiler-demo-data" version = "0.1.0" dependencies = [ "enso-profiler", - "futures 0.3.26", + "futures", ] [[package]] @@ -2465,7 +2406,7 @@ version = "0.1.0" dependencies = [ "enso-profiler", "enso-profiler-data", - "futures 0.3.26", + "futures", ] [[package]] @@ -2558,7 +2499,7 @@ dependencies = [ "enso-text", "failure", "flo_stream", - "futures 0.3.26", + "futures", "parser", "span-tree", "wasm-bindgen-test", @@ -2668,7 +2609,7 @@ dependencies = [ "ensogl-text-embedded-fonts", "enum_dispatch", "failure", - "futures 0.3.26", + "futures", "itertools", "js-sys", "nalgebra", @@ -2935,10 +2876,10 @@ dependencies = [ "ensogl-text", "ensogl-text-msdf", "ensogl-tooltip", - "futures 0.3.26", + "futures", "qstring", "serde", - "url 2.3.0", + "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2960,7 +2901,7 @@ dependencies = [ "ensogl-text", "ensogl-text-msdf", "ensogl-tooltip", - "futures 0.3.26", + "futures", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3145,7 +3086,7 @@ dependencies = [ "enso-bitmap", "enso-prelude", "fs_extra", - "futures 0.3.26", + "futures", "ide-ci", "manifest-dir-macros", "regex", @@ -3287,7 +3228,7 @@ dependencies = [ "ensogl-text-embedded-fonts", "ensogl-text-font-family", "failure", - "futures 0.3.26", + "futures", "ide-ci", "js-sys", "nalgebra", @@ -3336,7 +3277,7 @@ checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", "humantime 1.3.0", - "log 0.4.17", + "log", "regex", "termcolor", ] @@ -3349,7 +3290,7 @@ checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ "errno-dragonfly", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3390,12 +3331,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fastrand" version = "1.8.0" @@ -3413,7 +3348,7 @@ checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "windows-sys", ] @@ -3432,7 +3367,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdce2ac68e3bccc405e0255e9b56d7841c06f6c7d36a8aa8b2966fbb3995bd9a" dependencies = [ - "log 0.4.17", + "log", ] [[package]] @@ -3451,7 +3386,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b02e0d3667b27514149c1ac9b372d700f3e6df4bbaf6b7c5df12915de2996049" dependencies = [ - "futures 0.3.26", + "futures", "smallvec 1.10.0", ] @@ -3522,7 +3457,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", - "percent-encoding 2.1.0", + "percent-encoding", ] [[package]] @@ -3552,34 +3487,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[package]] -name = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - [[package]] name = "futures" version = "0.3.26" @@ -3719,7 +3626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -3843,7 +3750,7 @@ version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -3868,7 +3775,7 @@ version = "4.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" dependencies = [ - "log 0.4.17", + "log", "pest", "pest_derive", "serde", @@ -3906,11 +3813,11 @@ checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", "bitflags", - "bytes 1.1.0", + "bytes", "headers-core", "http", "httpdate", - "mime 0.3.16", + "mime", "sha1 0.10.5", ] @@ -3979,7 +3886,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "itoa 1.0.5", ] @@ -3990,7 +3897,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.1.0", + "bytes", "http", "pin-project-lite", ] @@ -4029,7 +3936,7 @@ dependencies = [ "serde_json", "serde_qs", "serde_urlencoded", - "url 2.3.0", + "url", ] [[package]] @@ -4059,32 +3966,13 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.10.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" -dependencies = [ - "base64 0.9.3", - "httparse", - "language-tags 0.2.2", - "log 0.3.9", - "mime 0.2.6", - "num_cpus", - "time 0.1.45", - "traitobject", - "typeable", - "unicase 1.4.2", - "url 1.7.2", -] - [[package]] name = "hyper" version = "0.14.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -4110,8 +3998,8 @@ checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ "ct-logs", "futures-util", - "hyper 0.14.23", - "log 0.4.17", + "hyper", + "log", "rustls 0.19.1", "rustls-native-certs", "tokio", @@ -4126,7 +4014,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", - "hyper 0.14.23", + "hyper", "rustls 0.20.8", "tokio", "tokio-rustls 0.23.4", @@ -4138,7 +4026,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.23", + "hyper", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -4150,8 +4038,8 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.1.0", - "hyper 0.14.23", + "bytes", + "hyper", "native-tls", "tokio", "tokio-native-tls", @@ -4164,13 +4052,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5617e92fc2f2501c3e2bc6ce547cad841adba2bae5b921c7e52510beca6d084c" dependencies = [ "base64 0.13.1", - "bytes 1.1.0", + "bytes", "http", "httpdate", - "language-tags 0.3.2", - "mime 0.3.16", - "percent-encoding 2.1.0", - "unicase 2.6.0", + "language-tags", + "mime", + "percent-encoding", + "unicase", ] [[package]] @@ -4184,7 +4072,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4206,7 +4094,7 @@ dependencies = [ "async-trait", "bincode 1.3.3", "byte-unit", - "bytes 1.1.0", + "bytes", "cached", "cfg-if 1.0.0", "chrono", @@ -4223,7 +4111,7 @@ dependencies = [ "flate2", "flume", "fs_extra", - "futures 0.3.26", + "futures", "futures-util", "glob", "graphql_client", @@ -4234,8 +4122,8 @@ dependencies = [ "indicatif", "itertools", "lazy_static", - "log 0.4.17", - "mime 0.3.16", + "log", + "mime", "multimap", "new_mime_guess", "nix", @@ -4270,8 +4158,8 @@ dependencies = [ "tokio-util", "tracing", "tracing-subscriber", - "unicase 2.6.0", - "url 2.3.0", + "unicase", + "url", "uuid 1.2.2", "walkdir", "warp", @@ -4471,17 +4359,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "0.2.3" @@ -4505,7 +4382,7 @@ version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ - "autocfg 1.1.0", + "autocfg", "hashbrown", ] @@ -4553,15 +4430,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.7.1" @@ -4598,7 +4466,7 @@ dependencies = [ "cesu8", "combine 4.6.6", "jni-sys", - "log 0.4.17", + "log", "thiserror", "walkdir", ] @@ -4628,7 +4496,7 @@ dependencies = [ "enso-shapely", "enso-web", "failure", - "futures 0.3.26", + "futures", "serde", "serde_json", ] @@ -4656,16 +4524,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "keyboard-types" version = "0.5.0" @@ -4683,15 +4541,9 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" dependencies = [ - "log 0.4.17", + "log", ] -[[package]] -name = "language-tags" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" - [[package]] name = "language-tags" version = "0.3.2" @@ -4758,34 +4610,16 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - [[package]] name = "lock_api" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ - "autocfg 1.1.0", + "autocfg", "scopeguard", ] -[[package]] -name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -dependencies = [ - "log 0.4.17", -] - [[package]] name = "log" version = "0.4.17" @@ -4878,16 +4712,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" -dependencies = [ - "log 0.3.9", + "autocfg", ] [[package]] @@ -4902,8 +4727,8 @@ version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ - "mime 0.3.16", - "unicase 2.6.0", + "mime", + "unicase", ] [[package]] @@ -4921,25 +4746,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log 0.4.17", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.8.5" @@ -4947,23 +4753,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", - "log 0.4.17", + "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys", ] -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "mockall" version = "0.7.2" @@ -5023,8 +4817,8 @@ checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" dependencies = [ "buf_redux", "httparse", - "log 0.4.17", - "mime 0.3.16", + "log", + "mime", "mime_guess", "quick-error", "rand 0.8.5", @@ -5066,7 +4860,7 @@ checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" dependencies = [ "lazy_static", "libc", - "log 0.4.17", + "log", "openssl", "openssl-probe", "openssl-sys", @@ -5076,25 +4870,14 @@ dependencies = [ "tempfile", ] -[[package]] -name = "net2" -version = "0.2.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - [[package]] name = "new_mime_guess" version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2d684d1b59e0dc07b37e2203ef576987473288f530082512aff850585c61b1f" dependencies = [ - "mime 0.3.16", - "unicase 2.6.0", + "mime", + "unicase", ] [[package]] @@ -5148,7 +4931,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5158,7 +4941,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5167,7 +4950,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", ] @@ -5188,7 +4971,7 @@ version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-traits", ] @@ -5198,7 +4981,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", ] @@ -5209,7 +4992,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ - "autocfg 1.1.0", + "autocfg", "libm", ] @@ -5267,7 +5050,7 @@ dependencies = [ "arc-swap", "async-trait", "base64 0.13.1", - "bytes 1.1.0", + "bytes", "cfg-if 1.0.0", "chrono", "hyperx", @@ -5279,7 +5062,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "snafu", - "url 2.3.0", + "url", ] [[package]] @@ -5338,7 +5121,7 @@ version = "0.9.80" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cc", "libc", "pkg-config", @@ -5404,40 +5187,14 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" -[[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.3", - "rustc_version 0.2.3", -] - [[package]] name = "parking_lot" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "lock_api 0.4.9", - "parking_lot_core 0.9.6", -] - -[[package]] -name = "parking_lot_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "rustc_version 0.2.3", - "smallvec 0.6.14", - "winapi 0.3.9", + "lock_api", + "parking_lot_core", ] [[package]] @@ -5448,7 +5205,7 @@ checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec 1.10.0", "windows-sys", ] @@ -5520,7 +5277,7 @@ dependencies = [ "libc", "no-std-compat", "pelite-macros", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5538,12 +5295,6 @@ dependencies = [ "base64 0.13.1", ] -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - [[package]] name = "percent-encoding" version = "2.1.0" @@ -5675,10 +5426,10 @@ version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 1.0.0", "libc", - "log 0.4.17", + "log", "wepoll-ffi", "windows-sys", ] @@ -5737,7 +5488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" dependencies = [ "env_logger", - "log 0.4.17", + "log", ] [[package]] @@ -5760,7 +5511,7 @@ dependencies = [ "proc-macro2", "quote", "syn", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -5771,7 +5522,7 @@ checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", "quote", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -5795,7 +5546,7 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" dependencies = [ - "bytes 1.1.0", + "bytes", "prost-derive", ] @@ -5818,7 +5569,7 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" dependencies = [ - "bytes 1.1.0", + "bytes", "prost", ] @@ -5831,7 +5582,7 @@ dependencies = [ "bitflags", "getopts", "memchr", - "unicase 2.6.0", + "unicase", ] [[package]] @@ -5840,7 +5591,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" dependencies = [ - "percent-encoding 2.1.0", + "percent-encoding", ] [[package]] @@ -5858,25 +5609,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.8", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg", - "rand_xorshift", - "winapi 0.3.9", -] - [[package]] name = "rand" version = "0.7.3" @@ -5887,7 +5619,7 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc 0.2.0", + "rand_hc", ] [[package]] @@ -5901,16 +5633,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.3.1", -] - [[package]] name = "rand_chacha" version = "0.2.2" @@ -5931,21 +5653,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.5.1" @@ -5974,15 +5681,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "rand_hc" version = "0.2.0" @@ -5992,59 +5690,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.4.2", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "rawpointer" version = "0.2.1" @@ -6069,25 +5714,10 @@ checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" dependencies = [ "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.8.14", + "crossbeam-utils", "num_cpus", ] -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - [[package]] name = "redox_syscall" version = "0.2.16" @@ -6104,7 +5734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom 0.2.8", - "redox_syscall 0.2.16", + "redox_syscall", "thiserror", ] @@ -6140,7 +5770,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6150,23 +5780,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" dependencies = [ "base64 0.21.0", - "bytes 1.1.0", + "bytes", "encoding_rs", "futures-core", "futures-util", "h2", "http", "http-body", - "hyper 0.14.23", + "hyper", "hyper-rustls 0.23.2", "hyper-tls", "ipnet", "js-sys", - "log 0.4.17", - "mime 0.3.16", + "log", + "mime", "native-tls", "once_cell", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project-lite", "rustls 0.20.8", "rustls-pemfile 1.0.2", @@ -6178,7 +5808,7 @@ dependencies = [ "tokio-rustls 0.23.4", "tokio-util", "tower-service", - "url 2.3.0", + "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", @@ -6205,7 +5835,7 @@ dependencies = [ "spin 0.5.2", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6268,7 +5898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ "base64 0.13.1", - "log 0.4.17", + "log", "ring", "sct 0.6.1", "webpki 0.21.4", @@ -6280,7 +5910,7 @@ version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ - "log 0.4.17", + "log", "ring", "sct 0.7.0", "webpki 0.22.0", @@ -6535,7 +6165,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" dependencies = [ - "percent-encoding 2.1.0", + "percent-encoding", "serde", "thiserror", ] @@ -6565,18 +6195,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug", -] - [[package]] name = "sha-1" version = "0.10.1" @@ -6686,7 +6304,7 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ - "autocfg 1.1.0", + "autocfg", ] [[package]] @@ -6734,7 +6352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6749,7 +6367,7 @@ dependencies = [ "serde", "serde_json", "unicode-id", - "url 2.3.0", + "url", ] [[package]] @@ -6778,7 +6396,7 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" dependencies = [ - "lock_api 0.4.9", + "lock_api", ] [[package]] @@ -6862,7 +6480,7 @@ dependencies = [ "ntapi", "once_cell", "rayon", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6885,9 +6503,9 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6970,7 +6588,7 @@ checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7031,13 +6649,13 @@ version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" dependencies = [ - "autocfg 1.1.0", - "bytes 1.1.0", + "autocfg", + "bytes", "libc", "memchr", - "mio 0.8.5", + "mio", "num_cpus", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -7046,38 +6664,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "tokio-io", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log 0.4.17", -] - [[package]] name = "tokio-io-timeout" version = "1.2.0" @@ -7109,25 +6695,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log 0.4.17", - "mio 0.6.23", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", -] - [[package]] name = "tokio-rustls" version = "0.22.0" @@ -7161,41 +6728,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures 0.1.31", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "mio 0.6.23", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-tls" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" -dependencies = [ - "futures 0.1.31", - "native-tls", - "tokio-io", -] - [[package]] name = "tokio-tungstenite" version = "0.17.2" @@ -7203,7 +6735,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", - "log 0.4.17", + "log", "tokio", "tungstenite", ] @@ -7214,7 +6746,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-io", "futures-sink", @@ -7262,15 +6794,15 @@ dependencies = [ "async-trait", "axum", "base64 0.13.1", - "bytes 1.1.0", + "bytes", "futures-core", "futures-util", "h2", "http", "http-body", - "hyper 0.14.23", + "hyper", "hyper-timeout", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project", "prost", "prost-derive", @@ -7311,7 +6843,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ "bitflags", - "bytes 1.1.0", + "bytes", "futures-core", "futures-util", "http", @@ -7342,7 +6874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log 0.4.17", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -7386,7 +6918,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ "lazy_static", - "log 0.4.17", + "log", "tracing-core", ] @@ -7408,12 +6940,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "traitobject" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" - [[package]] name = "try-lock" version = "0.2.4" @@ -7434,14 +6960,14 @@ checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.1.0", + "bytes", "http", "httparse", - "log 0.4.17", + "log", "rand 0.8.5", - "sha-1 0.10.1", + "sha-1", "thiserror", - "url 2.3.0", + "url", "utf-8", ] @@ -7454,12 +6980,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "typeable" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" - [[package]] name = "typenum" version = "1.16.0" @@ -7472,22 +6992,13 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -dependencies = [ - "version_check 0.1.5", -] - [[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ - "version_check 0.9.4", + "version_check", ] [[package]] @@ -7580,17 +7091,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna 0.1.5", - "matches", - "percent-encoding 1.0.1", -] - [[package]] name = "url" version = "2.3.0" @@ -7598,8 +7098,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22fe195a4f217c25b25cb5058ced57059824a678474874038dc88d211bf508d3" dependencies = [ "form_urlencoded", - "idna 0.2.3", - "percent-encoding 2.1.0", + "idna", + "percent-encoding", "serde", ] @@ -7654,7 +7154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" dependencies = [ "ctor", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -7663,12 +7163,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "version_check" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" - [[package]] name = "version_check" version = "0.9.4" @@ -7700,7 +7194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi 0.3.9", + "winapi", "winapi-util", ] @@ -7710,7 +7204,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" dependencies = [ - "log 0.4.17", + "log", "try-lock", ] @@ -7720,17 +7214,17 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-util", "headers", "http", - "hyper 0.14.23", - "log 0.4.17", - "mime 0.3.16", + "hyper", + "log", + "mime", "mime_guess", "multipart", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project", "rustls-pemfile 0.2.1", "scoped-tls", @@ -7782,7 +7276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", - "log 0.4.17", + "log", "once_cell", "proc-macro2", "quote", @@ -7913,47 +7407,6 @@ dependencies = [ "webpki 0.22.0", ] -[[package]] -name = "websocket" -version = "0.26.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92aacab060eea423e4036820ddd28f3f9003b2c4d8048cbda985e5a14e18038d" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "hyper 0.10.16", - "native-tls", - "rand 0.6.5", - "tokio-codec", - "tokio-io", - "tokio-reactor", - "tokio-tcp", - "tokio-tls", - "unicase 1.4.2", - "url 1.7.2", - "websocket-base", -] - -[[package]] -name = "websocket-base" -version = "0.26.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aec794b07318993d1db16156d5a9c750120597a5ee40c6b928d416186cb138" -dependencies = [ - "base64 0.10.1", - "bitflags", - "byteorder", - "bytes 0.4.12", - "futures 0.1.31", - "native-tls", - "rand 0.6.5", - "sha-1 0.8.2", - "tokio-codec", - "tokio-io", - "tokio-tcp", - "tokio-tls", -] - [[package]] name = "websocket-codec" version = "0.5.2" @@ -7962,7 +7415,7 @@ checksum = "2108c9c18a6e746addc085c18cedb66b672e8ffea6a993712decc295b0d8ae55" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.1.0", + "bytes", "httparse", "rand 0.8.5", "sha1 0.6.1", @@ -7976,14 +7429,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6cae39139c6e837afebd915935e7adc8af5c28425935de606d0e8c9d3268f6" dependencies = [ "base64 0.13.1", - "bytes 1.1.0", - "futures 0.3.26", + "bytes", + "futures", "native-tls", "rand 0.8.5", "tokio", "tokio-native-tls", "tokio-util", - "url 2.3.0", + "url", "websocket-codec", ] @@ -8027,12 +7480,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -8043,12 +7490,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -8061,7 +7502,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8133,7 +7574,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8146,11 +7587,11 @@ dependencies = [ "async-trait", "base64 0.13.1", "deadpool", - "futures 0.3.26", + "futures", "futures-timer", "http-types", - "hyper 0.14.23", - "log 0.4.17", + "hyper", + "log", "once_cell", "regex", "serde", @@ -8158,16 +7599,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "wstest" version = "0.1.0" @@ -8176,12 +7607,12 @@ dependencies = [ "clap 3.2.23", "either", "enso-prelude", - "futures 0.3.26", + "futures", "regex", "time 0.3.17", "tokio", "tokio-stream", - "url 2.3.0", + "url", "websocket-lite", ] @@ -8226,6 +7657,6 @@ checksum = "537ce7411d25e54e8ae21a7ce0b15840e7bfcff15b51d697ec3266cc76bdf080" dependencies = [ "byteorder", "crc32fast", - "crossbeam-utils 0.8.14", + "crossbeam-utils", "flate2", ] diff --git a/app/gui/Cargo.toml b/app/gui/Cargo.toml index aa0dc1de9d40..5a57c3454fcd 100644 --- a/app/gui/Cargo.toml +++ b/app/gui/Cargo.toml @@ -62,9 +62,6 @@ ordered-float = "3.4.0" wasm-bindgen = { workspace = true } wasm-bindgen-futures = "0.4" -[target.'cfg(not(target_arch = "wasm32"))'.dependencies] -websocket = "0.26.5" - [dev-dependencies] regex = { workspace = true } wasm-bindgen-test = { workspace = true } From 4097800f7a0e44661f0ac02d219fd27104949432 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 4 May 2023 10:05:28 +0200 Subject: [PATCH 4/7] Infer correct synthetic name for nested modules (#6525) Deeply nested modules (of depth at least 3) would have the incorrect name inferred for synthetic modules. This also became apparent in a much bigger rewrite. Instead of having module `A.B.C`, as described in the test, it would infer the name to be `B.A.C`, which would break when trying to reference symbols from `C`. # Important Notes No ticket reference, as this was something that @radeusgd discovered while working on another component. The PR includes a minimal example that would previously fail to compile. --- .../scala/org/enso/compiler/PackageRepository.scala | 7 ++++--- .../resources/Test_Deeply_Nested_Modules/package.yaml | 6 ++++++ .../resources/Test_Deeply_Nested_Modules/src/A.enso | 1 + .../Test_Deeply_Nested_Modules/src/A/A_Mod.enso | 2 ++ .../resources/Test_Deeply_Nested_Modules/src/A/B.enso | 1 + .../Test_Deeply_Nested_Modules/src/A/B/B_Mod.enso | 2 ++ .../Test_Deeply_Nested_Modules/src/A/B/C/C_Mod.enso | 2 ++ .../Test_Deeply_Nested_Modules/src/A/B/C/D/D_Mod.enso | 2 ++ .../Test_Deeply_Nested_Modules/src/Main.enso | 11 +++++++++++ .../enso/interpreter/test/semantic/ImportsTest.scala | 11 +++++++++++ 10 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/package.yaml create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/A_Mod.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/B_Mod.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/C_Mod.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/D/D_Mod.enso create mode 100644 engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/Main.enso diff --git a/engine/runtime/src/main/scala/org/enso/compiler/PackageRepository.scala b/engine/runtime/src/main/scala/org/enso/compiler/PackageRepository.scala index b904ba969534..99ea89f033eb 100644 --- a/engine/runtime/src/main/scala/org/enso/compiler/PackageRepository.scala +++ b/engine/runtime/src/main/scala/org/enso/compiler/PackageRepository.scala @@ -391,11 +391,12 @@ object PackageRepository { s"""|import $modName |export $modName |""".stripMargin - ( - QualifiedName(namespace :: name :: parts, lastModuleName), + val syntheticModuleInfo = ( + QualifiedName(namespace :: name :: parts.reverse, lastModuleName), QualifiedName(namespace :: name :: pathElems, exportItem), modSource - ) :: listAllIntermediateModules( + ) + syntheticModuleInfo :: listAllIntermediateModules( namespace, name, parts, diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/package.yaml b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/package.yaml new file mode 100644 index 000000000000..4a197bdc870d --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/package.yaml @@ -0,0 +1,6 @@ +name: Test_Deeply_Nested_Modules +license: APLv2 +enso-version: default +version: "0.0.1" +author: "Enso Team " +maintainer: "Enso Team " diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A.enso new file mode 100644 index 000000000000..2a0d7d425d84 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A.enso @@ -0,0 +1 @@ +type Foo_A diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/A_Mod.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/A_Mod.enso new file mode 100644 index 000000000000..b9b50be1cb1a --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/A_Mod.enso @@ -0,0 +1,2 @@ +type A_Mod + Value a diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B.enso new file mode 100644 index 000000000000..ef7b67c958d3 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B.enso @@ -0,0 +1 @@ +type Foo_B diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/B_Mod.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/B_Mod.enso new file mode 100644 index 000000000000..cdcce6657294 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/B_Mod.enso @@ -0,0 +1,2 @@ +type B_Mod + Value a diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/C_Mod.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/C_Mod.enso new file mode 100644 index 000000000000..b7041e9da6b4 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/C_Mod.enso @@ -0,0 +1,2 @@ +type C_Mod + Value a diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/D/D_Mod.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/D/D_Mod.enso new file mode 100644 index 000000000000..956bd09d5c62 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/A/B/C/D/D_Mod.enso @@ -0,0 +1,2 @@ +type D_Mod + Value a diff --git a/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/Main.enso b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/Main.enso new file mode 100644 index 000000000000..910c68d41e93 --- /dev/null +++ b/engine/runtime/src/test/resources/Test_Deeply_Nested_Modules/src/Main.enso @@ -0,0 +1,11 @@ +from Standard.Base import all + +import project.A.A_Mod +import project.A.B.B_Mod +import project.A.B + +main = + IO.println (A_Mod.A_Mod.Value 1) + IO.println (B.C.C_Mod.C_Mod.Value 1) + IO.println (B.C.D.D_Mod.D_Mod.Value 1) + 0 diff --git a/engine/runtime/src/test/scala/org/enso/interpreter/test/semantic/ImportsTest.scala b/engine/runtime/src/test/scala/org/enso/interpreter/test/semantic/ImportsTest.scala index ff739d19d052..fbe3abf305ea 100644 --- a/engine/runtime/src/test/scala/org/enso/interpreter/test/semantic/ImportsTest.scala +++ b/engine/runtime/src/test/scala/org/enso/interpreter/test/semantic/ImportsTest.scala @@ -191,4 +191,15 @@ class ImportsTest extends PackageTest { ) shouldEqual "Main.enso[2:1-2:57]: The exported type `Atom` in `local.Test_Fully_Qualified_Name_Conflict.Atom` module will cause name conflict when attempting to use a fully qualified name of the `local.Test_Fully_Qualified_Name_Conflict.Atom.Foo` module." } + "Deeply nested modules" should "infer correct synthetic modules" in { + evalTestProject( + "Test_Deeply_Nested_Modules" + ).toString shouldEqual "0" + val outLines = consumeOut + outLines should have length 3 + outLines(0) shouldEqual "(A_Mod.Value 1)" + outLines(1) shouldEqual "(C_Mod.Value 1)" + outLines(2) shouldEqual "(D_Mod.Value 1)" + } + } From 7f9ed71ad9de16f18a73b48e7a48dc2bbeec3c65 Mon Sep 17 00:00:00 2001 From: "Stijn (\"stain\") Seghers" Date: Thu, 4 May 2023 10:11:18 +0200 Subject: [PATCH 5/7] Fix cut-off in text visualisations (#6421) Closes #6196. Three things were going wrong: - Not directly contributing, but adding confusion was the fact that padding of 5px was added in two different places. Since the 10px we've had up until now looked better, especially given the size of the rounded corners, I've kept it at 10px, but only applied in one place. - The main issue was that the length the scrollbars scroll over didn't take padding into account. At the same time, I changed the `max` and `thumb_size` variables to the coordinate system of the content. This is also how they're being used in `ScrollArea`, which is the only other place where `Scrollbar`s are being used. - The line height of text grid entries was set to the default of 1.2. That's the default line height in browsers, which is great for multi-line text and elements whose height is greater than the line height. In this case, however, where the height and the font size are set to the same value, the default setting of 1.2 pushes the text below the allotted space. https://user-images.githubusercontent.com/607786/234297411-8c0b3851-5977-4ca5-b3b4-5b0782510e14.mp4 --- CHANGELOG.md | 3 ++ .../text-grid-visualization/src/lib.rs | 4 +- .../native/text_visualization.rs | 40 ++++++++----------- .../text_visualization/grid_view_entry.rs | 5 +++ 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c14c4f022487..fb46543de6fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -138,6 +138,9 @@ sending messages to the backend][6341]. - [List Editor Widget][6470]. Now you can edit lists by clicking buttons on nodes or by dragging the elements. +- [Fixed text visualisations which were being cut off at the last line.][6421] + +[6421]: https://github.com/enso-org/enso/pull/6421 #### EnsoGL (rendering engine) diff --git a/app/gui/view/examples/text-grid-visualization/src/lib.rs b/app/gui/view/examples/text-grid-visualization/src/lib.rs index cfc8c4f4ce10..f5f0494e016f 100644 --- a/app/gui/view/examples/text-grid-visualization/src/lib.rs +++ b/app/gui/view/examples/text-grid-visualization/src/lib.rs @@ -16,8 +16,6 @@ use ensogl::prelude::*; -use crate::text_visualization::TextGrid; - use ensogl::animation; use ensogl::application::Application; use ensogl::display::navigation::navigator::Navigator; @@ -25,8 +23,8 @@ use ensogl::system::web; use ensogl::system::web::traits::DocumentOps; use ensogl::system::web::traits::ElementOps; use ensogl_text_msdf::run_once_initialized; -use ide_view::graph_editor::builtin::visualization::native::text_visualization; use ide_view::graph_editor::builtin::visualization::native::text_visualization::text_provider; +use ide_view::graph_editor::builtin::visualization::native::text_visualization::TextGrid; diff --git a/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization.rs b/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization.rs index ac8ce22dd457..f99e2fd92cb1 100644 --- a/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization.rs +++ b/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization.rs @@ -61,7 +61,7 @@ const CHARS_PER_CHUNK: usize = 20; /// loaded in each direction around the visible grid. So a value of 5 with a base grid of 20x10 will /// load 25x15 grid. const CACHE_PADDING: u32 = 15; -const PADDING_TEXT: f32 = 5.0; +const PADDING_TEXT: f32 = 10.0; @@ -325,7 +325,7 @@ impl TextGrid { frp::extend! { network - scroll_positition <- all(&scrollbar_h.thumb_position, &scrollbar_v.thumb_position); + scroll_position <- all(&scrollbar_h.thumb_position, &scrollbar_v.thumb_position); longest_line_with_init <- all(&init, &text_provider.longest_line)._1(); lines_with_init <- all(&init, &text_provider.line_count)._1(); @@ -350,6 +350,12 @@ impl TextGrid { text_grid_content_size_y <- text_grid.content_size.map(|size| size.y).on_change(); text_grid_content_size_y_previous <- text_grid_content_size_y.previous(); + scrollbar_h.set_max <+ text_grid_content_size_x; + scrollbar_v.set_max <+ text_grid_content_size_y; + + scrollbar_h.set_thumb_size <+ frp.set_size.map(|size| size.x - 2.0 * PADDING_TEXT); + scrollbar_v.set_thumb_size <+ frp.set_size.map(|size| size.y - 2.0 * PADDING_TEXT); + horizontal_scrollbar_change_args <- all( text_grid_content_size_x, text_grid_content_size_x_previous, @@ -373,34 +379,20 @@ impl TextGrid { thumb_position * content_size_y_previous / content_size_y }); - size_update <- all(&frp.set_size, &text_grid.content_size); - scrollbar_sizes <- size_update.map(|(vis_size, content_size)| { - vis_size.iter().zip(content_size.iter()).map(|(vis_size, content_size)| { - if *content_size > 0.0 { - (vis_size / content_size).clamp(0.0,1.0) - } else { - 0.0 - } - }).collect_tuple::<(f32,f32)>() - }).unwrap(); - scrollbar_h.set_thumb_size <+ scrollbar_sizes._0(); - scrollbar_v.set_thumb_size <+ scrollbar_sizes._1(); - - viewport <- all_with4( + viewport <- all_with3( &init, - &scroll_positition, + &scroll_position, &frp.set_size, - &text_grid.content_size, - f!([dom_entry_root](_, scroll_position, vis_size, content_size) { + f!([dom_entry_root] (_, scroll_position, vis_size) { let (scroll_x, scroll_y) = *scroll_position; - let top = -scroll_y * content_size.y; + let top = -scroll_y; let bottom = top - vis_size.y; - let left = scroll_x * content_size.x; - let right = left + vis_size.x; + let left = scroll_x; + let right = left + vis_size.x; // Set DOM element size. - dom_entry_root.set_style_or_warn("top", format!("{}px", top + PADDING_TEXT)); - dom_entry_root.set_style_or_warn("left", format!("{}px", -left + PADDING_TEXT)); + dom_entry_root.set_style_or_warn("top", format!("{top}px")); + dom_entry_root.set_style_or_warn("left", format!("{}px", -left)); // Output viewport. let viewport = grid_view::Viewport {top, bottom, left, right}; diff --git a/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization/grid_view_entry.rs b/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization/grid_view_entry.rs index 61c7078baedc..f1d1a80591d4 100644 --- a/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization/grid_view_entry.rs +++ b/app/gui/view/graph-editor/src/builtin/visualization/native/text_visualization/grid_view_entry.rs @@ -77,6 +77,11 @@ impl Entry { let mut style = "position: absolute; white-space: pre; pointer-events: auto;".to_string(); write!(style, "left: {left}px; top: {top}px;").ok(); write!(style, "width: {width}px; height: {height}px;").ok(); + // The default line height in browsers is 1.2, which is great for multi-line text and + // elements whose height is greater than the line height. In this case, however, where the + // height and the font size are set to the same value, the default setting of 1.2 pushes + // the text below the allotted space. + write!(style, "line-height: 1").ok(); self.text.set_attribute_or_warn("style", style); } From 65273124868e9e16f6a6de146d716d314a7c1081 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 4 May 2023 14:54:28 +0200 Subject: [PATCH 6/7] Cache result of slow function resolution on Any that is present on a hot path (#6536) Otherwise things can go horribly slow. Closes #6523. Follow up on https://github.com/enso-org/enso/pull/6441. --- .../node/callable/InvokeMethodNode.java | 54 +++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/callable/InvokeMethodNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/callable/InvokeMethodNode.java index 670882debfa3..79b74ab577d1 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/callable/InvokeMethodNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/callable/InvokeMethodNode.java @@ -53,6 +53,7 @@ @ImportStatic({HostMethodCallNode.PolyglotCallType.class, HostMethodCallNode.class}) public abstract class InvokeMethodNode extends BaseNode { + protected static final int CACHE_SIZE = 10; private @Child InvokeFunctionNode invokeFunctionNode; private final ConditionProfile errorReceiverProfile = ConditionProfile.createCountingProfile(); private @Child InvokeMethodNode childDispatch; @@ -104,30 +105,46 @@ public void setTailStatus(TailStatus tailStatus) { public abstract Object execute( VirtualFrame frame, State state, UnresolvedSymbol symbol, Object self, Object[] arguments); - @Specialization(guards = {"typesLibrary.hasType(self)", "!typesLibrary.hasSpecialDispatch(self)"}) - Object doFunctionalDispatch( + @Specialization(guards = { + "typesLibrary.hasType(self)", + "!typesLibrary.hasSpecialDispatch(self)", + "cachedSymbol == symbol", + "cachedSelfTpe == typesLibrary.getType(self)", + "function != null" + }, limit = "CACHE_SIZE") + Object doFunctionalDispatchCachedSymbol( VirtualFrame frame, State state, UnresolvedSymbol symbol, Object self, Object[] arguments, @CachedLibrary(limit = "10") TypesLibrary typesLibrary, - @Cached MethodResolverNode methodResolverNode) { + @Cached MethodResolverNode methodResolverNode, + @Cached("symbol") UnresolvedSymbol cachedSymbol, + @Cached("typesLibrary.getType(self)") Type cachedSelfTpe, + @Cached("resolveFunction(cachedSymbol, cachedSelfTpe, methodResolverNode)") Function function) { + return invokeFunctionNode.execute(function, frame, state, arguments); + } - Type selfTpe = typesLibrary.getType(self); - Function function = methodResolverNode.expectNonNull(self, selfTpe, symbol); + Function resolveFunction(UnresolvedSymbol symbol, Type selfTpe, MethodResolverNode methodResolverNode) { + Function function = methodResolverNode.execute(selfTpe, symbol); + if (function == null) { + return null; + } RootNode where = function.getCallTarget().getRootNode(); // If both Any and the type where `function` is declared, define `symbol` // and the method is invoked statically, i.e. type of self is the eigentype, // then we want to disambiguate method resolution by always resolved to the one in Any. - if (where instanceof MethodRootNode node && typeCanOverride(node, EnsoContext.get(this))) { - Function anyFun = symbol.getScope().lookupMethodDefinition(EnsoContext.get(this).getBuiltins().any(), symbol.getName()); + EnsoContext ctx = EnsoContext.get(this); + if (where instanceof MethodRootNode node && typeCanOverride(node, ctx)) { + Type any = ctx.getBuiltins().any(); + Function anyFun = symbol.getScope().lookupMethodDefinition(any, symbol.getName()); if (anyFun != null) { function = anyFun; } } - return invokeFunctionNode.execute(function, frame, state, arguments); + return function; } private boolean typeCanOverride(MethodRootNode node, EnsoContext ctx) { @@ -137,13 +154,32 @@ private boolean typeCanOverride(MethodRootNode node, EnsoContext ctx) { Type warning = builtins.warning(); Type panic = builtins.panic(); return methodOwnerType.isEigenType() - && builtins.nothing() != methodOwnerType && any.getEigentype() != methodOwnerType && panic.getEigentype() != methodOwnerType && warning.getEigentype() != methodOwnerType; } + @Specialization( + replaces = "doFunctionalDispatchCachedSymbol", + guards = {"typesLibrary.hasType(self)", "!typesLibrary.hasSpecialDispatch(self)"}) + Object doFunctionalDispatchUncachedSymbol( + VirtualFrame frame, + State state, + UnresolvedSymbol symbol, + Object self, + Object[] arguments, + @CachedLibrary(limit = "10") TypesLibrary typesLibrary, + @Cached MethodResolverNode methodResolverNode) { + Type selfTpe = typesLibrary.getType(self); + Function function = resolveFunction(symbol, selfTpe, methodResolverNode); + if (function == null) { + throw new PanicException( + EnsoContext.get(this).getBuiltins().error().makeNoSuchMethod(self, symbol), this); + } + return invokeFunctionNode.execute(function, frame, state, arguments); + } + @Specialization Object doDataflowError( VirtualFrame frame, From a832c5e2bb03daea87abcbe7101fd9bce0e2fcf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wawrzyniec=20Urba=C5=84czyk?= Date: Thu, 4 May 2023 15:48:33 +0200 Subject: [PATCH 7/7] Build nightly 3 hours earlier. (#6551) --- .github/workflows/nightly.yml | 2 +- build/build/src/ci_gen.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d15ffb8d1185..cc9bce064998 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -4,7 +4,7 @@ name: Nightly Release on: schedule: - - cron: 0 5 * * 2-6 + - cron: 0 2 * * 2-6 workflow_dispatch: {} jobs: promote-nightly: diff --git a/build/build/src/ci_gen.rs b/build/build/src/ci_gen.rs index 089834e3ce1b..57ee9ffa733a 100644 --- a/build/build/src/ci_gen.rs +++ b/build/build/src/ci_gen.rs @@ -293,8 +293,8 @@ pub fn changelog() -> Result { pub fn nightly() -> Result { let on = Event { workflow_dispatch: Some(default()), - // 5am (UTC) from Tuesday to Saturday (i.e. after every workday) - schedule: vec![Schedule::new("0 5 * * 2-6")?], + // 2am (UTC) from Tuesday to Saturday (i.e. after every workday) + schedule: vec![Schedule::new("0 2 * * 2-6")?], ..default() };