Commit Graph

6198 Commits

Author SHA1 Message Date
강동윤 (Donny)
47a79485d9 chore: Revert bump crates
This reverts commit 97b92aa6ff.
2024-06-29 18:28:54 +09:00
SWC Bot
97b92aa6ff chore: Bump crates 2024-06-29 09:26:51 +00:00
Donny/강동윤
2a0ebec0f5
fix(es/lexer): Fix lexing of \r\n in JSX (#9112)
**Description:**

I made a mistake while working on the performance of the lexer.


**Related issue:**

 - Closes #9106
2024-06-29 18:24:51 +09:00
Donny/강동윤
8ef30cc08c
perf(es/parser): Increase token context size (#9104)
**Description:**

Now, `TokenContext` is 1 byte, so we can increase the stack size for it.

```
Gnuplot not found, using plotters backend
Benchmarking es/parser/colors
Benchmarking es/parser/colors: Warming up for 3.0000 s
Benchmarking es/parser/colors: Collecting 100 samples in estimated 5.0243 s (561k iterations)
Benchmarking es/parser/colors: Analyzing
es/parser/colors        time:   [8.8652 µs 8.8821 µs 8.9013 µs]
                        change: [+0.3001% +0.6986% +1.0681%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 9 outliers among 100 measurements (9.00%)
  4 (4.00%) high mild
  5 (5.00%) high severe

Benchmarking es/parser/angular
Benchmarking es/parser/angular: Warming up for 3.0000 s
Benchmarking es/parser/angular: Collecting 100 samples in estimated 5.1460 s (1100 iterations)
Benchmarking es/parser/angular: Analyzing
es/parser/angular       time:   [4.5989 ms 4.6075 ms 4.6180 ms]
                        change: [+1.5999% +1.9780% +2.3764%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) high mild
  7 (7.00%) high severe

Benchmarking es/parser/backbone
Benchmarking es/parser/backbone: Warming up for 3.0000 s
Benchmarking es/parser/backbone: Collecting 100 samples in estimated 7.0775 s (10k iterations)
Benchmarking es/parser/backbone: Analyzing
es/parser/backbone      time:   [694.50 µs 695.84 µs 697.51 µs]
                        change: [-1.1099% -0.7438% -0.3658%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 13 outliers among 100 measurements (13.00%)
  5 (5.00%) high mild
  8 (8.00%) high severe

Benchmarking es/parser/jquery
Benchmarking es/parser/jquery: Warming up for 3.0000 s
Benchmarking es/parser/jquery: Collecting 100 samples in estimated 5.1340 s (1300 iterations)
Benchmarking es/parser/jquery: Analyzing
es/parser/jquery        time:   [3.9253 ms 3.9334 ms 3.9430 ms]
                        change: [+0.2515% +0.6374% +1.0228%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) high mild
  7 (7.00%) high severe

Benchmarking es/parser/jquery mobile
Benchmarking es/parser/jquery mobile: Warming up for 3.0000 s
Benchmarking es/parser/jquery mobile: Collecting 100 samples in estimated 5.3971 s (900 iterations)
Benchmarking es/parser/jquery mobile: Analyzing
es/parser/jquery mobile time:   [5.9041 ms 5.9175 ms 5.9340 ms]
                        change: [-1.8844% -1.5663% -1.2247%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  4 (4.00%) high mild
  7 (7.00%) high severe

Benchmarking es/parser/mootools
Benchmarking es/parser/mootools: Warming up for 3.0000 s
Benchmarking es/parser/mootools: Collecting 100 samples in estimated 5.1747 s (1700 iterations)
Benchmarking es/parser/mootools: Analyzing
es/parser/mootools      time:   [3.0240 ms 3.0352 ms 3.0489 ms]
                        change: [-1.5654% -1.1553% -0.6819%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) high mild
  6 (6.00%) high severe

Benchmarking es/parser/underscore
Benchmarking es/parser/underscore: Warming up for 3.0000 s
Benchmarking es/parser/underscore: Collecting 100 samples in estimated 6.1976 s (10k iterations)
Benchmarking es/parser/underscore: Analyzing
es/parser/underscore    time:   [612.60 µs 614.58 µs 616.82 µs]
                        change: [-1.9306% -1.5582% -1.1803%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  4 (4.00%) high mild
  3 (3.00%) high severe

Benchmarking es/parser/three
Benchmarking es/parser/three: Warming up for 3.0000 s
Benchmarking es/parser/three: Collecting 100 samples in estimated 5.1445 s (300 iterations)
Benchmarking es/parser/three: Analyzing
es/parser/three         time:   [16.890 ms 16.951 ms 17.026 ms]
                        change: [-2.1520% -1.7192% -1.2254%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 17 outliers among 100 measurements (17.00%)
  3 (3.00%) high mild
  14 (14.00%) high severe

Benchmarking es/parser/yui
Benchmarking es/parser/yui: Warming up for 3.0000 s
Benchmarking es/parser/yui: Collecting 100 samples in estimated 5.0417 s (1800 iterations)
Benchmarking es/parser/yui: Analyzing
es/parser/yui           time:   [2.8076 ms 2.8156 ms 2.8249 ms]
                        change: [-2.2730% -1.9284% -1.5384%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 16 outliers among 100 measurements (16.00%)
  5 (5.00%) high mild
  11 (11.00%) high severe

Benchmarking es/parser/cal-com
Benchmarking es/parser/cal-com: Warming up for 3.0000 s
Benchmarking es/parser/cal-com: Collecting 100 samples in estimated 5.9664 s (400 iterations)
Benchmarking es/parser/cal-com: Analyzing
es/parser/cal-com       time:   [14.815 ms 14.888 ms 14.974 ms]
                        change: [-1.2376% -0.7153% -0.1968%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 17 outliers among 100 measurements (17.00%)
  1 (1.00%) high mild
  16 (16.00%) high severe

Benchmarking es/parser/typescript
Benchmarking es/parser/typescript: Warming up for 3.0000 s


Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 10.5s, or reduce sample count to 40.
Benchmarking es/parser/typescript: Collecting 100 samples in estimated 10.496 s (100 iterations)
Benchmarking es/parser/typescript: Analyzing
es/parser/typescript    time:   [101.97 ms 102.32 ms 102.73 ms]
                        change: [-1.6102% -1.1640% -0.7126%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 14 outliers among 100 measurements (14.00%)
  4 (4.00%) high mild
  10 (10.00%) high severe

```
2024-06-25 14:02:38 +00:00
SWC Bot
feae5a9bdd chore: Bump crates 2024-06-25 13:40:14 +00:00
Donny/강동윤
c0602c81db
perf(es/parser): Add a check before numeric operations (#9105)
**Description:**

`c.is_ascii_uppercase()` was expensive than expected.
2024-06-25 22:38:30 +09:00
강동윤 (Donny)
56f03675bc chore: Publish crates for EsSyntax fix
Some checks are pending
CI / Test with @swc/cli (push) Waiting to run
CI / Miri (better_scoped_tls) (push) Waiting to run
CI / Miri (string_enum) (push) Waiting to run
CI / Miri (swc) (push) Waiting to run
CI / Miri (swc_bundler) (push) Waiting to run
CI / Miri (swc_ecma_codegen) (push) Waiting to run
CI / Miri (swc_ecma_minifier) (push) Waiting to run
CI / Done (push) Blocked by required conditions
Benchmark / List crates (push) Waiting to run
Benchmark / Bench ${{ matrix.crate }} (push) Blocked by required conditions
Benchmark / Process result (push) Blocked by required conditions
Bot / Start (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --features plugin --target x86_64-apple-darwin cp ../../bindings/target/x86_64-apple-darwin/release/swc . chmod +x ./swc… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:export CARGO_PROFILE_RELEASE_LTO=false yarn build --target x86_64-pc-windows-msvc cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --features plugin --target x86_64-pc-w… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:export DISABLE_PLUGIN_E2E_TESTS=true export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=256 export CARGO_PROFILE_RELEASE_LTO=false cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --relea… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:export DISABLE_PLUGIN_E2E_TESTS=true export CARGO_PROFILE_RELEASE_LTO=false cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --target i686-pc-windows-msvc cp ../../bindi… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:export DISABLE_PLUGIN_E2E_TESTS=true yarn napi build --bin swc --release --target armv7-unknown-linux-gnueabihf --manifest-path ../../bindings/swc_cli/Cargo.toml -x --target-dir ../release -o … (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:export JEMALLOC_SYS_WITH_LG_PAGE=16 && rustup toolchain install $(cat ../../rust-toolchain) && rustup target add aarch64-unknown-linux-musl && RUSTFLAGS='-C target-feature=+crt-static -C link-… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:set -e && export CARGO_PROFILE_RELEASE_LTO=false && RUSTFLAGS='-C target-feature=+sse2' cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --features plugin --target x86_6… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:set -e && export JEMALLOC_SYS_WITH_LG_PAGE=16 && rustup target add aarch64-unknown-linux-gnu && RUSTFLAGS='' cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --features … (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:set -e && unset CC_x86_64_unknown_linux_gnu && unset CC && RUSTFLAGS='-C target-feature=+sse2' cargo build --manifest-path ../../bindings/swc_cli/Cargo.toml --release --features plugin --targe… (push) Waiting to run
Publish (core) / stable - ${{ matrix.settings.target }} - node@20 (map[build:sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*; export CC=$(xcrun -f clang); export CXX=$(xcrun -f clang++); SYSROOT=$(xcrun --sdk macosx --show-sdk-path); export CFLAGS="-isysroot $SY… (push) Waiting to run
Publish (core) / Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} (18, map[host:macos-latest target:x86_64-apple-darwin]) (push) Blocked by required conditions
Publish (core) / Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} (18, map[host:windows-latest target:x86_64-pc-windows-msvc]) (push) Blocked by required conditions
Publish (core) / Test bindings on Linux-x64-gnu - node@${{ matrix.node }} (18) (push) Blocked by required conditions
Publish (core) / Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} (18) (push) Blocked by required conditions
Publish (core) / Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} (18) (push) Blocked by required conditions
Publish (core) / npm (push) Blocked by required conditions
Publish (core) / Build - wasm for node.js (push) Waiting to run
Publish (core) / Build - wasm for web (push) Waiting to run
2024-06-25 12:40:41 +09:00
SWC Bot
59cd331c7e chore: Bump crates 2024-06-25 00:32:48 +00:00
Donny/강동윤
2a490ad0b2
perf(es/parser): Remove unnecessary check (#9102)
**Description:**

We can skip some checks for error recovery.
2024-06-25 09:31:10 +09:00
SWC Bot
03a0d903a0 chore: Bump crates 2024-06-23 14:56:34 +00:00
Donny/강동윤
719b7c54f6
perf(es/parser): Optimize macros (#9100)
**Description:**

I could optimize macros used enormous amount of times.
2024-06-23 23:54:51 +09:00
Donny/강동윤
1b3672f1e7
perf(es/lexer): Use memchr::memmem for lexing block comments (#9096)
**Description:**

This PR also makes the lexer more CPU-cache friendly.
2024-06-22 09:54:52 +09:00
SWC Bot
a19a287833 chore: Bump crates 2024-06-22 00:36:49 +00:00
Donny/강동윤
e71b6d31b1
feat(cli): Support generating .d.ts files (#9097)
**Description:**

I verified that `swc_cli` (Rust) works with 

```json
{
    "jsc": {
        "parser": {
            "syntax": "typescript"
        },
        "experimental": {
            "emitIsolatedDts": true
        }
    }
}
```
2024-06-22 09:35:15 +09:00
SWC Bot
7c8397ddfb chore: Bump crates 2024-06-21 23:48:17 +00:00
Donny/강동윤
51a27022b9
feat(es/transform): Add experimental .d.ts generation (#9093) 2024-06-21 23:46:37 +00:00
Donny/강동윤
2f02630b1e
perf(es/lexer): Apply various optimizations (#9095)
**Description:**

- `TokenContexts` now uses smallvec, as the element type is very small (1 byte) now.
 - Some codes are moved to allow CPU to cache code correctly.
2024-06-21 17:23:57 +00:00
SWC Bot
8dbcb509da chore: Bump crates 2024-06-21 16:58:16 +00:00
Donny/강동윤
5520b236dd
refactor(es/parser): Rename EsConfig and TsConfig (#9094)
**Description:**

`EsConfig` and `TsConfig` sound like a general configuration for the whole language, while actually it's only about parsing.

To avoid a breaking change, I created type aliases that will work without changing the code, while warning the users.

**Related issue:**

 - Closes #9089.
2024-06-22 01:56:37 +09:00
SWC Bot
0de10d8a0c chore: Bump crates 2024-06-21 13:26:59 +00:00
Donny/강동윤
a2645e2fa0
feat(swc_core): Reexport swc_typescript (#9092) 2024-06-21 22:25:16 +09:00
강동윤 (Donny)
5625bd64bd chore: Bump crates 2024-06-21 20:21:43 +09:00
강동윤 (Donny)
63fd29e799 chore: Workaround a bug of cargo-mono 2024-06-21 20:18:01 +09:00
Luca Casonato
5a2c968720
chore(deps): Replace sha-1 with sha1 (#9091)
They renamed the crate: https://github.com/RustCrypto/hashes?tab=readme-ov-file#crate-names
2024-06-21 11:17:50 +00:00
Donny/강동윤
a8551592b2
feat(typescript): Implement Isolated Declaration (#9086)
**Description:**

This PR adds TypeScript Isolated Declarations implementation by forking Deno's implementation.
2024-06-21 09:54:59 +00:00
SWC Bot
568b3b37a5 chore: Bump crates 2024-06-21 08:51:36 +00:00
Donny/강동윤
e423d1bced
feat(common): Add fallible methods to swc_common::SourceMap (#9090)
**Description:**

This PR will make `swc_ecma_codegen` not `panic` for invalid spans.
2024-06-21 17:49:43 +09:00
Donny/강동윤
56f128fc03
chore: Add a crate swc_typescript (#9085)
**Description:**

This crate will be used for TypeScript Isolated Declaration support
2024-06-21 12:45:53 +09:00
SWC Bot
810461eaa7 chore: Bump crates 2024-06-19 06:21:32 +00:00
Donny/강동윤
af586069a9
perf(es/lexer): Add fast-path to jsx lexer (#9081) 2024-06-19 01:12:37 +00:00
Donny/강동윤
238f1c50e5
perf(es/lexer): Add a fast-path to template literal lexer (#9080)
**Description:**

We don't need to allocate at all in the fast path.
2024-06-19 00:43:57 +00:00
Donny/강동윤
69f00b85d4
perf(es/lexer): Reduce allocation while lexing identifiers (#9076)
**Description:**

In the fast path, we don't even use the buffer.

```
Benchmarking es/lexer/cal-com
Benchmarking es/lexer/cal-com: Warming up for 3.0000 s
Benchmarking es/lexer/cal-com: Collecting 100 samples in estimated 5.5395 s (900 iterations)
Benchmarking es/lexer/cal-com: Analyzing
es/lexer/cal-com        time:   [6.1799 ms 6.2010 ms 6.2250 ms]
                        change: [-4.4027% -3.9504% -3.5372%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 17 outliers among 100 measurements (17.00%)
  4 (4.00%) high mild
  13 (13.00%) high severe

```
2024-06-18 08:53:59 +00:00
Donny/강동윤
373bac55aa
perf(es/lexer): Make lexing of string literals faster (#9077)
**Description:**

We don't need to push a character at a time. This profiling result does not include improvements from
https://github.com/swc-project/swc/pull/9076.

```
Benchmarking es/lexer/cal-com
es/lexer/cal-com        time:   [6.4555 ms 6.4936 ms 6.5368 ms]
```
2024-06-18 17:27:17 +09:00
SWC Bot
c0d40c6a51 chore: Bump crates 2024-06-18 07:34:18 +00:00
Donny/강동윤
6426928b91
perf(es/lexer): Optimize lexer (#9075)
**Description:**

 - `TokenContext` is now 1 byte.
 - `read_word_with` now uses `&dyn` instead of `impl FnOnce`.
2024-06-18 07:32:32 +00:00
SWC Bot
ddaafe00e0 chore: Bump crates 2024-06-18 05:16:23 +00:00
Donny/강동윤
cfe3ba306d
fix(es/decorators): Reduce the number of sourcemap mappings (#9074)
**Description:**

Coverage gets better if we generate fewer source map entries. This PR only fixes the issue for `"coverageProvider": "v8"`. Much more work is required for the default coverage provider I guess.

**Related issue:**

 - #3854
2024-06-18 14:14:42 +09:00
Donny/강동윤
7698eaa006
perf(common): Use Chars in StringInput (#9073)
**Description:**

Now it's possible
2024-06-18 03:45:56 +00:00
SWC Bot
e383961579 chore: Bump crates 2024-06-18 03:21:43 +00:00
hardfist
8d37daedf1
fix(css/minifier): Don't tranform rotate deg (#9072)
**Description:**

Transform rotate deg will cause animation work differently, so don't do transform for rotate deg

**Related issue:**

 - Closes #9070
2024-06-18 03:20:02 +00:00
SWC Bot
071e5be80d chore: Bump crates 2024-06-18 02:56:14 +00:00
Donny/강동윤
c3a8c0b567
refactor(common): Simplify StringInput implementation (#9071) 2024-06-18 11:54:34 +09:00
Donny/강동윤
aa59ca3727
chore: Restore benchmark action (#9067)
**Description:**

Let's restore https://swc.rs/docs/benchmarks
2024-06-17 16:08:01 +09:00
SWC Bot
f8c2c4791a chore: Bump crates 2024-06-16 05:31:45 +00:00
Donny/강동윤
cdd20cd163
fix(common): Revert Use SourceMap::adjust_mappings (#9058)
**Description:**

https://github.com/getsentry/rust-sourcemap/pull/91 should fix this
issue, but let's revert #9052 for now.

# Context

`swc_core` regressed.

Caught by https://github.com/vercel/next.js/pull/66902

```
 ⚠ Linting is disabled.
  ▲ Next.js 15.0.0-canary.34

 ✓ Checking validity of types
   Creating an optimized production build ...
Panic: PanicInfo { payload: Any { .. }, message: Some(attempt to add with overflow), location: Location { file: "/Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sourcemap-8.0.1/src/encoder.rs", line: 89, col: 13 }, can_unwind: true, force_no_backtrace: false }
Backtrace:    0: backtrace::backtrace::libunwind::trace
             at /Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized::<<backtrace::capture::Backtrace>::create::{closure#0}>
             at /Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:66:5
      backtrace::backtrace::trace::<<backtrace::capture::Backtrace>::create::{closure#0}>
             at /Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/backtrace/mod.rs:53:14
      <backtrace::capture::Backtrace>::create
             at /Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:176:9
      <backtrace::capture::Backtrace>::new
             at /Users/kdy1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.68/src/capture.rs:140:22
   1: next_swc_napi::init::{closure#0}
             at packages/next-swc/crates/napi/src/lib.rs:85:29
   2: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/6f3df08aadf71e8d4bf7e49f5dc10dfa6f254cb4/library/alloc/src/boxed.rs:2077:9
      std::panicking::rust_panic_with_hook
             at /rustc/6f3df08aadf71e8d4bf7e49f5dc10dfa6f254cb4/library/std/src/panicking.rs:799:13
   3: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/6f3df08aadf71e8d4bf7e49f5dc10dfa6f254cb4/library/std/src/panicking.rs
```
2024-06-16 14:30:01 +09:00
SWC Bot
11df9e9424 chore: Bump crates 2024-06-16 00:54:44 +00:00
Donny/강동윤
ca26eb796b
perf(es/parser): Reduce allocations while lexing numbers (#9057) 2024-06-16 09:52:53 +09:00
Donny/강동윤
bc8ec625ec
perf(es/parser): Reduce allocations for raw while lexing numbers (#9056) 2024-06-15 18:01:40 +09:00
Donny/강동윤
ab226dcfb7
feat(es/ast): Add more utilities (#9054) 2024-06-15 08:24:12 +00:00
SWC Bot
10eab94d81 chore: Bump crates 2024-06-14 14:47:30 +00:00