Yukihiro "Matz" Matsumoto
d14fd77148
numeric.c (mrb_int_pow): make the function to take 2 operands.
2022-08-12 12:19:21 +09:00
Yukihiro "Matz" Matsumoto
15184c50f7
Merge pull request #5778 from dearblue/shadowing-insn
...
Avoid shadowing `insn` variables in `OP_EXT3`
2022-08-12 12:18:32 +09:00
dearblue
170118e4de
Avoid shadowing insn variables in OP_EXT3
2022-08-12 11:12:18 +09:00
Yukihiro "Matz" Matsumoto
8cdf14c06b
numeric.c (int_rounding): unify code duplication.
2022-08-10 13:38:24 +09:00
Yukihiro "Matz" Matsumoto
4e735eb8ba
numeric.c (flo_rounding): refactor float rounding methods.
2022-08-10 13:38:24 +09:00
Yukihiro "Matz" Matsumoto
7ffdb4c30e
numeric.c: implement ndigits truncation for rounding methods.
...
- ceil
- floor
- round
- truncate
2022-08-10 13:38:23 +09:00
Yukihiro "Matz" Matsumoto
abec98c681
numeric.c: implement ceil, floor, round, truncate methods in C.
...
- ISO 15.2.8.3.14 Integer#ceil
- ISO 15.2.8.3.17 Integer#floor
- ISO 15.2.8.3.20 Integer#round
- ISO 15.2.8.3.26 Integer#truncate
2022-08-10 13:38:23 +09:00
Yukihiro "Matz" Matsumoto
7340ad1c8b
Merge pull request #5764 from dearblue/red-protect
...
Check `MRB_GC_RED` with `mrb_gc_protect()`
2022-08-09 23:01:55 +09:00
Yukihiro "Matz" Matsumoto
9f7cef2d42
Merge pull request #5763 from dearblue/realloc-fullgc
...
Perform Full-GC from `mrb_realloc_simple()` by `MRB_GC_STRESS + MRB_DEBUG`
2022-08-09 14:00:18 +09:00
Yukihiro "Matz" Matsumoto
78a3200fa5
etc.c (mrb_obj_id): separate object_id and hash values.
...
It's OK for hash values to conflict. But object_id is not (in theory).
2022-08-08 23:00:13 +09:00
dearblue
520df805a9
Check MRB_GC_RED with mrb_gc_protect()
...
When `gc_protect()` is called from `mrb_obj_alloc()`, unnecessary overhead is eliminated.
2022-08-08 22:10:22 +09:00
dearblue
71c398f298
Perform Full-GC from mrb_realloc_simple() by MRB_GC_STRESS + MRB_DEBUG
...
It also fills the GC'ed object area with `0xff` for debugging purposes.
2022-08-08 21:44:11 +09:00
Yukihiro "Matz" Matsumoto
f653e89227
etc.c: refactor boxing/unboxing float values.
2022-08-07 20:43:31 +09:00
Yukihiro "Matz" Matsumoto
521072ca3a
mruby-struct/struct.rb: include Enumerable module.
...
Struct.ancestors should be [Struct, Enumerable, Object, Kernel, BasicObject]
2022-08-06 16:03:26 +09:00
Yukihiro "Matz" Matsumoto
a0c02e0a64
Merge pull request #5765 from dearblue/mrb_env_unshare
...
Improve out-of-memory tolerance of `mrb_env_unshare()`
2022-08-06 16:03:11 +09:00
Yukihiro "Matz" Matsumoto
5eaef1cf25
mruby-time/time.c: properly generate hash from time objects.
2022-08-06 06:43:42 +09:00
Yukihiro "Matz" Matsumoto
579379c517
rational.c (rational_hash): generate hash code from rational numbers.
2022-08-06 06:43:42 +09:00
Yukihiro "Matz" Matsumoto
25f9d2f65a
complex.c (complex_hash): generate hash code from complex numbers.
2022-08-06 06:43:42 +09:00
Yukihiro "Matz" Matsumoto
a7c3d59971
kernel.c (mrb_obj_hash): generate hash value for big-integers.
2022-08-06 06:43:41 +09:00
Yukihiro "Matz" Matsumoto
6d683785f9
etc.c: use mrb_byte_hash instead of simple hash function.
2022-08-06 06:43:41 +09:00
Yukihiro "Matz" Matsumoto
61f447e5df
string.c (mrb_byte_hash): separate byte hashing functions.
2022-08-06 06:43:41 +09:00
Yukihiro "Matz" Matsumoto
62a35e502b
bigint.c: rename double sized mp_limb.
...
- mp_limb2 -> mp_dbl_limb
- mp_limb2s -> mp_dbl_limb_signed
2022-08-06 06:43:41 +09:00
Yukihiro "Matz" Matsumoto
1718d9bafb
bigint.c: add type cast to mp_limb.
2022-08-06 06:43:40 +09:00
Yukihiro "Matz" Matsumoto
b7bc326b4c
bigint.c (mpz_set_int): check mp_limb overflow from mrb_int.
2022-08-06 06:43:40 +09:00
Yukihiro "Matz" Matsumoto
798a2b1888
Merge pull request #5774 from dearblue/bidx-assert
...
Fixed assertion in `ARGUMENT_NORMALIZE()` for `bidx`.
2022-08-06 06:43:28 +09:00
dearblue
5bc15dd69b
Fixed assertion in ARGUMENT_NORMALIZE() for bidx.
...
It should be compared to the `irep->nregs` value as is.
At the same time, discovered problems have been fixed.
2022-08-04 22:43:06 +09:00
Yukihiro "Matz" Matsumoto
72f2ac155e
Merge pull request #5772 from mruby/dependabot/github_actions/github/super-linter-4.9.6
...
build(deps): bump github/super-linter from 4.9.5 to 4.9.6
2022-08-04 08:18:08 +09:00
Yukihiro "Matz" Matsumoto
e2decd0528
Merge pull request #5773 from jbampton/run-pre-commit
...
Remove whitespace
2022-08-04 08:17:26 +09:00
John Bampton
791410ba3f
Remove whitespace
...
pre-commit run --all-files
2022-08-04 00:51:03 +10:00
dependabot[bot]
cf8d1eddf6
build(deps): bump github/super-linter from 4.9.5 to 4.9.6
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.9.5 to 4.9.6.
- [Release notes](https://github.com/github/super-linter/releases )
- [Changelog](https://github.com/github/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/github/super-linter/compare/v4.9.5...v4.9.6 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-08-03 14:05:47 +00:00
Yukihiro "Matz" Matsumoto
84b53fc1ee
Merge pull request #5771 from sakisakira/master
...
Reenabling building for Android NDK
2022-08-03 12:34:12 +09:00
SAkira a.k.a. Akira Suzuki
4610fa55b9
Enabled building for Android again with NDK 25.0.
2022-08-03 08:23:54 +09:00
Yukihiro "Matz" Matsumoto
441c6ea30d
bigint.c (udiv): check out of bound memory access.
2022-08-02 13:36:36 +09:00
Yukihiro "Matz" Matsumoto
75bd101685
AUTHORS: update entries [ci skip]
2022-08-02 09:04:47 +09:00
Yukihiro "Matz" Matsumoto
90e75f983e
Merge pull request #5769 from dearblue/opdef-proc
...
Protected `proc` objects given by `OP_DEF` on registers
2022-08-01 17:46:09 +09:00
Yukihiro "Matz" Matsumoto
51f404be33
Merge pull request #5768 from dearblue/hash-expansion
...
Fix property between `ar_set()` and `ht_init()`.
2022-08-01 17:37:25 +09:00
Yukihiro "Matz" Matsumoto
c32a8a71e9
Merge pull request #5767 from dearblue/fiber-gc
...
Fix `SIGSEGV` caused by GC during fiber initialization
2022-08-01 17:17:29 +09:00
Yukihiro "Matz" Matsumoto
dd00724f30
Merge pull request #5766 from dearblue/red-write-barrier
...
Ignore `MRB_GC_RED` objects in `mrb_field_write_barrier()`
2022-08-01 17:15:54 +09:00
Yukihiro "Matz" Matsumoto
c34bb7825a
mruby-time/time.c: add Time#eql? to compare.
2022-08-01 16:29:35 +09:00
Yukihiro "Matz" Matsumoto
9dfbcbae7b
object.c (mrb_equal): support big-integers.
2022-08-01 16:26:02 +09:00
Yukihiro "Matz" Matsumoto
4fb018d407
object.c (mrb_equal): shortcut per object comparison.
...
To reduce the chance to call mrb_funcall(), which is heavy and
unfriendly to fiber context switches.
2022-08-01 16:24:48 +09:00
Yukihiro "Matz" Matsumoto
585d80e0a7
numeric.c (num_eql): move eql? definition to Numeric class.
...
We no longer need Float#eql? etc.
2022-08-01 16:20:35 +09:00
Yukihiro "Matz" Matsumoto
569a8910af
bigint.c: check division by zero errors.
2022-08-01 13:58:05 +09:00
Yukihiro "Matz" Matsumoto
b5a3fe5276
Merge pull request #5770 from dearblue/doc-1
...
Avoid comparing `mrb_bool` to integer values in the documentation
2022-08-01 13:57:54 +09:00
dearblue
5215b9ce8b
Avoid comparing mrb_bool to integer values in the documentation
2022-07-31 20:38:31 +09:00
Yukihiro "Matz" Matsumoto
9198b9c7db
Merge pull request #5760 from jbampton/fix-type-use-array
...
CodeQL: fix type use array
2022-07-31 08:01:59 +09:00
Yukihiro "Matz" Matsumoto
d28009ebd8
mruby-print/print.rb: reduce explicit return values; ref #5762
...
By making __printstr__ to return nil.
2022-07-31 07:56:06 +09:00
Yukihiro "Matz" Matsumoto
a8e6b840ea
Merge pull request #5762 from dearblue/iso-puts
...
Removed unnecessary ISO section numbers for `Kernel.puts` [ci skip]
2022-07-31 07:55:46 +09:00
dearblue
2d9ecc660e
Fix property between ar_set() and ht_init().
...
If GC occurs in `mrb_realloc()` in `ht_init()` called from `ar_set()`, the following inconsistency occurs:
- If `h_ht_on()` is called before `mrb_realloc()`, `hash->hsh.ht` is referenced instead of `hash->hsh.ea` during GC.
- If the pointer is changed by `ea_adjust()` in `ar_set()`, `hash->hsh.ea` (`hash->hsh.ht`) is referenced in GC before the change.
These modifications can be resolved by changing the order of processing.
However, if a `NoMemoryError` exception is raised, it is presumed that the size of the "AR" will be exceeded and the unintended state will continue.
To prevent this, elements should be added after they have been converted to "HT".
2022-07-30 23:20:48 +09:00
dearblue
43fdce5019
Protected proc objects given by OP_DEF on registers
...
If a GC occurs in `mrb_calloc()` called by `mt_rehash()` inside `mrb_define_method_raw(), the `proc` may be destroyed.
2022-07-30 22:34:50 +09:00