Commit graph

219 commits

Author SHA1 Message Date
Boshen
09386013d2
Release oxc_resolver v0.3.0 2023-10-08 19:20:24 +08:00
Boshen
55b2f031df
feat(minifier): partially re-enable minifier (#963)
closes #949
closes #950
closes #951

All minifier tests are disable from this PR.

We are going to fix the compilation errors first, then the behavioral
errors.
2023-10-08 11:06:42 +08:00
dependabot[bot]
9fcb3ce725
chore(deps): bump the dependencies group with 3 updates (#956) 2023-10-03 18:14:27 +13:00
Boshen
74160ac3d7
deps(rust): bump deps 2023-09-29 23:57:43 +13:00
dependabot[bot]
0b02cb7da9
chore(deps): bump the dependencies group with 3 updates (#936)
Bumps the dependencies group with 3 updates:
[rayon](https://github.com/rayon-rs/rayon),
[insta](https://github.com/mitsuhiko/insta) and
[unicode-width](https://github.com/unicode-rs/unicode-width).

Updates `rayon` from 1.7.0 to 1.8.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rayon-rs/rayon/blob/master/RELEASES.md">rayon's
changelog</a>.</em></p>
<blockquote>
<h1>Release rayon 1.8.0 / rayon-core 1.12.0 (2023-09-20)</h1>
<ul>
<li>The minimum supported <code>rustc</code> is now 1.63.</li>
<li>Added <code>ThreadPoolBuilder::use_current_thread</code> to use the
builder thread as
part of the new thread pool. That thread does not run the pool's main
loop,
but it may participate in work-stealing if it yields to rayon in some
way.</li>
<li>Implemented <code>FromParallelIterator&lt;T&gt;</code> for
<code>Box&lt;[T]&gt;</code>, <code>Rc&lt;[T]&gt;</code>, and
<code>Arc&lt;[T]&gt;</code>, as well as
<code>FromParallelIterator&lt;Box&lt;str&gt;&gt;</code> and
<code>ParallelExtend&lt;Box&lt;str&gt;&gt;</code> for
<code>String</code>.</li>
<li><code>ThreadPoolBuilder::build_scoped</code> now uses
<code>std:🧵:scope</code>.</li>
<li>The default number of threads is now determined using
<code>std:🧵:available_parallelism</code> instead of the
<code>num_cpus</code> crate.</li>
<li>The internal logging facility has been removed, reducing bloat for
all users.</li>
<li>Many smaller performance tweaks and documentation updates.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="21e1ae1e12"><code>21e1ae1</code></a>
Release rayon 1.4.0 / rayon-core 1.8.0</li>
<li><a
href="a0e5833b76"><code>a0e5833</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/785">#785</a> <a
href="https://redirect.github.com/rayon-rs/rayon/issues/790">#790</a> <a
href="https://redirect.github.com/rayon-rs/rayon/issues/791">#791</a></li>
<li><a
href="9f7357befb"><code>9f7357b</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/792">#792</a></li>
<li><a
href="998f134242"><code>998f134</code></a>
Removed outdated documentation</li>
<li><a
href="c7d963a9c2"><code>c7d963a</code></a>
Use crossbeam_deque::Injector instead of crossbeam_queue::SegQueue</li>
<li><a
href="2e889293a8"><code>2e88929</code></a>
Micro-optimize the WorkerThread::steal loop</li>
<li><a
href="66559fe9ce"><code>66559fe</code></a>
Remove the lifetime constraint from the scope OP</li>
<li><a
href="09428ec11d"><code>09428ec</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/746">#746</a></li>
<li><a
href="ed6a5f75c4"><code>ed6a5f7</code></a>
Update ci/compat-Cargo.lock</li>
<li><a
href="96ba9ef188"><code>96ba9ef</code></a>
inline more Counter methods</li>
<li>Additional commits viewable in <a
href="https://github.com/rayon-rs/rayon/compare/rayon-core-v1.7.0...rayon-core-v1.8.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `insta` from 1.31.0 to 1.32.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md">insta's
changelog</a>.</em></p>
<blockquote>
<h2>1.32.0</h2>
<ul>
<li>Added <code>--profile</code> parameter support to <code>cargo insta
test</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="845ee36cf4"><code>845ee36</code></a>
1.32.0</li>
<li><a
href="5b34e7eaad"><code>5b34e7e</code></a>
Added changlog entry</li>
<li><a
href="bee0ff41af"><code>bee0ff4</code></a>
cargo-insta: reduce visibility of all items (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/407">#407</a>)</li>
<li><a
href="6e22d67092"><code>6e22d67</code></a>
cargo-insta: edit reject message (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/404">#404</a>)</li>
<li><a
href="7e9315ede7"><code>7e9315e</code></a>
test-stable requires 1.61</li>
<li><a
href="84cddf9c70"><code>84cddf9</code></a>
Fix incorrect --profile command</li>
<li><a
href="20656ad902"><code>20656ad</code></a>
cargo-insta: allow passing --profile (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/402">#402</a>)</li>
<li>See full diff in <a
href="https://github.com/mitsuhiko/insta/compare/1.31.0...1.32.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `unicode-width` from 0.1.10 to 0.1.11
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8942487195"><code>8942487</code></a>
Publish 0.1.11 (Unicode 15.1)</li>
<li><a
href="34fdd6b66e"><code>34fdd6b</code></a>
Add ignore file</li>
<li><a
href="24651a204d"><code>24651a2</code></a>
Merge pull request <a
href="https://redirect.github.com/unicode-rs/unicode-width/issues/33">#33</a>
from chrisduerr/unicode_15_1</li>
<li><a
href="30e33bdb2c"><code>30e33bd</code></a>
Fixup script</li>
<li><a
href="8872449ab3"><code>8872449</code></a>
Create rust.yml</li>
<li><a
href="a859939f91"><code>a859939</code></a>
Update to Unicode 15.1</li>
<li><a
href="f5a9b4efa5"><code>f5a9b4e</code></a>
Merge pull request <a
href="https://redirect.github.com/unicode-rs/unicode-width/issues/32">#32</a>
from linkmauve/patch-1</li>
<li><a
href="78cfe571e0"><code>78cfe57</code></a>
Use Iterator::sum() instead of fold()</li>
<li>See full diff in <a
href="https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11">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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 23:38:30 -04:00
Boshen
46d2623c1f
feat(transform_conformance): add jsx and ts tests 2023-09-18 15:35:02 +08:00
dependabot[bot]
9c259a4ddf
chore(deps): bump the dependencies group with 3 updates (#929) 2023-09-18 15:33:02 +08:00
Boshen
7172953fe9
feat(transformer_conformance): snapshot passed and failed tests (#921) 2023-09-16 20:58:31 +08:00
Boshen
f4cea34534
feat(transformer): add babel conformance test suite (#920) 2023-09-16 18:50:51 +08:00
Boshen
540fa03ec0
feat(benchmark): add transformer benchmark (#919) 2023-09-16 17:09:27 +08:00
Boshen
419d5aa6ee
feat(transformer): transformer prototype (#918)
This PR introduces the oxc transformer.

The code is purposely arranged without any Rust trickery such as traits
and macros.
I intend to keep the code style this way until something blows up.

The next steps are:
* unit tests
* conformance tests with TypeScript and Babel
* benchmarks
2023-09-16 16:05:35 +08:00
Boshen
ceeee5909b
Remove HIR (#917)
closes #273
closes #814

HIR is removed from this PR, with the minifier being commented out.

HIR is a wonderful idea for compiling to lower languages, but after
sitting on it for a few months I found that it only adds confusion and
uncertainties to both myself and future contributors.

It also adds too much burden to maintainers if we plan to support more
downstream tools.

1 AST is the only way.
2023-09-15 23:48:32 +08:00
Boshen
38bbc96fb0
Release oxc v0.2.0 2023-09-14 23:41:44 +08:00
dependabot[bot]
e174c2f555
chore(deps): bump the dependencies group with 5 updates (#908) 2023-09-14 16:15:50 +08:00
Boshen
242c698d78
Release oxc_resolver v0.2.0 2023-09-14 15:36:41 +08:00
Boshen
4faf3c7976
feat(resolver): add more tracing events to resolver (#907) 2023-09-14 15:34:51 +08:00
Boshen
38aa3205b4
deps: remove default-features from codspeed-criterion-compat 2023-09-11 18:59:30 +08:00
dependabot[bot]
9204c19dab
chore(deps): bump the dependencies group with 4 updates (#893) 2023-09-11 18:53:29 +08:00
Don Isaac
027a67d94c
feat(minifier): constant addition expression folding (#882)
Fold constant addition expressions. Handles string concatenation and
addition, both with implicit casting.

For example,
```ts
let x = 1 + 1
let y = "hello " + "world"
```
now becomes
```ts
let x = 2
let y = "hello world"
```

## Extra Goodies
- test(minifier): add `test_snapshot` helper to perform snapshot tests
with `insta`
- up(hir): implement `std::ops::Add` for `NumericValue`
- up(span): impl `TryFrom<Cow<'_, &str>>` for `Atom`
2023-09-11 10:38:35 +08:00
Boshen
75d928a20d feat(syntax): add loaded_modules to ModuleRecord 2023-09-07 22:56:09 +08:00
Boshen
ee54575ec1
feat(linter): add runner for import-plugin (#858) 2023-09-06 14:54:19 +08:00
dependabot[bot]
5defa2fa96
chore(deps): bump the dependencies group with 6 updates (#852) 2023-09-04 15:46:27 +08:00
Boshen
bcc069e847
Release oxc_resolver v0.1.0 2023-09-04 14:45:29 +08:00
Boshen
aa7b665fe9
feat(resolver): add thiserror (#847) 2023-09-03 14:50:31 +08:00
Boshen
73be3eab4c
chore: update lock file 2023-09-03 13:51:28 +08:00
Boshen
37bf4c4421
Release oxc v0.1.2 2023-09-03 11:30:44 +08:00
Boshen
da44fd8999
feat(benchmark): add linter benchmark (#842) 2023-09-03 09:55:01 +08:00
Boshen
53b094e46c
chore: clean up deps (#840) 2023-09-02 21:34:24 +08:00
Boshen
56aaf31fb1
refactor(benchmark): use codspeed for all benchmarks (#839) 2023-09-02 20:35:48 +08:00
Boshen
e4a3838ecb
chore(resolver): benchmark with codspeed (#838) 2023-09-02 18:27:37 +08:00
Boshen
9724365862
refactor(resolver): remove nodejs_resolver comparison
we no longer need to compare with nodejs_resolver
2023-09-02 15:12:26 +08:00
Boshen
5b98bf42b5
deps: remove regex support from env_logger 2023-09-02 15:12:25 +08:00
dependabot[bot]
8caf77300b
chore(deps): bump the dependencies group with 10 updates (#831) 2023-09-01 13:56:12 +08:00
Boshen
693145107c
refactor(linter): less a global hashmap to reduce rule timer macro expansion (#822)
closes #819
2023-09-01 10:32:17 +08:00
u9g
a38619b780
feat(vscode): Add linter plugin to vscode extension (#813) 2023-08-29 23:35:32 -04:00
u9g
a44dde5303
feat(linter_plugin): Add linter plugin crate (#798)
Adds a `linter_plugin` crate which adds `oxc_query` support to any
`oxc_linter` consumers such as `oxc_cli` and `editor/vscode`
2023-08-28 11:40:00 +08:00
阿良仔
0fef2d317a
chore: proxy detection for all tasks (#801)
related PR: #740
2023-08-27 17:24:28 +08:00
Boshen
1f27426570
Release crates as v0.1.1 2023-08-26 17:53:11 +08:00
Boshen
592137586c
feat(cli): use insta_cmd for cli snapshot testing (#791)
closes #776
2023-08-25 16:26:34 +08:00
Boshen
ba8ef7bfc7
fix(deps): use one version of textwrap 2023-08-25 12:54:38 +08:00
u9g
4f686b6a75
feat(query): add Paren*Expr* type and add index to Argument type and fix todo in ObjectExpr (#780)
```diff
+ Argument.index

+ ParenthesizedExpression
+ ParenthesizedExpression implements Expression
+ ParenthesizedExpression implements HasSpan
+ ParenthesizedExpression.expression

+ ParenthesizedExpressionAST
+ ParenthesizedExpressionAST implements Expression
+ ParenthesizedExpressionAST implements HasSpan
+ ParenthesizedExpressionAST implements ParenthesizedExpression
+ ParenthesizedExpressionAST implements ASTNode
```
2023-08-24 04:21:02 +00:00
Boshen
28544e1d59
deps: bump deps per security advice for rustls-webpki
rustls-webpki: CPU denial of service in certificate path building
2023-08-23 11:16:58 +08:00
Boshen
1851a8ae26
deps(rust): bump dependencies (#771)
generated with `cargo upgrade -i` then `cargo update`
2023-08-21 18:04:29 +08:00
Boshen
5152b39b17
chore: clean up Cargo.toml with cargo machete (#767) 2023-08-20 15:29:09 +08:00
Boshen
a9a6bb800c
refactor(cli,linter): move path processing logic from cli to linter (#766) 2023-08-20 15:12:08 +08:00
Boshen
a9c4fddb6d
refactor(cli): use bpaf instead clap (#756) 2023-08-18 17:14:06 +08:00
Boshen
629055cfce
deps(rust): bump dependencies 2023-08-12 16:48:24 +08:00
u9g
99a4816ce7
feat(website): add query playground (#698) 2023-08-11 10:53:21 +08:00
Boshen
8ae345bde0
chore(parser): add an AST Send example (#712)
relates #709

The allocator and lifetime gets in the way if we want to parse in
parallel but process them in a single thread.

This example uses `ouroboros` to provide a safe API for working with
this unsafe behavior.
2023-08-10 15:56:31 +08:00
Boshen
9714e46a02
feat(resolver): add tracing (#710) 2023-08-10 13:51:28 +08:00