Yukihiro "Matz" Matsumoto
bdc244e9b0
mruby-errno/errno.c: fix integer size mixtures.
2022-04-21 14:47:15 +09:00
Yukihiro "Matz" Matsumoto
3be461077d
mruby-pack/pack.c: fix integer size mixtures.
2022-04-21 14:47:15 +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
790910b50a
codegen.c: genop_3 to take uint16_t instead of uint8_t.
2022-04-17 09:32:04 +09: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
3c96ee704b
fiber.c: cast integer to avoid a warning.
2022-04-14 10:53:58 +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
c8c083cb75
codegen.c: need to pack argument when n==13 too.
...
Because we have extra 2 arguments coming (kw and rhs).
2022-04-09 17:16:12 +09:00
Yukihiro "Matz" Matsumoto
55b526167b
test/bigint.rb: add test for multi-precision integers.
2022-04-09 17:16:11 +09:00
Yukihiro "Matz" Matsumoto
dcaf4083d5
src/bigint.c: implement multi-precision integer.
...
To enable multi-precision integer support, you need to link
`mruby-bigint` mrbgem. The gem itself is empty but it turns on
the "bigint" support.
2022-04-09 17:16:10 +09:00
Yukihiro "Matz" Matsumoto
3dabd18dcc
errno.c: resolve signedness warning.
2022-04-02 18:25:13 +09:00
Yukihiro "Matz" Matsumoto
b99c389ec3
internal.h: aggregate internal functions.
...
Internal functions can only be called from within the library.
Functions listed in `mruby/internal.h` can be called from:
* core (src/*.c)
* gems (mrbgems/**/*.c)
But not from the application linked with `libmruby`.
2022-04-02 18:25:13 +09:00
Yukihiro "Matz" Matsumoto
a3f2c95334
codegen.c: skip overwritten MOVE instructions.
2022-03-30 15:34:40 +09:00
Yukihiro "Matz" Matsumoto
60cf382ff9
codegen.c: peephole optimize consecutive MOVE instructions.
2022-03-29 22:36:40 +09:00
dearblue
f9d72908ca
Remove old compatibility code
...
The `mrb_voidp()` related macros have been removed in mruby-1.1.0.
2022-03-27 11:26:43 +09:00
Yukihiro "Matz" Matsumoto
a91b55f5ca
codegen.c: allow constant folding for multiply with zero.
2022-03-26 11:20:59 +09:00
Yukihiro "Matz" Matsumoto
90969cef4c
codegen.c: fix the negative division regression; fix #5678
2022-03-26 11:20:59 +09:00
Yukihiro "Matz" Matsumoto
b4168c9b68
parse.y: empty here-doc delimiter caused infinite loop; fix #5676
2022-03-25 07:45:06 +09:00
John Bampton
7e4eaaa11a
Format Markdown tables
2022-03-24 01:00:24 +10:00
Yukihiro "Matz" Matsumoto
982a4769a1
metaprog.c: add undefined_instance_methods method.
2022-03-21 11:15:23 +09:00
Yukihiro "Matz" Matsumoto
4f869f3367
numeric.c: enhance float division to support Complex.
2022-03-18 14:23:17 +09:00
Yukihiro "Matz" Matsumoto
e45081d310
mrbc/stub.c: define stub functions in a separated file.
2022-03-18 12:29:47 +09:00
Yukihiro "Matz" Matsumoto
fe03e01078
numeric.c: enhance integer division to support Rational and Complex.
...
No longer need to override division methods in mrbgems.
2022-03-18 12:27:46 +09:00
Yukihiro "Matz" Matsumoto
4dcdf78f8a
numeric_ext.c: add Integer#pow() method.
...
Which takes optional second argument of modulo.
2022-03-17 23:25:50 +09:00
Yukihiro "Matz" Matsumoto
13d014ab5e
complex.c: rename static functions to remove abbreviations.
...
- `flo_`
- `cpx_`
2022-03-15 19:14:45 +09:00
Yukihiro "Matz" Matsumoto
a2e9005286
parse.y: add type cast to integer comparison.
2022-03-12 13:31:46 +09:00
Yukihiro "Matz" Matsumoto
4beebc73a7
complex.c: avoid mrb_funcall; call functions directly.
2022-03-12 13:31:38 +09:00
Yukihiro "Matz" Matsumoto
2772e07dc8
rational.c: avoid mrb_funcall; call functions directly.
2022-03-12 13:31:38 +09:00
Yukihiro "Matz" Matsumoto
7659b3b271
numeric.c: avoid mrb_funcall; call functions directly.
...
When you try to call functions defined in mrbgems, you need to add the
names of functions to `mrbc.c`, since `mrbc` does not link any mrbgem
regardless of the configuration.
2022-03-12 13:31:38 +09:00
Yukihiro "Matz" Matsumoto
10001ff67f
rational.c, complex.c: expose arithmetic operation functions.
...
* mrb_{rational,complex}_{add,sub,mul,div}
2022-03-12 08:35:07 +09:00
Yukihiro "Matz" Matsumoto
da48e7dbb2
fiber.c: should pack 15+ arguments in an array.
2022-03-09 15:21:15 +09:00
Yukihiro "Matz" Matsumoto
6fa5aaf694
socket.c: unify error handling code.
2022-03-09 15:21:14 +09:00
Yukihiro "Matz" Matsumoto
2cb82803b3
socket.c: reorganize error condition in mrb_ipsocket_ntop().
2022-03-09 15:21:14 +09:00
Yukihiro "Matz" Matsumoto
50f357ee5d
mruby-sleep: make error messages consistent.
2022-03-09 15:21:14 +09:00
Yukihiro "Matz" Matsumoto
22a98a0ba7
pack.c: unify duplicated error handling code.
2022-03-09 15:21:14 +09:00
Yukihiro "Matz" Matsumoto
2dff7ed6a2
mrbc.c: add --no-optimize option to disable optimization; close #5661
2022-03-05 08:04:34 +09:00
Yukihiro "Matz" Matsumoto
41f5f464ae
codegen.c: disable constant folding if no_optimize is set; ref #5661
2022-03-05 08:04:33 +09:00
Yukihiro "Matz" Matsumoto
278f46f971
unpack.c: check if srcidx is shorter than srclen for safety.
2022-03-04 14:19:10 +09:00
Yukihiro "Matz" Matsumoto
bc9476e7ca
unpack.c: unpack_BER() did assume the string length is not zero.
2022-03-04 14:18:20 +09:00
Yukihiro "Matz" Matsumoto
85c347c3af
codegen.c: fix a bug in super with keyword arguments; fix #5660
2022-03-03 14:48:39 +09:00
Yukihiro "Matz" Matsumoto
a4f740ff9a
string.c: use mrb_int instead of size_t.
2022-03-03 08:08:02 +09:00
Yukihiro "Matz" Matsumoto
0bf1ed9f2c
array-ext/array.c: remove unused local variable.
2022-03-03 08:08:01 +09:00
Yukihiro "Matz" Matsumoto
5305c5c84d
array.c: call mrb_ary_delete_at() directly from Array#slice!.
...
Avoid `mrb_funcall()`.
2022-02-26 14:21:35 +09:00
Yukihiro "Matz" Matsumoto
b118ba9fb3
rational.c: avoid indirect calls using mrb_funcall().
2022-02-25 17:53:55 +09:00
Yukihiro "Matz" Matsumoto
776be1b397
codegen.c: use OP_ARRAY instead of OP_ARRAY2 in optimization.
...
If operand 1 and operand 2 specify the same register `OP_ARRAY2`
can/should be transformed to `OP_ARRAY`.
2022-02-22 19:28:40 +09:00
Yukihiro "Matz" Matsumoto
d4d29b21b3
codegen.c: peephole optimize OP_MOVE after OP_ARRAY or OP_ARRAY2.
2022-02-22 17:27:24 +09:00
Yukihiro "Matz" Matsumoto
c37f648552
codegen.c: use OP_ARRAY instead of OP_ARRAY2 if possible.
...
`OP_ARRAY` inline elements, i.e: with `OP_ARRAY Rn Rm len`, `Rn` and
`Rm` should always be the same register.
2022-02-22 17:21:51 +09:00
Yukihiro "Matz" Matsumoto
75e86dcfcd
codegen.c: assign post assignees for fixed number of RHS.
2022-02-22 17:20:00 +09:00
Yukihiro "Matz" Matsumoto
ae231924a9
parse.y: small refactoring in mrb_parser_dump().
2022-02-22 16:46:02 +09:00
Yukihiro "Matz" Matsumoto
0282d3ec9f
codegen.c: rename gen_vmassinment to gen_massignment.
...
`m` stands for `multiple` but I don't remember why I put `v` first.
2022-02-22 16:43:51 +09:00