- 13 Dec, 2021 7 commits
-
-
dearblue authored
- `rlen` keeps 16 bits. - `ilen` keeps 32 bits. Note that this change will break mruby binary format compatibility.
-
Yukihiro "Matz" Matsumoto authored
With some refactoring. * `ret` argument is always non-nil, so no check needed. * move allocation check right after malloc(). * simplify conditions.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
The existence of this member reduces memory and execution time.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Add `Array#{repeated_combination,repeated_permutation}` methods
-
- 12 Dec, 2021 1 commit
-
-
dearblue authored
Ruby 1.9.2 feature. ref: https://docs.ruby-lang.org/ja/3.1.0/method/Array/i/repeated_combination.html ref: https://docs.ruby-lang.org/ja/3.1.0/method/Array/i/repeated_permutation.html
-
- 09 Dec, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
fix #5593
-
- 08 Dec, 2021 4 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
It used to return wrong value for 14 positional arguments.
-
Yukihiro "Matz" Matsumoto authored
-
- 07 Dec, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 06 Dec, 2021 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Now `iv_get()` returns `pos+1` if it finds the entry, so you don't need to call `iv_put()`. You can replace the entry value by assigning to `t->ptr[pos-1]`.
-
Yukihiro "Matz" Matsumoto authored
Class variables are slower than instance variables of classes.
-
- 04 Dec, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 03 Dec, 2021 4 commits
-
-
Yukihiro "Matz" Matsumoto authored
Instead embed deleted flag in the key (`mrb_sym` only occupies 30bits).
-
Yukihiro "Matz" Matsumoto authored
`iv_size()` is approximated by the allocated table size.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 02 Dec, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 01 Dec, 2021 6 commits
-
-
Yukihiro "Matz" Matsumoto authored
As a general principles numeric instructions should not be prefixed by `OP_EXT` instructions since they are not supported by "mruby/c".
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
This is a fundamentally simplified reimplementation of #5317 by @shuujii Instead of having array of `struct iv_elem`, we have sequences of keys and values packed in single chunk of malloc'ed memory. We don't have to worry about gaps from alignment, especially on 64 bit architecture, where `sizeof(struct iv_elem)` probably consumes 16 bytes, but `sizeof(mrb_sym)+sizeof(mrb_value)` is 12 bytes. In addition, this change could improve memory access locality. close #5317
-
- 29 Nov, 2021 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Align "wrong number of arguments" messages
-
- 28 Nov, 2021 5 commits
-
-
Yukihiro "Matz" Matsumoto authored
Fixed compile error for `mrbgems/mruby-cmath` with `clang++`
-
Yukihiro "Matz" Matsumoto authored
Fix `args_unshift()` in `mrbgems/mruby-method`
-
dearblue authored
Make "N for M" into the form "given N, expected M". As I worked, I noticed that the `argnum_error()` function had a part to include the method name in the message. I think this part is no longer needed by https://github.com/mruby/mruby/pull/5394. - Before this patch ```console % bin/mruby -e '[1, 2, 3].each 0' trace (most recent call last): [1] -e:1 -e:1:in each: 'each': wrong number of arguments (1 for 0) (ArgumentError) ``` - After this patch ```console % bin/mruby -e '[1, 2, 3].each 0' trace (most recent call last): [1] -e:1 -e:1:in each: wrong number of arguments (given 1, expected 0) (ArgumentError) ```
-
dearblue authored
If the preprocessor check part is only `__clang__`, CI's such as `Ubuntu-2004-clang` will fail to compile. This is why we limited the addition to FreeBSD and OpenBSD, which have `clang++` in their base systems. DragonFly BSD and NetBSD have GCC built into their base systems, so nothing is changed.
-
dearblue authored
Both keyword arguments and block arguments were being destroyed when there were no arguments. The cause of this is #5585. I' m sorry.
-
- 26 Nov, 2021 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
dearblue authored
The `__id__` method implemented in the C function has `MRB_ARGS_NONE()` specified, but it is also effective in the following cases. ```ruby p nil.__id__ opts: 1 rescue p :a p nil.method(:__id__).call 1 rescue p :b p nil.method(:__id__).call opts: 1 rescue p :c p nil.method(:__id__).to_proc.call 1 rescue p :d p nil.method(:__id__).to_proc.call opts: 1 rescue p :e p nil.method(:__id__).unbind.bind_call nil, 1 rescue p :f p nil.method(:__id__).unbind.bind_call nil, opts: 1 rescue p :g p nil.__send__ :__id__, 1 rescue p :h p nil.__send__ :__id__, opts: 1 rescue p :i ``` After applying this patch, all items will output symbols in the same way as CRuby. For this purpose, add `MRB_PROC_NOARG` to `struct RProc::flags`.
-
- 25 Nov, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Fixed some methods where keyword arguments are not passed
-
- 24 Nov, 2021 2 commits
-
-
dearblue authored
-
Yukihiro "Matz" Matsumoto authored
build(deps): bump actions/cache from 2.1.6 to 2.1.7
-