summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2021-02-05Add `mruby-cmath` gem to the core.Yukihiro "Matz" Matsumoto
This gem uses C99 `_Complex` features. You need a C compiler that supports `_Complex` to enable this gem. All `gcc`, `clang`, `VC` support `_Complex` so there should not be a big problem.
2021-02-05Add a few new API for complex access.Yukihiro "Matz" Matsumoto
2021-02-05Refactor method overriding.Yukihiro "Matz" Matsumoto
* Use `class_eval` instead of `instance_eval`. * Reduce `class_eval` calls * define `Numeric#i` * undefine `Complex#i`
2021-02-05Add `Complex#to_c` method.Yukihiro "Matz" Matsumoto
2021-02-05`instance_eval` for classes and modules should behave as `class_eval`.Yukihiro "Matz" Matsumoto
2021-02-05Define `MRB_NO_GEMS` if `disable_libmruby` is specifiedKOBAYASHI Shuji
2021-02-04Merge pull request #5319 from shuujii/check-if-.pi-build-rules-are-definedYukihiro "Matz" Matsumoto
Check if `.pi` build rules are defined
2021-02-04Check if `.pi` build rules are definedKOBAYASHI Shuji
`.pi` files are created for `.o` files that `build.products` depends on, but an error will occur if the build rule is unknown, so add a check. I don't think this situation would normally arise. However, in `mattn/mruby-onig-regexp`, when using bundled onigmo, onigmo's `.o` files are added to dependency of `libmruby.a` in the second and subsequent builds, and mruby does not know the build rule, so the following error had occured. ```console rake aborted! Don't know how to build task '/mruby/build/host/mrbgems/mruby-onig-regexp/onigmo-6.2.0/libonig_objs/ascii.pi' (See the list of available tasks with `rake --tasks`) ```
2021-02-04Merge pull request #5318 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-breakage-where-builds-except-host-dont-refer-mrbc-in-host Fix breakage where builds except `host` don't refer` mrbc` in `host`
2021-02-04Fix breakage where builds except `host` don't refer` mrbc` in `host`KOBAYASHI Shuji
Build error occurred under the following conditions. * `host` build is presym enabled and unspecified `mruby-bin-mrbc` gem. * Build except `host` unspecified `mruby-bin-mrbc` gem and mrbcfile. ### Example #### Build configuration ```ruby MRuby::Build.new{|conf| conf.toolchain} MRuby::Build.new("host2"){|conf| conf.toolchain} ``` #### Error ```console rake aborted! external mrbc or mruby-bin-mrbc gem in current('host2') or 'host' build is required /mruby/lib/mruby/build.rb:326:in `mrbcfile' /mruby/tasks/mrblib.rake:9:in `block in <top (required)>' /mruby/lib/mruby/build.rb:18:in `instance_eval' /mruby/lib/mruby/build.rb:18:in `block in each_target' /mruby/lib/mruby/build.rb:17:in `each' /mruby/lib/mruby/build.rb:17:in `each_target' /mruby/tasks/mrblib.rake:1:in `<top (required)>' /mruby/Rakefile:27:in `load' /mruby/Rakefile:27:in `<top (required)>' ```
2021-02-03Update version to `3.0.0RC`.3.0.0-rcmimaki
2021-02-03Avoid Heap Overflow in `heredoc_remove_indent`; fix #5316Yukihiro "Matz" Matsumoto
2021-02-03Move `MRB_TRY` part of `mrb_close` to `src/error.c`; ref 6cc52b3Yukihiro "Matz" Matsumoto
We don't want to increase number of files that should be compiled by C++ compiler when `enable_cxx_exception` is turned on.
2021-02-02Ignore errors from `atexit` finalizers.Yukihiro "Matz" Matsumoto
2021-02-01Allow more than 256 child `irep`; fix #5310Yukihiro "Matz" Matsumoto
We have introduced following new instructions. * `OP_LAMBDA16` * `OP_BLOCK16` * `OP_METHOD16` * `OP_EXEC16` Each instruction uses 16 bits operand for `reps` index. Since new instructions are added, `mruby/c` VM should be updated. Due to new instructions, dump format compatibility is lost, we have increased `RITE_BINARY_MAJOR_VER`. In addition, we have decreased the size of `refcnt` in `mrb_irep` from `uint32_t` to `uint16_t`, which is reasonably big enough.
2021-02-01Copy `iv` table with `#prepend`; fix #5309Yukihiro "Matz" Matsumoto
In addition, stop eager allocation of `mt` table.
2021-02-01Merge pull request #5314 from dearblue/presym_initYukihiro "Matz" Matsumoto
Introduced `MRB_PRESYM_INIT_SYMBOLS()`
2021-02-01Merge pull request #5315 from ↵Yukihiro "Matz" Matsumoto
shuujii/use-mrb_open_core-instead-of-mrb_open--in-mrbc Use `mrb_open_core()` instead of `mrb_open()` in `mrbc`
2021-02-01Merge pull request #5313 from dearblue/diet-5272Yukihiro "Matz" Matsumoto
Remove unnecessary `ci0` variables; ref #5272
2021-01-31Use `mrb_open_core()` instead of `mrb_open()` in `mrbc`KOBAYASHI Shuji
2021-01-31Merge pull request #5312 from dearblue/diet-5060Yukihiro "Matz" Matsumoto
Remove unnecessary configuration macros; ref #5060
2021-01-31Introduced `MRB_PRESYM_INIT_SYMBOLS()`dearblue
The `init_SYMBOLS()` function implicitly defined in `MRB_PRESYM_DEFINE_VAR_AND_INITER()` requires some familiarity when trying to find it from the caller. By introducing `MRB_PRESYM_INIT_SYMBOLS()`, it is possible to find directly from the identifier.
2021-01-31Remove unnecessary `ci0` variables; ref #5272dearblue
2021-01-31Remove unnecessary configuration macros; ref #5060dearblue
The following macros will be removed: - `ENSURE_STACK_INIT_SIZE` - `RESCUE_STACK_INIT_SIZE` - `MRB_ECALL_DEPTH_MAX`
2021-01-31Merge pull request #5311 from ↵Yukihiro "Matz" Matsumoto
shuujii/change-.o.d-back-to-.d-because-.pi.d-is-no-longer-created Change `.o.d` back to `.d` because `.pi.d` is no longer created
2021-01-31Change `.o.d` back to `.d` because `.pi.d` is no longer createdKOBAYASHI Shuji
2021-01-30Merge pull request #5308 from dearblue/internal-mrbcYukihiro "Matz" Matsumoto
Build internal mrbc in an internal directory
2021-01-29Merge pull request #5306 from dearblue/unpackYukihiro "Matz" Matsumoto
Fixed `String#unpack` to handle the highest range of integer values
2021-01-29Build internal mrbc in an internal directorydearblue
2021-01-29Remove unnecessary range confirmationdearblue
This is a correction based on the review by @matz. https://github.com/mruby/mruby/pull/5306#pullrequestreview-578378401
2021-01-29Fixed `String#unpack` to handle the highest range of integer valuesdearblue
Previously, problems occurred when the `fixnum` was exceeded. - 32-bit cpu mode with `MRB_WORD_BOXING` and `MRB_INT32`: ```console % bin/mruby -e 'p [0x7fffffff].pack("N").unpack("N")' trace (most recent call last): -e:1: cannot unpack to Integer: 2147483647 (RangeError) ``` - 64-bit cpu mode with `MRB_WORD_BOXING` and `MRB_INT64`: ```console % bin/mruby -e 'p [0x7fffffff_ffffffff].pack("q").unpack("q")' trace (most recent call last): -e:1: cannot unpack to Integer: 9223372036854775807 (RangeError) ```
2021-01-29Replace `mrb_intern_cstr` to `mrb_intern_lit`.Yukihiro "Matz" Matsumoto
2021-01-28Merge pull request #5307 from dearblue/stackerrYukihiro "Matz" Matsumoto
Raise SystemStackError if mruby VM stack expansion fails
2021-01-28Merge pull request #5305 from dearblue/symbol0Yukihiro "Matz" Matsumoto
Check first `0` when converting symbols into strings
2021-01-28Raise SystemStackError if mruby VM stack expansion failsdearblue
2021-01-28Check first `0` when converting symbols into stringsdearblue
This was because it caused `SIGSEGV` when `mruby -v` displayed an unnamed variable. ```console % bin/mruby -ve 'call { |(a, b)| }' ...SNIP... irep 0x8007d0050 nregs=3 nlocals=1 pools=0 syms=1 reps=1 iseq=12 file: -e 1 000 OP_LOADSELF R1 1 002 OP_BLOCK R2 I(0:0x8007d00a0) 1 005 OP_SENDB R1 :call 0 1 009 OP_RETURN R1 1 011 OP_STOP irep 0x8007d00a0 nregs=6 nlocals=5 pools=0 syms=0 reps=0 iseq=29 local variable names: zsh: segmentation fault (core dumped) bin/mruby -ve 'call { |(a, b)| }' ```
2021-01-28Merge pull request #5304 from shuujii/refine-preprocess_optionsYukihiro "Matz" Matsumoto
Refine `preprocess_options`; ref d95ffb036
2021-01-28Remove duplicated `--cflags`; [ci skip]Yukihiro "Matz" Matsumoto
2021-01-28Refine `preprocess_options`; ref d95ffb036KOBAYASHI Shuji
If we modify an option that may have been specified by users, we may make unintended changes, so it is better not to modify it as much as possible, IMO.
2021-01-28Update `limitation.md` for integer division change in 3.0.Yukihiro "Matz" Matsumoto
2021-01-28Stop mentioning `MRB_NO_PRESYM` in the doc.Yukihiro "Matz" Matsumoto
It's for internal use. Please use `conf.disable_presym`.
2021-01-28Silence VC warning.Yukihiro "Matz" Matsumoto
2021-01-28Stop generating `build/<build>/src/*.pi.d`.Yukihiro "Matz" Matsumoto
2021-01-28Describe disabling preallocated symbols in the doc.Yukihiro "Matz" Matsumoto
2021-01-28Update `TODO` after mruby3.0.Yukihiro "Matz" Matsumoto
2021-01-28Remove unnecessary bit shift in `rational_new_f`.Yukihiro "Matz" Matsumoto
2021-01-27Add symbol names as comments to `presym_length_table`; ref #5303Yukihiro "Matz" Matsumoto
2021-01-27Add `static` modifiers to preallocated symbols tables; ref #5303Yukihiro "Matz" Matsumoto
2021-01-27Merge pull request #5303 from ↵Yukihiro "Matz" Matsumoto
shuujii/split-presym_table-for-reduced-program-size Split `presym_table` for reduced program size
2021-01-27Split `presym_table` for reduced program sizeKOBAYASHI Shuji
Because a structure that is an element of `presym_table` has padding, split it into individual arrays for name and length. #### Result (64-bit CPU with full-core gembox) | | mruby | libmruby.a | |--------|------------|------------| | Before | 1,087,444B | 1,476,872B | | After | 1,079,340B | 1,469,784B |