Yukihiro "Matz" Matsumoto
58ab97e300
mruby-config: add --cc and --ld options.
...
* `--cc` print compiler name
* `--ld` print linker name
2021-04-06 17:25:53 +09:00
dearblue
caeacea86e
Making a proc object static for a method with static irep
...
The following methods will be made static.
- `Class#new`
- `Proc#call`
- `Kernel#catch`
Previously, static const RProc could not be registered as a method, but this has been changed to allow it.
2021-04-04 15:44:19 +09:00
Yukihiro "Matz" Matsumoto
f68c0d092c
Merge pull request #5396 from shuujii/fix-build-with-MRB_USE_ALL_SYMBOLS
...
Fix build with `MRB_USE_ALL_SYMBOLS`
2021-04-02 07:44:14 +09:00
KOBAYASHI Shuji
4309a5b1f4
Fix build with MRB_USE_ALL_SYMBOLS
2021-03-31 19:10:39 +09:00
Yukihiro "Matz" Matsumoto
d5a4d5e393
codegen.c: s->ainfo should be zero along with OP_ENTER(0).
2021-03-31 17:20:14 +09:00
Yukihiro "Matz" Matsumoto
9f85c5e483
codegen.c: yield outside of method is now SyntaxError.
2021-03-31 15:57:43 +09:00
Yukihiro "Matz" Matsumoto
f2da051367
Merge pull request #5394 from fundamental/partial-backtrace
...
Add support for partial backtraces
2021-03-31 15:39:47 +09:00
Yukihiro "Matz" Matsumoto
9038a1ca40
rational.c: add explicit cast from mrb_int to mrb_float.
2021-03-31 11:39:59 +09:00
Yukihiro "Matz" Matsumoto
590c1073fc
should have removed codegen error: prefix from the test.
2021-03-31 11:35:56 +09:00
Yukihiro "Matz" Matsumoto
cb8dabeb8c
codegen.c: remove codegen error: prefix from error messages.
2021-03-31 10:48:18 +09:00
Yukihiro "Matz" Matsumoto
4428ce6050
codegen.c: ainfo may be negative.
...
When argument information is not available. So it should not happen for
`yield` (error). In contrast, the error from `super` should be handled
in run time (ignored).
2021-03-31 10:48:17 +09:00
fundamental
c146e81c4a
Disable tests on backtraces w/ unknown line numbers
2021-03-30 20:26:10 -04:00
Yukihiro "Matz" Matsumoto
a5244b02c5
numeric.c: function renaming.
...
- `mrb_num_div_int(mrb,x,y)` -> `mrb_div_int(mrb,x,y)`
- `mrb_num_div_flo(mrb,x,y)` -> `mrb_div_flo(x,y)`
They are internal function not supposed to be used outside of the core.
2021-03-28 08:35:29 +09:00
Yukihiro "Matz" Matsumoto
c2f929ad0f
Move default Integer#/ from rational.c to complex.c.
2021-03-27 12:38:16 +09:00
Yukihiro "Matz" Matsumoto
01a8edea35
complex.rb: add test for arithmetic operators. [ci skip]
...
Tests for (`Float` or `Integer`) `op` `Complex`. Also added test
dependency to `mruby-rational` since `int_div` definition relies on
`Rational` when `MRB_USE_RATIONAL` is defined.
2021-03-26 17:20:25 +09:00
Yukihiro "Matz" Matsumoto
9492e389b8
rational.rb: add test for arithmetic operators.
...
Tests for (`Float` or `Integer`) `op` `Rational`.
2021-03-26 07:37:50 +09:00
Yukihiro "Matz" Matsumoto
6d89047637
rational.c: fix wrong funcall method in rational_mul.
2021-03-25 22:31:32 +09:00
Yukihiro "Matz" Matsumoto
0aff83dcdc
rational.c: inline mrb_rational_eq().
...
It removes non-static function, so that strictly saying, it's
an incompatible change. But the function was added recently and I am
sure no one uses it yet.
2021-03-25 08:28:41 +09:00
Yukihiro "Matz" Matsumoto
4a0c14e3bd
rational.c: implement Rational#<=> in C.
2021-03-24 19:49:20 +09:00
Yukihiro "Matz" Matsumoto
3a2075343c
rational.c: implement Rational#/ and #quo in C.
2021-03-24 19:21:38 +09:00
Yukihiro "Matz" Matsumoto
f05f6f4d11
rational.c: implement Rational#* in C.
2021-03-24 19:11:02 +09:00
Yukihiro "Matz" Matsumoto
9d058342a5
rational.c: implement Rational#- in C.
2021-03-24 19:01:58 +09:00
Yukihiro "Matz" Matsumoto
7a35b64251
fixup! rational.c: prepare utility function rat_to_flo().
2021-03-24 19:01:38 +09:00
Yukihiro "Matz" Matsumoto
ac4fe26fbb
rational.c: prepare utility function rat_to_flo().
...
This function takes `struct mrb_rational*` and returns converted
`mrb_float` value.
2021-03-24 18:59:35 +09:00
Yukihiro "Matz" Matsumoto
7ca7bee9b3
rational.c: implement Rational#+ in C.
2021-03-24 13:57:49 +09:00
Yukihiro "Matz" Matsumoto
5a4958af26
complex.c: use mrb_num_div_flo to avoid copying function.
...
This change relies that `mrb_num_div_flo` does not use `mrb` inside.
2021-03-24 13:56:08 +09:00
Yukihiro "Matz" Matsumoto
092bba64e7
rational.c: check integer overflow in rational_minus.
2021-03-24 13:28:01 +09:00
Yukihiro "Matz" Matsumoto
49f75703cc
complex.rb: unary plus (+@) to return self avoiding copying.
2021-03-24 11:06:48 +09:00
Yukihiro "Matz" Matsumoto
9ed212ef9e
complex.c: implement Complex addition and subtraction in C.
2021-03-24 11:06:14 +09:00
Yukihiro "Matz" Matsumoto
fa3ac351ff
complex.c: override float division to support Complex.
2021-03-24 11:04:58 +09:00
Yukihiro "Matz" Matsumoto
afb3c00e8c
Use div_flo (copy of mrb_num_div_flo) for float division.
2021-03-24 10:56:01 +09:00
Yukihiro "Matz" Matsumoto
ec456e5b18
Use mrb_num_div_flo for float division.
...
This function handles zero division properly. Also fixed bugs that multiply
numbers instead of division.
2021-03-24 10:54:24 +09:00
Yukihiro "Matz" Matsumoto
98799aa6b8
Fix infinite recursive call bugs in integer division.
2021-03-24 10:52:31 +09:00
Yukihiro "Matz" Matsumoto
3deb62d653
complex.c: implement Complex#/ and #quo in C.
2021-03-24 10:27:49 +09:00
Yukihiro "Matz" Matsumoto
5573707d7f
complex.c: implement Complex#* in C.
2021-03-24 09:53:39 +09:00
Yukihiro "Matz" Matsumoto
dc5d74dda8
rational.rb: avoid 'NaNi` representation.
...
Use `NaN*i` as CRuby does.
2021-03-24 09:52:15 +09:00
Yukihiro "Matz" Matsumoto
30576bf3c6
Merge pull request #5387 from shuujii/use-global-defines-for-mruby-bin-debugger
...
Use global defines for `mruby-bin-debugger`
2021-03-22 12:43:58 +09:00
KOBAYASHI Shuji
c0fb675526
Reorganize types for ObjectSpace.count_objects
...
#### Addition
- T_COMPLEX
- T_RATIONAL
#### Deletion
- T_FALSE
- T_FREE
- T_TRUE
- T_SYMBOL
- T_UNDEF
2021-03-22 12:24:42 +09:00
KOBAYASHI Shuji
00a13e22dd
Use global defines for mruby-bin-debugger
2021-03-22 12:02:26 +09:00
Yukihiro "Matz" Matsumoto
68cf8346cd
Use global defines for Rational and Complex.
2021-03-22 10:59:35 +09:00
Yukihiro "Matz" Matsumoto
fbc629c56f
codegen.c: fix integer size warnings.
...
along with repeated calls of `strlen()`.
2021-03-22 10:57:36 +09:00
Yukihiro "Matz" Matsumoto
73056aeb2b
complex.c: define Complex#== in C.
...
This change also fixes the error caused by `rational.c` that calls
`mrb_complex_eq()`, which had been undefined.
2021-03-21 08:30:52 +09:00
Yukihiro "Matz" Matsumoto
a6d4477a09
memsize.c: handle MRB_TT_RATIONAL and MRB_TT_COMPLEX.
2021-03-21 08:29:05 +09:00
Yukihiro "Matz" Matsumoto
e21f293de5
rational.c: fix MRB_TT_RATIONAL and MRB_TT_COMPLEX confusion.
2021-03-20 18:03:11 +09:00
Yukihiro "Matz" Matsumoto
98821d2725
random.c: fixed seed underflow bug.
...
`MRB_INT_MIN` does not have a corresponding positive value.
2021-03-20 14:40:54 +09:00
Yukihiro "Matz" Matsumoto
d3184e4a6d
complex.c: overhaul complex operators.
...
- define `MRB_TT_COMPLEX`
- change object structure (`struct RComplex`)
- add memory management for `MRB_TT_COMPLEX`
- avoid operator overloading as much as possible
- as a result, performance improved a log
- should work with and without `Rational` defined
2021-03-19 10:37:10 +09:00
Yukihiro "Matz" Matsumoto
08f9d5bab5
rational.c: overhaul rational operators.
...
- define `MRB_TT_RATIONAL`
- change object structure (`struct RRational`)
- add memory management for `MRB_TT_RATIONAL`
- avoid operator overloading as much as possible
- implement division overloading in C
- as a result, performance improved a lot
2021-03-19 10:37:10 +09:00
Yukihiro "Matz" Matsumoto
bf524e7002
time.c: calendar clock should use CLOCK_REALTIME; 5e95f11
...
The issue was reported by @shuujii
2021-03-14 14:54:53 +09:00
Yukihiro "Matz" Matsumoto
f92a27f918
codegen.c: fix memory leak from new_litbn().
2021-03-13 09:33:16 +09:00
Yukihiro "Matz" Matsumoto
bf2110d206
codegen.c: need to preserve neg info.
2021-03-12 18:34:29 +09:00