Commit Graph

14108 Commits

Author SHA1 Message Date
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
Yukihiro "Matz" Matsumoto 9e38aa8948 Merge pull request #5761 from jbampton/fix-grammar
docs: fix grammar
2022-07-30 15:56:48 +09:00
dearblue 2e6d2abf09 Removed unnecessary ISO section numbers for Kernel.puts [ci skip]
The `Kernel.puts` method is defined in the `mrbgems/mruby-print/mrblib/print.rb` file.
2022-07-30 11:54:23 +09:00
Yukihiro "Matz" Matsumoto b77b8f4deb numeric.c (flo_ceil_floor): negate after converting integer to float.
Otherwise integer negate may overflow.
2022-07-30 09:08:42 +09:00
Yukihiro "Matz" Matsumoto 9d774bc011 numeric.c (flo_ceil_floor): return bigint if possible. 2022-07-30 09:08:02 +09:00
Yukihiro "Matz" Matsumoto eb392cb643 numeric.c (mrb_float_to_integer): check for RangeError.
Otherwise flo_to_i raises FloatDomainError instead.
2022-07-30 09:06:49 +09:00
Yukihiro "Matz" Matsumoto e4bcd8a96a numeric.c (mrb_float_to_integer): unify with flo_to_i(). 2022-07-30 09:05:21 +09:00
Yukihiro "Matz" Matsumoto 5af98f2088 numeric.c (flo_ceil_floor): add exact number check. 2022-07-30 09:01:24 +09:00
Yukihiro "Matz" Matsumoto aebf75fed4 bigint.c (mrb_bint_as_int): change overflow message.
From "integer too big" to "integer out of range" because the integer can
be too small if it's negative.
2022-07-30 08:58:30 +09:00
Yukihiro "Matz" Matsumoto b8d3bc0eae numeric.c: move FloatDomainError description to the sufficient place. 2022-07-30 08:46:06 +09:00
Yukihiro "Matz" Matsumoto 89b0c7d7ab complex.c (mrb_complex_to_i): return bigint if possible. 2022-07-30 08:44:15 +09:00
Yukihiro "Matz" Matsumoto 273ca4d4f6 tasks/toolchains/gcc.rake: remove -lm on Windows; #5757 2022-07-30 07:33:45 +09:00
Yukihiro "Matz" Matsumoto 6da34fa735 numeric.c (int_div): add checks for division by zero. 2022-07-29 17:48:02 +09:00
John Bampton 9521e4e974 docs: fix grammar 2022-07-29 16:30:46 +10:00
John Bampton 5cae37abe5 CodeQL: fix type use array 2022-07-29 14:44:02 +10:00
Yukihiro "Matz" Matsumoto 387f383eeb bigint.c (mrb_sizeinbase): cast to remove a signedness warning. 2022-07-29 10:26:04 +09:00
Yukihiro "Matz" Matsumoto 5df3f8221d bigint.c (lzb): check x==0 before calling clz().
In theory, we should not call lzb() with 0, and we assume checks are
done before calling it. But we got a report that we call lzb(0) in some
use-case. We could not reproduce the issue, so we add this guard.
2022-07-29 10:24:41 +09:00
Yukihiro "Matz" Matsumoto 64ea7f0930 doc/guides/link.md: fixed typo. 2022-07-29 10:24:41 +09:00
Yukihiro "Matz" Matsumoto 23cb2a73ff bigint.c (mpz_move): reduce copying of digits arrays. 2022-07-29 10:24:41 +09:00
Yukihiro "Matz" Matsumoto dcf9e32870 Merge pull request #5759 from jbampton/lint-modified-files
Super-Linter: Lint modified files only
2022-07-29 10:24:01 +09:00
John Bampton 9ddc6c1915 Super-Linter: Lint modified files only
Following the basic example shown here

https://github.com/github/super-linter#example-connecting-github-action-workflow
2022-07-29 09:19:28 +10:00
Yukihiro "Matz" Matsumoto 33b11daca7 Merge pull request #5758 from jbampton/pre-commit-autoupdate
pre-commit autoupdate
2022-07-29 07:43:59 +09:00
John Bampton 718547be2b pre-commit autoupdate
https://pre-commit.com/#pre-commit-autoupdate
2022-07-29 08:29:12 +10:00
Yukihiro "Matz" Matsumoto d0780c0525 vm.c: should cast bigint length to unsigned.
Otherwise length>127 would be considered as negative.
2022-07-28 15:21:32 +09:00
Yukihiro "Matz" Matsumoto de2ea3c389 bigint.c (udiv): avoid integer underflow. 2022-07-28 15:07:22 +09:00
Yukihiro "Matz" Matsumoto 9592b7e4ec mruby_proto_fuzzer.cpp: try to print the code before evaluating it. 2022-07-27 13:42:28 +09:00
Yukihiro "Matz" Matsumoto 4620485135 Merge pull request #5756 from mruby/dependabot/github_actions/github/super-linter-4.9.5
build(deps): bump github/super-linter from 4.9.4 to 4.9.5
2022-07-27 09:23:05 +09:00
dependabot[bot] a65f953356 build(deps): bump github/super-linter from 4.9.4 to 4.9.5
Bumps [github/super-linter](https://github.com/github/super-linter) from 4.9.4 to 4.9.5.
- [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.4...v4.9.5)

---
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-07-26 14:09:39 +00:00
Yukihiro "Matz" Matsumoto 25a32ed681 bigint.c (ulshift,urshift): check uzero before actual shifting.
Bit-shifting zero always result in zero.
2022-07-26 15:06:06 +09:00
Yukihiro "Matz" Matsumoto 97b9bfc4fa bigint.c (mpz_init_set_str): move negative trick to mrb_bint_new_str().
It used to take negative base to generate negative value. But this weird
trick is now belong to the mruby API side.
2022-07-26 15:03:52 +09:00
Yukihiro "Matz" Matsumoto c2e4b82d84 codegen.c (new_litbint): remove surrounding braces.
It was to allow local variable declarations, but now we allow
declarations in the middle.
2022-07-26 13:55:54 +09:00
Yukihiro "Matz" Matsumoto 26ce85bd5d bigint.c (ucmp): fixed error with zero length zero value.
Big integers have two kind of zero values:

- digits in `p` array are all zeros
- length `sn` is zero

The old code crashed with the latter zero.
2022-07-26 00:13:15 +09:00
Yukihiro "Matz" Matsumoto e8ce82bf31 codegen.c (new_litbint): forgot else in a107b85. 2022-07-26 00:11:53 +09:00
Yukihiro "Matz" Matsumoto 3d1b5d2b06 Merge pull request #5754 from artichoke/lopopolo/class-name-use-after-free
Fix possible use after free in `mrb_class_find_path`
2022-07-25 15:41:07 +09:00
Yukihiro "Matz" Matsumoto c6bf4eaac0 codegen.c (new_litbint): renamed from new_litbn. 2022-07-25 15:33:43 +09:00
Yukihiro "Matz" Matsumoto a107b850eb codegen.c (new_bitbn): fixed wrong packing of integer radix. 2022-07-25 15:31:43 +09:00
Yukihiro "Matz" Matsumoto d2d105b589 bigint.c (mpz_get_int): should work with zero (i.e. y->p == NULL). 2022-07-25 14:54:41 +09:00
Yukihiro "Matz" Matsumoto 6a4c8e36b5 bigint.c (udiv): should trim remainder before bit shifting. 2022-07-25 14:54:41 +09:00
Yukihiro "Matz" Matsumoto e02e9ae434 bigint.c (mpz_mmod): should call mpz_clear() for internal mpz_t. 2022-07-25 14:54:41 +09:00
Yukihiro "Matz" Matsumoto 7d5475916c bigint.c (udiv): avoid out of bound access in division. 2022-07-25 14:54:40 +09:00
Yukihiro "Matz" Matsumoto 657263446e bigint.c: cosmetic changes (add spaces, etc.) 2022-07-25 14:54:40 +09:00
Yukihiro "Matz" Matsumoto 866ab88c94 mruby-os-memsize/memsize.c: add fall through comment. 2022-07-25 10:58:03 +09:00