Yukihiro "Matz" Matsumoto
3be461077d
mruby-pack/pack.c: fix integer size mixtures.
2022-04-21 14:47:15 +09:00
Yukihiro "Matz" Matsumoto
9dd45df804
numeric.c (int_pow): should not overflow.
2022-04-21 11:35:52 +09:00
Yukihiro "Matz" Matsumoto
e7d0e6fd5a
vm.c: fix integer size mixtures.
2022-04-20 16:18:18 +09:00
Yukihiro "Matz" Matsumoto
b07ce286f1
fmt_fp.c: fix int and size_t mixture.
2022-04-20 16:11:32 +09:00
Yukihiro "Matz" Matsumoto
dd582069ed
bigint.c: simplify a loop in mrb_bint_new_float().
2022-04-20 14:47:40 +09:00
Yukihiro "Matz" Matsumoto
b0be2b0176
bigint.c: fix integer size mixture warnings.
2022-04-20 14:47:40 +09:00
Yukihiro "Matz" Matsumoto
791635a8d1
Merge pull request #5695 from dearblue/mrbc-build
...
Setting `Command#build` correctly in automatic "mrbc" build for presym
2022-04-20 14:47:25 +09:00
Yukihiro "Matz" Matsumoto
eb8f7e1b77
Merge pull request #5694 from dearblue/method_added
...
Move `method_added` method into the `Module`
2022-04-20 08:05:54 +09:00
dearblue
be782b7d36
Setting Command#build correctly in automatic "mrbc" build for presym
...
This was the cause of the command line flag being affected by changes in the parent build.
So, for example, if `mruby-rational` was included, even the automatically added `mrbc` builds included `MRB_USE_RATIONAL`.
2022-04-19 21:48:50 +09:00
dearblue
8bd924c905
Move method_added method into the Module
...
Previously defined as `BasicObject#method_added`.
2022-04-19 21:00:45 +09:00
Yukihiro "Matz" Matsumoto
4ce0f6dc05
Merge pull request #5692 from jbampton/update-lint-workflow
...
Fix step names in lint workflow
2022-04-19 07:45:47 +09:00
Yukihiro "Matz" Matsumoto
94585a5902
mruby-binding/bindinc.c: should not mix int and size_t.
2022-04-18 17:47:10 +09:00
Yukihiro "Matz" Matsumoto
b38a766427
numeric.c (flo_to_i): use bigint if the value is bigger than mrb_int.
2022-04-18 12:31:15 +09:00
Yukihiro "Matz" Matsumoto
96ff3c31c4
bigint.c: cast to unsigned integer to avoid undefined behavior.
2022-04-18 11:34:30 +09:00
Yukihiro "Matz" Matsumoto
25e6e24c19
bigint.c: adjust integer types to remove warnings.
2022-04-18 11:33:53 +09:00
Yukihiro "Matz" Matsumoto
a89130561b
bigint.c: remove unused function prototypes.
2022-04-18 11:32:09 +09:00
Yukihiro "Matz" Matsumoto
c0b829acce
bigint.h: remove unused macro OVMASK.
2022-04-18 11:30:50 +09:00
Yukihiro "Matz" Matsumoto
cb353af9ad
Merge pull request #5693 from dearblue/each_byte
...
Improvements to `String#each_byte`
2022-04-18 09:58:59 +09:00
Yukihiro "Matz" Matsumoto
c0ef940c90
numeric.c: add boundary checks in Float#to_f.
...
- check_num_exact() before rounding the float value
- check integer (mrb_int) overflow.
2022-04-17 09:32:04 +09:00
Yukihiro "Matz" Matsumoto
790910b50a
codegen.c: genop_3 to take uint16_t instead of uint8_t.
2022-04-17 09:32:04 +09:00
Yukihiro "Matz" Matsumoto
6df1e68e70
Merge pull request #5691 from dearblue/newlit
...
Avoid creating temporary objects with `new_lit()` in `codegen.c`
2022-04-17 09:18:25 +09:00
dearblue
76d3ea8458
Improvements to String#each_byte
...
Each byte value is now retrieved inside the loop.
2022-04-16 22:23:34 +09:00
John Bampton
d1f754cc19
Fix step names in lint workflow
2022-04-16 22:40:03 +10:00
dearblue
1354ad96ec
Avoid creating temporary objects with new_lit() in codegen.c
...
At the same time, the saving and restoration of unwanted object arenas was removed.
In addition, the common code to extend the pool that existed before has been grouped together and newly established as `lit_pool_extend()`.
Note that previously the variable `i` was updated at that time, but since it is the same as the value at the end of a `for` statement, it has been omitted.
The original catalyst was that `bin/mrbc` with the `MRB_WORD_BOXING` + not `MRB_BOXWORD_NO_FLOAT_TRUNCATE` configuration caused `bin/mrbtest` with the `MRB_NO_BOXING` configuration to fail.
Upon investigation, I concluded that avoiding the creation of temporary objects would prevent the truncation of floating point numbers.
Therefore, this patch also prevents the `rake test` from failing with the following configuration.
```console
% cat test_config.rb
bootstrap_mrbc = nil
MRuby::Build.new do |conf|
conf.toolchain
conf.enable_debug
conf.enable_test
conf.disable_presym
conf.defines << %w(MRB_WORD_BOXING)
#conf.defines << %w(MRB_WORDBOX_NO_FLOAT_TRUNCATE)
gem core: "mruby-bin-mrbc"
gem core: "mruby-kernel-ext"
bootstrap_mrbc = File.join(conf.build_dir, "bin/mrbc")
end
MRuby::Build.new("nobox") do |conf|
conf.toolchain
conf.enable_debug
conf.enable_test
conf.defines << %(MRB_NO_BOXING)
conf.mrbcfile = bootstrap_mrbc
gem core: "mruby-kernel-ext"
end
```
2022-04-16 18:22:32 +09:00
Yukihiro "Matz" Matsumoto
b352e462cf
Merge pull request #5690 from jbampton/enable-MD010
...
Enable markdownlint rule MD010 no-hard-tabs
2022-04-15 14:22:04 +09:00
John Bampton
2e35a88c7b
Enable markdownlint rule MD010 no-hard-tabs
2022-04-15 12:19:27 +10:00
Yukihiro "Matz" Matsumoto
528335ee99
Merge pull request #5689 from jbampton/case-and-grammar
...
Fix grammar and case of Ruby
2022-04-15 10:46:49 +09:00
John Bampton
888931c103
Fix grammar and case of Ruby
2022-04-15 11:32:32 +10:00
Yukihiro "Matz" Matsumoto
5f1ed381ae
Merge pull request #5688 from jbampton/fix-spelling
...
Fix spelling in `doc/mruby3.2.md`
2022-04-15 07:44:50 +09:00
John Bampton
aa4049e5e6
Fix spelling in doc/mruby3.2.md
2022-04-15 07:06:23 +10:00
Yukihiro "Matz" Matsumoto
eba74c038e
string.c: avoid a local variable.
2022-04-14 10:55:00 +09:00
Yukihiro "Matz" Matsumoto
15af07562a
variable.c: use size_t to avoid integer type mismatch.
2022-04-14 10:54:37 +09:00
Yukihiro "Matz" Matsumoto
3c96ee704b
fiber.c: cast integer to avoid a warning.
2022-04-14 10:53:58 +09:00
Yukihiro "Matz" Matsumoto
fef7deabd5
doc/mruby3.2.md: add description about multi-precision integers.
2022-04-12 20:28:47 +09:00
Yukihiro "Matz" Matsumoto
2f918f1926
errno.c: fix int and mrb_int mixture.
...
`strerror(3) takes `int` not `mrb_int`.
2022-04-12 16:11:01 +09:00
Yukihiro "Matz" Matsumoto
0e975c1571
bigint.h: simplified the condition.
2022-04-12 15:06:28 +09:00
Yukihiro "Matz" Matsumoto
ff2b21ddf3
Merge pull request #5687 from dearblue/sysfail
...
Must the `mrb_sys_fail()` function raise an exception
2022-04-12 08:59:50 +09:00
Yukihiro "Matz" Matsumoto
0ec5c3e493
bigint.c (mrb_bint_cmp): avoid object allocation for comparison.
2022-04-11 11:12:47 +09:00
Yukihiro "Matz" Matsumoto
f63f57391f
bigint.c: fix bugs caused by integer size variety.
2022-04-11 11:04:22 +09:00
Yukihiro "Matz" Matsumoto
30f6669d09
bigint.h: use int64_t as mp_limb if MRB_INT64 is set.
2022-04-11 11:03:08 +09:00
Yukihiro "Matz" Matsumoto
bafca84c54
dump.c: should dump INT64 with MRB_32BIT.
2022-04-11 11:00:49 +09:00
dearblue
ef5ae084d7
Must the mrb_sys_fail() function raise an exception
...
Normal return of control from the `mrb_sys_fail()` function has unexpected results.
Example: double free, malloc with huge size used as error integer
The following is an example of an actual crash:
```console
% cat crash.rb
def SystemCallError._sys_fail(*a)
nil
end
File.readlink("/404")
% bin/mruby crash.rb
zsh: segmentation fault (core dumped) bin/mruby crash.rb
```
2022-04-10 21:36:59 +09:00
Yukihiro "Matz" Matsumoto
676e9bcf81
bigint.h: use LL suffix for bigger integer literals.
2022-04-10 19:55:45 +09:00
Yukihiro "Matz" Matsumoto
dda1626105
bigint.c: wrong position of break statement.
2022-04-10 19:55:22 +09:00
Yukihiro "Matz" Matsumoto
2f832f4479
bigint.c: fix infinite loop bugs.
2022-04-10 19:04:20 +09:00
Yukihiro "Matz" Matsumoto
e14782e8a1
vm.c: fixed wrong compilation condition for MRB_INT32.
2022-04-10 19:03:37 +09:00
Yukihiro "Matz" Matsumoto
17a31efa8a
vm.c: adjust size of int types.
2022-04-10 19:03:01 +09:00
Yukihiro "Matz" Matsumoto
b3420faafd
class.c: use mrb_ssize to keep the array length.
2022-04-10 19:02:17 +09:00
Yukihiro "Matz" Matsumoto
b22044fca6
vm.c: cipush() to take uint16_t argc.
2022-04-10 17:36:03 +09:00
Yukihiro "Matz" Matsumoto
4260ce83a9
vm.c: avoid bare macro constant reference. wrap it by defined().
2022-04-09 23:43:03 +09:00