enso/tools/performance/engine-benchmarks
Pavel Marek 4076a64f33
NaN can be used as a key in Map (#6301)
`Number.nan` can be used as a key in `Map`. This PR basically implements the support for [JavaScript's Same Value Zero Equality](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value-zero_equality) so that `Number.nan` can be used as a key in `Map`.

# Important Notes
- For NaN, it holds that `Meta.is_same_object Number.nan Number.nan`, and `Number.nan != Number.nan` - inspired by JS spec.
- `Meta.is_same_object x y` implies `Any.== x y`, except for `Number.nan`.
2023-04-20 09:25:36 +00:00
..
Engine_Benchs Add engine benchmark analysis tool (#5852) 2023-03-28 15:56:24 +00:00
bench_download.py NaN can be used as a key in Map (#6301) 2023-04-20 09:25:36 +00:00
README.md Add engine benchmark analysis tool (#5852) 2023-03-28 15:56:24 +00:00
template_jinja.html Add engine benchmark analysis tool (#5852) 2023-03-28 15:56:24 +00:00

Engine benchmarks

This directory contains a python script bench_download.py for downloading Engine benchmark results from GitHub and Engine_Benchs Enso project for analysing the downloaded data.

Dependencies for bench_download.py:

  • python >= 3.7
  • pandas and jinja2
    • Install, e.g., by pip install pandas jinja2
  • GH CLI utility

Check bench_download -h for documentation and usage. Ensure that your /usr/bin/env python links to Python version at least 3.7.

One can also analyze the benchmarks in Enso IDE by running bench_download.py --create-csv and then running Engine_Benchs project. The created CSV is pasted into Engine_Benchs/data directory by default.