dearblue
b012ebfa79
Ignore git checkout if nil commit-hash
...
If there is no `.lock` file and no commit hash specified, avoid `git checkout --detach`.
This behavior will be the same as up to mruby-3.1.
ref. #5638
2022-07-14 21:58:20 +09:00
Yukihiro "Matz" Matsumoto
7733f6b246
Merge pull request #5743 from dearblue/dummy-errno
...
Define `Errno::EXXX` when needed
2022-07-12 18:16:28 +09:00
Yukihiro "Matz" Matsumoto
37c2f080f0
numeric.c (int_to_s): should not bypass base range check.
2022-07-12 14:48:36 +09:00
Yukihiro "Matz" Matsumoto
bae11ef689
complex.c (mrb_complex_copy): allow copying of complex numbers.
2022-07-11 11:25:31 +09:00
Yukihiro "Matz" Matsumoto
67f47c9b42
rational.c (mrb_rational_copy): allow copying of rational numbers.
2022-07-11 11:19:22 +09:00
Yukihiro "Matz" Matsumoto
3ebb55b75f
bigint.c (mrb_bint_copy): allow dup operation for bigints.
2022-07-11 11:02:27 +09:00
Yukihiro "Matz" Matsumoto
95610a292b
bigint.c (lzb): use __builtin_clz() if available.
2022-07-11 08:01:52 +09:00
Yukihiro "Matz" Matsumoto
3046440b5a
bigint.c (mpz_set_int): remove an unused local variable.
2022-07-11 08:01:18 +09:00
dearblue
c14e26d79e
Define Errno::EXXX when needed
...
If the `Errno::EXXX` class is defined minimally when needed, it will save about 17 KiB of RAM in a 32-bit environment.
Define the singular methods `.const_defined?`, `.const_missing` and `.constants` in the `Errno` module and act as if there are classes that have not yet been defined.
However, if real classes are enumerated, for example by the following code, the effect is lost.
```ruby
Errno.constants.map { |id| Errno.const_get(id) }
```
But I believe that such codes are rarely written with the intention of being written.
In this patch, the `Errno::EXXX#initialize` method is no longer defined for further memory reduction.
Instead, it has been merged into the `SystemCallError#initialize` method.
2022-07-10 20:53:55 +09:00
Yukihiro "Matz" Matsumoto
04b153a3b1
bigint.c (mpz_init_set_int): unified with mpz_set_int().
2022-07-10 08:06:55 +09:00
Yukihiro "Matz" Matsumoto
84d73ba6e8
bigint.c: small refactoring (removing extra lines and spaces).
2022-07-09 19:33:39 +09:00
Yukihiro "Matz" Matsumoto
e157a84418
bigint.c (mpz_init_set_int): should avoid integer overflow.
...
Check MRB_INT_MIN which could overflow by negation.
2022-07-09 17:27:27 +09:00
Yukihiro "Matz" Matsumoto
48b43af37f
numeric.c (mrb_div_int_value): should support integer overflow.
...
Especially in `MRB_INT_MIN/-1` which is bigger than MRB_INT_MAX.
2022-07-09 15:21:45 +09:00
Yukihiro "Matz" Matsumoto
fa0ff7cf86
numeric.c: better error message (Float -> Integer).
2022-07-09 15:13:52 +09:00
Yukihiro "Matz" Matsumoto
7de03cbb68
numeric.c: add mrb_noreturn qualifier to error functions.
...
- mrb_int_zerodiv()
- mrb_int_overflow()
2022-07-09 15:12:37 +09:00
Yukihiro "Matz" Matsumoto
e1980d7596
numeric.c (mrb_div_int): separate the function in two.
...
- mrb_div_int() does integer division in Ruby way (mdiv)
returns mrb_int
- mrb_div_int_value() division with zero div and overflow checks.
returns mrb_value
2022-07-09 14:38:18 +09:00
Yukihiro "Matz" Matsumoto
f1275803c9
bigint.c (mpz_set): simplify memory reallocation code.
2022-07-09 14:36:17 +09:00
Yukihiro "Matz" Matsumoto
a40842eb73
bigint.c (udiv): use (signed) int for loop counters.
...
Sometimes (xd-yd) may be negative and should be checked.
2022-07-09 10:56:02 +09:00
Yukihiro "Matz" Matsumoto
a64d2bfbe6
bigint.c (mpz_mul,mpz_mdiv): return early on zero.
2022-07-09 10:47:23 +09:00
Yukihiro "Matz" Matsumoto
a2f0fd81e6
numeric.c (mrb_int_mul): fix error message (Float -> Integer).
2022-07-09 10:45:44 +09:00
Yukihiro "Matz" Matsumoto
8d34981530
numeric.c: avoid mathematical operations for simple cases.
2022-07-09 10:45:11 +09:00
Yukihiro "Matz" Matsumoto
960021e519
numeric.c (cmpnum): call mrb_bigint_cmp() if v1 is bigint, not v2.
2022-07-08 21:57:05 +09:00
Yukihiro "Matz" Matsumoto
872020bb3d
math.gembox: add cmath and bigint to math gembox; ref #5742
2022-07-07 15:39:36 +09:00
Yukihiro "Matz" Matsumoto
b5538eded1
vm.c (OP_ENTER): need to protect kdict from GC; ref #5741
2022-07-06 14:57:06 +09:00
Yukihiro "Matz" Matsumoto
8fed80f5eb
vm.c (OP_ENTER): protect kdict from GC; ref #5741
2022-07-06 14:29:14 +09:00
Yukihiro "Matz" Matsumoto
4225ae4176
vm.c (OP_ENTER): need to update ci->nk when kd is set; fix #5741
2022-07-06 13:57:12 +09:00
Yukihiro "Matz" Matsumoto
7e8a4212fb
vm.c: refactor OP_ENTER code; ref #5741
2022-07-06 13:37:29 +09:00
Yukihiro "Matz" Matsumoto
82a419cde3
vm.c (mrb_ci_kdict): should return -1 when no kargs given; ref #5741
2022-07-06 13:37:20 +09:00
Yukihiro "Matz" Matsumoto
638356af03
class.c (mc_clear_by_id): clear method cache with method id specified.
2022-07-05 17:39:36 +09:00
Yukihiro "Matz" Matsumoto
a99e4a926d
class.c (mrb_mc_clear_by_class): simplify method cache clear condition.
2022-07-05 17:39:30 +09:00
Yukihiro "Matz" Matsumoto
1e7012f8c1
class.c (mrb_class_inherited): no need to clear method cache.
...
Since the function is only called for a newly created class, there is no
need to modify the method cache here.
2022-07-04 21:47:19 +09:00
Yukihiro "Matz" Matsumoto
e8a202d461
vm.c: inline callinfo related functions.
2022-07-04 21:15:42 +09:00
Yukihiro "Matz" Matsumoto
78e723accb
AUTHORS: update entries [ci skip]
2022-07-03 18:17:29 +09:00
Yukihiro "Matz" Matsumoto
ce89ab8660
parse.y: class cannot be followed by modifier if. [ruby-bugs:18884]
2022-07-02 10:31:33 +09:00
Yukihiro "Matz" Matsumoto
0db9a8e8d7
Merge pull request #5740 from dearblue/src-include
...
Avoid adding `MRUBY_ROOT/src` to `cc.include_paths`
2022-07-02 10:31:14 +09:00
dearblue
9a84ef926b
Avoid adding MRUBY_ROOT/src to cc.include_paths
2022-07-02 09:56:13 +09:00
Yukihiro "Matz" Matsumoto
03ae46e88d
string.c: keep values in local variables to reduce member access.
2022-06-30 10:12:24 +09:00
Yukihiro "Matz" Matsumoto
f2bc7c305a
array.c (mrb_assoc_new): keep pointer in a local variable.
...
The optimizer may do the same, but tried to make it clear.
2022-06-30 10:09:34 +09:00
Yukihiro "Matz" Matsumoto
e2c4a8cef0
array.c (ary_check_too_big): make the function inline.
2022-06-30 09:57:30 +09:00
Yukihiro "Matz" Matsumoto
72b60eb449
include/mruby/value.h: remove assertion from mrb_obj_value()
...
The function was called too often, so that even slightest assertion may
bother performance. The function is stable enough.
2022-06-30 08:11:36 +09:00
Yukihiro "Matz" Matsumoto
b58094c881
mruby-sprintf/sprintf.c: call mrb_str_resize() less often.
2022-06-29 15:03:41 +09:00
Yukihiro "Matz" Matsumoto
580af1cf73
vm.c (mrb_bidx): avoid repeated packing/unpacking argument info.
2022-06-29 07:51:08 +09:00
Yukihiro "Matz" Matsumoto
f7c2b0388a
benchmark/bm_so_lists.rb: address the broken link; close #5737
...
The original page was lost, so we added the link to the wayback machine.
2022-06-28 11:31:16 +09:00
Yukihiro "Matz" Matsumoto
0b7822581f
string.c (str_rindex): use more local variables; ref #5734
2022-06-27 19:04:36 +09:00
Yukihiro "Matz" Matsumoto
7319e744ad
src/vm.c: move some inline functions from mruby/proc.h; ref #5732
...
Those functions are seldom called so no need to be inline functions.
2022-06-27 19:04:35 +09:00
Yukihiro "Matz" Matsumoto
e5ec9a18fe
Merge pull request #5738 from jbampton/fix-case-of-mruby
...
Fix case of `mruby`
2022-06-27 18:56:56 +09:00
John Bampton
48f03dceeb
Fix case of mruby
2022-06-27 18:58:31 +10:00
Yukihiro "Matz" Matsumoto
1d87493803
Merge pull request #5736 from jbampton/update-docs
...
docs: add link and fix command
2022-06-27 16:53:08 +09:00
John Bampton
8f16c1d99e
docs: add link and fix command
2022-06-27 15:30:17 +10:00
Yukihiro "Matz" Matsumoto
f080005720
Merge pull request #5735 from jbampton/pre-commit-skip-docs
...
Add docs on the `SKIP` pre-commit environment variable
2022-06-27 13:18:43 +09:00