Skip to content

Commit

Permalink
2020-03-16 release
Browse files Browse the repository at this point in the history
  • Loading branch information
bellard committed Sep 6, 2020
1 parent 0e8fffd commit 383e2b0
Show file tree
Hide file tree
Showing 26 changed files with 2,347 additions and 2,015 deletions.
11 changes: 11 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2020-03-16:

- reworked error handling in std and os libraries: suppressed I/O
exceptions in std FILE functions and return a positive errno value
when it is explicit
- output exception messages to stderr
- added std.loadFile(), std.strerror(), std.FILE.prototype.tello()
- added JS_GetRuntimeOpaque(), JS_SetRuntimeOpaque(), JS_NewUint32()
- updated to Unicode 13.0.0
- misc bug fixes

2020-01-19:

- keep CONFIG_BIGNUM in the makefile
Expand Down
5 changes: 3 additions & 2 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,6 @@ REPL:
Test262o: 0/11262 errors, 463 excluded
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)

Test262: 17/69942 errors, 855 excluded, 581 skipped
test262 commit: 28b4fcca4b1b1d278dfe0cc0e69c7d9d59b31aab
Test262: 22/70040 errors, 860 excluded, 581 skipped
test262 commit: 25c9e334d301944537215caba1d7f44319f3e0da

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2020-01-19
2020-03-16
33 changes: 15 additions & 18 deletions doc/jsbignum.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified doc/jsbignum.pdf
Binary file not shown.
29 changes: 13 additions & 16 deletions doc/jsbignum.texi
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ More precisely, the following modifications were made:

@item @code{with operators from} is not supported. Operator overloading is always enabled.

@item The dispatch is not based on a static @code{[[OperatorSet]]} field in all instances. Instead, a dynamic lookup the of the @code{Symbol.operatorSet} property is done. This property is typically added in the prototype of each object.
@item The dispatch is not based on a static @code{[[OperatorSet]]} field in all instances. Instead, a dynamic lookup of the @code{Symbol.operatorSet} property is done. This property is typically added in the prototype of each object.

@item @code{Operators.create(...dictionaries)} is used to create a new OperatorSet object. The @code{Operators} function is supported as an helper to be closer to the TC39 proposal.

Expand Down Expand Up @@ -119,7 +119,7 @@ Return the number of trailing zeros in the two's complement binary representatio
@section Introduction

This extension adds the @code{BigFloat} primitive type. The
@code{BigFloat} type represents floating point numbers are in base 2
@code{BigFloat} type represents floating point numbers in base 2
with the IEEE 754 semantics. A floating
point number is represented as a sign, mantissa and exponent. The
special values @code{NaN}, @code{+/-Infinity}, @code{+0} and @code{-0}
Expand All @@ -143,15 +143,13 @@ explicit.}. The status flags of the global environment cannot be
read@footnote{The rationale is to avoid side effects for the built-in
operators.}. The precision of the global environment is
@code{BigFloatEnv.prec}. The number of exponent bits of the global
environment is @code{BigFloatEnv.expBits}. If @code{BigFloatEnv.expBits} is
strictly smaller than the maximum allowed number of exponent bits
(@code{BigFloatEnv.expBitsMax}), then the global environment subnormal
flag is set to @code{true}. Otherwise it is set to @code{false};
environment is @code{BigFloatEnv.expBits}. The global environment
subnormal flag is set to @code{true}.

For example, @code{prec = 53} and @code{ expBits = 11} give exactly
the same precision as the IEEE 754 64 bit floating point. The
For example, @code{prec = 53} and @code{ expBits = 11} exactly give
the same precision as the IEEE 754 64 bit floating point format. The
default precision is @code{prec = 113} and @code{ expBits = 15} (IEEE
754 128 bit floating point).
754 128 bit floating point format).

The global floating point environment can only be modified temporarily
when calling a function (see @code{BigFloatEnv.setPrec}). Hence a
Expand Down Expand Up @@ -345,9 +343,8 @@ environment. The initial value is @code{113}.

@item expBits
Getter. Return the exponent size in bits of the global floating point
environment assuming an IEEE 754 representation. If @code{expBits <
expBitsMax}, then subnormal numbers are supported. The initial value
is @code{15}.
environment assuming an IEEE 754 representation. The initial value is
@code{15}.

@item setPrec(f, p[, e])
Set the precision of the global floating point environment to @code{p}
Expand Down Expand Up @@ -492,7 +489,7 @@ BigDecimal literals are decimal floating point numbers with a trailing

It returns @code{0m} if no parameter is provided. Otherwise the first
parameter is converted to a bigdecimal by using ToString(). Hence
Number value are not converted to their exact numerical value as
Number values are not converted to their exact numerical value as
BigDecimal.

@subsection Properties of the @code{BigDecimal} object
Expand Down Expand Up @@ -581,11 +578,11 @@ The following changes are made to the Javascript semantics:

@item The logical xor operator is still available with the @code{^^} operator.

@item The integer division operator can be overloaded by modifying the corresponding operator in @code{BigInt.prototype.[[OperatorSet]]}.
@item The modulo operator (@code{%}) returns the Euclidian remainder (always positive) instead of the truncated remainder.

@item The integer power operator with a non zero negative exponent can be overloaded by modifying the corresponding operator in @code{BigInt.prototype.[[OperatorSet]]}.
@item The integer division operator can be overloaded with @code{Operators.updateBigIntOperators(dictionary)}.

@item The modulo operator (@code{%}) returns the Euclidian remainder (always positive) instead of the truncated remainder.
@item The integer power operator with a non zero negative exponent can be overloaded with @code{Operators.updateBigIntOperators(dictionary)}.

@end itemize

Expand Down
Loading

0 comments on commit 383e2b0

Please sign in to comment.