summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
AgeCommit message (Collapse)Author
2021-02-22Merge branch 'binding' of https://github.com/ksss/mruby into HEADdearblue
2021-02-20Comment out `warn` used in the `Array#fetch` methoddearblue
I get an error because the current mruby does not have a `Kernel#warn` method. But the warning itself is useful and I'll just comment it out in case it's implemented in the future.
2021-02-20metaprog.c: fix a `methods()` bug with `false` argument; fix #5351Yukihiro "Matz" Matsumoto
2021-02-20metaprog.c: remove unused argument from a private function.Yukihiro "Matz" Matsumoto
2021-02-14Add `-s` option to `mrbc` for make variable staticKOBAYASHI Shuji
2021-02-13chore: fix missing HTTPS on linksJohn Bampton
2021-02-13chore: fix spellingJohn Bampton
Normally a single spell checker can't find all the mistakes or check all types of code. These mistakes were found by another spell checker inside my editor with a more manual sift / find.
2021-02-13feat(CI): check for trailing whitespaceJohn Bampton
Run on pull request only. Use a shell script to check for trailing whitespace in all files. Fail if trailing whitespace is found.
2021-02-13parse.y: string buffer (`tokbuf`) can overflow.Yukihiro "Matz" Matsumoto
Check if `esclen` is smaller than `len` (original string length).
2021-02-12Merge pull request #5336 from shuujii/fix-build-mruby-catch-gem-without-presymYukihiro "Matz" Matsumoto
Fix build `mruby-catch` gem without presym
2021-02-12Fix build `mruby-catch` gem without presymKOBAYASHI Shuji
2021-02-12Add `UncaughtThrowError#{tag,value}` for Ruby compatibilityKOBAYASHI Shuji
2021-02-12Rename `mrb_sleep.c` to `sleep.c` in `mruby-sleep` gem.Yukihiro "Matz" Matsumoto
2021-02-12Rename `mruby-catch.c` to `catch.c`; ref #5328Yukihiro "Matz" Matsumoto
2021-02-10Refactor `mruby-catch`; ref #5328Yukihiro "Matz" Matsumoto
- Move `#catch` definition to `mruby-catch.c` to avoid tweaking - Remove `#__preserve_catch_method` - Implement whole `#throw` method in C
2021-02-10Merge branch 'mruby-catch' of https://github.com/dearblue/mruby into ↵Yukihiro "Matz" Matsumoto
dearblue-mruby-catch
2021-02-08`i_gcd()` does not work for `MRB_INT_MIN`.Yukihiro "Matz" Matsumoto
2021-02-07Move `F(x)` definition inside of `#ifdef`; fix #5330Yukihiro "Matz" Matsumoto
2021-02-07Enlarge tolerance limit for `float32`; close #5329Yukihiro "Matz" Matsumoto
Along with some refactoring on `mruby-math` tests.
2021-02-07Fix tests to work with `MRB_USE_FLOAT32`; fix #5329Yukihiro "Matz" Matsumoto
2021-02-06Reimplement mruby-catch; ref #5321dearblue
When there is a corresponding tag, the `RBreak` object is used to make a global jump. Like CRuby, it can't be caught by `rescue`. It is also the same as CRuby that it can be canceled in the middle by `ensure`. ### How to find the corresponding tag with `throw` The called `catch` method remains in the call stack, and the tag also remains in the stack at that time. So it is possible to find the called location by searching the two. Note that no method can be given to the `proc` object specified in `RBreak`. Therefore, inside the `catch` method, the argument block is called in a seemingly meaningless closure. Also, as a countermeasure against `alias` etc., the `proc` object, which is the body of the `catch` method, is saved when mrbgem is initialized.
2021-02-06MinGW does not need MSVC hack.Yukihiro "Matz" Matsumoto
Both MinGW and MSVC provide _WIN32 macro.
2021-02-06No need to check class definitiondearblue
Because now the `Struct` class is always defined when this file is included.
2021-02-06Fixed compile errors in `cmath.c` in MinGW and macOS.Yukihiro "Matz" Matsumoto
2021-02-06Make the argument of `Kernel#catch` optional as Ruby doesKOBAYASHI Shuji
Also implement the following changes. * Add tests * Use `Object#equal?` to compare tags for Ruby compatibility * Use `attr_reader`
2021-02-06Avoid implicit conversion from `mrb_float` to `mrb_complex`.Yukihiro "Matz" Matsumoto
2021-02-06Merge pull request #5322 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-message-of-ThrowCatchJump-in-mruby-catch-gem Fix message of `ThrowCatchJump` in `mruby-catch` gem
2021-02-06Reimplement complex division.Yukihiro "Matz" Matsumoto
2021-02-06Define `M_E` for some platforms.Yukihiro "Matz" Matsumoto
2021-02-06Update `mruby-cmath` to support MSVC complex.Yukihiro "Matz" Matsumoto
* Use `_Complex` instead of `complex` (MSYS2 do not support `complex`) * Use `_Dcomplex` instead of `_Complex` on MSCV * Avoid operator division and multiplication of complex
2021-02-05Fix message of `ThrowCatchJump` in `mruby-catch` gemKOBAYASHI Shuji
### Example ```ruby begin throw 1 rescue Exception => e puts e.message end ``` #### Before this patch: ```console $ bin/mruby example.rb uncaught throw :1 ``` #### After this patch (same as Ruby): ```console $ bin/mruby example.rb uncaught throw 1 ```
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-03Avoid Heap Overflow in `heredoc_remove_indent`; fix #5316Yukihiro "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-01-31Use `mrb_open_core()` instead of `mrb_open()` in `mrbc`KOBAYASHI Shuji
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-28Remove duplicated `--cflags`; [ci skip]Yukihiro "Matz" Matsumoto
2021-01-28Remove unnecessary bit shift in `rational_new_f`.Yukihiro "Matz" Matsumoto
2021-01-26Revert "Fix the wrong directory `host-bin` to `host/bin`."Yukihiro "Matz" Matsumoto
This reverts commit 34f82f24e941f36edc8d947a8a9300631b3121ff. Ref #5282
2021-01-26Change `mruby-config` to print usage on invalid arguments.Yukihiro "Matz" Matsumoto
Or no argument at all.
2021-01-26Fix the wrong directory `host-bin` to `host/bin`.Yukihiro "Matz" Matsumoto
Where `mruby-config` command should be generated.
2021-01-26Revert "Minimize the changes in #5277"Yukihiro "Matz" Matsumoto
This reverts commit dc51d89ac22acc60b9bfeed87115863565b74085.
2021-01-25Silence 'loss of data' warnings.Yukihiro "Matz" Matsumoto
2021-01-25Fix a bug for the case `frexp()` return `Infinity`.Yukihiro "Matz" Matsumoto
2021-01-25Should use a limit for 32 bit platform; ref 05a8cc44Yukihiro "Matz" Matsumoto