Yukihiro "Matz" Matsumoto
729931a06c
Fix inverted compilation condition; fix #4478
2019-05-30 12:34:31 +09:00
Yukihiro "Matz" Matsumoto
2b81ea7ec1
Add mrb_alloca again; ref #4470
...
This time, the allocated memory comes from the string object, which is
referenced from GC arena. The memory region will be reclaimed when the C
function called from VM is terminated, or the GC arena is restored.
2019-05-29 11:47:12 +09:00
Yukihiro "Matz" Matsumoto
8ad777c702
Merge pull request #4470 from dearblue/remove-mrb_alloca
...
Remove `mrb_alloca()` function
2019-05-27 14:45:10 +09:00
KOBAYASHI Shuji
779251de64
Move mrb_mod_s_nesting() to mruby-metaprog gem from the core
2019-05-26 20:32:04 +09:00
dearblue
d1e1bb0d5b
Remove mrb_alloca() function
...
When I found this function, I expected it to behave the same as the
`alloca(3)` function, but it is accually the `mrb_alloca()` function
does not free the heap until the `mrb_close()` function is called.
Also, even if it is deleted, it can be replaced with the combination
of the `MRB_TT_DATA` object and the `mrb_gv_set()` function if it is
sure necessary.
2019-05-25 23:59:43 +09:00
dearblue
ecfca8def7
Fix double rounded by negative index
...
- Before patched:
```
$ mruby -e 'p (-12..-1).map { |i| "Hello"[i] }.join'
"HelloHello"
```
- After patched:
```
$ mruby -e 'p (-12..-1).map { |i| "Hello"[i] }.join'
"Hello"
```
2019-05-25 22:43:07 +09:00
dearblue
56e0e1934d
Name the return value of mrb_range_beg_len()
2019-05-25 12:12:21 +09:00
Yukihiro "Matz" Matsumoto
85a2dfc841
Merge pull request #4403 from dearblue/read-irep-from-buf
...
Read irep from buffers
2019-05-22 08:58:50 +09:00
Yukihiro "Matz" Matsumoto
38f8edbdd7
Update ISO section number for some Numeric methods.
2019-05-21 21:12:33 +09:00
Yukihiro "Matz" Matsumoto
e941cf06a3
Export mrb_int_value that converts mrb_float to Fixnum.
...
Or `Float` if `mrb_float` value is too big (or too small) to fit in
`mrb_int`. The `_int_` in `mrb_int_value` means `Integral` module, which
represents integer-like values in mruby.
2019-05-21 21:08:26 +09:00
Yukihiro "Matz" Matsumoto
5d30309e98
Silence the return value warnings from gcc; ref 237a57b
2019-05-21 21:08:26 +09:00
KOBAYASHI Shuji
3b46831da8
Move **,/,quo,div and comparison methods to Integral from Numeric
...
Having these methods in Numeric can get in the way of creating subclasses of
Numeric because they only support Fixnum and Float.
2019-05-21 20:43:42 +09:00
Yukihiro "Matz" Matsumoto
8b8bf9f3f6
Add new functions for numerical operation; ref 237a57b
...
New functions:
* mrb_num_plus(mrb, x, y)
* mrb_num_minus(mrb, x, y)
* num_num_mul(mrb, x, y)
2019-05-20 14:59:25 +09:00
Yukihiro "Matz" Matsumoto
05e7544583
Merge pull request #4455 from dearblue/remove-LINE-section
...
Remove "LINE" section reader
2019-05-19 22:29:25 +09:00
dearblue
67fc3428cb
Remove "LINE" section reader
...
Because it is not currently output by `mrbc`.
2019-05-19 11:09:25 +09:00
KOBAYASHI Shuji
6fb5979d29
Move Kernel#equal? to BasicObject`
2019-05-18 20:57:54 +09:00
KOBAYASHI Shuji
4f71e9eebe
Move Numeric#__coerce_step_counter to Integral
...
This method is only used in `Integral#step`
2019-05-18 18:22:56 +09:00
Yukihiro "Matz" Matsumoto
89d2926415
Add ISO section number to Module#===.
2019-05-18 11:48:59 +09:00
Yukihiro "Matz" Matsumoto
e41f15747e
Rename struct RIstruct to struct RIStruct.
2019-05-18 11:10:20 +09:00
Yukihiro "Matz" Matsumoto
237a57bbe8
Make unused functions private.
...
* mrb_fixnum_plus()
* mrb_fixnum_minus()
* mrb_fixnum_mul()
2019-05-17 11:30:38 +09:00
Yukihiro "Matz" Matsumoto
0c91da257b
Remove unused mrb_num_div() function.
2019-05-17 11:27:21 +09:00
Yukihiro "Matz" Matsumoto
223defd62a
Move Numeric#div to the core.
2019-05-17 11:26:16 +09:00
Yukihiro "Matz" Matsumoto
3734c53eb8
Make flo_rount to return Integeral.
2019-05-17 11:13:12 +09:00
Yukihiro "Matz" Matsumoto
bc18060149
Change the num.divmod(float) to return [int,num].
2019-05-17 10:58:17 +09:00
Yukihiro "Matz" Matsumoto
8a9f984eb8
Add a new function mrb_int_value.
...
This function returns `Fixnum` if the value fits in `mrb_int`,
otherwise it returns `Float` value (mruby behavior of handling integers).
2019-05-17 10:42:16 +09:00
Yukihiro "Matz" Matsumoto
80c789b394
Use int64_t instead of mrb_int in int64_value.
2019-05-17 10:40:19 +09:00
Yukihiro "Matz" Matsumoto
752edf413f
Terminate float right shift if shift value is too big.
2019-05-16 09:51:27 +09:00
Yukihiro "Matz" Matsumoto
7f1f499b22
Merge pull request #4400 from shuujii/fix-name-assignment-to-frozen-anonymous-class-module
...
Fix name assignment to frozen anonymous class/module
2019-05-15 15:47:02 +09:00
KOBAYASHI Shuji
fa317fabbd
Use mrb_ensure_string_type in mrb_to_str
2019-05-11 18:40:33 +09:00
KOBAYASHI Shuji
1975dedb21
Use mrb_string_value_cstr in mrb_str_to_dbl
2019-05-08 20:35:03 +09:00
KOBAYASHI Shuji
35943e7beb
Refactor mrb_str_to_cstr and mrb_string_value_cstr
...
- Extract null byte check to function.
- Avoid string allocation if null byte is included.
- Use `str_new` instead of `mrb_str_dup` + `mrb_str_modify`
2019-05-07 23:01:13 +09:00
KOBAYASHI Shuji
a5bda13fb7
Check whether object is immediate in mrb_gc_(register|unregister)
2019-05-04 16:38:07 +09:00
Yukihiro "Matz" Matsumoto
181d14668a
Merge pull request #4420 from shuujii/simplify-conversion-process-for-i-in-mrb_get_args
...
Simplify conversion process for `i` in `mrb_get_args()`
2019-05-04 00:19:14 +09:00
KOBAYASHI Shuji
0692f7916c
Simplify conversion process for i in mrb_get_args()
2019-05-03 13:39:19 +09:00
dearblue
e86e360b36
Fix FLAG_SRC_STATIC always set in mrb_read_irep() with MRB_USE_CUSTOM_RO_DATA_P
2019-05-03 11:42:14 +09:00
Yukihiro "Matz" Matsumoto
8c8e6e25ad
Merge pull request #4417 from shuujii/unify-overflow-error-class-for-conversion-to-integer-to-RangeError
...
Unify overflow error class for conversion to integer to `RangeError`
2019-05-02 23:05:13 +09:00
KOBAYASHI Shuji
95a92d35c8
Unify overflow error class for conversion to integer to RangeError
2019-05-02 20:45:31 +09:00
KOBAYASHI Shuji
1a8f6e70b5
Remove unneeded argc check in mrb_str_aref_m()
2019-05-01 15:04:08 +09:00
KOBAYASHI Shuji
8fa3995a1a
Singleton class of frozen object should be frozen
...
Before this patch:
p (class << Object.new.freeze; self end).frozen? #=> false
sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> false
After this patch / Ruby:
p (class << Object.new.freeze; self end).frozen? #=> true
sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> true
2019-04-25 19:48:40 +09:00
dearblue
8f6f36f654
Add mruby binary loader functions from buffer memory
...
Add new functions (with `MRB_API`):
- `mrb_read_irep_buf()`
- `mrb_load_irep_buf()`
- `mrb_load_irep_buf_cxt()`
2019-04-24 22:56:39 +09:00
dearblue
58d525c9fa
Check mruby binary size
2019-04-24 22:56:39 +09:00
dearblue
4d85019e4c
Check mruby binary version
2019-04-24 22:56:38 +09:00
KOBAYASHI Shuji
4720648137
Fix modiying class variable to frozen class/module
2019-04-24 21:05:44 +09:00
Yukihiro "Matz" Matsumoto
0c5f26e0ff
Remove unnecessary mrb_regexp_check() and related functions.
2019-04-24 11:43:05 +09:00
KOBAYASHI Shuji
cc7f9190ba
Fix name assignment to frozen anonymous class/module
...
Fix the following issues:
A = Class.new.freeze #=> FrozenError
Module.new::B = Class.new.freeze #=> FrozenError
String::B = Module.new.freeze #=> FrozenError
2019-04-23 20:45:38 +09:00
Yukihiro "Matz" Matsumoto
e9f3902ab5
Fixed the condition in mrb_funcall_with_block; fix #4389
2019-04-23 15:30:10 +09:00
KOBAYASHI Shuji
0e6a93a9ca
Use MRB_ASPEC_XXX() macro in codedump()
2019-04-22 19:09:29 +09:00
Yukihiro "Matz" Matsumoto
4e45e320b0
Fixed a bug in recursive mrb_top_run calls; fix #4384
2019-04-16 18:47:46 +09:00
Yukihiro "Matz" Matsumoto
6b8d3c7070
Fixed wrong function names; fix #4380
2019-04-15 07:15:38 +09:00
Yukihiro "Matz" Matsumoto
7a62efae63
Merge pull request #4379 from shuujii/extract-similar-codes-to-macros-for-math-opcode-in-mrb_vm_exec
...
Extract similar codes to macros for math opcode in `mrb_vm_exec()`
2019-04-15 07:08:27 +09:00