kkebo / zyphy

Zyphy is (or will be) a fast web browser engine written in Swift.
MIT License
3 stars 1 forks source link

feat!: change input type to `Deque<Character>` #55

Closed kkebo closed 3 months ago

kkebo commented 3 months ago

This change makes it possible to unconsume input characters.

It is needed by #39.

github-actions[bot] commented 3 months ago

Code Metrics Report

main (d0e7ac6) #55 (129dc3a) +/-
Coverage 88.9% 88.9% -0.0%
Details ``` diff | | main (d0e7ac6) | #55 (129dc3a) | +/- | |-----------|----------------|---------------|-------| - | Coverage | 88.9% | 88.9% | -0.0% | | Files | 7 | 7 | 0 | | Lines | 1214 | 1202 | -12 | - | Covered | 1079 | 1068 | -11 | ```

Code coverage of files in pull request scope (88.6% → 88.6%)

Files Coverage +/-
Sources/Tokenizer/CharRefTokenizer.swift 97.6% 0.0%
Sources/Tokenizer/Tokenizer.swift 87.0% -0.1%

Reported by octocov

github-actions[bot] commented 3 months ago

Code Metrics Report

main (d0e7ac6) #55 (266d95c) +/-
Coverage 88.9% 88.9% -0.0%
Details ``` diff | | main (d0e7ac6) | #55 (266d95c) | +/- | |-----------|----------------|---------------|-------| - | Coverage | 88.9% | 88.9% | -0.0% | | Files | 7 | 7 | 0 | | Lines | 1214 | 1202 | -12 | - | Covered | 1079 | 1068 | -11 | ```

Code coverage of files in pull request scope (88.6% → 88.6%)

Files Coverage +/-
Sources/Tokenizer/CharRefTokenizer.swift 97.6% 0.0%
Sources/Tokenizer/Tokenizer.swift 87.0% -0.1%

Reported by octocov

github-actions[bot] commented 3 months ago

Code Metrics Report

main (0bc5838) #55 (06693d5) +/-
Coverage 88.9% 88.9% -0.0%
Details ``` diff | | main (0bc5838) | #55 (06693d5) | +/- | |-----------|----------------|---------------|-------| - | Coverage | 88.9% | 88.9% | -0.0% | | Files | 7 | 7 | 0 | | Lines | 1214 | 1202 | -12 | - | Covered | 1079 | 1068 | -11 | ```

Code coverage of files in pull request scope (88.6% → 88.6%)

Files Coverage +/-
Sources/Tokenizer/CharRefTokenizer.swift 97.6% 0.0%
Sources/Tokenizer/Tokenizer.swift 87.0% -0.1%

Reported by octocov

kkebo commented 3 months ago

Benchmark Results

$ swift package --package-path Benchmarks benchmark baseline compare main
warning: 'package-benchmark': Jemalloc disabled through environment variable.
Building for debugging...
[9/9] Emitting module BenchmarkBoilerplateGenerator
Build of product 'BenchmarkBoilerplateGenerator' complete! (1.34s)
Building for debugging...
[1/1] Write swift-version--FC39A71C9A0968F.txt
Build of product 'BenchmarkTool' complete! (2.14s)
Build complete!
Building BenchmarkTool in release mode...
Building benchmark targets in release mode for benchmark run...
Building MyBenchmark

==================
Running Benchmarks
==================

100% [------------------------------------------------------------] ETA: 00:00:00 | MyBenchmark:TokenizerBenchmark

===================================================
Comparing results between 'main' and 'Current_run'
===================================================

Host 'Brown-rhinoceros-beetle' with 8 'aarch64' processors with 7 GB memory, running:
#1 SMP PREEMPT_DYNAMIC Sun Mar 24 19:44:17 UTC 2024

MyBenchmark
============================================================================================================================

----------------------------------------------------------------------------------------------------------------------------
TokenizerBenchmark metrics
----------------------------------------------------------------------------------------------------------------------------

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│         Time (wall clock) (μs) *         │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │      13 │      13 │      13 │      13 │      14 │      15 │      15 │      78 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │      12 │      12 │      12 │      13 │      13 │      14 │      14 │      81 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│                    Δ                     │      -1 │      -1 │      -1 │       0 │      -1 │      -1 │      -1 │       3 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│              Improvement %               │       8 │       8 │       8 │       0 │       7 │       7 │       7 │       3 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛

╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│          Throughput (# / s) (K)          │      p0 │     p25 │     p50 │     p75 │     p90 │     p99 │    p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│                   main                   │      79 │      79 │      79 │      77 │      74 │      66 │      66 │      78 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│               Current_run                │      82 │      82 │      82 │      80 │      76 │      70 │      70 │      81 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│                    Δ                     │       3 │       3 │       3 │       3 │       2 │       4 │       4 │       3 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│              Improvement %               │       4 │       4 │       4 │       4 │       3 │       6 │       6 │       3 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛