|
|
|
# This file is automatically @generated by Cargo.
|
|
|
|
# It is not intended for manual editing.
|
|
|
|
version = 3
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "addr2line"
|
|
|
|
version = "0.21.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
|
|
|
|
dependencies = [
|
|
|
|
"gimli",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "adler"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ahash"
|
|
|
|
version = "0.8.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"once_cell",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "aho-corasick"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "android-tzdata"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
|
|
|
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "android_system_properties"
|
|
|
|
version = "0.1.5"
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anes"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstream"
|
|
|
|
version = "0.6.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
|
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
|
|
|
"anstyle-parse",
|
|
|
|
"anstyle-query",
|
|
|
|
"anstyle-wincon",
|
|
|
|
"colorchoice",
|
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-parse"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
|
|
|
|
dependencies = [
|
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-query"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
|
|
|
|
dependencies = [
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-wincon"
|
|
|
|
version = "3.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
|
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "arbitrary"
|
|
|
|
version = "1.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a2e1373abdaa212b704512ec2bd8b26bd0b7d5c3f70117411a5d9a451383c859"
|
|
|
|
dependencies = [
|
|
|
|
"derive_arbitrary",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-channel"
|
|
|
|
version = "1.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
|
|
|
|
dependencies = [
|
|
|
|
"concurrent-queue",
|
|
|
|
"event-listener",
|
|
|
|
"futures-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-executor"
|
|
|
|
version = "1.5.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"
|
|
|
|
dependencies = [
|
|
|
|
"async-lock",
|
|
|
|
"async-task",
|
|
|
|
"concurrent-queue",
|
|
|
|
"fastrand 2.0.1",
|
|
|
|
"futures-lite",
|
|
|
|
"slab",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-fs"
|
|
|
|
version = "1.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
|
|
|
|
dependencies = [
|
|
|
|
"async-lock",
|
|
|
|
"autocfg",
|
|
|
|
"blocking",
|
|
|
|
"futures-lite",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-io"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
version = "1.13.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
|
|
|
|
dependencies = [
|
|
|
|
"async-lock",
|
|
|
|
"autocfg",
|
|
|
|
"cfg-if",
|
|
|
|
"concurrent-queue",
|
|
|
|
"futures-lite",
|
|
|
|
"log",
|
|
|
|
"parking",
|
|
|
|
"polling",
|
|
|
|
"rustix 0.37.24",
|
|
|
|
"slab",
|
|
|
|
"socket2",
|
|
|
|
"waker-fn",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-lock"
|
|
|
|
version = "2.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
|
|
|
|
dependencies = [
|
|
|
|
"event-listener",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-net"
|
|
|
|
version = "1.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
|
|
|
|
dependencies = [
|
|
|
|
"async-io",
|
|
|
|
"blocking",
|
|
|
|
"futures-lite",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-process"
|
|
|
|
version = "1.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
|
|
|
|
dependencies = [
|
|
|
|
"async-io",
|
|
|
|
"async-lock",
|
|
|
|
"autocfg",
|
|
|
|
"blocking",
|
|
|
|
"cfg-if",
|
|
|
|
"event-listener",
|
|
|
|
"futures-lite",
|
|
|
|
"rustix 0.37.24",
|
|
|
|
"signal-hook",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-task"
|
|
|
|
version = "4.4.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "atomic-polyfill"
|
|
|
|
version = "1.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
|
|
|
|
dependencies = [
|
|
|
|
"critical-section",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "atomic-waker"
|
|
|
|
version = "1.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "autocfg"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "backtrace"
|
|
|
|
version = "0.3.69"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
|
|
|
|
dependencies = [
|
|
|
|
"addr2line",
|
|
|
|
"cc",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
"miniz_oxide",
|
|
|
|
"object",
|
|
|
|
"rustc-demangle",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
|
|
|
version = "0.21.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
|
|
|
|
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "basic-toml"
|
|
|
|
version = "0.1.4"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
|
|
|
version = "2.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "blocking"
|
|
|
|
version = "1.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "94c4ef1f913d78636d78d538eec1f18de81e481f44b1be0a81060090530846e1"
|
|
|
|
dependencies = [
|
|
|
|
"async-channel",
|
|
|
|
"async-lock",
|
|
|
|
"async-task",
|
|
|
|
"fastrand 2.0.1",
|
|
|
|
"futures-io",
|
|
|
|
"futures-lite",
|
|
|
|
"piper",
|
|
|
|
"tracing",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_ast"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"arbitrary",
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"boa_interner",
|
|
|
|
"boa_macros",
|
|
|
|
"indexmap",
|
|
|
|
"num-bigint",
|
|
|
|
"rustc-hash",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_cli"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"boa_engine",
|
Implement debug object for CLI (#2772)
Currently some debugging stuff in JavaScript land is difficult to impossible, like triggering a GC collect, this is not impossible to do in JavaScript the way I triggered it was by creating a huge amount of object `for (let i = 0; i < 100000; ++i) { ({}) }` but this is cumbersome and not guaranteed to trigger a gc.
This PR implements `--debug-object` flag that injects the `$boa` debug object in the context, the object is separated into modules currently `gc`, `function`, `object`.
We can now do `$boa.gc.collect()`, which force triggers a GC collect.
Or sometimes I wanted a trace (the current solution is great, you can trace stuff like `>>> 1 + 1` but that is also it's limitation), it traces everything, I sometimes have a scenario and just want to trace a single function in that scenario, that's why I added the `$boa.function.trace(func, this, ...args)` It only traces the function.
```js
>> $boa.function.trace((a, b) => a + b, undefined, 1, 2)
-------------------------Compiled Output: ''--------------------------
Location Count Opcode Operands
000000 0000 DefInitArg 0000: 'a'
000005 0001 DefInitArg 0001: 'b'
000010 0002 RestParameterPop
000011 0003 GetName 0000: 'a'
000016 0004 GetName 0001: 'b'
000021 0005 Add
000022 0006 Return
000023 0007 PushUndefined
000024 0008 Return
... (cut for brevity) ...
```
It also implements `$boa.function.flowgraph(func, options)`:
```js
$boa.function.flowgraph(func, 'graphviz')
$boa.function.flowgraph(func, { format: 'mermaid', direction: 'TopBottom' })
```
Printing the object pointer:
```js
$boa.object.id({}) // '0x566464F33'
```
It currently implements some functionality which we can grow it with our debugging needs since we are not restricted by a spec we can add whatever we want :)
I was originally going to implement this in #2723 (but the PR is too big), for shapes having functions like:
```js
$boa.shape.type({}) // Shared shape
$boa.shape.id({}) // 0x8578FG355 (objects, shape pointer)
$boa.shape.flowgraph({}) // printing the shape transition chain, like $boa.function.flowgraph
```
Shapes chains are very hard to debug once they are big... so having this type of debugging capability would make it much easier.
2 years ago
|
|
|
"boa_gc",
|
|
|
|
"boa_interner",
|
|
|
|
"boa_parser",
|
|
|
|
"boa_runtime",
|
|
|
|
"clap",
|
|
|
|
"colored",
|
|
|
|
"dhat",
|
|
|
|
"jemallocator",
|
|
|
|
"phf",
|
|
|
|
"pollster",
|
|
|
|
"regex",
|
|
|
|
"rustyline",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_engine"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"boa_ast",
|
|
|
|
"boa_gc",
|
|
|
|
"boa_icu_provider",
|
|
|
|
"boa_interner",
|
|
|
|
"boa_macros",
|
|
|
|
"boa_parser",
|
|
|
|
"boa_profiler",
|
|
|
|
"chrono",
|
|
|
|
"criterion",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
"dashmap",
|
|
|
|
"fast-float",
|
|
|
|
"fixed_decimal",
|
|
|
|
"float-cmp",
|
|
|
|
"futures-lite",
|
|
|
|
"icu_calendar",
|
|
|
|
"icu_casemap",
|
|
|
|
"icu_collator",
|
|
|
|
"icu_datetime",
|
|
|
|
"icu_list",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_locid_transform",
|
|
|
|
"icu_normalizer",
|
|
|
|
"icu_plurals",
|
|
|
|
"icu_provider",
|
|
|
|
"icu_segmenter",
|
|
|
|
"indexmap",
|
|
|
|
"indoc",
|
|
|
|
"itertools 0.11.0",
|
|
|
|
"jemallocator",
|
|
|
|
"num-bigint",
|
|
|
|
"num-integer",
|
|
|
|
"num-traits",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
"num_enum",
|
|
|
|
"once_cell",
|
|
|
|
"paste",
|
|
|
|
"pollster",
|
|
|
|
"rand",
|
|
|
|
"regress",
|
|
|
|
"rustc-hash",
|
|
|
|
"ryu-js",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"sptr",
|
|
|
|
"static_assertions",
|
|
|
|
"sys-locale",
|
|
|
|
"tap",
|
|
|
|
"textwrap",
|
|
|
|
"thin-vec",
|
Create new lazy Error type (#2283)
This is an experiment that tries to migrate the codebase from eager `Error` objects to lazy ones.
In short words, this redefines `JsResult = Result<JsValue, JsError>`, where `JsError` is a brand new type that stores only the essential part of an error type, and only transforms those errors to `JsObject`s on demand (when having to pass them as arguments to functions or store them inside async/generators).
This change is pretty big, because it unblocks a LOT of code from having to take a `&mut Context` on each call. It also paves the road for possibly making `JsError` a proper variant of `JsValue`, which can be a pretty big optimization for try/catch.
A downside of this is that it exposes some brand new error types to our public API. However, we can now implement `Error` on `JsError`, making our `JsResult` type a bit more inline with Rust's best practices.
~Will mark this as draft, since it's missing some documentation and a lot of examples, but~ it's pretty much feature complete. As always, any comments about the design are very much appreciated!
Note: Since there are a lot of changes which are essentially just rewriting `context.throw` to `JsNativeError::%type%`, I'll leave an "index" of the most important changes here:
- [boa_engine/src/error.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-f15f2715655440626eefda5c46193d29856f4949ad37380c129a8debc6b82f26)
- [boa_engine/src/builtins/error/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-3eb1e4b4b5c7210eb98192a5277f5a239148423c6b970c4ae05d1b267f8f1084)
- [boa_tester/src/exec/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-fc3d7ad7b5e64574258c9febbe56171f3309b74e0c8da35238a76002f3ee34d9)
2 years ago
|
|
|
"thiserror",
|
|
|
|
"writeable",
|
|
|
|
"yoke",
|
|
|
|
"zerofrom",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_examples"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"boa_ast",
|
|
|
|
"boa_engine",
|
|
|
|
"boa_gc",
|
|
|
|
"boa_interner",
|
|
|
|
"boa_parser",
|
|
|
|
"boa_runtime",
|
|
|
|
"chrono",
|
|
|
|
"futures-util",
|
|
|
|
"smol",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_gc"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"boa_macros",
|
|
|
|
"boa_profiler",
|
|
|
|
"hashbrown 0.14.1",
|
|
|
|
"thin-vec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_icu_provider"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"icu_datagen",
|
|
|
|
"icu_provider",
|
|
|
|
"icu_provider_adapters",
|
|
|
|
"icu_provider_blob",
|
|
|
|
"log",
|
|
|
|
"once_cell",
|
|
|
|
"simple_logger",
|
|
|
|
]
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
[[package]]
|
|
|
|
name = "boa_interner"
|
|
|
|
version = "0.17.0"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
dependencies = [
|
|
|
|
"arbitrary",
|
|
|
|
"boa_gc",
|
|
|
|
"boa_macros",
|
|
|
|
"hashbrown 0.14.1",
|
|
|
|
"indexmap",
|
|
|
|
"once_cell",
|
|
|
|
"phf",
|
|
|
|
"rustc-hash",
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
"serde",
|
|
|
|
"static_assertions",
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_macros"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"synstructure",
|
|
|
|
]
|
|
|
|
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "boa_macros_tests"
|
|
|
|
version = "0.17.0"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"boa_engine",
|
|
|
|
"boa_macros",
|
|
|
|
"trybuild",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_parser"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"boa_ast",
|
|
|
|
"boa_interner",
|
|
|
|
"boa_macros",
|
|
|
|
"boa_profiler",
|
|
|
|
"fast-float",
|
|
|
|
"icu_properties",
|
|
|
|
"num-bigint",
|
|
|
|
"num-traits",
|
|
|
|
"regress",
|
|
|
|
"rustc-hash",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_profiler"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"measureme",
|
|
|
|
"once_cell",
|
|
|
|
"rustc-hash",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_runtime"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"boa_engine",
|
|
|
|
"boa_gc",
|
|
|
|
"indoc",
|
|
|
|
"rustc-hash",
|
|
|
|
"textwrap",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_tester"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"boa_engine",
|
Execution stack & promises (#2107)
This PR overrides #1923. It also removes the `queues` dependency added there, and rebases it to the latest `main` branch state.
It adds the following:
- A job queue (in `Context`)
- The constructor [`Promise`](https://tc39.es/ecma262/#sec-promise-executor)
- [`Promise.race`](https://tc39.es/ecma262/#sec-promise.race)
- [`Promise.reject`](https://tc39.es/ecma262/#sec-promise.reject)
- [`Promise.resolve`](https://tc39.es/ecma262/#sec-promise.resolve)
- [`get Promise [ @@species ]`](https://tc39.es/ecma262/#sec-get-promise-@@species)
- [`Promise.prototype [ @@toStringTag ]`](https://tc39.es/ecma262/#sec-promise.prototype-@@tostringtag)
- [`Promise.prototype.then`](https://tc39.es/ecma262/#sec-promise.prototype.then)
- [`Promise.prototype.finally`](https://tc39.es/ecma262/#sec-promise.prototype.finally)
- [`Promise.prototype.catch`](https://tc39.es/ecma262/#sec-promise.prototype.catch)
- The additional needed infrastructure
- [`PerformPromiseThen ( promise, onFulfilled, onRejected [ , resultCapability ] )`](https://tc39.es/ecma262/#sec-performpromisethen)
- [`TriggerPromiseReactions ( reactions, argument )`](https://tc39.es/ecma262/#sec-triggerpromisereactions)
- [`PerformPromiseRace ( iteratorRecord, constructor, resultCapability, promiseResolve )`](https://tc39.es/ecma262/#sec-performpromiserace)
- [`RejectPromise ( promise, reason )`](https://tc39.es/ecma262/#sec-rejectpromise)
- [`FulfillPromise ( promise, value )`](https://tc39.es/ecma262/#sec-fulfillpromise)
- [`IfAbruptRejectPromise ( value, capability )`](https://tc39.es/ecma262/#sec-ifabruptrejectpromise)
- [`CreateResolvingFunctions ( promise )`](https://tc39.es/ecma262/#sec-createresolvingfunctions)
- [`NewPromiseCapability ( C )`](https://tc39.es/ecma262/#sec-newpromisecapability)
- [`NewPromiseReactionJob ( reaction, argument )`](https://tc39.es/ecma262/#sec-newpromisereactionjob)
- [`NewPromiseResolveThenableJob ( promiseToResolve, thenable, then )`](https://tc39.es/ecma262/#sec-newpromiseresolvethenablejob)
- [`PromiseResolve ( C, x )`](https://tc39.es/ecma262/#sec-promise-resolve)
- A test case showcasing the run-to-completion semantics.
An example program that shows the control flow with this addition is:
```javascript
new Promise((res, rej) => {
console.log("A");
res(undefined);
}).then((_) => console.log("B"));
console.log("C");
```
Which would output:
```
A
C
B
```
2 years ago
|
|
|
"boa_gc",
|
|
|
|
"clap",
|
|
|
|
"color-eyre",
|
|
|
|
"colored",
|
|
|
|
"comfy-table",
|
|
|
|
"once_cell",
|
|
|
|
"phf",
|
|
|
|
"rayon",
|
|
|
|
"regex",
|
|
|
|
"rustc-hash",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"serde_repr",
|
|
|
|
"serde_yaml",
|
|
|
|
"toml 0.8.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "boa_wasm"
|
|
|
|
version = "0.17.0"
|
|
|
|
dependencies = [
|
|
|
|
"boa_engine",
|
|
|
|
"chrono",
|
|
|
|
"console_error_panic_hook",
|
|
|
|
"getrandom",
|
|
|
|
"wasm-bindgen",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bumpalo"
|
|
|
|
version = "3.14.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "byteorder"
|
|
|
|
version = "1.4.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "calendrical_calculations"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8dfe3bc6a50b4667fafdb6d9cf26731c5418c457e317d8166c972014facf9a5d"
|
|
|
|
dependencies = [
|
|
|
|
"core_maths",
|
|
|
|
"displaydoc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cast"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cc"
|
|
|
|
version = "1.0.83"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cfg-if"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "chrono"
|
|
|
|
version = "0.4.31"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
|
|
|
|
dependencies = [
|
|
|
|
"android-tzdata",
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"iana-time-zone",
|
Bump chrono from 0.4.19 to 0.4.20 (#2222)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.19 to 0.4.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<h2>0.4.20</h2>
<p>chrono is a date and time library for Rust and 0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p>
<p>Due to compatibility reasons, this release does not yet remove the time 0.1 dependency, though chrono 0.4.20 does not depend on the vulnerable parts of the time 0.1.x versions. In a future 0.5 release, we will remove the time dependency.</p>
<p>The minimum supported Rust version for 0.4.20 is 1.32.0, which is intentionally still quite conservative. If you are using chrono 0.4 with a Rust version older than 1.52, we'd like to hear from you since we'd like to further modernize the code base to ease maintenance.</p>
<h2>Fixes</h2>
<ul>
<li>Fix unsound call to <code>localtime_r()</code> by parsing timezone files in Rust on Unix (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/677">#677</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/728">#728</a>)</li>
<li>Allow RFC 2822 parser to deal with comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/737">#737</a>, thanks to <a href="https://github.com/Finomnis"><code>@Finomnis</code></a>)</li>
<li>Avoid panicking during parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/686">#686</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Avoid panics when rounding durations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/659">#659</a>, thanks to <a href="https://github.com/ARBaart"><code>@ARBaart</code></a>)</li>
<li>Fix <code>Duration::abs()</code> behavior in case of negative durations with nanoseconds (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/734">#734</a>, thanks to <a href="https://github.com/abreis"><code>@abreis</code></a>)</li>
</ul>
<h2>Additions</h2>
<ul>
<li>Make <code>ParserErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>, thanks to <a href="https://github.com/sbrocket"><code>@sbrocket</code></a>)</li>
<li>Expose associated <code>MIN</code> and <code>MAX</code> const values in favor of free-standing consts (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/726">#726</a>)</li>
<li>Add (optional) support for rkyv (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/644">#644</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/701">#701</a>, thanks to <a href="https://github.com/dovahcrow"><code>@dovahcrow</code></a>)</li>
<li>Support month-based calculations against <code>NaiveDate</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/732">#732</a> with follow up in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/752">#752</a>, thanks to <a href="https://github.com/avantgardnerio"><code>@avantgardnerio</code></a>)</li>
<li>Add <code>NaiveWeek</code> type to facilitate week-based calculations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>, thanks to <a href="https://github.com/sestrella"><code>@sestrella</code></a>)</li>
<li>Add <code>NaiveDateTime::and_local_timezone()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/711">#711</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Add <code>DateTime::from_local()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>, thanks to <a href="https://github.com/retrhelo"><code>@retrhelo</code></a>)</li>
<li>Extend serde integration for <code>NaiveDateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/664">#664</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code>/<code>NaiveDateWeeksIterator</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/697">#697</a>, thanks to <a href="https://github.com/teobouvard"><code>@teobouvard</code></a>)</li>
<li>Implement <code>std::iter::Sum</code> for <code>Duration</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/522">#522</a>, thanks to <a href="https://github.com/jakevossen5"><code>@jakevossen5</code></a>)</li>
<li>Add <code>years_since()</code> method to <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/707">#707</a>, thanks to <a href="https://github.com/yozhgoor"><code>@yozhgoor</code></a>)</li>
<li>Implement <code>AddAssign</code>/<code>SubAssign</code> for <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/698">#698</a>, thanks to <a href="https://github.com/MrGunflame"><code>@MrGunflame</code></a>)</li>
<li>Fix imports on WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/672">#672</a>, thanks to <a href="https://github.com/danielalvsaaker"><code>@danielalvsaaker</code></a>)</li>
<li>Implement std::error::Error for ParseWeekdayError (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/745">#745</a>)</li>
</ul>
<h2>Non-functional improvements</h2>
<ul>
<li>Improve CI to better exercise WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/662">#662</a>, thanks to <a href="https://github.com/AmateurECE"><code>@AmateurECE</code></a>)</li>
<li>More WASM testing improvements, enable dependencies by default (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/746">#746</a>)</li>
<li>Fix compiling for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>, thanks to <a href="https://github.com/orion78fr"><code>@orion78fr</code></a>)</li>
<li>Use stub implementation for anything not unix and not windows (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>, thanks to <a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a>)</li>
<li>Remove now unused libc dependency (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/710">#710</a>, thanks to <a href="https://github.com/metent"><code>@metent</code></a>)</li>
<li>Clean up some clippy warnings (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/721">#721</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Clarify documentation for <code>Utc::now()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>, thanks to <a href="https://github.com/ModProg"><code>@ModProg</code></a>)</li>
<li>Clarify documentation for <code>DateTime::with_timezone()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/747">#747</a>, thanks to <a href="https://github.com/kevincox"><code>@kevincox</code></a>)</li>
<li>Improve examples for <code>naive</code> serde integration (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/616">#616</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Clean up <code>extern crate</code> statements and outdated comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/665">#665</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Fix typo in deprecation notice (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/744">#744</a>, thanks to <a href="https://github.com/Mike-Dax"><code>@Mike-Dax</code></a>)</li>
<li>Fix some typos in documentation (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/680">#680</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/695">#695</a>, thanks to <a href="https://github.com/cuishuang"><code>@cuishuang</code></a> and <a href="https://github.com/fxredeemer"><code>@fxredeemer</code></a>)</li>
<li>Implement caching for CI (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/609">#609</a>, thanks to <a href="https://github.com/Milo123459"><code>@Milo123459</code></a>)</li>
</ul>
<h2>0.4.20-rc.1</h2>
<p>0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h2>0.4.20 (unreleased)</h2>
<ul>
<li>Add more formatting documentation and examples.</li>
<li>Add support for microseconds timestamps serde serialization/deserialization (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/304">#304</a>)</li>
<li>Fix <code>DurationRound</code> is not TZ aware (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/495">#495</a>)</li>
<li>Implement <code>DurationRound</code> for <code>NaiveDateTime</code></li>
<li>Implement <code>std::iter::Sum</code> for <code>Duration</code></li>
<li>Add <code>DateTime::from_local()</code> to construct from given local date and time (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>)</li>
<li>Add a function that calculates the number of years elapsed between now and a given <code>Date</code> or <code>DateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a>)</li>
<li>Correct build for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>)</li>
<li>Change <code>Local::now()</code> and <code>Utc::now()</code> documentation from "current date" to "current date and time" (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>)</li>
<li>Fix <code>duration_round</code> panic on rounding by <code>Duration::zero()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/658">#658</a>)</li>
<li>Add optional rkyv support.</li>
<li>Add support for microseconds timestamps serde serialization for <code>NaiveDateTime</code>.</li>
<li>Add support for optional timestamps serde serialization for <code>NaiveDateTime</code>.</li>
<li>Fix build for wasm32-unknown-emscripten (<a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>)</li>
<li>Make <code>ParseErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>)</li>
<li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code> and <code>NaiveDateWeeksIterator</code></li>
<li>Fix panicking when parsing a <code>DateTime</code> (<a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Add support for getting week bounds based on a specific <code>NaiveDate</code> and a <code>Weekday</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>)</li>
<li>Remove libc dependency from Cargo.toml.</li>
<li>Add the <code>and_local_timezone</code> method to <code>NaiveDateTime</code></li>
<li>Fix the behavior of <code>Duration::abs()</code> for negative durations with non-zero nanos</li>
<li>Add compatibility with rfc2822 comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a>)</li>
<li>Make <code>js-sys</code> and <code>wasm-bindgen</code> enabled by default when target is <code>wasm32-unknown-unknown</code> for ease of API discovery</li>
<li>Add the <code>Months</code> struct and associated <code>Add</code> and <code>Sub</code> impls</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/0b7feacb5482076b4efe1b6bcf720abfc82eb476"><code>0b7feac</code></a> Clean up some unreachable_pub warnings</li>
<li><a href="https://github.com/chronotope/chrono/commit/65f1f2e588ac6e717b36fd78a87e029c882b8d65"><code>65f1f2e</code></a> Bump version to 0.4.20</li>
<li><a href="https://github.com/chronotope/chrono/commit/bd3b48d1a940b92ca6c6a88682b8d41f34ff94c5"><code>bd3b48d</code></a> Revise Months API</li>
<li><a href="https://github.com/chronotope/chrono/commit/ab688c384f7c797466fca69d69bfd5ee3c2cba96"><code>ab688c3</code></a> Implement <code>Add\<Months></code> and <code>Sub\<Months></code> for <code>NaiveDate</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/731">#731</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/782f904375c145173f63c125a5fe1af10c189b7a"><code>782f904</code></a> Clarify docs for <code>DateTime::with_timezone</code></li>
<li><a href="https://github.com/chronotope/chrono/commit/27c05589ac269596fe4b047552bc735ebe9ee44c"><code>27c0558</code></a> dont use stub.rs when wasmbind feature is enabled</li>
<li><a href="https://github.com/chronotope/chrono/commit/56f80e43668c8d3087cb5333d9c5e4d796ae8a9f"><code>56f80e4</code></a> run on all branches and also for changes in the ci folder</li>
<li><a href="https://github.com/chronotope/chrono/commit/353f1795b60255f44012e0c1421d857995948b17"><code>353f179</code></a> Implement std::error::Error for ParseWeekdayError</li>
<li><a href="https://github.com/chronotope/chrono/commit/309cbeb0547c845153c3df1f2d9ce91fbf85c180"><code>309cbeb</code></a> Fixed typo in deprecation notice</li>
<li><a href="https://github.com/chronotope/chrono/commit/26e231af33083852a0ada3f915985d5fbc654b7f"><code>26e231a</code></a> Bump version to 0.4.20-rc.1</li>
<li>Additional commits viewable in <a href="https://github.com/chronotope/chrono/compare/v0.4.19...v0.4.20">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.19&new-version=0.4.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"js-sys",
|
|
|
|
"num-traits",
|
Bump chrono from 0.4.19 to 0.4.20 (#2222)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.19 to 0.4.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<h2>0.4.20</h2>
<p>chrono is a date and time library for Rust and 0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p>
<p>Due to compatibility reasons, this release does not yet remove the time 0.1 dependency, though chrono 0.4.20 does not depend on the vulnerable parts of the time 0.1.x versions. In a future 0.5 release, we will remove the time dependency.</p>
<p>The minimum supported Rust version for 0.4.20 is 1.32.0, which is intentionally still quite conservative. If you are using chrono 0.4 with a Rust version older than 1.52, we'd like to hear from you since we'd like to further modernize the code base to ease maintenance.</p>
<h2>Fixes</h2>
<ul>
<li>Fix unsound call to <code>localtime_r()</code> by parsing timezone files in Rust on Unix (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/677">#677</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/728">#728</a>)</li>
<li>Allow RFC 2822 parser to deal with comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/737">#737</a>, thanks to <a href="https://github.com/Finomnis"><code>@Finomnis</code></a>)</li>
<li>Avoid panicking during parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/686">#686</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Avoid panics when rounding durations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/659">#659</a>, thanks to <a href="https://github.com/ARBaart"><code>@ARBaart</code></a>)</li>
<li>Fix <code>Duration::abs()</code> behavior in case of negative durations with nanoseconds (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/734">#734</a>, thanks to <a href="https://github.com/abreis"><code>@abreis</code></a>)</li>
</ul>
<h2>Additions</h2>
<ul>
<li>Make <code>ParserErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>, thanks to <a href="https://github.com/sbrocket"><code>@sbrocket</code></a>)</li>
<li>Expose associated <code>MIN</code> and <code>MAX</code> const values in favor of free-standing consts (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/726">#726</a>)</li>
<li>Add (optional) support for rkyv (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/644">#644</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/701">#701</a>, thanks to <a href="https://github.com/dovahcrow"><code>@dovahcrow</code></a>)</li>
<li>Support month-based calculations against <code>NaiveDate</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/732">#732</a> with follow up in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/752">#752</a>, thanks to <a href="https://github.com/avantgardnerio"><code>@avantgardnerio</code></a>)</li>
<li>Add <code>NaiveWeek</code> type to facilitate week-based calculations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>, thanks to <a href="https://github.com/sestrella"><code>@sestrella</code></a>)</li>
<li>Add <code>NaiveDateTime::and_local_timezone()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/711">#711</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Add <code>DateTime::from_local()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>, thanks to <a href="https://github.com/retrhelo"><code>@retrhelo</code></a>)</li>
<li>Extend serde integration for <code>NaiveDateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/664">#664</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code>/<code>NaiveDateWeeksIterator</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/697">#697</a>, thanks to <a href="https://github.com/teobouvard"><code>@teobouvard</code></a>)</li>
<li>Implement <code>std::iter::Sum</code> for <code>Duration</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/522">#522</a>, thanks to <a href="https://github.com/jakevossen5"><code>@jakevossen5</code></a>)</li>
<li>Add <code>years_since()</code> method to <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/707">#707</a>, thanks to <a href="https://github.com/yozhgoor"><code>@yozhgoor</code></a>)</li>
<li>Implement <code>AddAssign</code>/<code>SubAssign</code> for <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/698">#698</a>, thanks to <a href="https://github.com/MrGunflame"><code>@MrGunflame</code></a>)</li>
<li>Fix imports on WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/672">#672</a>, thanks to <a href="https://github.com/danielalvsaaker"><code>@danielalvsaaker</code></a>)</li>
<li>Implement std::error::Error for ParseWeekdayError (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/745">#745</a>)</li>
</ul>
<h2>Non-functional improvements</h2>
<ul>
<li>Improve CI to better exercise WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/662">#662</a>, thanks to <a href="https://github.com/AmateurECE"><code>@AmateurECE</code></a>)</li>
<li>More WASM testing improvements, enable dependencies by default (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/746">#746</a>)</li>
<li>Fix compiling for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>, thanks to <a href="https://github.com/orion78fr"><code>@orion78fr</code></a>)</li>
<li>Use stub implementation for anything not unix and not windows (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>, thanks to <a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a>)</li>
<li>Remove now unused libc dependency (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/710">#710</a>, thanks to <a href="https://github.com/metent"><code>@metent</code></a>)</li>
<li>Clean up some clippy warnings (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/721">#721</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Clarify documentation for <code>Utc::now()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>, thanks to <a href="https://github.com/ModProg"><code>@ModProg</code></a>)</li>
<li>Clarify documentation for <code>DateTime::with_timezone()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/747">#747</a>, thanks to <a href="https://github.com/kevincox"><code>@kevincox</code></a>)</li>
<li>Improve examples for <code>naive</code> serde integration (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/616">#616</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Clean up <code>extern crate</code> statements and outdated comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/665">#665</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li>
<li>Fix typo in deprecation notice (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/744">#744</a>, thanks to <a href="https://github.com/Mike-Dax"><code>@Mike-Dax</code></a>)</li>
<li>Fix some typos in documentation (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/680">#680</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/695">#695</a>, thanks to <a href="https://github.com/cuishuang"><code>@cuishuang</code></a> and <a href="https://github.com/fxredeemer"><code>@fxredeemer</code></a>)</li>
<li>Implement caching for CI (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/609">#609</a>, thanks to <a href="https://github.com/Milo123459"><code>@Milo123459</code></a>)</li>
</ul>
<h2>0.4.20-rc.1</h2>
<p>0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h2>0.4.20 (unreleased)</h2>
<ul>
<li>Add more formatting documentation and examples.</li>
<li>Add support for microseconds timestamps serde serialization/deserialization (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/304">#304</a>)</li>
<li>Fix <code>DurationRound</code> is not TZ aware (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/495">#495</a>)</li>
<li>Implement <code>DurationRound</code> for <code>NaiveDateTime</code></li>
<li>Implement <code>std::iter::Sum</code> for <code>Duration</code></li>
<li>Add <code>DateTime::from_local()</code> to construct from given local date and time (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>)</li>
<li>Add a function that calculates the number of years elapsed between now and a given <code>Date</code> or <code>DateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a>)</li>
<li>Correct build for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>)</li>
<li>Change <code>Local::now()</code> and <code>Utc::now()</code> documentation from "current date" to "current date and time" (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>)</li>
<li>Fix <code>duration_round</code> panic on rounding by <code>Duration::zero()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/658">#658</a>)</li>
<li>Add optional rkyv support.</li>
<li>Add support for microseconds timestamps serde serialization for <code>NaiveDateTime</code>.</li>
<li>Add support for optional timestamps serde serialization for <code>NaiveDateTime</code>.</li>
<li>Fix build for wasm32-unknown-emscripten (<a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>)</li>
<li>Make <code>ParseErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>)</li>
<li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code> and <code>NaiveDateWeeksIterator</code></li>
<li>Fix panicking when parsing a <code>DateTime</code> (<a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li>
<li>Add support for getting week bounds based on a specific <code>NaiveDate</code> and a <code>Weekday</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>)</li>
<li>Remove libc dependency from Cargo.toml.</li>
<li>Add the <code>and_local_timezone</code> method to <code>NaiveDateTime</code></li>
<li>Fix the behavior of <code>Duration::abs()</code> for negative durations with non-zero nanos</li>
<li>Add compatibility with rfc2822 comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a>)</li>
<li>Make <code>js-sys</code> and <code>wasm-bindgen</code> enabled by default when target is <code>wasm32-unknown-unknown</code> for ease of API discovery</li>
<li>Add the <code>Months</code> struct and associated <code>Add</code> and <code>Sub</code> impls</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/0b7feacb5482076b4efe1b6bcf720abfc82eb476"><code>0b7feac</code></a> Clean up some unreachable_pub warnings</li>
<li><a href="https://github.com/chronotope/chrono/commit/65f1f2e588ac6e717b36fd78a87e029c882b8d65"><code>65f1f2e</code></a> Bump version to 0.4.20</li>
<li><a href="https://github.com/chronotope/chrono/commit/bd3b48d1a940b92ca6c6a88682b8d41f34ff94c5"><code>bd3b48d</code></a> Revise Months API</li>
<li><a href="https://github.com/chronotope/chrono/commit/ab688c384f7c797466fca69d69bfd5ee3c2cba96"><code>ab688c3</code></a> Implement <code>Add\<Months></code> and <code>Sub\<Months></code> for <code>NaiveDate</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/731">#731</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/782f904375c145173f63c125a5fe1af10c189b7a"><code>782f904</code></a> Clarify docs for <code>DateTime::with_timezone</code></li>
<li><a href="https://github.com/chronotope/chrono/commit/27c05589ac269596fe4b047552bc735ebe9ee44c"><code>27c0558</code></a> dont use stub.rs when wasmbind feature is enabled</li>
<li><a href="https://github.com/chronotope/chrono/commit/56f80e43668c8d3087cb5333d9c5e4d796ae8a9f"><code>56f80e4</code></a> run on all branches and also for changes in the ci folder</li>
<li><a href="https://github.com/chronotope/chrono/commit/353f1795b60255f44012e0c1421d857995948b17"><code>353f179</code></a> Implement std::error::Error for ParseWeekdayError</li>
<li><a href="https://github.com/chronotope/chrono/commit/309cbeb0547c845153c3df1f2d9ce91fbf85c180"><code>309cbeb</code></a> Fixed typo in deprecation notice</li>
<li><a href="https://github.com/chronotope/chrono/commit/26e231af33083852a0ada3f915985d5fbc654b7f"><code>26e231a</code></a> Bump version to 0.4.20-rc.1</li>
<li>Additional commits viewable in <a href="https://github.com/chronotope/chrono/compare/v0.4.19...v0.4.20">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.19&new-version=0.4.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"wasm-bindgen",
|
|
|
|
"windows-targets",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ciborium"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
|
|
|
|
dependencies = [
|
|
|
|
"ciborium-io",
|
|
|
|
"ciborium-ll",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ciborium-io"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ciborium-ll"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
|
|
|
|
dependencies = [
|
|
|
|
"ciborium-io",
|
|
|
|
"half",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap"
|
|
|
|
version = "4.4.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
|
|
|
|
dependencies = [
|
|
|
|
"clap_builder",
|
|
|
|
"clap_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_builder"
|
|
|
|
version = "4.4.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
|
|
|
|
dependencies = [
|
|
|
|
"anstream",
|
|
|
|
"anstyle",
|
|
|
|
"clap_lex",
|
|
|
|
"strsim",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_derive"
|
|
|
|
version = "4.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
|
|
|
|
dependencies = [
|
Removed some non-needed dependencies (#2246)
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
This Pull Request removes two dependencies that were not really needed, and fixes #2244 by no longer having the package in the dependency tree.
It changes the following:
- The `structopt` dependency in `boa_tester` has been replaced by `clap` v3, the same way as we did in `boa_cli`. This means that we have one less dependency (at least), and that `clap` v2 is only used as a dev-dependency by `criterion` (which will probably be removed in 0.4, as per https://github.com/bheisler/criterion.rs/issues/596).
- The no-longer-updated `num-format` dependency has been removed from `boa_tester`. We were only using it to add comma thousands separator on results, so I added a simple function to do it (not very performant, but it will only be used a few times when showing results).
Looking at this, I noticed a couple of things:
- The `csv` dependency, used by `criterion` has not been updated in more than a year, and it's using a very old `itoa` dependency. They updated the dependency in the repository in March, but unfortunately, the release is taking some more time than expected, and a tracking issue can be found here: https://github.com/BurntSushi/rust-csv/issues/271
- `cargo update` fails, because the latest update to `tinystr` in the ICU4x breaks ICU4x 0.6. I have reported this here: https://github.com/unicode-org/icu4x/issues/2428 and their recommendation is for us to use a beta version of the library, but I don't think we should go for that, since this is a semver breakage.
2 years ago
|
|
|
"heck",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_lex"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clipboard-win"
|
|
|
|
version = "4.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
|
|
|
|
dependencies = [
|
|
|
|
"error-code",
|
|
|
|
"str-buf",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cobs"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "color-eyre"
|
|
|
|
version = "0.6.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace",
|
|
|
|
"color-spantrace",
|
|
|
|
"eyre",
|
|
|
|
"indenter",
|
|
|
|
"once_cell",
|
|
|
|
"owo-colors",
|
|
|
|
"tracing-error",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "color-spantrace"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce"
|
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"owo-colors",
|
|
|
|
"tracing-core",
|
|
|
|
"tracing-error",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "colorchoice"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "colored"
|
|
|
|
version = "2.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
|
|
|
|
dependencies = [
|
|
|
|
"is-terminal",
|
|
|
|
"lazy_static",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "comfy-table"
|
|
|
|
version = "7.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b"
|
|
|
|
dependencies = [
|
|
|
|
"crossterm",
|
|
|
|
"strum",
|
|
|
|
"strum_macros",
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "concurrent-queue"
|
|
|
|
version = "2.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
|
|
|
|
dependencies = [
|
|
|
|
"crossbeam-utils",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "console_error_panic_hook"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"wasm-bindgen",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "core-foundation-sys"
|
|
|
|
version = "0.8.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "core_maths"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e3b02505ccb8c50b0aa21ace0fc08c3e53adebd4e58caa18a36152803c7709a3"
|
|
|
|
dependencies = [
|
|
|
|
"libm",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crc32fast"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "criterion"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
|
|
|
|
dependencies = [
|
|
|
|
"anes",
|
|
|
|
"cast",
|
|
|
|
"ciborium",
|
|
|
|
"clap",
|
|
|
|
"criterion-plot",
|
|
|
|
"is-terminal",
|
|
|
|
"itertools 0.10.5",
|
|
|
|
"num-traits",
|
|
|
|
"once_cell",
|
|
|
|
"oorandom",
|
|
|
|
"plotters",
|
|
|
|
"rayon",
|
|
|
|
"regex",
|
|
|
|
"serde",
|
|
|
|
"serde_derive",
|
|
|
|
"serde_json",
|
|
|
|
"tinytemplate",
|
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "criterion-plot"
|
|
|
|
version = "0.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
|
|
|
|
dependencies = [
|
|
|
|
"cast",
|
|
|
|
"itertools 0.10.5",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "critical-section"
|
|
|
|
version = "1.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-deque"
|
|
|
|
version = "0.8.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"crossbeam-epoch",
|
|
|
|
"crossbeam-utils",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-epoch"
|
|
|
|
version = "0.9.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"cfg-if",
|
|
|
|
"crossbeam-utils",
|
|
|
|
"memoffset",
|
|
|
|
"scopeguard",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-utils"
|
|
|
|
version = "0.8.16"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossterm"
|
|
|
|
version = "0.26.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"crossterm_winapi",
|
|
|
|
"libc",
|
|
|
|
"mio",
|
|
|
|
"parking_lot 0.12.1",
|
|
|
|
"signal-hook",
|
|
|
|
"signal-hook-mio",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossterm_winapi"
|
|
|
|
version = "0.9.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
|
|
|
|
dependencies = [
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "dashmap"
|
|
|
|
version = "5.5.3"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"hashbrown 0.14.1",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
"lock_api",
|
|
|
|
"once_cell",
|
|
|
|
"parking_lot_core 0.9.8",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "databake"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "959b676312ba1aaafb2219c475560082e6b20c3bc572ec1483f93cecd748cf3d"
|
|
|
|
dependencies = [
|
|
|
|
"databake-derive",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "databake-derive"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5f0694dfe255f1af0289d3d1b40787bb955e8603d96e96a6b14b225926e108fb"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"synstructure",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "deduplicating_array"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a636096586ca093a10ac0175bfb384d024089dca0dae54e3e69bc1c1596358e8"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "deranged"
|
|
|
|
version = "0.3.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "derive_arbitrary"
|
|
|
|
version = "1.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "dhat"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4f2aaf837aaf456f6706cb46386ba8dffd4013a757e36f4ea05c20dd46b209a3"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace",
|
|
|
|
"lazy_static",
|
|
|
|
"mintex",
|
|
|
|
"parking_lot 0.12.1",
|
|
|
|
"rustc-hash",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"thousands",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "displaydoc"
|
|
|
|
version = "0.2.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "either"
|
|
|
|
version = "1.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "elsa"
|
|
|
|
version = "1.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "714f766f3556b44e7e4776ad133fcc3445a489517c25c704ace411bb14790194"
|
|
|
|
dependencies = [
|
|
|
|
"stable_deref_trait",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "embedded-io"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "endian-type"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "equivalent"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "erased-serde"
|
|
|
|
version = "0.3.31"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "errno"
|
|
|
|
version = "0.3.4"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
dependencies = [
|
|
|
|
"errno-dragonfly",
|
|
|
|
"libc",
|
|
|
|
"windows-sys 0.48.0",
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "errno-dragonfly"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "error-code"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version = "2.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"str-buf",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "event-listener"
|
|
|
|
version = "2.5.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "eyre"
|
|
|
|
version = "0.6.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb"
|
|
|
|
dependencies = [
|
|
|
|
"indenter",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fast-float"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fastrand"
|
|
|
|
version = "1.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
|
|
|
|
dependencies = [
|
|
|
|
"instant",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fastrand"
|
|
|
|
version = "2.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fd-lock"
|
|
|
|
version = "3.0.13"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"rustix 0.38.17",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "fixed_decimal"
|
|
|
|
version = "0.5.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5287d527037d0f35c8801880361eb38bb9bce194805350052c2a79538388faeb"
|
|
|
|
dependencies = [
|
|
|
|
"displaydoc",
|
|
|
|
"ryu",
|
|
|
|
"smallvec",
|
|
|
|
"writeable",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "flate2"
|
|
|
|
version = "1.0.27"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
|
|
|
|
dependencies = [
|
|
|
|
"crc32fast",
|
|
|
|
"miniz_oxide",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "float-cmp"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "form_urlencoded"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
|
|
|
|
dependencies = [
|
|
|
|
"percent-encoding",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-core"
|
|
|
|
version = "0.3.28"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-io"
|
|
|
|
version = "0.3.28"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-lite"
|
|
|
|
version = "1.13.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
|
|
|
|
dependencies = [
|
|
|
|
"fastrand 1.9.0",
|
|
|
|
"futures-core",
|
|
|
|
"futures-io",
|
|
|
|
"memchr",
|
|
|
|
"parking",
|
|
|
|
"pin-project-lite",
|
|
|
|
"waker-fn",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-macro"
|
|
|
|
version = "0.3.28"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-task"
|
|
|
|
version = "0.3.28"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-util"
|
|
|
|
version = "0.3.28"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
|
|
|
|
dependencies = [
|
|
|
|
"futures-core",
|
|
|
|
"futures-macro",
|
|
|
|
"futures-task",
|
|
|
|
"pin-project-lite",
|
|
|
|
"pin-utils",
|
|
|
|
"slab",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "getrandom"
|
|
|
|
version = "0.2.10"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"js-sys",
|
|
|
|
"libc",
|
|
|
|
"wasi",
|
|
|
|
"wasm-bindgen",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "gimli"
|
|
|
|
version = "0.28.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "glob"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "half"
|
|
|
|
version = "1.8.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
|
|
|
version = "0.13.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
|
|
|
|
dependencies = [
|
|
|
|
"ahash",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
|
|
|
version = "0.14.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
|
|
|
|
dependencies = [
|
|
|
|
"ahash",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "heck"
|
|
|
|
version = "0.4.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "hermit-abi"
|
|
|
|
version = "0.3.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "home"
|
|
|
|
version = "0.5.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
|
|
|
|
dependencies = [
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone"
|
|
|
|
version = "0.1.57"
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"android_system_properties",
|
|
|
|
"core-foundation-sys",
|
|
|
|
"iana-time-zone-haiku",
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"js-sys",
|
|
|
|
"wasm-bindgen",
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
"windows",
|
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p>
<blockquote>
<p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p>
<ul>
<li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li>
<li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li>
</ul>
<p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p>
<ul>
<li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h1>ChangeLog for Chrono</h1>
<p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p>
<p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may
move previously-existing code behind a feature gate and put it behind a new feature. This new
feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent
breakage if you use <code>no-default-features</code>.</p>
<p>There were/are numerous minor versions before 1.0 due to the language changes.
Versions with only mechanical changes will be omitted from the following list.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/chronotope/chrono/commit/2d22e57b461e2dbb129fdb53f848be5b970fa49c"><code>2d22e57</code></a> Bump version number to 0.4.21</li>
<li><a href="https://github.com/chronotope/chrono/commit/557bcd5f44417aaa77b9e31018b0b103f8396ef1"><code>557bcd5</code></a> handle missing /etc/localtime on some unix platforms (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/5edf4d0cc77165e1d1926563579d138d9e04241a"><code>5edf4d0</code></a> fixes <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/758">#758</a> -- correctly document that %Y parses negative years (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>)</li>
<li><a href="https://github.com/chronotope/chrono/commit/a185d3bdfac0fca5fc0de4f392d7f22bfee8d486"><code>a185d3b</code></a> Remove unnecessary try_opt!() macro</li>
<li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.20...v0.4.21">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.20&new-version=0.4.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone-haiku"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_calendar"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b520c5675775e3838447c33fc55bf558148c6824ef0d20ff7a9e0df7345a281c"
|
|
|
|
dependencies = [
|
|
|
|
"calendrical_calculations",
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
"icu_locid",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"writeable",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_casemap"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "976068d7759293cbd9daa0d1669618bb9094c7ee54e546cd8b877dd4fe59007a"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_properties",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"writeable",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_codepointtrie_builder"
|
|
|
|
version = "0.3.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "872a3fcc14248bb28572e1340fc23c14c0bcc083d1660743a76c4121e7fcb859"
|
|
|
|
dependencies = [
|
|
|
|
"icu_collections",
|
|
|
|
"toml 0.5.11",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_collator"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2223603c703f1f6395206b2c0196b4cacc70f3ac4560f92c9386c1a416f92ef6"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_normalizer",
|
|
|
|
"icu_properties",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"smallvec",
|
|
|
|
"utf16_iter",
|
|
|
|
"utf8_iter",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_collections"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3907b2246e8dd5a29ead8a965e7c0c8a90e9b928e614a4279257d45c5e553e91"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"serde",
|
|
|
|
"yoke",
|
|
|
|
"zerofrom",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_datagen"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1cdad9848f19a7b00f64cd28bb8f16113f54212323c5be9f9da5238cbb6611b6"
|
|
|
|
dependencies = [
|
|
|
|
"displaydoc",
|
|
|
|
"elsa",
|
|
|
|
"icu_calendar",
|
|
|
|
"icu_casemap",
|
|
|
|
"icu_codepointtrie_builder",
|
|
|
|
"icu_collator",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_datetime",
|
|
|
|
"icu_decimal",
|
|
|
|
"icu_list",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_locid_transform",
|
|
|
|
"icu_normalizer",
|
|
|
|
"icu_plurals",
|
|
|
|
"icu_properties",
|
|
|
|
"icu_provider",
|
|
|
|
"icu_provider_adapters",
|
|
|
|
"icu_segmenter",
|
|
|
|
"icu_timezone",
|
|
|
|
"itertools 0.10.5",
|
|
|
|
"log",
|
|
|
|
"memchr",
|
|
|
|
"ndarray",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"serde-aux",
|
|
|
|
"serde_json",
|
|
|
|
"tinystr",
|
|
|
|
"toml 0.5.11",
|
|
|
|
"twox-hash",
|
|
|
|
"ureq",
|
|
|
|
"writeable",
|
|
|
|
"zerotrie",
|
|
|
|
"zerovec",
|
|
|
|
"zip",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_datetime"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5f5bf2e6dd961b59ee5935070220915db6cf0ab5137de362964f800c2b7d14fa"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"either",
|
|
|
|
"fixed_decimal",
|
|
|
|
"icu_calendar",
|
|
|
|
"icu_decimal",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_plurals",
|
|
|
|
"icu_provider",
|
|
|
|
"icu_timezone",
|
|
|
|
"litemap",
|
|
|
|
"serde",
|
|
|
|
"smallvec",
|
|
|
|
"tinystr",
|
|
|
|
"writeable",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_decimal"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1986a0b7df834aaddb911b4593c990950ac5606fc83ce9aad4311be80f51e81a"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"fixed_decimal",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"writeable",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_list"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dc1a44bbed77a7e7b555f9d7dd4b43f75ec1402b438a901d20451943d50cbd90"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"deduplicating_array",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_provider",
|
|
|
|
"regex-automata 0.2.0",
|
|
|
|
"serde",
|
|
|
|
"writeable",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_locid"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f284eb342dc49d3e9d9f3b188489d76b5d22dfb1d1a5e0d1941811253bac625c"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"litemap",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"writeable",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_locid_transform"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6551daf80882d8e68eee186cc19e132d8bde1b1f059a79b93384a5ca0e8fc5e7"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_locid_transform_data",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_locid_transform_data"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2a741eba5431f75eb2f1f9022d3cffabcadda6771e54fb4e77c8ba8653e4da44"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_normalizer"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "080fc33a720d50a7342b0c58df010fbcfb842d6f78ef81555f8b1ac6bba57d3c"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_normalizer_data",
|
|
|
|
"icu_properties",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"smallvec",
|
|
|
|
"utf16_iter",
|
|
|
|
"utf8_iter",
|
|
|
|
"write16",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_normalizer_data"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6f8d22f74066c2e6442db2a9aa14950278e86719e811e304e48bae03094b369d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_plurals"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "20556516b8be2b2f5dc3d6b23884b65c5c59ed8be0b44c419e4808c9b0792fce"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"fixed_decimal",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_properties"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3477ae70f8ca8dc08ff7574b5398ed0a2f2e4e6b66bdff2558a92ed67e262be1"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_locid_transform",
|
|
|
|
"icu_properties_data",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_properties_data"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7c8bb3b67a8347e94d580434369e5c7ee89999b9309d04b7cfc88dfaa0f31b59"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_provider"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "68acdef80034b5e35d8524e9817479d389a4f9774f3f0cbe1bf3884d80fd5934"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"erased-serde",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_provider_macros",
|
|
|
|
"log",
|
|
|
|
"postcard",
|
|
|
|
"serde",
|
|
|
|
"stable_deref_trait",
|
|
|
|
"tinystr",
|
|
|
|
"writeable",
|
|
|
|
"yoke",
|
|
|
|
"zerofrom",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_provider_adapters"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "36b380ef2d3d93b015cd0563d7e0d005cc07f82a5503716dbc191798d0079e1d"
|
|
|
|
dependencies = [
|
|
|
|
"icu_locid",
|
|
|
|
"icu_locid_transform",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_provider_blob"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c31326d28c7f95a964a4f0ee86c24002da5f6db907e3bcb079949b4ff103b6a9"
|
|
|
|
dependencies = [
|
|
|
|
"icu_provider",
|
|
|
|
"log",
|
|
|
|
"postcard",
|
|
|
|
"serde",
|
|
|
|
"writeable",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_provider_macros"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2060258edfcfe32ca7058849bf0f146cb5c59aadbedf480333c0d0002f97bc99"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_segmenter"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bcb3c1981ce2187a745f391a741cb14e77453325acb3b2e014b05da51c0a39f2"
|
|
|
|
dependencies = [
|
|
|
|
"core_maths",
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_collections",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"utf8_iter",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "icu_timezone"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "19e6401cd210ccda98b2e7fc707831b29c6efe319efbbec460f957b6f331f626"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"icu_calendar",
|
|
|
|
"icu_locid",
|
|
|
|
"icu_provider",
|
|
|
|
"serde",
|
|
|
|
"tinystr",
|
|
|
|
"zerotrie",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "idna"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-bidi",
|
|
|
|
"unicode-normalization",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "indenter"
|
|
|
|
version = "0.3.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "indexmap"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
|
|
|
|
dependencies = [
|
|
|
|
"equivalent",
|
|
|
|
"hashbrown 0.14.1",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "indoc"
|
|
|
|
version = "2.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "instant"
|
|
|
|
version = "0.1.12"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
]
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
[[package]]
|
|
|
|
name = "io-lifetimes"
|
|
|
|
version = "1.0.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
|
|
|
|
dependencies = [
|
|
|
|
"hermit-abi",
|
|
|
|
"libc",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "is-terminal"
|
|
|
|
version = "0.4.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
|
|
|
|
dependencies = [
|
|
|
|
"hermit-abi",
|
|
|
|
"rustix 0.38.17",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
|
|
|
version = "0.10.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "itoa"
|
|
|
|
version = "1.0.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "jemalloc-sys"
|
|
|
|
version = "0.5.4+5.3.0-patched"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "jemallocator"
|
|
|
|
version = "0.5.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc"
|
|
|
|
dependencies = [
|
|
|
|
"jemalloc-sys",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "js-sys"
|
|
|
|
version = "0.3.64"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
|
|
|
|
dependencies = [
|
|
|
|
"wasm-bindgen",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lazy_static"
|
|
|
|
version = "1.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "libc"
|
|
|
|
version = "0.2.148"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "libm"
|
|
|
|
version = "0.2.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
[[package]]
|
|
|
|
name = "linux-raw-sys"
|
|
|
|
version = "0.3.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "linux-raw-sys"
|
|
|
|
version = "0.4.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "litemap"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lock_api"
|
|
|
|
version = "0.4.10"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"scopeguard",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "log"
|
|
|
|
version = "0.4.20"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "matrixmultiply"
|
|
|
|
version = "0.3.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"rawpointer",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "measureme"
|
|
|
|
version = "10.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1930d162935fecd56fc4e0f6729eb3483bac1264542eb4ea31570b86a434b6bc"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"memmap2",
|
|
|
|
"parking_lot 0.11.2",
|
|
|
|
"perf-event-open-sys",
|
|
|
|
"rustc-hash",
|
|
|
|
"smallvec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "memchr"
|
|
|
|
version = "2.6.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "memmap2"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "memoffset"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "miniz_oxide"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
|
|
|
|
dependencies = [
|
|
|
|
"adler",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "mintex"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fd7c5ba1c3b5a23418d7bbf98c71c3d4946a0125002129231da8d6b723d559cb"
|
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"sys-info",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "mio"
|
|
|
|
version = "0.8.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"log",
|
|
|
|
"wasi",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ndarray"
|
|
|
|
version = "0.15.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
|
|
|
|
dependencies = [
|
|
|
|
"matrixmultiply",
|
|
|
|
"num-complex",
|
|
|
|
"num-integer",
|
|
|
|
"num-traits",
|
|
|
|
"rawpointer",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nibble_vec"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
|
|
|
|
dependencies = [
|
|
|
|
"smallvec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nix"
|
|
|
|
version = "0.26.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-bigint"
|
|
|
|
version = "0.4.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
|
|
|
|
dependencies = [
|
|
|
|
"arbitrary",
|
|
|
|
"autocfg",
|
|
|
|
"num-integer",
|
|
|
|
"num-traits",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-complex"
|
|
|
|
version = "0.4.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-integer"
|
|
|
|
version = "0.1.45"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
|
|
|
version = "0.2.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
]
|
|
|
|
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "num_enum"
|
|
|
|
version = "0.7.0"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
dependencies = [
|
|
|
|
"num_enum_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num_enum_derive"
|
|
|
|
version = "0.7.0"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
dependencies = [
|
|
|
|
"proc-macro-crate",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num_threads"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "object"
|
|
|
|
version = "0.32.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "once_cell"
|
|
|
|
version = "1.18.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
|
|
|
dependencies = [
|
|
|
|
"atomic-polyfill",
|
|
|
|
"critical-section",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "oorandom"
|
|
|
|
version = "11.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "owo-colors"
|
|
|
|
version = "3.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking"
|
|
|
|
version = "2.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot"
|
|
|
|
version = "0.11.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
|
|
|
|
dependencies = [
|
|
|
|
"instant",
|
|
|
|
"lock_api",
|
|
|
|
"parking_lot_core 0.8.6",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot"
|
|
|
|
version = "0.12.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
|
|
|
|
dependencies = [
|
|
|
|
"lock_api",
|
|
|
|
"parking_lot_core 0.9.8",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot_core"
|
|
|
|
version = "0.8.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"instant",
|
|
|
|
"libc",
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
"redox_syscall 0.2.16",
|
|
|
|
"smallvec",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot_core"
|
|
|
|
version = "0.9.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
"redox_syscall 0.3.5",
|
|
|
|
"smallvec",
|
|
|
|
"windows-targets",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "paste"
|
|
|
|
version = "1.0.14"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "percent-encoding"
|
|
|
|
version = "2.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "perf-event-open-sys"
|
|
|
|
version = "3.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b29be2ba35c12c6939f6bc73187f728bba82c3c062ecdc5fa90ea739282a1f58"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf"
|
|
|
|
version = "0.11.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
|
|
|
dependencies = [
|
|
|
|
"phf_macros",
|
|
|
|
"phf_shared",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_generator"
|
|
|
|
version = "0.11.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
|
|
|
dependencies = [
|
|
|
|
"phf_shared",
|
|
|
|
"rand",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_macros"
|
|
|
|
version = "0.11.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
|
|
|
dependencies = [
|
|
|
|
"phf_generator",
|
|
|
|
"phf_shared",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_shared"
|
|
|
|
version = "0.11.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
|
|
|
|
dependencies = [
|
|
|
|
"siphasher",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pin-project-lite"
|
|
|
|
version = "0.2.13"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pin-utils"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "piper"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
|
|
|
|
dependencies = [
|
|
|
|
"atomic-waker",
|
|
|
|
"fastrand 2.0.1",
|
|
|
|
"futures-io",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "plotters"
|
|
|
|
version = "0.3.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
"plotters-backend",
|
|
|
|
"plotters-svg",
|
|
|
|
"wasm-bindgen",
|
|
|
|
"web-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "plotters-backend"
|
|
|
|
version = "0.3.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "plotters-svg"
|
|
|
|
version = "0.3.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
|
|
|
|
dependencies = [
|
|
|
|
"plotters-backend",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polling"
|
|
|
|
version = "2.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"cfg-if",
|
|
|
|
"concurrent-queue",
|
|
|
|
"libc",
|
|
|
|
"log",
|
|
|
|
"pin-project-lite",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pollster"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "postcard"
|
|
|
|
version = "1.0.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8"
|
|
|
|
dependencies = [
|
|
|
|
"cobs",
|
|
|
|
"embedded-io",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ppv-lite86"
|
|
|
|
version = "0.2.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
|
|
|
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-crate"
|
|
|
|
version = "1.3.1"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"toml_edit 0.19.15",
|
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says:
> The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)).
Each possible Symbol value is unique and immutable.
Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique.
Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option.
This PR changes the following:
- Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`.
- ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`.
- Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads.
- Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices.
- Various improvements to all related code for this.
2 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro2"
|
|
|
|
version = "1.0.69"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
|
|
|
version = "1.0.33"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "radix_trie"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
|
|
|
|
dependencies = [
|
|
|
|
"endian-type",
|
|
|
|
"nibble_vec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
|
|
|
version = "0.8.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"rand_chacha",
|
|
|
|
"rand_core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_chacha"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
|
|
|
dependencies = [
|
|
|
|
"ppv-lite86",
|
|
|
|
"rand_core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_core"
|
|
|
|
version = "0.6.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
|
|
|
dependencies = [
|
|
|
|
"getrandom",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rawpointer"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rayon"
|
|
|
|
version = "1.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
"rayon-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rayon-core"
|
|
|
|
version = "1.12.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
|
|
|
|
dependencies = [
|
|
|
|
"crossbeam-deque",
|
|
|
|
"crossbeam-utils",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "redox_syscall"
|
|
|
|
version = "0.2.16"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
]
|
|
|
|
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "redox_syscall"
|
|
|
|
version = "0.3.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regex"
|
|
|
|
version = "1.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87"
|
|
|
|
dependencies = [
|
|
|
|
"aho-corasick",
|
|
|
|
"memchr",
|
|
|
|
"regex-automata 0.4.1",
|
|
|
|
"regex-syntax 0.8.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regex-automata"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
Bump regex from 1.7.3 to 1.8.0 (#2855)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.3 to 1.8.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p>
<blockquote>
<h1>1.8.0 (2023-04-20)</h1>
<p>This is a sizeable release that will be soon followed by another sizeable
release. Both of them will combined close over 40 existing issues and PRs.</p>
<p>This first release, despite its size, essentially represent preparatory work
for the second release, which will be even bigger. Namely, this release:</p>
<ul>
<li>Increases the MSRV to Rust 1.60.0, which was released about 1 year ago.</li>
<li>Upgrades its dependency on <code>aho-corasick</code> to the recently release 1.0
version.</li>
<li>Upgrades its dependency on <code>regex-syntax</code> to the simultaneously released
<code>0.7</code> version. The changes to <code>regex-syntax</code> principally revolve around a
rewrite of its literal extraction code and a number of simplifications and
optimizations to its high-level intermediate representation (HIR).</li>
</ul>
<p>The second release, which will follow ~shortly after the release above, will
contain a soup-to-nuts rewrite of every regex engine. This will be done by
bringing <a href="https://github.com/BurntSushi/regex-automata"><code>regex-automata</code></a> into
this repository, and then changing the <code>regex</code> crate to be nothing but an API
shim layer on top of <code>regex-automata</code>'s API.</p>
<p>These tandem releases are the culmination of about 3
years of on-and-off work that <a href="https://redirect.github.com/rust-lang/regex/issues/656">began in earnest in March
2020</a>.</p>
<p>Because of the scale of changes involved in these releases, I would love to
hear about your experience. Especially if you notice undocumented changes in
behavior or performance changes (positive <em>or</em> negative).</p>
<p>Most changes in the first release are listed below. For more details, please
see the commit log, which reflects a linear and decently documented history
of all changes.</p>
<p>New features:</p>
<ul>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/501">#501</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/501">rust-lang/regex#501</a>):
Permit many more characters to be escaped, even if they have no significance.
More specifically, any ASCII character except for <code>[0-9A-Za-z<>]</code> can now be
escaped. Also, a new routine, <code>is_escapeable_character</code>, has been added to
<code>regex-syntax</code> to query whether a character is escapeable or not.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/547">#547</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/547">rust-lang/regex#547</a>):
Add <code>Regex::captures_at</code>. This filles a hole in the API, but doesn't otherwise
introduce any new expressive power.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/595">#595</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/595">rust-lang/regex#595</a>):
Capture group names are now Unicode-aware. They can now begin with either a <code>_</code>
or any "alphabetic" codepoint. After the first codepoint, subsequent codepoints
can be any sequence of alpha-numeric codepoints, along with <code>_</code>, <code>.</code>, <code>[</code> and
<code>]</code>. Note that replacement syntax has not changed.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/810">#810</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/810">rust-lang/regex#810</a>):</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/rust-lang/regex/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.7.3&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"regex-syntax 0.6.29",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regex-automata"
|
|
|
|
version = "0.4.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b"
|
|
|
|
dependencies = [
|
|
|
|
"aho-corasick",
|
|
|
|
"memchr",
|
|
|
|
"regex-syntax 0.8.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regex-syntax"
|
|
|
|
version = "0.6.29"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
|
|
|
|
|
Bump regex from 1.7.3 to 1.8.0 (#2855)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.3 to 1.8.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p>
<blockquote>
<h1>1.8.0 (2023-04-20)</h1>
<p>This is a sizeable release that will be soon followed by another sizeable
release. Both of them will combined close over 40 existing issues and PRs.</p>
<p>This first release, despite its size, essentially represent preparatory work
for the second release, which will be even bigger. Namely, this release:</p>
<ul>
<li>Increases the MSRV to Rust 1.60.0, which was released about 1 year ago.</li>
<li>Upgrades its dependency on <code>aho-corasick</code> to the recently release 1.0
version.</li>
<li>Upgrades its dependency on <code>regex-syntax</code> to the simultaneously released
<code>0.7</code> version. The changes to <code>regex-syntax</code> principally revolve around a
rewrite of its literal extraction code and a number of simplifications and
optimizations to its high-level intermediate representation (HIR).</li>
</ul>
<p>The second release, which will follow ~shortly after the release above, will
contain a soup-to-nuts rewrite of every regex engine. This will be done by
bringing <a href="https://github.com/BurntSushi/regex-automata"><code>regex-automata</code></a> into
this repository, and then changing the <code>regex</code> crate to be nothing but an API
shim layer on top of <code>regex-automata</code>'s API.</p>
<p>These tandem releases are the culmination of about 3
years of on-and-off work that <a href="https://redirect.github.com/rust-lang/regex/issues/656">began in earnest in March
2020</a>.</p>
<p>Because of the scale of changes involved in these releases, I would love to
hear about your experience. Especially if you notice undocumented changes in
behavior or performance changes (positive <em>or</em> negative).</p>
<p>Most changes in the first release are listed below. For more details, please
see the commit log, which reflects a linear and decently documented history
of all changes.</p>
<p>New features:</p>
<ul>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/501">#501</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/501">rust-lang/regex#501</a>):
Permit many more characters to be escaped, even if they have no significance.
More specifically, any ASCII character except for <code>[0-9A-Za-z<>]</code> can now be
escaped. Also, a new routine, <code>is_escapeable_character</code>, has been added to
<code>regex-syntax</code> to query whether a character is escapeable or not.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/547">#547</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/547">rust-lang/regex#547</a>):
Add <code>Regex::captures_at</code>. This filles a hole in the API, but doesn't otherwise
introduce any new expressive power.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/595">#595</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/595">rust-lang/regex#595</a>):
Capture group names are now Unicode-aware. They can now begin with either a <code>_</code>
or any "alphabetic" codepoint. After the first codepoint, subsequent codepoints
can be any sequence of alpha-numeric codepoints, along with <code>_</code>, <code>.</code>, <code>[</code> and
<code>]</code>. Note that replacement syntax has not changed.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/810">#810</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/810">rust-lang/regex#810</a>):</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/rust-lang/regex/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.7.3&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "regex-syntax"
|
|
|
|
version = "0.8.0"
|
Bump regex from 1.7.3 to 1.8.0 (#2855)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.3 to 1.8.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p>
<blockquote>
<h1>1.8.0 (2023-04-20)</h1>
<p>This is a sizeable release that will be soon followed by another sizeable
release. Both of them will combined close over 40 existing issues and PRs.</p>
<p>This first release, despite its size, essentially represent preparatory work
for the second release, which will be even bigger. Namely, this release:</p>
<ul>
<li>Increases the MSRV to Rust 1.60.0, which was released about 1 year ago.</li>
<li>Upgrades its dependency on <code>aho-corasick</code> to the recently release 1.0
version.</li>
<li>Upgrades its dependency on <code>regex-syntax</code> to the simultaneously released
<code>0.7</code> version. The changes to <code>regex-syntax</code> principally revolve around a
rewrite of its literal extraction code and a number of simplifications and
optimizations to its high-level intermediate representation (HIR).</li>
</ul>
<p>The second release, which will follow ~shortly after the release above, will
contain a soup-to-nuts rewrite of every regex engine. This will be done by
bringing <a href="https://github.com/BurntSushi/regex-automata"><code>regex-automata</code></a> into
this repository, and then changing the <code>regex</code> crate to be nothing but an API
shim layer on top of <code>regex-automata</code>'s API.</p>
<p>These tandem releases are the culmination of about 3
years of on-and-off work that <a href="https://redirect.github.com/rust-lang/regex/issues/656">began in earnest in March
2020</a>.</p>
<p>Because of the scale of changes involved in these releases, I would love to
hear about your experience. Especially if you notice undocumented changes in
behavior or performance changes (positive <em>or</em> negative).</p>
<p>Most changes in the first release are listed below. For more details, please
see the commit log, which reflects a linear and decently documented history
of all changes.</p>
<p>New features:</p>
<ul>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/501">#501</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/501">rust-lang/regex#501</a>):
Permit many more characters to be escaped, even if they have no significance.
More specifically, any ASCII character except for <code>[0-9A-Za-z<>]</code> can now be
escaped. Also, a new routine, <code>is_escapeable_character</code>, has been added to
<code>regex-syntax</code> to query whether a character is escapeable or not.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/547">#547</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/547">rust-lang/regex#547</a>):
Add <code>Regex::captures_at</code>. This filles a hole in the API, but doesn't otherwise
introduce any new expressive power.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/595">#595</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/595">rust-lang/regex#595</a>):
Capture group names are now Unicode-aware. They can now begin with either a <code>_</code>
or any "alphabetic" codepoint. After the first codepoint, subsequent codepoints
can be any sequence of alpha-numeric codepoints, along with <code>_</code>, <code>.</code>, <code>[</code> and
<code>]</code>. Note that replacement syntax has not changed.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/810">#810</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/810">rust-lang/regex#810</a>):</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/rust-lang/regex/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.7.3&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d"
|
Bump regex from 1.7.3 to 1.8.0 (#2855)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.3 to 1.8.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p>
<blockquote>
<h1>1.8.0 (2023-04-20)</h1>
<p>This is a sizeable release that will be soon followed by another sizeable
release. Both of them will combined close over 40 existing issues and PRs.</p>
<p>This first release, despite its size, essentially represent preparatory work
for the second release, which will be even bigger. Namely, this release:</p>
<ul>
<li>Increases the MSRV to Rust 1.60.0, which was released about 1 year ago.</li>
<li>Upgrades its dependency on <code>aho-corasick</code> to the recently release 1.0
version.</li>
<li>Upgrades its dependency on <code>regex-syntax</code> to the simultaneously released
<code>0.7</code> version. The changes to <code>regex-syntax</code> principally revolve around a
rewrite of its literal extraction code and a number of simplifications and
optimizations to its high-level intermediate representation (HIR).</li>
</ul>
<p>The second release, which will follow ~shortly after the release above, will
contain a soup-to-nuts rewrite of every regex engine. This will be done by
bringing <a href="https://github.com/BurntSushi/regex-automata"><code>regex-automata</code></a> into
this repository, and then changing the <code>regex</code> crate to be nothing but an API
shim layer on top of <code>regex-automata</code>'s API.</p>
<p>These tandem releases are the culmination of about 3
years of on-and-off work that <a href="https://redirect.github.com/rust-lang/regex/issues/656">began in earnest in March
2020</a>.</p>
<p>Because of the scale of changes involved in these releases, I would love to
hear about your experience. Especially if you notice undocumented changes in
behavior or performance changes (positive <em>or</em> negative).</p>
<p>Most changes in the first release are listed below. For more details, please
see the commit log, which reflects a linear and decently documented history
of all changes.</p>
<p>New features:</p>
<ul>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/501">#501</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/501">rust-lang/regex#501</a>):
Permit many more characters to be escaped, even if they have no significance.
More specifically, any ASCII character except for <code>[0-9A-Za-z<>]</code> can now be
escaped. Also, a new routine, <code>is_escapeable_character</code>, has been added to
<code>regex-syntax</code> to query whether a character is escapeable or not.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/547">#547</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/547">rust-lang/regex#547</a>):
Add <code>Regex::captures_at</code>. This filles a hole in the API, but doesn't otherwise
introduce any new expressive power.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/595">#595</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/595">rust-lang/regex#595</a>):
Capture group names are now Unicode-aware. They can now begin with either a <code>_</code>
or any "alphabetic" codepoint. After the first codepoint, subsequent codepoints
can be any sequence of alpha-numeric codepoints, along with <code>_</code>, <code>.</code>, <code>[</code> and
<code>]</code>. Note that replacement syntax has not changed.</li>
<li>[FEATURE <a href="https://redirect.github.com/rust-lang/regex/issues/810">#810</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/810">rust-lang/regex#810</a>):</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/rust-lang/regex/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.7.3&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regress"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4ed9969cad8051328011596bf549629f1b800cf1731e7964b1eef8dfc480d2c2"
|
|
|
|
dependencies = [
|
|
|
|
"hashbrown 0.13.2",
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ring"
|
|
|
|
version = "0.16.20"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"once_cell",
|
|
|
|
"spin",
|
|
|
|
"untrusted",
|
|
|
|
"web-sys",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustc-demangle"
|
|
|
|
version = "0.1.23"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustc-hash"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
[[package]]
|
|
|
|
name = "rustix"
|
|
|
|
version = "0.37.24"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4279d76516df406a8bd37e7dff53fd37d1a093f997a3c34a5c21658c126db06d"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
"errno",
|
|
|
|
"io-lifetimes",
|
|
|
|
"libc",
|
|
|
|
"linux-raw-sys 0.3.8",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustix"
|
|
|
|
version = "0.38.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f25469e9ae0f3d0047ca8b93fc56843f38e6774f0914a107ff8b41be8be8e0b7"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"errno",
|
|
|
|
"libc",
|
|
|
|
"linux-raw-sys 0.4.8",
|
|
|
|
"windows-sys 0.48.0",
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustls"
|
|
|
|
version = "0.21.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"ring",
|
|
|
|
"rustls-webpki",
|
|
|
|
"sct",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustls-webpki"
|
|
|
|
version = "0.101.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe"
|
|
|
|
dependencies = [
|
|
|
|
"ring",
|
|
|
|
"untrusted",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustversion"
|
|
|
|
version = "1.0.14"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustyline"
|
|
|
|
version = "12.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.4.0",
|
|
|
|
"cfg-if",
|
|
|
|
"clipboard-win",
|
|
|
|
"fd-lock",
|
|
|
|
"home",
|
|
|
|
"libc",
|
|
|
|
"log",
|
|
|
|
"memchr",
|
|
|
|
"nix",
|
|
|
|
"radix_trie",
|
|
|
|
"rustyline-derive",
|
|
|
|
"scopeguard",
|
|
|
|
"unicode-segmentation",
|
|
|
|
"unicode-width",
|
|
|
|
"utf8parse",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rustyline-derive"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5a32af5427251d2e4be14fc151eabe18abb4a7aad5efee7044da9f096c906a43"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ryu"
|
|
|
|
version = "1.0.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ryu-js"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4950d85bc52415f8432144c97c4791bd0c4f7954de32a7270ee9cccd3c22b12b"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "same-file"
|
|
|
|
version = "1.0.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
|
|
|
dependencies = [
|
|
|
|
"winapi-util",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "scopeguard"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sct"
|
|
|
|
version = "0.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
|
|
|
|
dependencies = [
|
|
|
|
"ring",
|
|
|
|
"untrusted",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde"
|
|
|
|
version = "1.0.189"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
|
|
|
|
dependencies = [
|
|
|
|
"serde_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde-aux"
|
|
|
|
version = "4.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c3dfe1b7eb6f9dcf011bd6fad169cdeaae75eda0d61b1a99a3f015b41b0cae39"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_derive"
|
|
|
|
version = "1.0.189"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_json"
|
|
|
|
version = "1.0.107"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
|
|
|
|
dependencies = [
|
|
|
|
"itoa",
|
|
|
|
"ryu",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_repr"
|
|
|
|
version = "0.1.16"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_spanned"
|
|
|
|
version = "0.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_yaml"
|
|
|
|
version = "0.9.25"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
|
|
|
|
dependencies = [
|
|
|
|
"indexmap",
|
|
|
|
"itoa",
|
|
|
|
"ryu",
|
|
|
|
"serde",
|
Bump serde_yaml from 0.8.26 to 0.9.0 (#2207)
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.26 to 0.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's releases</a>.</em></p>
<blockquote>
<h2>0.9.0</h2>
<p><em>API documentation: <a href="https://docs.rs/serde_yaml/0.9">https://docs.rs/serde_yaml/0.9</a></em></p>
<h3>Highlights</h3>
<ul>
<li>
<p>The <code>serde_yaml::Value</code> enum gains a <code>Tagged</code> variant which represents the deserialization of YAML's <code>!Tag</code> syntax. Tagged scalars, sequences, and mappings are all supported.</p>
</li>
<li>
<p>An empty YAML input (or document containing only comments) will deserialize successfully to an empty map, empty sequence, or Serde struct as long as the struct has only optional fields. Previously this would error.</p>
</li>
<li>
<p>A new <code>.apply_merge()</code> method on <code>Value</code> implements YAML's <code><<</code> merge key convention.</p>
</li>
<li>
<p>The <code>Debug</code> representation of <code>serde_yaml::Value</code> has gotten vastly better (<a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/pull/287">dtolnay/serde-yaml#287</a>).</p>
</li>
<li>
<p>Deserialization of borrowed strings now works.</p>
<pre lang="rust"><code>#[derive(Deserialize, Debug)]
struct Struct<'a> {
borrowed: &'a str,
}
<p>let yaml = "borrowed: 'kölcsönzött'\n";
let value: Struct = serde_yaml::from_str(yaml)?;
println!("{:#?}", value);
</code></pre></p>
</li>
<li>
<p><code>Value</code>'s and <code>Mapping</code>'s methods <code>get</code> and <code>get_mut</code> have been generalized to support a &str argument, as opposed to requiring you to allocate and construct a <code>Value::String</code> for indexing into another existing <code>Value</code>.</p>
</li>
<li>
<p><code>Mapping</code> exposes more APIs that have become conventional on map data structures, such as <code>.keys()</code>, <code>.values()</code>, <code>.into_keys()</code>, <code>.into_values()</code>, <code>.values_mut()</code>, and <code>.retain(|k, v| …)</code>.</p>
</li>
</ul>
<h3>Breaking changes</h3>
<ul>
<li>
<p>Serialization no longer produces leading <code>---\n</code> on the serialized output. You can prepend this yourself if your use case demands it.</p>
</li>
<li>
<p>Serialization of enum variants is now based on YAML's <code>!Tag</code> syntax, rather than JSON-style singleton maps.</p>
<pre lang="rust"><code>#[derive(Serialize, Deserialize)]
enum Enum {
Newtype(usize),
Tuple(usize, usize, usize),
Struct { x: f64, y: f64 },
}
</code></pre>
<pre lang="yaml"><code>- !Newtype 1
- !Tuple [0, 0, 0]
- !Struct {x: 1.0, y: 2.0}
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/4167a958bb3c3f0c96028a72889e144d483cec3c"><code>4167a95</code></a> Release 0.9.0</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/f2ef1422d738436a0ae5e0b5d97da416e576fb00"><code>f2ef142</code></a> Update readme to cover enums</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/040f0a0d7006a67aa9c30a0fde6d91b35c62af86"><code>040f0a0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/291">#291</a> from dtolnay/tovec</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/2c0c5f2f2122b50cc712b74d4696bcf0e5d86d44"><code>2c0c5f2</code></a> Remove serde_yaml::to_vec</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/d9f74428d5720d0cf5b72ad1ca490e3e135982fb"><code>d9f7442</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/290">#290</a> from dtolnay/seed</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/ec88cd79655901b9c8510969fa38acb36069ad86"><code>ec88cd7</code></a> Remove seed module and functions</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/33caf060eac7d71cfaa0bae70efa44228c05d6e8"><code>33caf06</code></a> Document Value::Tagged</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/895ddf9ac99f2b1333582e0dd1396ca79d874a8a"><code>895ddf9</code></a> Document enum representations</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/728df48d8229c7eeeaa3b39c0faad65ccf027315"><code>728df48</code></a> Improve more Debug representations</li>
<li><a href="https://github.com/dtolnay/serde-yaml/commit/92a9bdb56348a7cbd137721f6035c10418d8cf90"><code>92a9bdb</code></a> Support unit variant nested inside another enum</li>
<li>Additional commits viewable in <a href="https://github.com/dtolnay/serde-yaml/compare/0.8.26...0.9.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_yaml&package-manager=cargo&previous-version=0.8.26&new-version=0.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
2 years ago
|
|
|
"unsafe-libyaml",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sharded-slab"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
|
|
|
|
dependencies = [
|
|
|
|
"lazy_static",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook"
|
|
|
|
version = "0.3.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"signal-hook-registry",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-mio"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"mio",
|
|
|
|
"signal-hook",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-registry"
|
|
|
|
version = "1.4.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "simple_logger"
|
|
|
|
version = "4.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2230cd5c29b815c9b699fb610b49a5ed65588f3509d9f0108be3a885da629333"
|
|
|
|
dependencies = [
|
|
|
|
"colored",
|
|
|
|
"log",
|
|
|
|
"time",
|
|
|
|
"windows-sys 0.42.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "siphasher"
|
|
|
|
version = "0.3.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "slab"
|
|
|
|
version = "0.4.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "smallvec"
|
|
|
|
version = "1.11.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "smawk"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "smol"
|
|
|
|
version = "1.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
|
|
|
|
dependencies = [
|
|
|
|
"async-channel",
|
|
|
|
"async-executor",
|
|
|
|
"async-fs",
|
|
|
|
"async-io",
|
|
|
|
"async-lock",
|
|
|
|
"async-net",
|
|
|
|
"async-process",
|
|
|
|
"blocking",
|
|
|
|
"futures-lite",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "socket2"
|
|
|
|
version = "0.4.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "spin"
|
|
|
|
version = "0.5.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sptr"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "stable_deref_trait"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "static_assertions"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "str-buf"
|
|
|
|
version = "1.0.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "strsim"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "strum"
|
|
|
|
version = "0.24.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "strum_macros"
|
|
|
|
version = "0.24.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
|
|
|
|
dependencies = [
|
|
|
|
"heck",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"rustversion",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
|
|
|
version = "1.0.109"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
|
|
|
version = "2.0.38"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "synstructure"
|
|
|
|
version = "0.13.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"unicode-xid",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sys-info"
|
|
|
|
version = "0.9.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sys-locale"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tap"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "termcolor"
|
|
|
|
version = "1.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
|
|
|
|
dependencies = [
|
|
|
|
"winapi-util",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "textwrap"
|
|
|
|
version = "0.16.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
|
|
|
|
dependencies = [
|
|
|
|
"smawk",
|
|
|
|
"unicode-linebreak",
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thin-vec"
|
|
|
|
version = "0.2.12"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "aac81b6fd6beb5884b0cf3321b8117e6e5d47ecb6fc89f414cfdcca8b2fe2dd8"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thiserror"
|
|
|
|
version = "1.0.49"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
|
|
|
|
dependencies = [
|
|
|
|
"thiserror-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thiserror-impl"
|
|
|
|
version = "1.0.49"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thousands"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thread_local"
|
|
|
|
version = "1.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "time"
|
|
|
|
version = "0.3.29"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
|
|
|
|
dependencies = [
|
|
|
|
"deranged",
|
|
|
|
"itoa",
|
|
|
|
"libc",
|
|
|
|
"num_threads",
|
|
|
|
"serde",
|
|
|
|
"time-core",
|
|
|
|
"time-macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "time-core"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "time-macros"
|
|
|
|
version = "0.2.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
|
|
|
|
dependencies = [
|
|
|
|
"time-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinystr"
|
|
|
|
version = "0.7.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d5d0e245e80bdc9b4e5356fc45a72184abbc3861992603f515270e9340f5a219"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
"displaydoc",
|
|
|
|
"serde",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinytemplate"
|
|
|
|
version = "1.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinyvec"
|
|
|
|
version = "1.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
|
|
|
|
dependencies = [
|
|
|
|
"tinyvec_macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinyvec_macros"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
|
|
|
version = "0.5.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
|
|
|
version = "0.8.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
|
|
|
"toml_edit 0.20.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_datetime"
|
|
|
|
version = "0.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
|
|
|
version = "0.19.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
|
|
|
|
dependencies = [
|
|
|
|
"indexmap",
|
|
|
|
"toml_datetime",
|
|
|
|
"winnow",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
|
|
|
version = "0.20.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
|
|
|
|
dependencies = [
|
|
|
|
"indexmap",
|
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
|
|
|
"winnow",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing"
|
|
|
|
version = "0.1.37"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"pin-project-lite",
|
|
|
|
"tracing-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing-core"
|
|
|
|
version = "0.1.31"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
|
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"valuable",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing-error"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
|
|
|
|
dependencies = [
|
|
|
|
"tracing",
|
|
|
|
"tracing-subscriber",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing-subscriber"
|
|
|
|
version = "0.3.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
|
|
|
|
dependencies = [
|
|
|
|
"sharded-slab",
|
|
|
|
"thread_local",
|
|
|
|
"tracing-core",
|
|
|
|
]
|
|
|
|
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "trybuild"
|
|
|
|
version = "1.0.85"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"basic-toml",
|
|
|
|
"glob",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"serde_derive",
|
|
|
|
"serde_json",
|
|
|
|
"termcolor",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "twox-hash"
|
|
|
|
version = "1.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-bidi"
|
|
|
|
version = "0.3.13"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-ident"
|
|
|
|
version = "1.0.12"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-linebreak"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-normalization"
|
|
|
|
version = "0.1.22"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
|
|
|
dependencies = [
|
|
|
|
"tinyvec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-segmentation"
|
|
|
|
version = "1.10.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-width"
|
|
|
|
version = "0.1.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
|
|
|
version = "0.2.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unsafe-libyaml"
|
|
|
|
version = "0.2.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "untrusted"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ureq"
|
|
|
|
version = "2.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3"
|
|
|
|
dependencies = [
|
|
|
|
"base64",
|
|
|
|
"flate2",
|
|
|
|
"log",
|
|
|
|
"once_cell",
|
|
|
|
"rustls",
|
|
|
|
"rustls-webpki",
|
|
|
|
"url",
|
|
|
|
"webpki-roots",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "url"
|
|
|
|
version = "2.4.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
|
|
|
|
dependencies = [
|
|
|
|
"form_urlencoded",
|
|
|
|
"idna",
|
|
|
|
"percent-encoding",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "utf16_iter"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "52df8b7fb78e7910d776fccf2e42ceaf3604d55e8e7eb2dbd183cb1441d8a692"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "utf8_iter"
|
|
|
|
version = "1.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "utf8parse"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "valuable"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "version_check"
|
|
|
|
version = "0.9.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "waker-fn"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "walkdir"
|
|
|
|
version = "2.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
|
|
|
|
dependencies = [
|
|
|
|
"same-file",
|
|
|
|
"winapi-util",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasi"
|
|
|
|
version = "0.11.0+wasi-snapshot-preview1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen"
|
|
|
|
version = "0.2.87"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"wasm-bindgen-macro",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-backend"
|
|
|
|
version = "0.2.87"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
|
|
|
|
dependencies = [
|
|
|
|
"bumpalo",
|
|
|
|
"log",
|
|
|
|
"once_cell",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"wasm-bindgen-shared",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro"
|
|
|
|
version = "0.2.87"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
|
|
|
|
dependencies = [
|
|
|
|
"quote",
|
|
|
|
"wasm-bindgen-macro-support",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro-support"
|
|
|
|
version = "0.2.87"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"wasm-bindgen-backend",
|
|
|
|
"wasm-bindgen-shared",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-shared"
|
|
|
|
version = "0.2.87"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "web-sys"
|
|
|
|
version = "0.3.64"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
|
|
|
|
dependencies = [
|
|
|
|
"js-sys",
|
|
|
|
"wasm-bindgen",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "webpki-roots"
|
|
|
|
version = "0.25.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winapi"
|
|
|
|
version = "0.3.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
|
|
|
dependencies = [
|
|
|
|
"winapi-i686-pc-windows-gnu",
|
|
|
|
"winapi-x86_64-pc-windows-gnu",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winapi-i686-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winapi-util"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
|
|
|
dependencies = [
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winapi-x86_64-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
|
|
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
|
|
|
version = "0.48.0"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
dependencies = [
|
|
|
|
"windows-targets",
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.42.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
|
|
|
|
dependencies = [
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
"windows_aarch64_gnullvm 0.42.2",
|
|
|
|
"windows_aarch64_msvc 0.42.2",
|
|
|
|
"windows_i686_gnu 0.42.2",
|
|
|
|
"windows_i686_msvc 0.42.2",
|
|
|
|
"windows_x86_64_gnu 0.42.2",
|
Initial version of a JS -> Rust conversion trait. (#2276)
This Pull Request closes #1975. It's still a work in progress, but tries to go in that direction.
It changes the following:
- Adds a new `TryFromJs` trait, that can be derived using a new `boa_derive` crate.
- Adds a new `try_js_into()` function that, similarly to the standard library `TryInto` trait
Things to think about:
- Should the `boa_derive` crate be re-exported in `boa_engine` using a `derive` feature, similar to how it's done in `serde`?
- The current implementation only converts perfectly valid values. So, if we try to convert a big integer into an `i8`, or any floating point number to an `f32`. So, you cannot derive `TryFromJs` for structures that contain an `f32` for example (you can still manually implement the trait, though, and decide in favour of a loss of precision). Should we also provide some traits for transparent loss of precision?
- Currently, you cannot convert between types, so if the JS struct has an integer, you cannot cast it to a boolean, for example. Should we provide a `TryConvertJs` trait, for example to force conversions?
- Currently we only have basic types and object conversions. Should add `Array` to `Vec` conversion, for example, right? Should we also add `TypedArray` conversions? What about `Map` and `Set`? Does this step over the fine grained APIs that we were creating?
Note that this still requires a bunch of documentation, tests, and validation from the dev team and from the users that requested this feature. I'm particularly interested in @lastmjs's thoughts on this API.
I already added an usage example in `boa_examples/src/bin/derive.rs`.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
2 years ago
|
|
|
"windows_x86_64_gnullvm 0.42.2",
|
|
|
|
"windows_x86_64_msvc 0.42.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.48.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
|
|
|
dependencies = [
|
|
|
|
"windows-targets",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
|
|
|
dependencies = [
|
|
|
|
"windows_aarch64_gnullvm 0.48.5",
|
|
|
|
"windows_aarch64_msvc 0.48.5",
|
|
|
|
"windows_i686_gnu 0.48.5",
|
|
|
|
"windows_i686_msvc 0.48.5",
|
|
|
|
"windows_x86_64_gnu 0.48.5",
|
|
|
|
"windows_x86_64_gnullvm 0.48.5",
|
|
|
|
"windows_x86_64_msvc 0.48.5",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
|
|
|
version = "0.42.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
|
|
|
version = "0.48.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winnow"
|
|
|
|
version = "0.5.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "write16"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "writeable"
|
|
|
|
version = "0.5.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c0af0c3d13faebf8dda0b5256fa7096a2d5ccb662f7b9f54a40fe201077ab1c2"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "yoke"
|
|
|
|
version = "0.7.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "61e38c508604d6bbbd292dadb3c02559aa7fff6b654a078a36217cad871636e4"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"stable_deref_trait",
|
|
|
|
"yoke-derive",
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
"zerofrom",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "yoke-derive"
|
|
|
|
version = "0.7.2"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d5e19fb6ed40002bab5403ffa37e53e0e56f914a4450c8765f533018db1db35f"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"synstructure",
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerofrom"
|
|
|
|
version = "0.1.3"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
dependencies = [
|
|
|
|
"zerofrom-derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerofrom-derive"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
"synstructure",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerotrie"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9685bb4deb98dab812e87c296a9631fc00d7ca4bc5c2c5f304f375bbed711a8a"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"displaydoc",
|
|
|
|
"litemap",
|
|
|
|
"serde",
|
|
|
|
"yoke",
|
|
|
|
"zerofrom",
|
|
|
|
"zerovec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerovec"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1194130c5b155bf8ae50ab16c86ab758cd695cf9ad176d2f870b744cbdbb572e"
|
|
|
|
dependencies = [
|
|
|
|
"databake",
|
|
|
|
"serde",
|
|
|
|
"yoke",
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
"zerofrom",
|
|
|
|
"zerovec-derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerovec-derive"
|
|
|
|
version = "0.10.0"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "acabf549809064225ff8878baedc4ce3732ac3b07e7c7ce6e5c2ccdbc485c324"
|
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p>
<blockquote>
<h2>ICU4X 0.5.0 (January 31, 2022)</h2>
<p>ICU4X 0.5.0 is our major winter release. Key changes:</p>
<ol>
<li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li>
<li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li>
<li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li>
</ol>
<p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p>
<p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p>
<blockquote>
<h2>icu4x 0.5.0 (Jan 31, 2022)</h2>
<ul>
<li>General data model
<ul>
<li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li>
<li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li>
<li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li>
<li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li>
<li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li>
<li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li>
</ul>
</li>
<li>Components
<ul>
<li><code>calendar</code>:
<ul>
<li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li>
<li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li>
<li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li>
</ul>
</li>
<li><code>datetime</code>:
<ul>
<li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li>
<li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li>
<li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li>
<li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li>
<li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li>
<li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li>
</ul>
</li>
<li><code>decimal</code>: No updates</li>
<li><code>locale_canonicalizer</code>:
<ul>
<li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li>
<li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li>
</ul>
</li>
<li><code>locid</code>: No updates</li>
<li><code>plurals</code>:
<ul>
<li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li>
</ul>
</li>
<li><code>properties</code>:
<ul>
<li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li>
<li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li>
<li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li>
<li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li>
<li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li>
<li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Utilities
<ul>
<li><code>codepointtrie</code>: No changes</li>
<li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li>
<li><code>fixed_decimal</code>:
<ul>
<li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li>
<li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li>
<li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li>
</ul>
</li>
<li><code>litemap</code>:
<ul>
<li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li>
<li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li>
</ul>
</li>
<li><code>pattern</code>: No updates</li>
<li><code>uniset</code>: No updates</li>
<li><code>writeable</code>:
<ul>
<li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li>
<li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Co-authored-by: jedel1043 <jedel0124@gmail.com>
3 years ago
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.38",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zip"
|
|
|
|
version = "0.6.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
|
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
"crc32fast",
|
|
|
|
"crossbeam-utils",
|
|
|
|
"flate2",
|
|
|
|
]
|