| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2020-10-12 | Skip `mrb_get_args()` in `mrb_ary_push()`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Split `MRB_BINARY_FORMAT` to major and minor. | Yukihiro "Matz" Matsumoto | |
| The minor versions should be upper compatible. So mere opcode, section addition can be done without breaking compiled binary. | |||
| 2020-10-12 | Remove `OP_EXT[123]` from operands. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Constify `irep` struct for `Class#new`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Add `const` qualifier to generated `Proc` structures. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Should not mark red (i.e. ROM allocated) objects. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `int` instead of `mrb_int` for arena index. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `%u` instead of `%d` to dump symbol IDs. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Avoid use of designated initializer for the sake of `cxx_abi`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Add casts to silence warnings. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Clarify the use of `MRB_64BIT` and `MRB_INT64` in `dump.c` and `load.c`. | Yukihiro "Matz" Matsumoto | |
| - `MRB_64BIT`: the size of a pointer is 64 bits - `MRB_INT64`: the size of `mrb_int` is 64 bits | |||
| 2020-10-12 | Fix `dump.c` for `MRB_INT32` env. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Enable NUL (`\0`) again. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Generate C struct from `irep` instead of binary dump. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Generate C source file to represent `mrb_irep` structures. | Yukihiro "Matz" Matsumoto | |
| Type `mrbc -S -B<init> -o<outfile> <rbfiles...>` to generate the C source code that holds compiled `mrb_irep`. Appending the following code to the bottom of the generated code, `mruby` executes the compiled code: ```C int main() { mrb_state *mrb = mrb_open(); struct RProc *p = mrb_proc_new(mrb, &init_irep); mrb_vm_run(mrb, p, mrb_top_self(mrb), 0); mrb_close(mrb); return 0; } ``` Eventually static compile should use this representation, instead of `uint8_t` array that holds `mrb` data, so that we can skip interpreting `mrb` data. | |||
| 2020-10-12 | Removed alignment pragma from `-B` output from `mrbc`. | Yukihiro "Matz" Matsumoto | |
| We no longer need 4 bytes alignment after we moved to the byte oriented instructions. | |||
| 2020-10-12 | Replace entire `irep->pool`. | Yukihiro "Matz" Matsumoto | |
| Changes: - `pool format is completely replaced - supported types: `STR`, `INT32`, `INT64`, `FLOAT` - `FLOAT` may be replaced by binary representation in the future - insert `NUL` after string literals in `mrb` files - `irep->pool` no longer store values in `mrb_value` - instead it stores in `mrb_pool_value` - less allocation - `mrb_irep` can be stored in ROM | |||
| 2020-10-12 | Rename `struct mrb_locals` to `struct mrb_lvinfo`. | Yukihiro "Matz" Matsumoto | |
| That stands for "local variable information". | |||
| 2020-10-12 | Add `irep` C struct dump from `mrbc` with `-S` option. | Yukihiro "Matz" Matsumoto | |
| But we need more work: - recursive `irep` dump (`irep->reps`) - pool values dump (`irep->pool`) | |||
| 2020-10-12 | Avoid use of designated initializers to generate `irep` struct. | Yukihiro "Matz" Matsumoto | |
| Since it's not supported on VC without `/std:c++latest`. That means it doesn't work for `cxx_api` build on Windows VC. | |||
| 2020-10-12 | Make `call_irep` static. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Use `static const struct mrb_irep each_irep` to ininitalize `each`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Stringify non C identifier symbols to stop macro errors by old gcc. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Constify `irep` members. | Yukihiro "Matz" Matsumoto | |
| - `pool` - `syms` - `reps` | |||
| 2020-10-12 | Change the arguments of following implicit conversion functions: | Yukihiro "Matz" Matsumoto | |
| - `mrb_convert_type` - `mrb_check_convert_type` Those function no longer take `tname` string representation of desired type, and take method symbols instead of `const char*` names. This is incompatible change. I hope no third-party gems use those functions. | |||
| 2020-10-12 | Use functions that take symbols to reduce string litrals in C. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Provide functions that take symbols instead of `const char*`. | Yukihiro "Matz" Matsumoto | |
| - mrb_define_class_id - mrb_define_module_id - mrb_define_method_id - mrb_define_singleton_method_id - mrb_define_module_function_id - mrb_define_const_id - mrb_undef_method_id - mrb_undef_class_method_id - mrb_class_defined_id - mrb_class_get_id - mrb_class_defined_under_id - mrb_class_get_under_id - mrb_module_get_id - mrb_module_get_under_id - mrb_define_class_under_id - mrb_define_module_under_id - mrb_exc_get_id | |||
| 2020-10-12 | Add functions that take symbols as arguments. | Yukihiro "Matz" Matsumoto | |
| - : | |||
| 2020-10-12 | Use `mrb_funcall_id()` extensively. | Yukihiro "Matz" Matsumoto | |
| Except for support files e.g. `mruby-test/driver.c`, which are not target of symbol collection via `rake gensym`. | |||
| 2020-10-12 | Define a new function `mrb_funcall_id()`. | Yukihiro "Matz" Matsumoto | |
| `mrb_funcall_id()` takes `mrb_sym` instead of `char*` for a method name. You can use `MRB_SYM()`/`MRB_QSYM()` to specify the method to call. | |||
| 2020-10-12 | Use `MRB_QSYM()` instead of `MRB_OPSYM()`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Rename `MRB_OPSYM()` to `MRB_QSYM()`. | Yukihiro "Matz" Matsumoto | |
| Where `QSYM` means quoted symbols, which cannot be represented C symbols, so specify aliases instead. - operators: name of the operation, e.g. add for `+` - predicates: add `_p` suffix instead of `?` - bang methods: add `_b` suffix instead of `!` - instance variables: add `a_` prefix instead of `@` - global variables: add `d_` prefix instead of `@` - class variables: unsupported; don't use them | |||
| 2020-10-12 | Use `MRB_OPSYM()` instead of `mrb_intern_lit()`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Create `MRB_OPSYM()` macro to refer symbols corresponding operators. | Yukihiro "Matz" Matsumoto | |
| For example, `MRB_OPSYM(add)` refers a symbol for `+`. | |||
| 2020-10-12 | Fix `presym_find` for strings without `NUL` terminators. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Update `presym_find` to use more efficient binary search. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Add `MRB_SYM()` for inline symbols. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Support `presym` in `symbol.c`. | Yukihiro "Matz" Matsumoto | |
| 2020-10-12 | Fix argument error when built with MRB_WITHOUT_FLOAT flag | ssmallkirby | |
| Fixed inproper argument of mrb_fixnum_value() called in integral_div(), when built with MRB_WITHOUT_FLOAT flag. Co-authored-by: taiyoslime <[email protected]> Co-authored-by: n4o847 <[email protected]> | |||
| 2020-09-25 | Prohibit string changes by "s"/"z" specifier of `mrb_get_args()` | dearblue | |
| - The `s` specifier is a string pointer obtained without performing `mrb_str_modify()`, so it cannot be changed. - The `z` specifier cannot be changed because it is a string pointer obtained by `RSTRING_CSTR()` which returns `const char *`. | |||
| 2020-09-18 | Remove redundant type-check | Wataru Ashihara | |
| since mrb_str_to_str() also does it. | |||
| 2020-08-30 | Fix `mrb_ary_splat()` to copy the array always. | Yukihiro "Matz" Matsumoto | |
| 2020-08-29 | Fix the bug caused by `to_a` returning a frozen array. | Yukihiro "Matz" Matsumoto | |
| Reported by @shuujii. | |||
| 2020-08-29 | Fix a bug introduced by the last commit. | Yukihiro "Matz" Matsumoto | |
| Should have handled the case `to_a` returns `nil`. | |||
| 2020-08-29 | Fix `mrb_obj_ceqq` to avoid array copying. | Yukihiro "Matz" Matsumoto | |
| 2020-08-29 | Fix `mrb_ary_splat` to copy the array; fix #5067 | Yukihiro "Matz" Matsumoto | |
| 2020-08-11 | Fix `mrb_int` and `size_t` combination warnings. | Yukihiro "Matz" Matsumoto | |
| 2020-08-08 | Return `NaN` for `0/0`; d8e060d | Yukihiro "Matz" Matsumoto | |
| 2020-08-08 | Should not use `mrb_float_value()` with `MRB_WITHOUT_FLOAT`. | Yukihiro "Matz" Matsumoto | |
| 2020-08-08 | Reintroduce `mrb_static_assert`; #5051 | Yukihiro "Matz" Matsumoto | |
| Note that the home brew version of `mrb_static_assert` only works within the function body. This reverts commit 8f99689. | |||
