Yukihiro "Matz" Matsumoto
e76c5aad36
Stop using mrb_to_str as a converter (it is not).
2019-08-17 11:49:00 +09:00
Yukihiro "Matz" Matsumoto
0286a7f709
Avoid mrb_funcall from Class#new when no overloading.
2019-08-17 09:02:47 +09:00
Yukihiro "Matz" Matsumoto
99715a2e62
Merge pull request #4633 from shuujii/shared-fshared-string-is-not-required-when-sharing-nofree-string
...
SHARED/FSHARED string is not required when sharing NOFREE string
2019-08-16 23:20:44 +09:00
Yukihiro "Matz" Matsumoto
c1a0a99309
Update struct RArray union to silence C++ warning.
2019-08-16 22:51:07 +09:00
Yukihiro "Matz" Matsumoto
0923ff6313
Optimize bytecode for Class#new.
2019-08-16 22:37:30 +09:00
Yukihiro "Matz" Matsumoto
61763129db
Implement Class#new using inline mruby bytecode.
2019-08-16 22:30:03 +09:00
KOBAYASHI Shuji
9832e91304
SHARED/FSHARED string is not required when sharing NOFREE string
...
I think the string buffer of NOFREE string always exists and does not need
to be released, so it can be shared as another NOFREE string.
Also changed the `mrb_shared_string` field order so that eliminate padding if
`int` and `mrb_int` sizes are less than pointer size.
2019-08-16 22:05:58 +09:00
Yukihiro "Matz" Matsumoto
06c7ff0666
Avoid creating unnecessary empty arrays on splat.
...
But this changes requires `OP_ARYCAT` and `OP_ARYPUSH` to accept `nil`
as their first operand. Alternative VMs (e.g. `mruby/c`) that understand
mruby bytecode need to be updated.
2019-08-16 16:42:40 +09:00
Yukihiro "Matz" Matsumoto
fa8515bc2c
Stop raising exceptions from undef C API.
...
Some `undef' functions may be called before initialization, thus causes
infinite error recursion.
2019-08-16 16:42:40 +09:00
Yukihiro "Matz" Matsumoto
8fa9a7b965
Merge pull request #4632 from shuujii/remove-unneeded--include-in-src-string.c
...
Remove unneeded `#include` in `src/string.c`
2019-08-15 18:41:30 +09:00
KOBAYASHI Shuji
59844ddde0
Remove unneeded #include in src/string.c
2019-08-15 12:18:33 +09:00
Yukihiro "Matz" Matsumoto
0c5ebd75a3
Merge pull request #4631 from shuujii/extract-initialization-code-of-shared-and-fshared-string-to-function
...
Extract initialization code of shared and fshared string to function
2019-08-14 23:29:07 +09:00
KOBAYASHI Shuji
af6724c2f6
Extract initialization code of shared and fshared string to function
2019-08-14 22:20:34 +09:00
Yukihiro "Matz" Matsumoto
d986b9ff7b
Avoid array copying in mrb_instance_new.
2019-08-14 15:08:48 +09:00
Yukihiro "Matz" Matsumoto
603005ba65
Integrate kazuho/mruby-class-new-fiber-safe in the master.
...
Avoid calling `initialize` via `mrb_funcall`, which cause `cross C
boundary` error from Fibers started in the method.
2019-08-14 14:09:56 +09:00
Yukihiro "Matz" Matsumoto
8ed15fd92e
Small refactoring on #4630
2019-08-14 12:20:40 +09:00
Yukihiro "Matz" Matsumoto
9f6328d499
Remove MRB_API from functions only called from vm.c.
...
* `mrb_vm_define_class`
* `mrb_vm_define_module`
Only functions called from user code requires `MRB_API`.
2019-08-14 09:33:23 +09:00
Yukihiro "Matz" Matsumoto
e2ab8cca82
Merge pull request #4630 from shuujii/extract-struct-RString-initialization-code-to-function
...
Extract `struct RString` initialization code to function
2019-08-14 08:16:45 +09:00
KOBAYASHI Shuji
7af0ee099d
Extract struct RString initialization code to function
2019-08-13 22:40:30 +09:00
Yukihiro "Matz" Matsumoto
8a3457c330
Merge pull request #4629 from shuujii/mrb_str_pool-can-embed-one-more-byte
...
`mrb_str_pool` can embed one more byte; ref #4626
2019-08-12 22:41:51 +09:00
KOBAYASHI Shuji
dfb297e3c4
mrb_str_pool can embed one more byte; ref #4626
2019-08-12 21:42:31 +09:00
Yukihiro "Matz" Matsumoto
f113fa2a4f
Remove unnecessary prototypes from 'keywords`; fix #4628
2019-08-12 18:22:31 +09:00
Yukihiro "Matz" Matsumoto
ad0b546088
Merge pull request #4626 from shuujii/mrb_str_modify_keep_ascii-can-embed-one-more-byte
...
`mrb_str_modify_keep_ascii` can embed one more byte
2019-08-12 17:09:21 +09:00
Yukihiro "Matz" Matsumoto
285ce9d8aa
Replacing region may overwrap with the target region; fix #4627
2019-08-12 16:51:01 +09:00
Yukihiro "Matz" Matsumoto
472dba19ea
Revert "Should have cleared mrb->globals in mrb_gc_free_gv; fix #4618 "
...
This reverts commit 3dc8d9d7b3 .
2019-08-11 22:14:56 +09:00
Yukihiro "Matz" Matsumoto
0376383354
Reorder finalization to avoid potential crash; ref #4618
...
`mrb_gc_destroy` may call other mruby API functions from the finalizers.
So call that function first.
2019-08-11 22:14:56 +09:00
Yukihiro "Matz" Matsumoto
70b53f91c2
Add NUL always to short strings; ref 98fc887
2019-08-11 22:14:56 +09:00
KOBAYASHI Shuji
450684ab33
mrb_str_modify_keep_ascii can embed one more byte
...
The condition to make an embedded string was incorrect. Because there were
several similar codes, extracted into `RSTR_EMBEDDABLE_P` macro.
2019-08-11 20:48:37 +09:00
Yukihiro "Matz" Matsumoto
ce7fd7e1a3
Merge pull request #4621 from shuujii/remove-monkey-patches-for-Ruby-1.9-or-earlier
...
Remove monkey patches for Ruby 1.9 or earlier
2019-08-11 03:23:51 +09:00
Yukihiro "Matz" Matsumoto
469dbeb42e
Merge pull request #4624 from shuujii/enumerable-reject-etc.-should-return-Enumerable-without-block
...
`Enumerable#reject`, etc. should return `Enumerable` without block
2019-08-11 03:22:35 +09:00
KOBAYASHI Shuji
9f18aced9f
Enumerable#reject, etc. should return Enumerable without block
2019-08-10 22:18:54 +09:00
Yukihiro "Matz" Matsumoto
496a2c3264
Merge pull request #4623 from chasonr/complex-fixes
...
Avoid premature overflow in Complex#abs and Complex#/
2019-08-09 21:47:00 +09:00
Ray Chason
1cd0ff0d42
Avoid overflow and underflow in Complex#/
2019-08-09 00:08:36 -04:00
Ray Chason
c181d1e7fa
Implement Complex#abs in terms of Math.hypot
...
Math.hypot avoids premature overflow and underflow
2019-08-08 23:59:25 -04:00
KOBAYASHI Shuji
1868fd453d
Remove monkey patches for Ruby 1.9 or earlier
2019-08-08 22:12:25 +09:00
Yukihiro "Matz" Matsumoto
438638b42e
Merge pull request #4620 from shuujii/improve-MiniRake-rule-enhancement-for-Rake-compatibility
...
Improve MiniRake rule enhancement for Rake compatibility
2019-08-07 23:55:51 +09:00
KOBAYASHI Shuji
7e42b6ad3f
Improve MiniRake rule enhancement for Rake compatibility
...
Support pathmap notation, recursive dependencies search, and so on.
2019-08-07 21:50:22 +09:00
Yukihiro "Matz" Matsumoto
b377b7d580
Update mrb_to_str and related functions.
...
Contrary to the name, `mrb_to_str` just checks type, no conversion.
2019-08-07 16:20:40 +09:00
Yukihiro "Matz" Matsumoto
98fc887cb3
Reorganize mrb_string_value_cstr and related functions.
...
`mrb_string_value_cstr` and `mrb_string_value_len`: obsolete
`mrb_string_cstr`: new function to retrieve NULL terminated C string
`RSTRING_CSTR`: wrapper macro of `mrb_string_cstr`
2019-08-07 15:52:10 +09:00
Yukihiro "Matz" Matsumoto
b8a87bd111
Update required Ruby version to 2.0 or later.
2019-08-07 15:03:16 +09:00
Yukihiro "Matz" Matsumoto
2e73fe5ea1
Replace i.e. (means "that is") with e.g. (means "for example").
2019-08-07 15:02:38 +09:00
Yukihiro "Matz" Matsumoto
eceaa80de7
RUBY_PLATFORM may not contain mswin or mingw; Add msys
2019-08-07 08:54:40 +09:00
Yukihiro "Matz" Matsumoto
97672b22e6
Merge pull request #4619 from shuujii/add-mrb_noreturn-to-cmperr-in-src-numeric.c
...
Add `mrb_noreturn` to `cmperr()` in `src/numeric.c`
2019-08-07 08:54:25 +09:00
KOBAYASHI Shuji
6e2edd8ed2
Add mrb_noreturn to cmperr() in src/numeric.c
2019-08-06 23:04:40 +09:00
Yukihiro "Matz" Matsumoto
2ba8399ac8
Removed an unused local variable; ref #4615
2019-08-06 20:50:26 +09:00
Yukihiro "Matz" Matsumoto
3dc8d9d7b3
Should have cleared mrb->globals in mrb_gc_free_gv; fix #4618
2019-08-06 20:47:35 +09:00
Yukihiro "Matz" Matsumoto
151d0c14ed
Merge pull request #4615 from shuujii/use-new-specifiers-modifiers-of-mrb_vfromat
...
Use new specifiers/modifiers of `mrb_vfromat()`
2019-08-05 13:33:46 +09:00
KOBAYASHI Shuji
334afb167c
Use new specifiers/modifiers of mrb_vfromat()
...
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in
my environment than before the introduction of new specifiers/modifiers
(5116789a ) with this change.
------------+-------------------+-------------------+--------
BINARY | BEFORE (5116789a ) | AFTER (This PR) | RATIO
------------+-------------------+-------------------+--------
mruby | 593416 bytes | 593208 bytes | -0.04%
libmruby.a | 769048 bytes | 767264 bytes | -0.23%
------------+-------------------+-------------------+--------
BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613 ,
so I put it back.
2019-08-05 13:18:50 +09:00
Yukihiro "Matz" Matsumoto
96ce4563bd
Merge pull request #4614 from shuujii/use-mrb_int-instead-of-to_int-in-mruby-numeric-ext
...
Use `mrb_int()` instead of `to_int()` in `mruby-numeric-ext`
2019-08-05 12:33:59 +09:00
Yukihiro "Matz" Matsumoto
0e2e8b79d3
Merge pull request #4612 from dearblue/float-consts
...
Add constants for floating point number
2019-08-05 07:29:25 +09:00