Skip to content

Releases: es-meta/esmeta

v0.1.0

29 Nov 12:44
Compare
Choose a tag to compare

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

29 Nov 02:49
Compare
Choose a tag to compare
v0.1.0-rc9 Pre-release
Pre-release

What's Changed

Full Changelog: v0.1.0-rc8...v0.1.0-rc9

Contributors

New Contributors

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

25 Nov 06:29
Compare
Choose a tag to compare
v0.1.0-rc8 Pre-release
Pre-release

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

24 Nov 04:07
d53ba29
Compare
Choose a tag to compare
v0.1.0-rc7 Pre-release
Pre-release

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

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)

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

22 Nov 16:27
Compare
Choose a tag to compare
v0.1.0-rc6 Pre-release
Pre-release

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

23 Oct 14:08
Compare
Choose a tag to compare
v0.1.0-rc5 Pre-release
Pre-release

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

12 Oct 11:01
Compare
Choose a tag to compare
v0.1.0-rc4 Pre-release
Pre-release

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

30 Sep 08:02
Compare
Choose a tag to compare
v0.1.0-rc3 Pre-release
Pre-release

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

21 Sep 05:35
Compare
Choose a tag to compare
v0.1.0-rc2 Pre-release
Pre-release

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

08 Sep 14:30
Compare
Choose a tag to compare
v0.1.0-rc1 Pre-release
Pre-release

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)