Releases: es-meta/esmeta
v0.1.0
What's Changed
- Supported
-tycheck:update-ignore
by @jhnaldo in #115 - More parsing rules for metalanguage for environment record bindings by @jhnaldo in #116
Full Changelog: v0.1.0-rc9...v0.1.0
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc9..v0.1.0
:
4 Jihyeok Park (jhnaldo)
v0.1.0-rc9
What's Changed
- Used
patch
command instead ofgit apply
by @jhnaldo in #111 - Added
ir.EGetItems
with expectedNt
by @jhnaldo in #112 - Add e2e tests to ci by @doehyunbaek in #113
- Improved precision of
tycheck
and fixed several bugs by @jhnaldo in #114
Full Changelog: v0.1.0-rc8...v0.1.0-rc9
Contributors
New Contributors
- @doehyunbaek made their first contribution in #113
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc8..v0.1.0-rc9
:
5 Jihyeok Park (jhnaldo)
1 Doehyun Baek (doehyunbaek)
v0.1.0-rc8
What's Changed
Full Changelog: v0.1.0-rc7...v0.1.0-rc8
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc7..v0.1.0-rc8
:
2 Jihyeok Park (jhnaldo)
v0.1.0-rc7
What's Changed
Added help message about how to use the type check ignorance system
If type mismatches are detected, the following message would be shown:
$ esmeta tycheck -silent -tycheck:ignore=esmeta-ignore.json -extract:target=origin/main
- 2379 functions are initial targets.
[WARNING] 2 type mismatches are detected
[ReturnTypeMismatch] CyclicModuleRecord.Link (step 4.c, 10:25-35)
- expected: Normal[Const[~unused~]] | Abrupt[throw]
- actual : Abrupt
[ReturnTypeMismatch] SourceTextModuleRecord.ExecuteModule (step 9.f.i, 17:27-37)
- expected: Normal[Const[~unused~]] | Abrupt[throw]
- actual : Abrupt
================================================================================
To suppress this error message, add the following names to `esmeta-ignore.json`:
- CyclicModuleRecord.Link
- SourceTextModuleRecord.ExecuteModule
================================================================================
[AnalysisError] 2 type mismatches are detected
Updated version of Scala, sbt, and plugins
Scala
:3.1.0
=>3.1.1
sbt
:1.6.2
=>1.8.0
sbt-assembly
:1.1.0
=>1.2.0
sbt-scalafmt
:2.0.0
=>2.5.0
More precise mathematical values with MathContext.UNLIMITED
We use default BigDecimal
constructors to represent mathematical values in EMathVal
or Math
.
However, it causes some precision loss in specific cases. Consider the following JavaScript file:
// sample.js
print(BigInt.asIntN(64, 0xabcdef0123456789abcdefn)); // should be 81985529216486895n
The previous version shows the following result:
$ esmeta eval -silent sample.js
81985524892886895n
However, it is not the expected result and it happens because of the precision loss of the BigDecimal
object.
Now, we use the MathContext.UNLIMITED
option and the above problem was resolved:
$ esmeta eval -silent sample.js
81985529216486895n
Runtime type checker
We also support the type check system during the execution of JavaScript program with the -eval:tycheck
option:
$ esmeta eval -silent -eval:tycheck tests/es/function-declare1.js
[WARNING] [ParamTypeMismatch] first parameter _script_ of GlobalDeclarationInstantiation @ ScriptEvaluation (step 12, 13:39-92)
- expected: Ast[ScriptBody]
- actual : Ast:Script[0,1]
- argument: |Script|<0>
- filename: tests/es/function-declare1.js
[WARNING] [ParamTypeMismatch] first parameter _F_ of SetFunctionLength @ OrdinaryFunctionCreate (step 22, 23:20-49)
- expected: FunctionObject
- actual : OrdinaryObject
- argument: #1402
- filename: tests/es/function-declare1.js
Others (generated)
- Dev runtime typechecker by @PSuHyeon in #106
- Improved type check precision and soundness by @jhnaldo in #109
Full Changelog: v0.1.0-rc6...v0.1.0-rc7
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc6..v0.1.0-rc7
:
11 Jihyeok Park (jhnaldo)
1 Suhyeon Park (PSuHyeon)
v0.1.0-rc6
What's Changed
Supported predefined JAVA_OPTS for assembly
Now, the esmeta
binary file produced by sbt release
has the following JVM options:
-Xms1g -Xmx3g -XX:ReservedCodeCacheSize=512m -Dfile.encoding=utf8
Supported JSON file-based ignorance system for test262-test
We support an ignorance system for the test262-test
command. Please see HERE.
If you want to execute an already ignored test case, please use the -test262-test:with-yet
option:
$ esmeta test262-test -test262-test:with-yet tests/test262/test/built-ins/BigInt/asIntN/arithmetic.js
Force setting the ESMETA_HOME environment variable
ESMeta throws an error when you did not set the ESMETA_HOME
environment variable as follows:
$ esmeta # without setting the ESMETA_HOME environment variable
Exception in thread "main" esmeta.error.NoEnvVarError$: [ESMeta v0.1.0-rc5] Please set the environment variable ESMETA_HOME.
(See https://github.com/es-meta/esmeta#environment-setting)
at esmeta.error.NoEnvVarError$.<clinit>(ESMetaError.scala:14)
at esmeta.package$package$.<clinit>(package.scala:14)
at esmeta.ESMeta$.<init>(ESMeta.scala:8)
at esmeta.ESMeta$.<clinit>(ESMeta.scala:59)
at esmeta.ESMeta.main(ESMeta.scala)
Fixed bugs in web debugger
We realized that the web
command did not work after the following commit:
commit 9a68a3cc21110b8bd26c493b2bf5cd3925c17621
Author: Jae Hyun Lee (wenko99) <99jaehyunlee@gmail.com>
Date: Wed Sep 28 14:01:04 2022 +0900
Added precision of Expr and Ref's backward edge (#97)
* Added precision of Expr and Ref's backward edge
* Refactored style
* Refactored withLang helper with BackEdgeWalker
* Fixed bugs related to mutable location info in IR elements
* Fixed bugs related to mutable location info in IR elements
Co-authored-by: jhnaldo <jhpjhp0223@gmail.com>
We have fixed this issue, you can now use the web
debugger.
Others (generated)
Full Changelog: v0.1.0-rc5...v0.1.0-rc6
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc5..v0.1.0-rc6
:
14 Jihyeok Park (jhnaldo)
v0.1.0-rc5
What's Changed
Updated Version of actions/checkout
Not, this repository utilizes a newer version actions/checkout@v3
instead of actions/checkout@v2
.
Detected Unnecessary Names Used In Ignorance System For Type Mismatches
The tycheck
command supports the -tycheck:ignore
option to ignore detected type mismatches in specific algorithms with a given JSON file. However, if this JSON file includes names unused to ignore detected type mismatches, ESMeta throws an error as follows:
[AnalysisError] 3 names are not unused to ignore type mismatches:
- NotUsedName1
- NotUsedName2
- NotUsedName3
Others (generated)
- Add colored exit node and Fix call edge to point out the entry node by @duncan020313 in #104
Full Changelog: v0.1.0-rc4...v0.1.0-rc5
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc4..v0.1.0-rc5
:
4 Jihyeok Park (jhnaldo)
1 Dongjae Lee (duncan020313)
v0.1.0-rc4
What's Changed
Ignorance System for Detected Type Mismatches in Type Checker
The tycheck
command supports the -tycheck:ignore
option to ignore detected type mismatches in specific algorithms with a given JSON file. For example, you could ignore the type mismatches in the ToString
algorithm with the following JSON file.
[
"ToString"
]
Full Changelog: v0.1.0-rc3...v0.1.0-rc4
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc3..v0.1.0-rc4
:
3 Jihyeok Park (jhnaldo)
v0.1.0-rc3
What's Changed
More Advance Type Checker
We reduced false alarms in the type checker by defining more advanced type systems.
Others (generated)
- Add backward edge of Ref in compiler by @wenko99 in #95
- Supported -compile:log-with-loc option by @wenko99 in #96
- Added precision of Expr and Ref's backward edge by @wenko99 in #97
- Fix font option of CFG by @duncan020313 in #101
- Fix left alignment problem in CFG by @duncan020313 in #100
- Renamed helper named TopT to T in ty package by @wenko99 in #103
- Shortened Loc string for same line by @wenko99 in #102
Full Changelog: v0.1.0-rc2...v0.1.0-rc3
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc2..v0.1.0-rc3
:
11 Jihyeok Park (jhnaldo)
5 Jae Hyun Lee (wenko99)
2 Dongjae Lee (duncan020313)
v0.1.0-rc2
What's Changed
ECMAScript Random Mutator
We implemented a simple random JavaScript mutator with the mutate
command.
Type Mismatch Detector
We implemented a type mismatch detector for the tycheck
command.
It detects the following type mismatches:
- parameter type mismatches (
ParamTypeMismatch
) - return type mismatches (
ReturnTypeMismatch
) - arity mismatches (
ArityMismatch
)
Others (generated)
- Removed legacy DivergedParser by @jhnaldo in #85
- Fixed bug in extractorValidityTest by @jhnaldo in #86
- Supported mathematical operations with implementation-approximated number value conversion by @jhnaldo in #91
- Added ECMAScript mutator by @jhnaldo in #93
Full Changelog: v0.1.0-rc1...v0.1.0-rc2
Contributors
The following list is automatically generated by git shortlog -sn --no-merges v0.1.0-rc1..v0.1.0-rc2
:
30 Jihyeok Park (jhnaldo)
v0.1.0-rc1
We are excited to release ESMeta version 0.1.0-rc1. This release is the first official version of ESMeta.
Contributors
Thank you to all the contributors for this release.
The following list is automatically generated by git shortlog -sn --no-merges
:
392 Seungmin An (h2oche)
382 Jihyeok Park (jhnaldo)
46 Jaeho Choi (Maokami)
25 Kanguk Lee (p51lee)
7 Jae Hyun Lee (wenko99)
6 Jungdam Choi (dimenerno)
3 Dongjae Lee (duncan020313)
2 Suhyeon Park (PSuHyeon)