An error occurred fetching the project authors.
- 01 Feb, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
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.
-
- 31 Jan, 2021 2 commits
- 28 Jan, 2021 2 commits
-
-
dearblue authored
-
Yukihiro "Matz" Matsumoto authored
-
- 26 Jan, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
This reverts commit dc51d89a.
-
- 25 Jan, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 22 Jan, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Instead of including `mruby/presym.h` everywhere, we provided the fallback `mruby/presym.inc` under `include/mruby` directory, and specify `-I<build-dir>/include` before `-I<top-dir>/include` in `presym.rake`. So even when someone drops `-I<build-dir>/include` in compiler options, it just compiles without failure.
-
- 16 Jan, 2021 1 commit
-
-
dearblue authored
When I `#call` the "proc" object created by the `mrb_proc_new_cfunc()` function from Ruby space, the return value did not go into the correct stack position. This can destroy the calling variable. This issue is now caused by #5272. sorry.
-
- 11 Jan, 2021 1 commit
-
-
KOBAYASHI Shuji authored
Addressed an issue where existing programs linking `libmruby.a` could only be built by adding `<build-dir>/include` to compiler's include path.
-
- 10 Jan, 2021 3 commits
-
-
dearblue authored
This enhances self-containment. - Changed the `mrb_callinfo::pc` field to point to itself. Previously it indicated the return destination of the previous call level. `mrb_callinfo::pc` will now hold the address to its own `proc->body.irep->iseq`. - Removed `mrb_callinfo::err` field. This is because `mrb_callinfo::pc - 1` is semantically the same as the previous `err`. - The `pc0` and `pc_save` variables in `mrb_vm_exec()` are no longer needed and have been deleted. - It removes the argument because `cipush()` doesn't need to save the previous `pc`.
-
dearblue authored
This enhances self-containment. Previously `mrb_context::stack` had the current call level stack, but now it owns it. The `mrb_context::stack` field, which is no longer needed, will be removed.
-
dearblue authored
If there is `env`, `env->c` means `target_class`.
-
- 06 Jan, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
But you still cannot cross C function boundary.
-
- 02 Jan, 2021 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Negative integer `>-65535` had wrong value, e,g, `p(-40550)` printed `4294926746` since Nov. 2020, sigh.
-
- 13 Dec, 2020 1 commit
-
-
John Bampton authored
-
- 02 Dec, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 30 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 29 Nov, 2020 1 commit
-
- 26 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Jump target address is `operand (16bit)` + `address of next instruction`. In addition, `ilen` was made `uint32_t` so that `iseq` length limitation of 65536 is removed. Only jump target address should be within signed 16bit (-32768 .. 32767).
-
- 21 Nov, 2020 3 commits
-
-
KOBAYASHI Shuji authored
| Previous Name | New Name | |------------------------------|-------------------------| | MRB_ENABLE_ALL_SYMBOLS | MRB_USE_ALL_SYMBOLS | | MRB_ENABLE_SYMBOLL_ALL | MRB_USE_ALL_SYMBOLS | | MRB_ENABLE_CXX_ABI | MRB_USE_CXX_ABI | | MRB_ENABLE_CXX_EXCEPTION | MRB_USE_CXX_EXCEPTION | | MRB_ENABLE_DEBUG_HOOK | MRB_USE_DEBUG_HOOK | | MRB_DISABLE_DIRECT_THREADING | MRB_NO_DIRECT_THREADING | | MRB_DISABLE_STDIO | MRB_NO_STDIO | | ENABLE_LINENOISE | MRB_USE_LINENOISE | | ENABLE_READLINE | MRB_USE_READLINE | | DISABLE_MIRB_UNDERSCORE | MRB_NO_MIRB_UNDERSCORE | | DISABLE_GEMS | MRB_NO_GEMS | * `MRB_ENABLE_SYMBOLL_ALL` seems to be a typo, so it is fixed. * `MRB_` prefix is added to those without. * The previous names can also be used for compatibility.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 16 Nov, 2020 1 commit
-
-
KOBAYASHI Shuji authored
### ASAN report (`MRB_INT32`) ```console $ bin/mruby -ve '-0x40000000' mruby 3.0.0preview (2020-10-16) 00001 NODE_SCOPE: 00001 NODE_BEGIN: 00001 NODE_NEGATE: 00001 NODE_INT 40000000 base 16 irep 0x6070000001e0 nregs=2 nlocals=1 pools=0 syms=0 reps=0 iseq=9 file: -e /mruby/src/codedump.c:173:49: runtime error: left shift of 49152 by 16 places cannot be represented in type 'int' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /mruby/src/codedump.c:173:49 in 1 000 OP_LOADI32 R1 -1073741824 1 006 OP_RETURN R1 1 008 OP_STOP /mruby/src/vm.c:1138:7: runtime error: left shift of 49152 by 16 places cannot be represented in type 'mrb_int' (aka 'int') SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /mruby/src/vm.c:1138:7 in ```
-
- 14 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 13 Nov, 2020 1 commit
-
-
KOBAYASHI Shuji authored
To be also able to build mruby without presym in the future. However, `MRB_QSYM` has been removed and changed as follows: ### Example | Type | Symbol | Previous Style | New Style | |---------------------------|--------|------------------|----------------| | Operator | & | MRB_QSYM(and) | MRB_OPSYM(and) | | Class Variable | @@foo | MRB_QSYM(00_foo) | MRB_CVSYM(foo) | | Instance Variable | @foo | MRB_QSYM(0_foo) | MRB_IVSYM(foo) | | Method with Bang | foo! | MRB_QSYM(foo_b) | MRB_SYM_B(foo) | | Method with Question mark | foo? | MRB_QSYM(foo_p) | MRB_SYM_Q(foo) | | Mmethod with Equal | foo= | MRB_QSYM(foo_e) | MRB_SYM_E(foo) | This change makes it possible to define, for example, `MRB_IVSYM(foo)` as `mrb_intern_lit(mrb, "@" "foo")`, which is useful if we support building without presym in the future.
-
- 06 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 04 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
That loads 32 bit integer bypassing pool access.
-
- 03 Nov, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
New instructions: * OP_LOADL16 * OP_LOADSYM16 * OP_STRING16 Size of pools, symbols are `int16_t` but offset representation in the bytecode was 8 bits. Size of child `irep` array is `int16_t`, too but this change does not address it.
-
- 22 Oct, 2020 1 commit
-
-
dearblue authored
The "a"/"*" specifier of the `mrb_get_args()` function will now return `const mrb_value *`. This is because it is difficult for the caller to check if it is an array object and write-barrier if necessary. And it requires calling `mrb_ary_modify()` on the unmodified array object, which is also difficult (this is similar to #5087).
-
- 12 Oct, 2020 10 commits
-
-
Yukihiro "Matz" Matsumoto authored
To allow C++ compilation. Fix suggested by @dearblue.
-
Yukihiro "Matz" Matsumoto authored
Rename new functions: - `mrb_convert_type(mrb,val,type,tname,method)` => `mrb_type_convert(mrb,val,type,tname,method)` - `mrb_check_convert_type(mrb,val,type,tname,method)` => `mrb_type_convert_check(mrb,val,type,tname,method)` Old names are defined by macros (support `tname` drop and `char*` => `mrb_sym` conversion).
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
The mixture causes warnings on 64 bit Windows (VC).
-
Yukihiro "Matz" Matsumoto authored
You can now use `NEXT` within `switch` statement like 7c087eb.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
On non-`gcc` compatible environment, `NEXT` is translated to `break`.
-
Yukihiro "Matz" Matsumoto authored
To silence some warnings. This change cancels part of 7ef3604134.
-
Yukihiro "Matz" Matsumoto authored
In the past code, the current `callinfo (ci)` was modified, thus it was possible to pop `ci` beyond the `cibase`, that could cause out of memory bound access for the code like the following: ```ruby def m2 lambda { Proc.new { return :return # return from the method } }.call.call :never_reached end p m2 ```
-